diff --git a/.cargo/config.toml b/.cargo/config.toml index 912e93e..a1b3bc8 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -32,10 +32,27 @@ rustflags = [ ] [target.x86_64-unknown-linux-gnu] -rustflags = ["-C", "force-unwind-tables=yes"] +rustflags = [ + "-C", "force-unwind-tables=yes", + # Binary hardening (SECURITY): Full RELRO + non-executable stack + # These flags prevent: GOT overwrite attacks, lazy binding exploits, stack shellcode + # IMPORTANT: If changing build system (e.g. from cargo to Bazel-only), + # ensure equivalent linker hardening is applied to production binaries. + "-C", "link-arg=-Wl,-z,relro,-z,now,-z,noexecstack", +] +# NOTE: no target-cpu pin. Release artifacts (PRD F8) must run on ordinary +# aarch64 hardware; the default baseline for the target is the portable +# choice. (The upstream grok-build tree pinned target-cpu=neoverse-v2 here — +# a server-CPU tune from xAI's build fleet that would emit instructions +# unavailable on common Cortex-A cores.) [target.aarch64-unknown-linux-gnu] -rustflags = ["-C", "target-cpu=neoverse-v2", "-C", "force-unwind-tables=yes"] +rustflags = [ + "-C", "force-unwind-tables=yes", + # Binary hardening (SECURITY): Full RELRO + non-executable stack — see + # x86_64-unknown-linux-gnu above. + "-C", "link-arg=-Wl,-z,relro,-z,now,-z,noexecstack", +] [target.x86_64-unknown-linux-musl] rustflags = [ diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..298b2f9 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,134 @@ +name: Release + +# PRD F8: on tag push v*, build the single-file kigi binary for the five +# supported targets, package per-target archives named +# kigi--.{tar.gz|zip} (binary + LICENSE + NOTICE + +# THIRD-PARTY-NOTICES), generate SHA256SUMS, and publish everything as a +# GitHub Release. install.sh / install.ps1 and the in-app self-updater +# (kigi-update) both resolve these exact asset names — keep the naming in +# lockstep with auto_update::release_asset_name(). + +on: + push: + tags: ["v*"] + +permissions: + contents: write + +env: + CARGO_TERM_COLOR: always + +jobs: + build: + name: build (${{ matrix.target }}) + strategy: + fail-fast: false + matrix: + include: + - target: aarch64-apple-darwin + os: macos-14 + # macos-14 runners are arm64; the x86_64 slice is a cross-compile + # against the same SDK (macos-13 Intel runners are deprecated). + - target: x86_64-apple-darwin + os: macos-14 + - target: x86_64-unknown-linux-gnu + os: ubuntu-24.04 + - target: aarch64-unknown-linux-gnu + os: ubuntu-24.04-arm + - target: x86_64-pc-windows-msvc + os: windows-2022 + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v4 + + - name: Check tag matches workspace version + shell: bash + run: | + tag_version="${GITHUB_REF_NAME#v}" + cargo_version="$(sed -n 's/^version = "\(.*\)"$/\1/p' Cargo.toml | head -n 1)" + if [ "$tag_version" != "$cargo_version" ]; then + echo "Tag $GITHUB_REF_NAME does not match workspace version $cargo_version" >&2 + exit 1 + fi + + - name: Install toolchain (rust-toolchain.toml) + run: rustup show + + - name: Add build target + run: rustup target add ${{ matrix.target }} + + - name: Install dotslash (protoc launcher) + run: cargo install dotslash --locked + + - uses: Swatinem/rust-cache@v2 + with: + key: ${{ matrix.target }} + + - name: Build kigi (release-dist) + run: cargo build --profile release-dist -p kigi-bin --locked --target ${{ matrix.target }} + + - name: Package archive (tar.gz) + if: runner.os != 'Windows' + shell: bash + run: | + version="${GITHUB_REF_NAME#v}" + archive="kigi-${version}-${{ matrix.target }}.tar.gz" + staging="$(mktemp -d)" + cp "target/${{ matrix.target }}/release-dist/kigi" "$staging/kigi" + cp LICENSE "$staging/" + [ -f NOTICE ] && cp NOTICE "$staging/" + for f in THIRD-PARTY-NOTICES THIRD-PARTY-NOTICES.md; do + [ -f "$f" ] && cp "$f" "$staging/" + done + tar -C "$staging" -czf "$archive" . + shasum -a 256 "$archive" || sha256sum "$archive" + echo "ARCHIVE=$archive" >> "$GITHUB_ENV" + + - name: Package archive (zip) + if: runner.os == 'Windows' + shell: pwsh + run: | + $version = $env:GITHUB_REF_NAME.TrimStart("v") + $archive = "kigi-$version-${{ matrix.target }}.zip" + $staging = New-Item -ItemType Directory -Path (Join-Path $env:RUNNER_TEMP "staging") + Copy-Item "target/${{ matrix.target }}/release-dist/kigi.exe" (Join-Path $staging "kigi.exe") + Copy-Item LICENSE $staging + if (Test-Path NOTICE) { Copy-Item NOTICE $staging } + foreach ($f in @("THIRD-PARTY-NOTICES", "THIRD-PARTY-NOTICES.md")) { + if (Test-Path $f) { Copy-Item $f $staging } + } + Compress-Archive -Path (Join-Path $staging "*") -DestinationPath $archive + Get-FileHash -Algorithm SHA256 $archive + Add-Content -Path $env:GITHUB_ENV -Value "ARCHIVE=$archive" + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: ${{ env.ARCHIVE }} + path: ${{ env.ARCHIVE }} + if-no-files-found: error + + release: + name: publish GitHub Release + needs: build + runs-on: ubuntu-24.04 + steps: + - uses: actions/download-artifact@v4 + with: + path: dist + merge-multiple: true + + - name: Generate SHA256SUMS + working-directory: dist + run: | + ls -l + sha256sum kigi-* > SHA256SUMS + cat SHA256SUMS + + - name: Create GitHub Release + uses: softprops/action-gh-release@v2 + with: + files: dist/* + prerelease: ${{ contains(github.ref_name, '-') }} + generate_release_notes: true + fail_on_unmatched_files: true diff --git a/Cargo.lock b/Cargo.lock index f86df6e..8d27add 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6693,6 +6693,7 @@ version = "0.1.0" dependencies = [ "anyhow", "dunce", + "flate2", "futures", "indicatif", "kigi-env", @@ -6704,12 +6705,15 @@ dependencies = [ "serde", "serde_json", "serial_test", + "sha2 0.10.9", + "tar", "tempfile", "thiserror 2.0.18", "time", "tokio", "tracing", "wiremock", + "zip 8.6.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 31d20ed..66e1207 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -295,6 +295,7 @@ kigi-tool-runtime = { path = "crates/common/kigi-tool-runtime" } kigi-tool-types = { path = "crates/common/kigi-tool-types" } kigi-tty-utils = { path = "crates/codegen/kigi-tty-utils" } zbus = { version = "5" } +zip = { version = "8", default-features = false, features = ["deflate"] } zstd = "0.13" [profile.release] diff --git a/README.md b/README.md index fc45380..43e53ae 100644 --- a/README.md +++ b/README.md @@ -87,6 +87,6 @@ launcher at `bin/protoc`; install dotslash (`brew install dotslash` or ## License Apache-2.0. See [LICENSE](LICENSE), [NOTICE](NOTICE), and -[THIRD-PARTY-NOTICES](THIRD-PARTY-NOTICES). Code ported from +[THIRD-PARTY-NOTICES](THIRD-PARTY-NOTICES.md). Code ported from openai/codex and sst/opencode is documented in [crates/codegen/kigi-tools/THIRD_PARTY_NOTICES.md](crates/codegen/kigi-tools/THIRD_PARTY_NOTICES.md). diff --git a/THIRD-PARTY-NOTICES b/THIRD-PARTY-NOTICES deleted file mode 100644 index f42689a..0000000 --- a/THIRD-PARTY-NOTICES +++ /dev/null @@ -1,18898 +0,0 @@ -THIRD-PARTY NOTICES -================================================================================ -PART I — PER-PACKAGE ENTRIES -================================================================================ - --------------------------------------------------------------------------------- -addr2line 0.25.1 --------------------------------------------------------------------------------- -Source: https://github.com/gimli-rs/addr2line -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2016-2018 The gimli Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -adler2 2.0.1 --------------------------------------------------------------------------------- -Source: https://github.com/oyvindln/adler2 -License: MIT (upstream declares: 0BSD OR MIT OR Apache-2.0) - -Copyright notice: - Copyright (C) Jonas Schievink - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: 0BSD OR MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -aead 0.5.2 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/traits -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2019 The RustCrypto Project Developers - Copyright (c) 2019 MobileCoin, LLC - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -aes 0.8.4 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/block-ciphers -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018 Artyom Pavlov - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -aes 0.9.0 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/block-ciphers -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018-2024 The RustCrypto Project Developers - Copyright (c) 2018 Artyom Pavlov - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -aes-gcm 0.10.3 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/AEADs -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2019 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -agent-client-protocol 0.10.4 --------------------------------------------------------------------------------- -Source: https://github.com/agentclientprotocol/rust-sdk -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - Zed - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -agent-client-protocol-schema 0.11.4 --------------------------------------------------------------------------------- -Source: https://github.com/agentclientprotocol/agent-client-protocol -License: Apache-2.0 - -Copyright notice: - Copyright 2025 Zed Industries, Inc. and contributors - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -ahash 0.8.12 --------------------------------------------------------------------------------- -Source: https://github.com/tkaitchuck/ahash -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018 Tom Kaitchuck - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -aho-corasick 1.1.3 --------------------------------------------------------------------------------- -Source: https://github.com/BurntSushi/aho-corasick -License: MIT (upstream declares: Unlicense OR MIT) - -Copyright notice: - Copyright (c) 2015 Andrew Gallant - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Unlicense OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -aligned-vec 0.6.4 --------------------------------------------------------------------------------- -Source: https://github.com/sarah-ek/aligned-vec -License: MIT - -Copyright notice: - Copyright (c) 2022 sarah - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -alloc-no-stdlib 2.0.4 --------------------------------------------------------------------------------- -Source: https://github.com/dropbox/rust-alloc-no-stdlib -License: BSD-3-Clause - -Copyright notice: - Copyright (c) 2016 Dropbox, Inc. - -License text: see Part II — BSD-3-Clause - --------------------------------------------------------------------------------- -alloc-stdlib 0.2.2 --------------------------------------------------------------------------------- -Source: https://github.com/dropbox/rust-alloc-no-stdlib -License: BSD-3-Clause - -Copyright notice: - Copyright holders / authors (from package metadata): - - Daniel Reiter Horn - -License text: see Part II — BSD-3-Clause - --------------------------------------------------------------------------------- -allocator-api2 0.2.21 --------------------------------------------------------------------------------- -Source: https://github.com/zakarumych/allocator-api2 -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Zakarum - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -ansi-to-tui 7.0.0 --------------------------------------------------------------------------------- -Source: https://github.com/uttarayan21/ansi-to-tui -License: MIT - -Copyright notice: - Copyright 2021 Uttarayan Mondal - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -anstream 0.6.21 --------------------------------------------------------------------------------- -Source: https://github.com/rust-cli/anstyle -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -anstyle 1.0.13 --------------------------------------------------------------------------------- -Source: https://github.com/rust-cli/anstyle -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -anstyle-lossy 1.1.4 --------------------------------------------------------------------------------- -Source: https://github.com/rust-cli/anstyle -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -anstyle-parse 0.2.7 --------------------------------------------------------------------------------- -Source: https://github.com/rust-cli/anstyle -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -anstyle-query 1.1.4 --------------------------------------------------------------------------------- -Source: https://github.com/rust-cli/anstyle -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -anstyle-syntect 1.0.4 --------------------------------------------------------------------------------- -Source: https://github.com/rust-cli/anstyle -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -anstyle-wincon 3.0.10 --------------------------------------------------------------------------------- -Source: https://github.com/rust-cli/anstyle -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -anyhow 1.0.100 --------------------------------------------------------------------------------- -Source: https://github.com/dtolnay/anyhow -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - David Tolnay - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -approx 0.5.1 --------------------------------------------------------------------------------- -Source: https://github.com/brendanzab/approx -License: Apache-2.0 - -Copyright notice: - Copyright 2015 Brendan Zabarauskas - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -arboard 3.6.1 --------------------------------------------------------------------------------- -Source: https://github.com/1Password/arboard -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2022 The Arboard contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -arc-swap 1.9.2 --------------------------------------------------------------------------------- -Source: https://github.com/vorner/arc-swap -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2017 arc-swap developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -arrayref 0.3.9 --------------------------------------------------------------------------------- -Source: https://github.com/droundy/arrayref -License: BSD-2-Clause - -Copyright notice: - Copyright (c) 2015 David Roundy - -License text: see Part II — BSD-2-Clause - --------------------------------------------------------------------------------- -arrayvec 0.7.6 --------------------------------------------------------------------------------- -Source: https://github.com/bluss/arrayvec -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Ulrik Sverdrup "bluss" 2015-2023 - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -ashpd 0.10.3 --------------------------------------------------------------------------------- -Source: https://github.com/bilelmoussaoui/ashpd -License: MIT - -Copyright notice: - Copyright (c) 2020 Bilal Elmoussaoui - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -async-broadcast 0.7.2 --------------------------------------------------------------------------------- -Source: https://github.com/smol-rs/async-broadcast -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2020 Yoshua Wuyts - Copyright (c) 2020 Yoshua Wuyts - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -async-channel 1.9.0 --------------------------------------------------------------------------------- -Source: https://github.com/smol-rs/async-channel -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Stjepan Glavina - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -async-channel 2.5.0 --------------------------------------------------------------------------------- -Source: https://github.com/smol-rs/async-channel -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Stjepan Glavina - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -async-compression 0.4.19 --------------------------------------------------------------------------------- -Source: https://github.com/Nullus157/async-compression -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018 the rustasync developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -async-executor 1.13.3 --------------------------------------------------------------------------------- -Source: https://github.com/smol-rs/async-executor -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Stjepan Glavina - - John Nunley - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -async-fs 2.2.0 --------------------------------------------------------------------------------- -Source: https://github.com/smol-rs/async-fs -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Stjepan Glavina - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -async-global-executor 2.4.1 --------------------------------------------------------------------------------- -Source: https://github.com/Keruspe/async-global-executor -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Marc-Antoine Perennou - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -async-io 2.6.0 --------------------------------------------------------------------------------- -Source: https://github.com/smol-rs/async-io -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Stjepan Glavina - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -async-lock 3.4.1 --------------------------------------------------------------------------------- -Source: https://github.com/smol-rs/async-lock -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Stjepan Glavina - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -async-lsp 0.2.3 --------------------------------------------------------------------------------- -Source: https://github.com/oxalica/async-lsp -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -async-net 2.0.0 --------------------------------------------------------------------------------- -Source: https://github.com/smol-rs/async-net -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Stjepan Glavina - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -async-openai 0.33.1 --------------------------------------------------------------------------------- -Source: https://github.com/64bit/async-openai -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - Himanshu Neema - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -async-openai-macros 0.1.1 --------------------------------------------------------------------------------- -Source: https://github.com/64bit/async-openai -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - Himanshu Neema - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -async-process 2.5.0 --------------------------------------------------------------------------------- -Source: https://github.com/smol-rs/async-process -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Stjepan Glavina - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -async-recursion 1.1.1 --------------------------------------------------------------------------------- -Source: https://github.com/dcchut/async-recursion -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Robert Usher <266585+dcchut@users.noreply.github.com> - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -async-signal 0.2.13 --------------------------------------------------------------------------------- -Source: https://github.com/smol-rs/async-signal -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright holders / authors (from package metadata): - - John Nunley - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -async-std 1.13.2 --------------------------------------------------------------------------------- -Source: https://github.com/async-rs/async-std -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Stjepan Glavina - - Yoshua Wuyts - - Friedel Ziegelmayer - - Contributors to async-std - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -async-stream 0.3.6 --------------------------------------------------------------------------------- -Source: https://github.com/tokio-rs/async-stream -License: MIT - -Copyright notice: - Copyright (c) 2019 Carl Lerche - Copyright (c) 2018 David Tolnay - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -async-stream-impl 0.3.6 --------------------------------------------------------------------------------- -Source: https://github.com/tokio-rs/async-stream -License: MIT - -Copyright notice: - Copyright (c) 2019 Carl Lerche - Copyright (c) 2018 David Tolnay - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -async-task 4.7.1 --------------------------------------------------------------------------------- -Source: https://github.com/smol-rs/async-task -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Stjepan Glavina - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -async-trait 0.1.89 --------------------------------------------------------------------------------- -Source: https://github.com/dtolnay/async-trait -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - David Tolnay - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -async-tungstenite 0.32.1 --------------------------------------------------------------------------------- -Source: https://github.com/sdroege/async-tungstenite -License: MIT - -Copyright notice: - Copyright (c) 2017 Daniel Abramov - Copyright (c) 2017 Alexey Galakhov - Copyright (c) 2019 Sebastian Dröge - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -atomic 0.6.1 --------------------------------------------------------------------------------- -Source: https://github.com/Amanieu/atomic-rs -License: MIT (upstream declares: Apache-2.0/MIT) - -Copyright notice: - Copyright (c) 2016 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0/MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -atomic-waker 1.1.2 --------------------------------------------------------------------------------- -Source: https://github.com/smol-rs/atomic-waker -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2016 Alex Crichton - Copyright (c) 2017 The Tokio Authors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -autocfg 1.5.0 --------------------------------------------------------------------------------- -Source: https://github.com/cuviper/autocfg -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2018 Josh Stone - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -autometrics 2.0.0 --------------------------------------------------------------------------------- -Source: https://github.com/autometrics-dev/autometrics-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Fiberplane - - Evan Schwartz <3262610+emschwartz@users.noreply.github.com> - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -autometrics-macros 2.0.0 --------------------------------------------------------------------------------- -Source: https://github.com/autometrics-dev/autometrics-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Fiberplane - - Evan Schwartz <3262610+emschwartz@users.noreply.github.com> - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -aws-config 1.8.8 --------------------------------------------------------------------------------- -Source: https://github.com/smithy-lang/smithy-rs -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - AWS Rust SDK Team - - Russell Cohen - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -aws-credential-types 1.2.8 --------------------------------------------------------------------------------- -Source: https://github.com/smithy-lang/smithy-rs -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - AWS Rust SDK Team - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -aws-lc-rs 1.16.2 --------------------------------------------------------------------------------- -Source: https://github.com/aws/aws-lc-rs -License: ISC AND (Apache-2.0 OR ISC) - (applicable terms: Apache-2.0, ISC) - -Copyright notice: - Copyright 2016 Brian Smith. - Portions Copyright (c) 2016, Google Inc. - Copyright 2018 Brian Smith. - Copyright 2015-2016 Brian Smith. - -License text: see Part II — Apache-2.0; ISC - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - Upstream license expression: ISC AND (Apache-2.0 OR ISC). For this distribution, obligations are satisfied under: Apache-2.0, ISC. - --------------------------------------------------------------------------------- -aws-lc-sys 0.39.1 --------------------------------------------------------------------------------- -Source: https://github.com/aws/aws-lc-rs -License: ISC AND (Apache-2.0 OR ISC) AND Apache-2.0 AND MIT AND BSD-3-Clause AND (Apache-2.0 OR ISC OR MIT) AND (Apache-2.0 OR ISC OR MIT-0) - (applicable terms: BSD-3-Clause, Apache-2.0, MIT, ISC) - -Copyright notice: - Copyright (c) 2014-2024 Google Inc. - Brian Smith (Copyright 2016) - Robert Nagy (Copyright 2022) - Arm Ltd (Copyright 2020) - Copyright (c) 2025-2026 Google Inc. - Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved. - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com). All rights reserved. - Sun Microsystems, Inc. (Copyright 2002) - Nokia (Copyright 2005) - Intel Corporation (Copyright 2012-2021) - Copyright (c) The mlkem-native project authors. - Copyright (c) The mldsa-native project authors. - Copyright (c) 2015-2020 the fiat-crypto authors. - Copyright (C) 2017 - 2025, Stephan Mueller . - Copyright 2008 Google Inc. - Copyright (c) The Go Authors. All rights reserved. - -License text: see Part II — BSD-3-Clause; Apache-2.0; MIT; ISC - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - Upstream license expression: ISC AND (Apache-2.0 OR ISC) AND Apache-2.0 AND MIT AND BSD-3-Clause AND (Apache-2.0 OR ISC OR MIT) AND (Apache-2.0 OR ISC OR MIT-0). For this distribution, obligations are satisfied under: BSD-3-Clause, Apache-2.0, MIT, ISC. - --------------------------------------------------------------------------------- -aws-runtime 1.5.12 --------------------------------------------------------------------------------- -Source: https://github.com/smithy-lang/smithy-rs -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - AWS Rust SDK Team - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -aws-sdk-s3 1.109.0 --------------------------------------------------------------------------------- -Source: https://github.com/awslabs/aws-sdk-rust -License: Apache-2.0 - -Copyright notice: - Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -aws-sdk-sso 1.86.0 --------------------------------------------------------------------------------- -Source: https://github.com/awslabs/aws-sdk-rust -License: Apache-2.0 - -Copyright notice: - Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -aws-sdk-ssooidc 1.89.0 --------------------------------------------------------------------------------- -Source: https://github.com/awslabs/aws-sdk-rust -License: Apache-2.0 - -Copyright notice: - Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -aws-sdk-sts 1.88.0 --------------------------------------------------------------------------------- -Source: https://github.com/awslabs/aws-sdk-rust -License: Apache-2.0 - -Copyright notice: - Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -aws-sigv4 1.3.5 --------------------------------------------------------------------------------- -Source: https://github.com/smithy-lang/smithy-rs -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - AWS Rust SDK Team - - David Barsky - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -aws-smithy-async 1.2.14 --------------------------------------------------------------------------------- -Source: https://github.com/smithy-lang/smithy-rs -License: Apache-2.0 - -Copyright notice: - Copyright (c) 2021 Tokio Contributors - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -aws-smithy-checksums 0.63.13 --------------------------------------------------------------------------------- -Source: https://github.com/smithy-lang/smithy-rs -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - AWS Rust SDK Team - - Zelda Hessler - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -aws-smithy-eventstream 0.60.18 --------------------------------------------------------------------------------- -Source: https://github.com/smithy-lang/smithy-rs -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - AWS Rust SDK Team - - John DiSanti - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -aws-smithy-http 0.62.6 --------------------------------------------------------------------------------- -Source: https://github.com/smithy-lang/smithy-rs -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - AWS Rust SDK Team - - Russell Cohen - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -aws-smithy-http-client 1.1.9 --------------------------------------------------------------------------------- -Source: https://github.com/smithy-lang/smithy-rs -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - AWS Rust SDK Team - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -aws-smithy-json 0.61.6 --------------------------------------------------------------------------------- -Source: https://github.com/smithy-lang/smithy-rs -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - AWS Rust SDK Team - - John DiSanti - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -aws-smithy-observability 0.1.4 --------------------------------------------------------------------------------- -Source: https://github.com/awslabs/smithy-rs -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - AWS Rust SDK Team - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -aws-smithy-query 0.60.8 --------------------------------------------------------------------------------- -Source: https://github.com/smithy-lang/smithy-rs -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - AWS Rust SDK Team - - John DiSanti - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -aws-smithy-runtime 1.9.3 --------------------------------------------------------------------------------- -Source: https://github.com/smithy-lang/smithy-rs -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - AWS Rust SDK Team - - Zelda Hessler - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -aws-smithy-runtime-api 1.11.3 --------------------------------------------------------------------------------- -Source: https://github.com/smithy-lang/smithy-rs -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - AWS Rust SDK Team - - Zelda Hessler - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -aws-smithy-types 1.4.3 --------------------------------------------------------------------------------- -Source: https://github.com/smithy-lang/smithy-rs -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - AWS Rust SDK Team - - Russell Cohen - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -aws-smithy-xml 0.60.11 --------------------------------------------------------------------------------- -Source: https://github.com/smithy-lang/smithy-rs -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - AWS Rust SDK Team - - Russell Cohen - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -aws-types 1.3.9 --------------------------------------------------------------------------------- -Source: https://github.com/smithy-lang/smithy-rs -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - AWS Rust SDK Team - - Russell Cohen - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -axum 0.8.6 --------------------------------------------------------------------------------- -Source: https://github.com/tokio-rs/axum -License: MIT - -Copyright notice: - Copyright (c) 2019 axum Contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -axum-core 0.5.5 --------------------------------------------------------------------------------- -Source: https://github.com/tokio-rs/axum -License: MIT - -Copyright notice: - Copyright 2021 axum Contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -axum-extra 0.10.3 --------------------------------------------------------------------------------- -Source: https://github.com/tokio-rs/axum -License: MIT - -Copyright notice: - Copyright 2021 axum Contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -axum-macros 0.5.0 --------------------------------------------------------------------------------- -Source: https://github.com/tokio-rs/axum -License: MIT - -Copyright notice: - Copyright 2021 Axum Contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -backoff 0.4.0 --------------------------------------------------------------------------------- -Source: https://github.com/ihrwein/backoff -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2016 Tibor Benke - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -backon 1.6.0 --------------------------------------------------------------------------------- -Source: https://github.com/Xuanwo/backon -License: Apache-2.0 - -Copyright notice: - Copyright 2021 Datafuse Labs - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -backtrace 0.3.76 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/backtrace-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 Alex Crichton - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -base16ct 0.2.0 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/formats/tree/master/base16ct -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2014 Steve "Sc00bz" Thomas (steve at tobtu dot com) - Copyright (c) 2022 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -base64 0.21.7 --------------------------------------------------------------------------------- -Source: https://github.com/marshallpierce/rust-base64 -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015 Alice Maz - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -base64 0.22.1 --------------------------------------------------------------------------------- -Source: https://github.com/marshallpierce/rust-base64 -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015 Alice Maz - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -base64-simd 0.8.0 --------------------------------------------------------------------------------- -Source: https://github.com/Nugine/simd -License: MIT - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -base64ct 1.8.0 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/formats -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2014 Steve "Sc00bz" Thomas (steve at tobtu dot com) - Copyright (c) 2021-2025 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -bincode 1.3.3 --------------------------------------------------------------------------------- -Source: https://github.com/servo/bincode -License: MIT - -Copyright notice: - Copyright (c) 2014 Ty Overby - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -bindgen 0.72.1 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/rust-bindgen -License: BSD-3-Clause - -Copyright notice: - Copyright (c) 2013, Jyun-Yan You - -License text: see Part II — BSD-3-Clause - --------------------------------------------------------------------------------- -bit-set 0.5.3 --------------------------------------------------------------------------------- -Source: https://github.com/contain-rs/bit-set -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2016 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -bit-set 0.8.0 --------------------------------------------------------------------------------- -Source: https://github.com/contain-rs/bit-set -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2023 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -bit-vec 0.6.3 --------------------------------------------------------------------------------- -Source: https://github.com/contain-rs/bit-vec -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2015 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -bit-vec 0.8.0 --------------------------------------------------------------------------------- -Source: https://github.com/contain-rs/bit-vec -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2023 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -bit_field 0.10.3 --------------------------------------------------------------------------------- -Source: https://github.com/phil-opp/rust-bit-field -License: MIT (upstream declares: Apache-2.0/MIT) - -Copyright notice: - Copyright (c) 2016 Philipp Oppermann - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0/MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -bitflags 1.3.2 --------------------------------------------------------------------------------- -Source: https://github.com/bitflags/bitflags -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2014 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -bitflags 2.13.0 --------------------------------------------------------------------------------- -Source: https://github.com/bitflags/bitflags -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -blake3 1.8.2 --------------------------------------------------------------------------------- -Source: https://github.com/BLAKE3-team/BLAKE3 -License: Apache-2.0 (upstream declares: CC0-1.0 OR Apache-2.0 OR Apache-2.0 WITH LLVM-exception) - -Copyright notice: - Copyright 2019 Jack O'Connor and Samuel Neves - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - Upstream license expression: CC0-1.0 OR Apache-2.0 OR Apache-2.0 WITH LLVM-exception. For this distribution, obligations are satisfied under: Apache-2.0. - --------------------------------------------------------------------------------- -block-buffer 0.10.4 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/utils -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018-2019 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -block-buffer 0.12.0 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/utils -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018-2025 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -block-padding 0.4.2 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/utils -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018-2025 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -blocking 1.6.2 --------------------------------------------------------------------------------- -Source: https://github.com/smol-rs/blocking -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Stjepan Glavina - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -bm25 2.3.2 --------------------------------------------------------------------------------- -Source: https://github.com/Michael-JB/bm25 -License: MIT - -Copyright notice: - Copyright (c) 2024 Michael Barlow - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -brotli 7.0.0 --------------------------------------------------------------------------------- -Source: https://github.com/dropbox/rust-brotli -License: BSD-3-Clause AND MIT - (applicable terms: BSD-3-Clause, MIT) - -Copyright notice: - Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. - Copyright (c) 2016 Dropbox, Inc. - -License text: see Part II — BSD-3-Clause; MIT - -Additional requirements / notices: - Upstream license expression: BSD-3-Clause AND MIT. All of the following license terms apply: BSD-3-Clause, MIT. - --------------------------------------------------------------------------------- -brotli 8.0.2 --------------------------------------------------------------------------------- -Source: https://github.com/dropbox/rust-brotli -License: BSD-3-Clause AND MIT - (applicable terms: BSD-3-Clause, MIT) - -Copyright notice: - Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. - -License text: see Part II — BSD-3-Clause; MIT - -Additional requirements / notices: - Upstream license expression: BSD-3-Clause AND MIT. All of the following license terms apply: BSD-3-Clause, MIT. - --------------------------------------------------------------------------------- -brotli-decompressor 4.0.3 --------------------------------------------------------------------------------- -Source: https://github.com/dropbox/rust-brotli-decompressor -License: MIT (upstream declares: BSD-3-Clause/MIT) - -Copyright notice: - Copyright (c) 2016 Dropbox, Inc. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: BSD-3-Clause/MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -brotli-decompressor 5.0.0 --------------------------------------------------------------------------------- -Source: https://github.com/dropbox/rust-brotli-decompressor -License: MIT (upstream declares: BSD-3-Clause/MIT) - -Copyright notice: - Copyright (c) 2016 Dropbox, Inc. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: BSD-3-Clause/MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -bstr 1.12.1 --------------------------------------------------------------------------------- -Source: https://github.com/BurntSushi/bstr -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018-2019 Andrew Gallant - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -bytecount 0.6.9 --------------------------------------------------------------------------------- -Source: https://github.com/llogiq/bytecount -License: MIT (upstream declares: Apache-2.0/MIT) - -Copyright notice: - Copyright (c) 2017 The bytecount Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0/MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -bytemuck 1.24.0 --------------------------------------------------------------------------------- -Source: https://github.com/Lokathor/bytemuck -License: MIT (upstream declares: Zlib OR Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2019 Daniel "Lokathor" Gee. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Zlib OR Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -bytemuck_derive 1.10.2 --------------------------------------------------------------------------------- -Source: https://github.com/Lokathor/bytemuck -License: MIT (upstream declares: Zlib OR Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2019 Daniel "Lokathor" Gee. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Zlib OR Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -byteorder 1.5.0 --------------------------------------------------------------------------------- -Source: https://github.com/BurntSushi/byteorder -License: MIT (upstream declares: Unlicense OR MIT) - -Copyright notice: - Copyright (c) 2015 Andrew Gallant - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Unlicense OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -byteorder-lite 0.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/image-rs/byteorder-lite -License: MIT (upstream declares: Unlicense OR MIT) - -Copyright notice: - Copyright (c) 2015 Andrew Gallant - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Unlicense OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -bytes 1.11.1 --------------------------------------------------------------------------------- -Source: https://github.com/tokio-rs/bytes -License: MIT - -Copyright notice: - Copyright (c) 2018 Carl Lerche - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -bytes-utils 0.1.4 --------------------------------------------------------------------------------- -Source: https://github.com/vorner/bytes-utils -License: MIT (upstream declares: Apache-2.0/MIT) - -Copyright notice: - Copyright (c) 2017 arc-swap developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0/MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -bzip2 0.4.4 --------------------------------------------------------------------------------- -Source: https://github.com/alexcrichton/bzip2-rs -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2014 Alex Crichton - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -bzip2-sys 0.1.13+1.0.8 --------------------------------------------------------------------------------- -Source: https://github.com/alexcrichton/bzip2-rs -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2014-2025 Alex Crichton and Contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -cached 0.56.0 --------------------------------------------------------------------------------- -Source: https://github.com/jaemk/cached -License: MIT - -Copyright notice: - Copyright (c) 2017 James Kominick - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -cached_proc_macro 0.25.0 --------------------------------------------------------------------------------- -Source: https://github.com/jaemk/cached -License: MIT - -Copyright notice: - Copyright (c) 2017 James Kominick - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -cached_proc_macro_types 0.1.1 --------------------------------------------------------------------------------- -Source: https://github.com/jaemk/cached -License: MIT - -Copyright notice: - Copyright (c) 2017 James Kominick - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -calamine 0.24.0 --------------------------------------------------------------------------------- -Source: https://github.com/tafia/calamine -License: MIT - -Copyright notice: - Copyright (c) 2016 Johann Tuffe - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -camino 1.2.1 --------------------------------------------------------------------------------- -Source: https://github.com/camino-rs/camino -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) The camino Contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -cassowary 0.3.0 --------------------------------------------------------------------------------- -Source: https://github.com/dylanede/cassowary-rs -License: MIT (upstream declares: MIT / Apache-2.0) - -Copyright notice: - Copyright (c) 2016 Dylan Ede - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT / Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -castaway 0.2.4 --------------------------------------------------------------------------------- -Source: https://github.com/sagebind/castaway -License: MIT - -Copyright notice: - Copyright (c) 2021 Stephen M. Coakley - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -cbc 0.2.0 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/block-modes -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018-2022 RustCrypto Developers - Copyright (c) 2018 Artyom Pavlov - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -cc 1.2.43 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/cc-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 Alex Crichton - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -cexpr 0.6.0 --------------------------------------------------------------------------------- -Source: https://github.com/jethrogb/rust-cexpr -License: MIT (upstream declares: Apache-2.0/MIT) - -Copyright notice: - (C) Copyright 2016 Jethro G. Beekman - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0/MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -cfb 0.7.3 --------------------------------------------------------------------------------- -Source: https://github.com/mdsteele/rust-cfb -License: MIT - -Copyright notice: - Copyright (c) 2017 Matthew D. Steele - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -cfg-if 1.0.4 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/cfg-if -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 Alex Crichton - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -cfg_aliases 0.1.1 --------------------------------------------------------------------------------- -Source: https://github.com/katharostech/cfg_aliases -License: MIT - -Copyright notice: - Copyright (c) 2020 Katharos Technology - -License text: see Part II — MIT - -Additional requirements / notices: - ADDITIONAL UPSTREAM NOTICES: - # 3rd Party Notices - - The `cfg_aliases!` macro uses a lot of the code from [`tectonic_cfg_support::target_cfg!`] macro which is under the following license: - - [`tectonic_cfg_support::target_cfg!`]: https://github.com/tectonic-typesetting/tectonic/blob/f2439b936470ad27bdf92882064bc4702ee01899/cfg_support/src/lib.rs#L166 - - tectonic_cfg_support is licensed under the MIT License. - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the “Software”), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. - --- - --------------------------------------------------------------------------------- -cfg_aliases 0.2.1 --------------------------------------------------------------------------------- -Source: https://github.com/katharostech/cfg_aliases -License: MIT - -Copyright notice: - Copyright (c) 2020 Katharos Technology - -License text: see Part II — MIT - -Additional requirements / notices: - ADDITIONAL UPSTREAM NOTICES: - # 3rd Party Notices - - The `cfg_aliases!` macro uses a lot of the code from [`tectonic_cfg_support::target_cfg!`] macro which is under the following license: - - [`tectonic_cfg_support::target_cfg!`]: https://github.com/tectonic-typesetting/tectonic/blob/f2439b936470ad27bdf92882064bc4702ee01899/cfg_support/src/lib.rs#L166 - - tectonic_cfg_support is licensed under the MIT License. - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the “Software”), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. - --- - --------------------------------------------------------------------------------- -chacha20 0.10.0 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/stream-ciphers -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2019-2026 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -chromiumoxide 0.9.1 --------------------------------------------------------------------------------- -Source: https://github.com/mattsse/chromiumoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2020 Matthias Seitz - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -chromiumoxide_cdp 0.9.1 --------------------------------------------------------------------------------- -Source: https://github.com/mattsse/chromiumoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2020 Matthias Seitz - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -chromiumoxide_pdl 0.9.1 --------------------------------------------------------------------------------- -Source: https://github.com/mattsse/chromiumoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2020 Matthias Seitz - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -chromiumoxide_types 0.9.1 --------------------------------------------------------------------------------- -Source: https://github.com/mattsse/chromiumoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2020 Matthias Seitz - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -chrono 0.4.44 --------------------------------------------------------------------------------- -Source: https://github.com/chronotope/chrono -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Apache 2.0 License [2]. Copyright (c) 2014--2026, Kang Seonghoon and - Copyright (c) 2014, Kang Seonghoon. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -chrono-tz 0.10.4 --------------------------------------------------------------------------------- -Source: https://github.com/chronotope/chrono-tz -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016-2024 Benjamin Sago & the chronotope maintainers - Copyright 2016 Djzin - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -cipher 0.4.4 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/traits -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016-2020 RustCrypto Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -cipher 0.5.1 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/traits -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016-2025 RustCrypto Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -clang-sys 1.8.1 --------------------------------------------------------------------------------- -Source: https://github.com/KyleMayes/clang-sys -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - Kyle Mayes - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -clap 4.5.53 --------------------------------------------------------------------------------- -Source: https://github.com/clap-rs/clap -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -clap_builder 4.5.53 --------------------------------------------------------------------------------- -Source: https://github.com/clap-rs/clap -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -clap_complete 4.6.5 --------------------------------------------------------------------------------- -Source: https://github.com/clap-rs/clap -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -clap_derive 4.5.49 --------------------------------------------------------------------------------- -Source: https://github.com/clap-rs/clap -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -clap_lex 0.7.6 --------------------------------------------------------------------------------- -Source: https://github.com/clap-rs/clap -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -clipboard-win 5.4.1 --------------------------------------------------------------------------------- -Source: https://github.com/DoumanAsh/clipboard-win -License: BSL-1.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - Douman - -License text: see Part II — BSL-1.0 - --------------------------------------------------------------------------------- -clru 0.6.2 --------------------------------------------------------------------------------- -Source: https://github.com/marmeladema/clru-rs -License: MIT - -Copyright notice: - Copyright (c) 2020 Élie ROUDNINSKI (marmeladema) - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -cmake 0.1.54 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/cmake-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 Alex Crichton - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -cmpv2 0.2.0 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/formats/tree/master/cmpv2 -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2023 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -cms 0.2.3 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/formats/tree/master/cms -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright holders / authors (from package metadata): - - RustCrypto Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -codepage 0.1.2 --------------------------------------------------------------------------------- -Source: https://github.com/hsivonen/codepage -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - codepage is copyright 2018 Mozilla Foundation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -color_quant 1.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/image-rs/color_quant -License: MIT - -Copyright notice: - Copyright (c) 2016 PistonDevelopers - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -colorchoice 1.0.4 --------------------------------------------------------------------------------- -Source: https://github.com/rust-cli/anstyle -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -command-fds 0.3.2 --------------------------------------------------------------------------------- -Source: https://github.com/google/command-fds -License: Apache-2.0 - -Copyright notice: - Copyright 2021, The Android Open Source Project - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -compact_str 0.7.1 --------------------------------------------------------------------------------- -Source: https://github.com/ParkMyCar/compact_str -License: MIT - -Copyright notice: - Copyright (c) 2021 Parker Timmerman - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -compact_str 0.8.1 --------------------------------------------------------------------------------- -Source: https://github.com/ParkMyCar/compact_str -License: MIT - -Copyright notice: - Copyright (c) 2021 Parker Timmerman - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -compact_str 0.9.0 --------------------------------------------------------------------------------- -Source: https://github.com/ParkMyCar/compact_str -License: MIT - -Copyright notice: - Copyright (c) 2021 Parker Timmerman - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -concurrent-queue 2.5.0 --------------------------------------------------------------------------------- -Source: https://github.com/smol-rs/concurrent-queue -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Stjepan Glavina - - Taiki Endo - - John Nunley - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -console 0.16.1 --------------------------------------------------------------------------------- -Source: https://github.com/console-rs/console -License: MIT - -Copyright notice: - Copyright (c) 2017 Armin Ronacher - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -const-hex 1.18.1 --------------------------------------------------------------------------------- -Source: https://github.com/danipopes/const-hex -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - DaniPopes <57450786+DaniPopes@users.noreply.github.com> - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -const-oid 0.9.6 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/formats/tree/master/const-oid -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2020-2022 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -const-oid 0.10.2 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/formats -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2020-2026 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -constant_time_eq 0.1.5 --------------------------------------------------------------------------------- -Source: https://github.com/cesarb/constant_time_eq -License: Apache-2.0 (upstream declares: CC0-1.0 OR MIT-0 OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Cesar Eduardo Barros - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - Upstream license expression: CC0-1.0 OR MIT-0 OR Apache-2.0. For this distribution, obligations are satisfied under: Apache-2.0. - --------------------------------------------------------------------------------- -constant_time_eq 0.3.1 --------------------------------------------------------------------------------- -Source: https://github.com/cesarb/constant_time_eq -License: Apache-2.0 (upstream declares: CC0-1.0 OR MIT-0 OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Cesar Eduardo Barros - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - Upstream license expression: CC0-1.0 OR MIT-0 OR Apache-2.0. For this distribution, obligations are satisfied under: Apache-2.0. - --------------------------------------------------------------------------------- -constcat 0.6.1 --------------------------------------------------------------------------------- -Source: https://github.com/rossmacarthur/constcat -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Ross MacArthur - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -convert_case 0.8.0 --------------------------------------------------------------------------------- -Source: https://github.com/rutrum/convert-case -License: MIT - -Copyright notice: - Copyright (c) 2025 rutrum - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -convert_case 0.10.0 --------------------------------------------------------------------------------- -Source: https://github.com/rutrum/convert-case -License: MIT - -Copyright notice: - Copyright (c) 2025 rutrum - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -cookie 0.18.1 --------------------------------------------------------------------------------- -Source: https://github.com/SergioBenitez/cookie-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2017 Sergio Benitez - Copyright 2014 Alex Chricton - Copyright (c) 2017 Sergio Benitez - Copyright (c) 2014 Alex Crichton - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -core-foundation 0.10.1 --------------------------------------------------------------------------------- -Source: https://github.com/servo/core-foundation-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2012-2013 Mozilla Foundation - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -core-foundation-sys 0.8.7 --------------------------------------------------------------------------------- -Source: https://github.com/servo/core-foundation-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2012-2013 Mozilla Foundation - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -core_maths 0.1.1 --------------------------------------------------------------------------------- -Source: https://github.com/robertbastian/core_maths -License: MIT - -Copyright notice: - Copyright (c) 2024 Robert Bastian - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -coreaudio-rs 0.11.3 --------------------------------------------------------------------------------- -Source: https://github.com/RustAudio/coreaudio-rs -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2015 - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -coreaudio-sys 0.2.18 --------------------------------------------------------------------------------- -Source: https://github.com/RustAudio/coreaudio-sys -License: MIT - -Copyright notice: - Copyright (c) 2015 - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -cpal 0.15.3 --------------------------------------------------------------------------------- -Source: https://github.com/rustaudio/cpal -License: Apache-2.0 - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -cpp_demangle 0.4.5 --------------------------------------------------------------------------------- -Source: https://github.com/gimli-rs/cpp_demangle -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -cpubits 0.1.1 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/utils -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2023-2026 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -cpufeatures 0.2.17 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/utils -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2020-2025 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -cpufeatures 0.3.0 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/utils -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2020-2025 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -crc 3.3.0 --------------------------------------------------------------------------------- -Source: https://github.com/mrhooray/crc-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2017 crc-rs Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -crc-catalog 2.4.0 --------------------------------------------------------------------------------- -Source: https://github.com/akhilles/crc-catalog -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Akhil Velagapudi - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -crc-fast 1.9.0 --------------------------------------------------------------------------------- -Source: https://github.com/awesomized/crc-fast-rust -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2025 Don MacAskill - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -crc32fast 1.5.0 --------------------------------------------------------------------------------- -Source: https://github.com/srijs/rust-crc32fast -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018 Sam Rijs, Alex Crichton and contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -crmf 0.2.0 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/formats/tree/master/crmf -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2023 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -crossbeam 0.8.4 --------------------------------------------------------------------------------- -Source: https://github.com/crossbeam-rs/crossbeam -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2019 The Crossbeam Project Developers - Copyright (c) 2019 The Crossbeam Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -crossbeam-channel 0.5.15 --------------------------------------------------------------------------------- -Source: https://github.com/crossbeam-rs/crossbeam -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2009 The Go Authors. All rights reserved. - Copyright (c) 2019 The Crossbeam Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -crossbeam-deque 0.8.6 --------------------------------------------------------------------------------- -Source: https://github.com/crossbeam-rs/crossbeam -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2019 The Crossbeam Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -crossbeam-epoch 0.9.18 --------------------------------------------------------------------------------- -Source: https://github.com/crossbeam-rs/crossbeam -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2019 The Crossbeam Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -crossbeam-queue 0.3.12 --------------------------------------------------------------------------------- -Source: https://github.com/crossbeam-rs/crossbeam -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2019 The Crossbeam Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -crossbeam-utils 0.8.21 --------------------------------------------------------------------------------- -Source: https://github.com/crossbeam-rs/crossbeam -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2019 The Crossbeam Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -crossterm 0.28.1 --------------------------------------------------------------------------------- -Source: https://github.com/crossterm-rs/crossterm -License: MIT - -Copyright notice: - Copyright (c) 2019 Timon - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -crossterm_winapi 0.9.1 --------------------------------------------------------------------------------- -Source: https://github.com/crossterm-rs/crossterm-winapi -License: MIT - -Copyright notice: - Copyright (c) 2019 Timon - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -cryptify 3.2.1 --------------------------------------------------------------------------------- -Source: https://github.com/dronavallipranav/rust-obfuscator/tree/main/cryptify -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - Pranav Dronavalli - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -crypto-bigint 0.5.5 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/crypto-bigint -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2021 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -crypto-common 0.1.6 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/traits -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2021 RustCrypto Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -crypto-common 0.2.1 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/traits -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2021-2026 RustCrypto Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -csscolorparser 0.6.2 --------------------------------------------------------------------------------- -Source: https://github.com/mazznoer/csscolorparser-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2020 Nor Khasyatillah - Copyright (c) 2020 Nor Khasyatillah - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -cssparser 0.31.2 --------------------------------------------------------------------------------- -Source: https://github.com/servo/rust-cssparser -License: MPL-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - Simon Sapin - -License text: see Part II — MPL-2.0 - -Additional requirements / notices: - MPL-2.0 notice: Certain source files in this package are licensed under the Mozilla Public License, v. 2.0. Those files remain under the MPL-2.0; this product as a whole is not required to be licensed under the MPL-2.0. You may obtain a copy of the MPL at https://mozilla.org/MPL/2.0/. - --------------------------------------------------------------------------------- -cssparser 0.34.0 --------------------------------------------------------------------------------- -Source: https://github.com/servo/rust-cssparser -License: MPL-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - Simon Sapin - -License text: see Part II — MPL-2.0 - -Additional requirements / notices: - MPL-2.0 notice: Certain source files in this package are licensed under the Mozilla Public License, v. 2.0. Those files remain under the MPL-2.0; this product as a whole is not required to be licensed under the MPL-2.0. You may obtain a copy of the MPL at https://mozilla.org/MPL/2.0/. - --------------------------------------------------------------------------------- -cssparser-macros 0.6.1 --------------------------------------------------------------------------------- -Source: https://github.com/servo/rust-cssparser -License: MPL-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - Simon Sapin - -License text: see Part II — MPL-2.0 - -Additional requirements / notices: - MPL-2.0 notice: Certain source files in this package are licensed under the Mozilla Public License, v. 2.0. Those files remain under the MPL-2.0; this product as a whole is not required to be licensed under the MPL-2.0. You may obtain a copy of the MPL at https://mozilla.org/MPL/2.0/. - --------------------------------------------------------------------------------- -csv 1.4.0 --------------------------------------------------------------------------------- -Source: https://github.com/BurntSushi/rust-csv -License: MIT (upstream declares: Unlicense/MIT) - -Copyright notice: - Copyright (c) 2015 Andrew Gallant - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Unlicense/MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -csv-core 0.1.13 --------------------------------------------------------------------------------- -Source: https://github.com/BurntSushi/rust-csv -License: MIT (upstream declares: Unlicense/MIT) - -Copyright notice: - Copyright (c) 2015 Andrew Gallant - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Unlicense/MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -ctr 0.9.2 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/block-modes -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018-2022 RustCrypto Developers - Copyright (c) 2018 Artyom Pavlov - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -curve25519-dalek 4.1.3 --------------------------------------------------------------------------------- -Source: https://github.com/dalek-cryptography/curve25519-dalek/tree/main/curve25519-dalek -License: BSD-3-Clause - -Copyright notice: - Copyright (c) 2016-2021 isis agora lovecruft. All rights reserved. - Copyright (c) 2016-2021 Henry de Valence. All rights reserved. - Copyright (c) 2012 The Go Authors. All rights reserved. - -License text: see Part II — BSD-3-Clause - --------------------------------------------------------------------------------- -curve25519-dalek-derive 0.1.1 --------------------------------------------------------------------------------- -Source: https://github.com/dalek-cryptography/curve25519-dalek -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -dagre_rust 0.0.5 --------------------------------------------------------------------------------- -Source: https://crates.io/crates/dagre_rust/0.0.5 -License: Apache-2.0 - -Copyright notice: - Copyright 2023 Ameer Hamza - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - VENDORED WITH LOCAL MODIFICATIONS: - Vendored at third_party/dagre_rust/. Local modifications: rustfmt only (no semantic change); replaced unsynchronized static mut unique-id counter with AtomicUsize in src/layout/util.rs. Dependency paths repointed to sibling vendored crates. See Cargo.toml VENDORING NOTES. - Apache-2.0 change notice: this package was modified as described above. Modified files remain under the Apache License 2.0. - --------------------------------------------------------------------------------- -dark-light 2.0.0 --------------------------------------------------------------------------------- -Source: https://github.com/rust-dark-light/rust-dark-light -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Corey Farwell - - Eduardo Flores - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -darling 0.20.11 --------------------------------------------------------------------------------- -Source: https://github.com/TedDriggs/darling -License: MIT - -Copyright notice: - Copyright (c) 2017 Ted Driggs - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -darling 0.21.3 --------------------------------------------------------------------------------- -Source: https://github.com/TedDriggs/darling -License: MIT - -Copyright notice: - Copyright (c) 2017 Ted Driggs - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -darling 0.23.0 --------------------------------------------------------------------------------- -Source: https://github.com/TedDriggs/darling -License: MIT - -Copyright notice: - Copyright (c) 2017 Ted Driggs - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -darling_core 0.20.11 --------------------------------------------------------------------------------- -Source: https://github.com/TedDriggs/darling -License: MIT - -Copyright notice: - Copyright (c) 2017 Ted Driggs - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -darling_core 0.21.3 --------------------------------------------------------------------------------- -Source: https://github.com/TedDriggs/darling -License: MIT - -Copyright notice: - Copyright (c) 2017 Ted Driggs - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -darling_core 0.23.0 --------------------------------------------------------------------------------- -Source: https://github.com/TedDriggs/darling -License: MIT - -Copyright notice: - Copyright (c) 2017 Ted Driggs - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -darling_macro 0.20.11 --------------------------------------------------------------------------------- -Source: https://github.com/TedDriggs/darling -License: MIT - -Copyright notice: - Copyright (c) 2017 Ted Driggs - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -darling_macro 0.21.3 --------------------------------------------------------------------------------- -Source: https://github.com/TedDriggs/darling -License: MIT - -Copyright notice: - Copyright (c) 2017 Ted Driggs - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -darling_macro 0.23.0 --------------------------------------------------------------------------------- -Source: https://github.com/TedDriggs/darling -License: MIT - -Copyright notice: - Copyright (c) 2017 Ted Driggs - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -dashmap 6.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/xacrimon/dashmap -License: MIT - -Copyright notice: - Copyright (c) 2019 Acrimon - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -dasp_sample 0.11.0 --------------------------------------------------------------------------------- -Source: https://github.com/rustaudio/sample -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - mitchmindtree - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -data-encoding 2.9.0 --------------------------------------------------------------------------------- -Source: https://github.com/ia0/data-encoding -License: MIT - -Copyright notice: - Copyright (c) 2015-2020 Julien Cretin - Copyright (c) 2017-2020 Google Inc. - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -data-url 0.3.2 --------------------------------------------------------------------------------- -Source: https://github.com/servo/rust-url -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2013-2025 The rust-url developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -debugid 0.8.0 --------------------------------------------------------------------------------- -Source: https://github.com/getsentry/rust-debugid -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sentry - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -deltae 0.3.2 --------------------------------------------------------------------------------- -Source: https://gitlab.com/ryanobeirne/deltae -License: MIT - -Copyright notice: - Copyright 2019 Ryan O'Beirne - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -der 0.7.10 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/formats/tree/master/der -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2020-2023 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -der_derive 0.7.3 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/formats/tree/master/der/derive -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2020-2022 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -deranged 0.5.5 --------------------------------------------------------------------------------- -Source: https://github.com/jhpratt/deranged -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2024 Jacob Pratt et al. - Copyright (c) 2024 Jacob Pratt et al. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -derive_builder 0.20.2 --------------------------------------------------------------------------------- -Source: https://github.com/colin-kiegel/rust-derive-builder -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 rust-derive-builder contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -derive_builder_core 0.20.2 --------------------------------------------------------------------------------- -Source: https://github.com/colin-kiegel/rust-derive-builder -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 rust-derive-builder contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -derive_builder_macro 0.20.2 --------------------------------------------------------------------------------- -Source: https://github.com/colin-kiegel/rust-derive-builder -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 rust-derive-builder contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -derive_more 0.99.20 --------------------------------------------------------------------------------- -Source: https://github.com/JelteF/derive_more -License: MIT - -Copyright notice: - Copyright (c) 2016 Jelte Fennema - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -derive_more 2.1.1 --------------------------------------------------------------------------------- -Source: https://github.com/JelteF/derive_more -License: MIT - -Copyright notice: - Copyright (c) 2016 Jelte Fennema - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -derive_more-impl 2.1.1 --------------------------------------------------------------------------------- -Source: https://github.com/JelteF/derive_more -License: MIT - -Copyright notice: - Copyright (c) 2016 Jelte Fennema - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -deunicode 1.6.2 --------------------------------------------------------------------------------- -Source: https://github.com/kornelski/deunicode -License: BSD-3-Clause - -Copyright notice: - Copyright (c) 2015, Amit Chowdhury - Copyright (c) 2018-2021, Kornel Lesinski - Copyright (c) 2020-2021, Hunter WB - -License text: see Part II — BSD-3-Clause - --------------------------------------------------------------------------------- -diff 0.1.13 --------------------------------------------------------------------------------- -Source: https://github.com/utkarshkukreti/diff.rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015 Utkarsh Kukreti - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -digest 0.10.7 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/traits -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2017 Artyom Pavlov - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -digest 0.11.2 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/traits -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2017-2025 RustCrypto Developers - Copyright (c) 2017 Artyom Pavlov - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -dirs 5.0.1 --------------------------------------------------------------------------------- -Source: https://github.com/soc/dirs-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018-2019 dirs-rs contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -dirs 6.0.0 --------------------------------------------------------------------------------- -Source: https://github.com/soc/dirs-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018-2019 dirs-rs contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -dirs-sys 0.4.1 --------------------------------------------------------------------------------- -Source: https://github.com/dirs-dev/dirs-sys-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018-2019 dirs-rs contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -dirs-sys 0.5.0 --------------------------------------------------------------------------------- -Source: https://github.com/dirs-dev/dirs-sys-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018-2019 dirs-rs contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -displaydoc 0.2.5 --------------------------------------------------------------------------------- -Source: https://github.com/yaahc/displaydoc -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Jane Lusby - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -dns-lookup 2.1.1 --------------------------------------------------------------------------------- -Source: https://github.com/keeperofdakeys/dns-lookup -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2016 keeperofdakeys - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -document-features 0.2.12 --------------------------------------------------------------------------------- -Source: https://github.com/slint-ui/document-features -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2020 Olivier Goffart - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -documented 0.9.2 --------------------------------------------------------------------------------- -Source: https://github.com/cyqsimon/documented -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - cyqsimon <28627918+cyqsimon@users.noreply.github.com> - - Uriel - - Sese Mueller - - Lauréline - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -documented-macros 0.9.2 --------------------------------------------------------------------------------- -Source: https://github.com/cyqsimon/documented -License: MIT - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -dotenvy 0.15.7 --------------------------------------------------------------------------------- -Source: https://github.com/allan2/dotenvy -License: MIT - -Copyright notice: - Copyright (c) 2014 Santiago Lapresta and contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -downcast 0.11.0 --------------------------------------------------------------------------------- -Source: https://github.com/fkoep/downcast-rs -License: MIT - -Copyright notice: - Copyright (c) 2017 Felix Köpge - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -downcast-rs 1.2.1 --------------------------------------------------------------------------------- -Source: https://github.com/marcianx/downcast-rs -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2020 Ashish Myles and contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -dtoa 1.0.10 --------------------------------------------------------------------------------- -Source: https://github.com/dtolnay/dtoa -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -dtoa-short 0.3.5 --------------------------------------------------------------------------------- -Source: https://github.com/upsuper/dtoa-short -License: MPL-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - Xidorn Quan - -License text: see Part II — MPL-2.0 - -Additional requirements / notices: - MPL-2.0 notice: Certain source files in this package are licensed under the Mozilla Public License, v. 2.0. Those files remain under the MPL-2.0; this product as a whole is not required to be licensed under the MPL-2.0. You may obtain a copy of the MPL at https://mozilla.org/MPL/2.0/. - --------------------------------------------------------------------------------- -dunce 1.0.5 --------------------------------------------------------------------------------- -Source: https://gitlab.com/kornelski/dunce -License: Apache-2.0 (upstream declares: CC0-1.0 OR MIT-0 OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Kornel - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - Upstream license expression: CC0-1.0 OR MIT-0 OR Apache-2.0. For this distribution, obligations are satisfied under: Apache-2.0. - --------------------------------------------------------------------------------- -dyn-clone 1.0.20 --------------------------------------------------------------------------------- -Source: https://github.com/dtolnay/dyn-clone -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - David Tolnay - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -ecdsa 0.16.9 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/signatures/tree/master/ecdsa -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright 2018-2022 RustCrypto Developers - Copyright (c) 2018-2022 RustCrypto Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -ed25519 2.2.3 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/signatures/tree/master/ed25519 -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright 2018-2022 RustCrypto Developers - Copyright (c) 2018-2023 RustCrypto Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -ed25519-dalek 2.2.0 --------------------------------------------------------------------------------- -Source: https://github.com/dalek-cryptography/curve25519-dalek/tree/main/ed25519-dalek -License: BSD-3-Clause - -Copyright notice: - Copyright (c) 2017-2019 isis agora lovecruft. All rights reserved. - -License text: see Part II — BSD-3-Clause - --------------------------------------------------------------------------------- -educe 0.6.0 --------------------------------------------------------------------------------- -Source: https://github.com/magiclen/educe -License: MIT - -Copyright notice: - Copyright (c) 2023 magiclen.org (Ron Li) - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -ego-tree 0.6.3 --------------------------------------------------------------------------------- -Source: https://github.com/rust-scraper/ego-tree -License: ISC - -Copyright notice: - Copyright © 2016, June McEnroe - -License text: see Part II — ISC - --------------------------------------------------------------------------------- -ego-tree 0.10.0 --------------------------------------------------------------------------------- -Source: https://github.com/rust-scraper/ego-tree -License: ISC - -Copyright notice: - Copyright © 2016, June McEnroe - -License text: see Part II — ISC - --------------------------------------------------------------------------------- -either 1.15.0 --------------------------------------------------------------------------------- -Source: https://github.com/rayon-rs/either -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015 - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -elliptic-curve 0.13.8 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/traits/tree/master/elliptic-curve -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2020-2022 RustCrypto Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -email_address 0.2.9 --------------------------------------------------------------------------------- -Source: https://github.com/johnstonskj/rust-email_address -License: MIT - -Copyright notice: - Copyright (c) 2019 Simon Johnston - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -encode_unicode 1.0.0 --------------------------------------------------------------------------------- -Source: https://github.com/tormol/encode_unicode -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright 2018-2020 Torbjørn Birch Moltu - Copyright 2016-2022 Torbjørn Birch Moltu - Copyright 2018 Aljoscha Meyer - Copyright 2018-2019 Torbjørn Birch Moltu - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -encoding_rs 0.8.35 --------------------------------------------------------------------------------- -Source: https://github.com/hsivonen/encoding_rs -License: (Apache-2.0 OR MIT) AND BSD-3-Clause - (applicable terms: BSD-3-Clause, Apache-2.0, MIT) - -Copyright notice: - Copyright © WHATWG (Apple, Google, Mozilla, Microsoft). - -License text: see Part II — BSD-3-Clause; Apache-2.0; MIT - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - Upstream license expression: (Apache-2.0 OR MIT) AND BSD-3-Clause. For this distribution, obligations are satisfied under: BSD-3-Clause, Apache-2.0, MIT. - --------------------------------------------------------------------------------- -endi 1.1.1 --------------------------------------------------------------------------------- -Source: https://github.com/zeenix/endi -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - Zeeshan Ali Khan - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -enum-ordinalize 4.3.0 --------------------------------------------------------------------------------- -Source: https://github.com/magiclen/enum-ordinalize -License: MIT - -Copyright notice: - Copyright (c) 2023 magiclen.org (Ron Li) - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -enum-ordinalize-derive 4.3.1 --------------------------------------------------------------------------------- -Source: https://github.com/magiclen/enum-ordinalize -License: MIT - -Copyright notice: - Copyright (c) 2023 magiclen.org (Ron Li) - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -enum_delegate 0.2.0 --------------------------------------------------------------------------------- -Source: https://gitlab.com/dawn_app/enum_delegate -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Reinis Mazeiks - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -enum_delegate_lib 0.2.0 --------------------------------------------------------------------------------- -Source: https://gitlab.com/dawn_app/enum_delegate -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Reinis Mazeiks - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -enumflags2 0.7.12 --------------------------------------------------------------------------------- -Source: https://github.com/meithecatte/enumflags2 -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2017-2023 Maik Klein, Maja Kądziołka - Copyright (c) 2017-2023 Maik Klein, Maja Kądziołka - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -enumflags2_derive 0.7.12 --------------------------------------------------------------------------------- -Source: https://github.com/meithecatte/enumflags2 -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2017 Maik Klein - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -env_filter 0.1.4 --------------------------------------------------------------------------------- -Source: https://github.com/rust-cli/env_logger -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -env_home 0.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/notpeter/env-home -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2024 Peter Tripp - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -env_logger 0.11.8 --------------------------------------------------------------------------------- -Source: https://github.com/rust-cli/env_logger -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -equator 0.4.2 --------------------------------------------------------------------------------- -Source: https://github.com/sarah-ek/equator -License: MIT - -Copyright notice: - Copyright (c) 2023 sarah - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -equator-macro 0.4.2 --------------------------------------------------------------------------------- -Source: https://github.com/sarah-ek/equator -License: MIT - -Copyright notice: - Copyright (c) 2023 sarah - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -equivalent 1.0.2 --------------------------------------------------------------------------------- -Source: https://github.com/indexmap-rs/equivalent -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2016--2023 - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -errno 0.3.14 --------------------------------------------------------------------------------- -Source: https://github.com/lambda-fairy/rust-errno -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 Chris Wong - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -error-code 3.3.2 --------------------------------------------------------------------------------- -Source: https://github.com/DoumanAsh/error-code -License: BSL-1.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - Douman - -License text: see Part II — BSL-1.0 - --------------------------------------------------------------------------------- -euclid 0.22.14 --------------------------------------------------------------------------------- -Source: https://github.com/servo/euclid -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2012-2013 Mozilla Foundation - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -event-listener 2.5.3 --------------------------------------------------------------------------------- -Source: https://github.com/smol-rs/event-listener -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Stjepan Glavina - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -event-listener 5.4.1 --------------------------------------------------------------------------------- -Source: https://github.com/smol-rs/event-listener -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Stjepan Glavina - - John Nunley - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -event-listener-strategy 0.5.4 --------------------------------------------------------------------------------- -Source: https://github.com/smol-rs/event-listener-strategy -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright holders / authors (from package metadata): - - John Nunley - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -eventsource-stream 0.2.3 --------------------------------------------------------------------------------- -Source: https://github.com/jpopesculian/eventsource-stream -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Julian Popescu - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -exr 1.74.0 --------------------------------------------------------------------------------- -Source: https://github.com/johannesvollmer/exrs -License: BSD-3-Clause - -Copyright notice: - Copyright (c) Contributors to the OpenEXR Project. All rights reserved. - Copyright (c) Contributors to the exrs Project. All rights reserved. - -License text: see Part II — BSD-3-Clause - --------------------------------------------------------------------------------- -fallible-iterator 0.3.0 --------------------------------------------------------------------------------- -Source: https://github.com/sfackler/rust-fallible-iterator -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2015 The rust-openssl-verify Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -fallible-streaming-iterator 0.1.9 --------------------------------------------------------------------------------- -Source: https://github.com/sfackler/fallible-streaming-iterator -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2016 The fallible-streaming-iterator Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -fancy-regex 0.11.0 --------------------------------------------------------------------------------- -Source: https://github.com/fancy-regex/fancy-regex -License: MIT - -Copyright notice: - Copyright 2015 The Fancy Regex Authors. - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -fancy-regex 0.14.0 --------------------------------------------------------------------------------- -Source: https://github.com/fancy-regex/fancy-regex -License: MIT - -Copyright notice: - Copyright 2015 The Fancy Regex Authors. - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -fancy-regex 0.16.2 --------------------------------------------------------------------------------- -Source: https://github.com/fancy-regex/fancy-regex -License: MIT - -Copyright notice: - Copyright 2015 The Fancy Regex Authors. - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -fast_image_resize 6.0.0 --------------------------------------------------------------------------------- -Source: https://github.com/cykooz/fast_image_resize -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2021 Kirill Kuzminykh - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -fastant 0.1.10 --------------------------------------------------------------------------------- -Source: https://github.com/fast/fastant -License: MIT - -Copyright notice: - Copyright 2021 TiKV Project Authors. Licensed under Apache-2.0. - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -faster-hex 0.10.0 --------------------------------------------------------------------------------- -Source: https://github.com/NervosFoundation/faster-hex -License: MIT - -Copyright notice: - Copyright (c) 2018 Nervos Foundation - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -fastrace 0.7.18 --------------------------------------------------------------------------------- -Source: https://github.com/fast/fastrace -License: Apache-2.0 - -Copyright notice: - Copyright 2020 TiKV Project Authors. Licensed under Apache-2.0. - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -fastrace-macro 0.7.18 --------------------------------------------------------------------------------- -Source: https://github.com/fast/fastrace -License: Apache-2.0 - -Copyright notice: - Copyright 2024 FastLabs Developers - Copyright 2020 TiKV Project Authors. Licensed under Apache-2.0. - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -fastrace-opentelemetry 0.18.1 --------------------------------------------------------------------------------- -Source: https://github.com/fast/fastrace -License: Apache-2.0 - -Copyright notice: - Copyright 2024 FastLabs Developers - Copyright 2020 TiKV Project Authors. Licensed under Apache-2.0. - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -fastrace-reqwest 0.2.0 --------------------------------------------------------------------------------- -Source: https://github.com/fast/fastrace-reqwest -License: Apache-2.0 - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -fastrace-tonic 0.1.1 --------------------------------------------------------------------------------- -Source: https://github.com/fast/fastrace-tonic -License: Apache-2.0 - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -fastrand 2.3.0 --------------------------------------------------------------------------------- -Source: https://github.com/smol-rs/fastrand -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Stjepan Glavina - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -fax 0.2.6 --------------------------------------------------------------------------------- -Source: https://github.com/pdf-rs/fax -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian K - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -fax_derive 0.2.0 --------------------------------------------------------------------------------- -Source: https://github.com/pdf-rs/fax -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian K - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -fdeflate 0.3.7 --------------------------------------------------------------------------------- -Source: https://github.com/image-rs/fdeflate -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - The image-rs Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -ff 0.13.1 --------------------------------------------------------------------------------- -Source: https://github.com/zkcrypto/ff -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2017 Sean Bowe - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -file-id 0.2.3 --------------------------------------------------------------------------------- -Source: https://github.com/notify-rs/notify -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2023 Notify Contributors - Copyright (c) 2023 Notify Contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -filedescriptor 0.8.3 --------------------------------------------------------------------------------- -Source: https://github.com/wezterm/wezterm -License: MIT - -Copyright notice: - Copyright (c) 2018 Wez Furlong - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -filetime 0.2.29 --------------------------------------------------------------------------------- -Source: https://github.com/alexcrichton/filetime -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2014 Alex Crichton - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -find-msvc-tools 0.1.4 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/cc-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 Alex Crichton - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -findshlibs 0.10.2 --------------------------------------------------------------------------------- -Source: https://github.com/gimli-rs/findshlibs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -finl_unicode 1.4.0 --------------------------------------------------------------------------------- -Source: https://github.com/dahosek/finl_unicode -License: (MIT OR Apache-2.0) AND Unicode-DFS-2016 - (applicable terms: Unicode-DFS-2016, Apache-2.0, MIT) - -Copyright notice: - Copyright © 1991-2023 Unicode, Inc. - -License text: see Part II — Unicode-DFS-2016; Apache-2.0; MIT - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - Upstream license expression: (MIT OR Apache-2.0) AND Unicode-DFS-2016. For this distribution, obligations are satisfied under: Unicode-DFS-2016, Apache-2.0, MIT. - --------------------------------------------------------------------------------- -fixedbitset 0.4.2 --------------------------------------------------------------------------------- -Source: https://github.com/petgraph/fixedbitset -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2015-2017 - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -fixedbitset 0.5.7 --------------------------------------------------------------------------------- -Source: https://github.com/petgraph/fixedbitset -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015-2017 - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -flagset 0.4.7 --------------------------------------------------------------------------------- -Source: https://github.com/enarx/flagset -License: Apache-2.0 - -Copyright notice: - Copyright 2019 Red Hat, Inc. - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -flate2 1.1.5 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/flate2-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014-2025 Alex Crichton - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -float-cmp 0.9.0 --------------------------------------------------------------------------------- -Source: https://github.com/mikedilger/float-cmp -License: MIT - -Copyright notice: - Copyright (c) 2014-2020 Optimal Computing (NZ) Ltd - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -fluent-uri 0.3.2 --------------------------------------------------------------------------------- -Source: https://github.com/yescallop/fluent-uri-rs -License: MIT - -Copyright notice: - Copyright (c) 2024 Scallop Ye - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -fnv 1.0.7 --------------------------------------------------------------------------------- -Source: https://github.com/servo/rust-fnv -License: MIT (upstream declares: Apache-2.0 / MIT) - -Copyright notice: - Copyright (c) 2017 Contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 / MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -foldhash 0.1.5 --------------------------------------------------------------------------------- -Source: https://github.com/orlp/foldhash -License: Zlib - -Copyright notice: - Copyright (c) 2024 Orson Peters - -License text: see Part II — Zlib - -Additional requirements / notices: - Zlib additional terms: this package is used unmodified; no changes were made to the upstream source as incorporated via crates.io. - --------------------------------------------------------------------------------- -foldhash 0.2.0 --------------------------------------------------------------------------------- -Source: https://github.com/orlp/foldhash -License: Zlib - -Copyright notice: - Copyright (c) 2024 Orson Peters - -License text: see Part II — Zlib - -Additional requirements / notices: - Zlib additional terms: this package is used unmodified; no changes were made to the upstream source as incorporated via crates.io. - --------------------------------------------------------------------------------- -font-types 0.10.1 --------------------------------------------------------------------------------- -Source: https://github.com/googlefonts/fontations -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2019 Colin Rothfels - Copyright (c) 2019 Colin Rothfels - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -fontconfig-parser 0.5.8 --------------------------------------------------------------------------------- -Source: https://github.com/Riey/fontconfig-parser -License: MIT - -Copyright notice: - Copyright (c) 2021 Riey - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -fontdb 0.23.0 --------------------------------------------------------------------------------- -Source: https://github.com/RazrFalcon/fontdb -License: MIT - -Copyright notice: - Copyright (c) 2020 Yevhenii Reizner - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -form_urlencoded 1.2.2 --------------------------------------------------------------------------------- -Source: https://github.com/servo/rust-url -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2013-2016 The rust-url developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -fraction 0.15.3 --------------------------------------------------------------------------------- -Source: https://github.com/dnsl48/fraction -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2014 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -fragile 2.0.1 --------------------------------------------------------------------------------- -Source: https://github.com/mitsuhiko/fragile -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - Armin Ronacher - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -fs2 0.4.3 --------------------------------------------------------------------------------- -Source: https://github.com/danburkert/fs2-rs -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2015 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -fs_extra 1.3.0 --------------------------------------------------------------------------------- -Source: https://github.com/webdesus/fs_extra -License: MIT - -Copyright notice: - Copyright (c) 2017 Denis Kurilenko - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -fsevent-sys 4.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/octplane/fsevent-rust/tree/master/fsevent-sys -License: MIT - -Copyright notice: - Copyright (c) 2015 Pierre Baillet - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -futf 0.1.5 --------------------------------------------------------------------------------- -Source: https://github.com/servo/futf -License: MIT (upstream declares: MIT / Apache-2.0) - -Copyright notice: - Copyright (c) 2015 Keegan McAllister - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT / Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -futures 0.3.32 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/futures-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 Alex Crichton - Copyright (c) 2017 The Tokio Authors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -futures-channel 0.3.32 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/futures-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 Alex Crichton - Copyright (c) 2017 The Tokio Authors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -futures-core 0.3.32 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/futures-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 Alex Crichton - Copyright (c) 2017 The Tokio Authors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -futures-executor 0.3.32 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/futures-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 Alex Crichton - Copyright (c) 2017 The Tokio Authors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -futures-intrusive 0.5.0 --------------------------------------------------------------------------------- -Source: https://github.com/Matthias247/futures-intrusive -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2019 Matthias Einwag - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -futures-io 0.3.32 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/futures-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 Alex Crichton - Copyright (c) 2017 The Tokio Authors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -futures-lite 2.6.1 --------------------------------------------------------------------------------- -Source: https://github.com/smol-rs/futures-lite -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2016 Alex Crichton - Copyright (c) 2017 The Tokio Authors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -futures-macro 0.3.32 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/futures-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 Alex Crichton - Copyright (c) 2017 The Tokio Authors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -futures-sink 0.3.32 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/futures-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 Alex Crichton - Copyright (c) 2017 The Tokio Authors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -futures-task 0.3.32 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/futures-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 Alex Crichton - Copyright (c) 2017 The Tokio Authors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -futures-timer 3.0.3 --------------------------------------------------------------------------------- -Source: https://github.com/async-rs/futures-timer -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2014 Alex Crichton - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -futures-util 0.3.32 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/futures-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 Alex Crichton - Copyright (c) 2017 The Tokio Authors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -fxhash 0.2.1 --------------------------------------------------------------------------------- -Source: https://github.com/cbreeden/fxhash -License: MIT (upstream declares: Apache-2.0/MIT) - -Copyright notice: - Copyright holders / authors (from package metadata): - - cbreeden - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0/MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gcloud-auth 1.3.0 --------------------------------------------------------------------------------- -Source: https://github.com/yoshidan/google-cloud-rust/tree/main/foundation/auth -License: MIT - -Copyright notice: - Copyright (c) 2021 Naohiro Yoshida - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -gcloud-metadata 1.0.2 --------------------------------------------------------------------------------- -Source: https://github.com/yoshidan/google-cloud-rust/tree/main/foundation/metadata -License: MIT - -Copyright notice: - Copyright (c) 2021 Naohiro Yoshida - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -gcloud-storage 1.3.0 --------------------------------------------------------------------------------- -Source: https://github.com/yoshidan/google-cloud-rust/tree/main/storage -License: MIT - -Copyright notice: - Copyright (c) 2021 Naohiro Yoshida - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -generic-array 0.14.7 --------------------------------------------------------------------------------- -Source: https://github.com/fizyk20/generic-array -License: MIT - -Copyright notice: - Copyright (c) 2015 Bartłomiej Kamiński - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -gethostname 1.1.0 --------------------------------------------------------------------------------- -Source: https://codeberg.org/swsnr/gethostname.rs -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Wiesner - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -getopts 0.2.24 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/getopts -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -getrandom 0.2.16 --------------------------------------------------------------------------------- -Source: https://github.com/rust-random/getrandom -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018-2024 The rust-random Project Developers - Copyright (c) 2014 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -getrandom 0.3.4 --------------------------------------------------------------------------------- -Source: https://github.com/rust-random/getrandom -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018-2025 The rust-random Project Developers - Copyright (c) 2014 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -getrandom 0.4.1 --------------------------------------------------------------------------------- -Source: https://github.com/rust-random/getrandom -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018-2026 The rust-random Project Developers - Copyright (c) 2014 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -ghash 0.5.1 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/universal-hashes -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2019 RustCrypto Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gif 0.13.3 --------------------------------------------------------------------------------- -Source: https://github.com/image-rs/image-gif -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015 nwin - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gif 0.14.1 --------------------------------------------------------------------------------- -Source: https://github.com/image-rs/image-gif -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015 nwin - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gimli 0.32.3 --------------------------------------------------------------------------------- -Source: https://github.com/gimli-rs/gimli -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -git2 0.20.2 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/git2-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 Alex Crichton - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix 0.83.0 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-actor 0.41.1 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-attributes 0.33.2 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-bitmap 0.3.2 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-chunk 0.7.2 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-command 0.9.1 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-commitgraph 0.37.1 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Conor Davis - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-config 0.56.0 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Edward Shen - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-config-value 0.18.1 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-date 0.15.5 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-diff 0.63.0 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-dir 0.25.0 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-discover 0.51.0 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-features 0.48.1 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-filter 0.30.0 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-fs 0.21.2 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-glob 0.26.1 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-hash 0.25.1 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-hashtable 0.15.1 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Pascal Kuthe - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-ignore 0.21.1 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-index 0.51.0 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-lock 23.0.1 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-object 0.60.0 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-odb 0.80.0 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-pack 0.70.0 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-packetline 0.21.5 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-path 0.12.1 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-pathspec 0.18.1 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-protocol 0.61.0 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-quote 0.7.2 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-ref 0.63.0 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-refspec 0.41.0 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-revision 0.45.0 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-revwalk 0.31.0 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-sec 0.14.1 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-shallow 0.12.1 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-status 0.30.0 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - - Pascal Kuthe - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-submodule 0.30.0 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-tempfile 23.0.1 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-trace 0.1.20 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-transport 0.57.2 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-traverse 0.57.0 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-url 0.36.1 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-utils 0.3.3 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-validate 0.11.2 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-worktree 0.52.0 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -glob 0.3.3 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/glob -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -globset 0.4.18 --------------------------------------------------------------------------------- -Source: https://github.com/BurntSushi/ripgrep/tree/master/crates/globset -License: MIT (upstream declares: Unlicense OR MIT) - -Copyright notice: - Copyright (c) 2015 Andrew Gallant - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Unlicense OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -graphlib_rust 0.0.2 --------------------------------------------------------------------------------- -Source: https://crates.io/crates/graphlib_rust/0.0.2 -License: Apache-2.0 - -Copyright notice: - Copyright 2023 Ameer Hamza - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - VENDORED WITH LOCAL MODIFICATIONS: - Vendored at third_party/graphlib_rust/. Local modifications: rustfmt only (no semantic change); ordered_hashmap dependency repointed to sibling vendored crate. See Cargo.toml VENDORING NOTES. - Apache-2.0 change notice: this package was modified as described above. Modified files remain under the Apache License 2.0. - --------------------------------------------------------------------------------- -grid 1.0.1 --------------------------------------------------------------------------------- -Source: https://github.com/becheran/grid -License: MIT - -Copyright notice: - Copyright (c) 2020 Armin Becher - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -group 0.13.0 --------------------------------------------------------------------------------- -Source: https://github.com/zkcrypto/group -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sean Bowe - - Jack Grigg - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -h2 0.4.15 --------------------------------------------------------------------------------- -Source: https://github.com/hyperium/h2 -License: MIT - -Copyright notice: - Copyright (c) 2017 h2 authors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -half 2.7.1 --------------------------------------------------------------------------------- -Source: https://github.com/VoidStarKat/half-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Kathryn Long - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -hash32 0.3.1 --------------------------------------------------------------------------------- -Source: https://github.com/japaric/hash32 -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018 Jorge Aparicio - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -hashbrown 0.12.3 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/hashbrown -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 Amanieu d'Antras - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -hashbrown 0.13.2 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/hashbrown -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 Amanieu d'Antras - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -hashbrown 0.14.5 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/hashbrown -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 Amanieu d'Antras - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -hashbrown 0.15.5 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/hashbrown -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 Amanieu d'Antras - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -hashbrown 0.16.1 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/hashbrown -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 Amanieu d'Antras - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -hashlink 0.10.0 --------------------------------------------------------------------------------- -Source: https://github.com/kyren/hashlink -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - This work is derived in part from the `linked-hash-map` crate, Copyright (c) - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -hayro-ccitt 0.3.0 --------------------------------------------------------------------------------- -Source: https://github.com/LaurenzV/hayro -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) The Hayro Authors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -hayro-jbig2 0.3.0 --------------------------------------------------------------------------------- -Source: https://github.com/LaurenzV/hayro -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) The Hayro Authors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -hdrhistogram 7.5.4 --------------------------------------------------------------------------------- -Source: https://github.com/HdrHistogram/HdrHistogram_rust -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2016 Jon Gjengset - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -heapless 0.8.0 --------------------------------------------------------------------------------- -Source: https://github.com/rust-embedded/heapless -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2017 Jorge Aparicio - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -heck 0.5.0 --------------------------------------------------------------------------------- -Source: https://github.com/withoutboats/heck -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -hex 0.4.3 --------------------------------------------------------------------------------- -Source: https://github.com/KokaKiwi/rust-hex -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2013-2014 The Rust Project Developers. - Copyright (c) 2015-2020 The rust-hex Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -hkdf 0.12.4 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/KDFs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015-2018 Vlad Filippov - Copyright (c) 2018-2021 RustCrypto Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -hmac 0.12.1 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/MACs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2017 Artyom Pavlov - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -hmac-sha256 1.1.12 --------------------------------------------------------------------------------- -Source: https://github.com/jedisct1/rust-hmac-sha256 -License: ISC - -Copyright notice: - Copyright (c) 2019-2025, Frank Denis. - -License text: see Part II — ISC - --------------------------------------------------------------------------------- -home 0.5.12 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/cargo -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Brian Anderson - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -hostname 0.4.1 --------------------------------------------------------------------------------- -Source: https://github.com/svartalf/hostname -License: MIT - -Copyright notice: - Copyright (c) 2016 fengcen - Copyright (c) 2019 svartalf - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -htmd 0.5.4 --------------------------------------------------------------------------------- -Source: https://github.com/letmutex/htmd -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - letmutex - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -html-escape 0.2.13 --------------------------------------------------------------------------------- -Source: https://github.com/magiclen/html-escape -License: MIT - -Copyright notice: - Copyright (c) 2020 magiclen.org (Ron Li) - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -html5ever 0.26.0 --------------------------------------------------------------------------------- -Source: https://github.com/servo/html5ever -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 The html5ever Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -html5ever 0.29.1 --------------------------------------------------------------------------------- -Source: https://github.com/servo/html5ever -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 The html5ever Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -html5ever 0.38.0 --------------------------------------------------------------------------------- -Source: https://github.com/servo/html5ever -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 The html5ever Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -http 0.2.12 --------------------------------------------------------------------------------- -Source: https://github.com/hyperium/http -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2017 http-rs authors - Copyright (c) 2017 http-rs authors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -http 1.4.0 --------------------------------------------------------------------------------- -Source: https://github.com/hyperium/http -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2017 http-rs authors - Copyright (c) 2017 http-rs authors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -http-body 0.4.6 --------------------------------------------------------------------------------- -Source: https://github.com/hyperium/http-body -License: MIT - -Copyright notice: - Copyright (c) 2019 Hyper Contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -http-body 1.0.1 --------------------------------------------------------------------------------- -Source: https://github.com/hyperium/http-body -License: MIT - -Copyright notice: - Copyright (c) 2019-2024 Sean McArthur & Hyper Contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -http-body-util 0.1.3 --------------------------------------------------------------------------------- -Source: https://github.com/hyperium/http-body -License: MIT - -Copyright notice: - Copyright (c) 2019-2025 Sean McArthur & Hyper Contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -httparse 1.10.1 --------------------------------------------------------------------------------- -Source: https://github.com/seanmonstar/httparse -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015-2025 Sean McArthur - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -httpdate 1.0.3 --------------------------------------------------------------------------------- -Source: https://github.com/pyfisch/httpdate -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 Pyfisch - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -humantime 2.3.0 --------------------------------------------------------------------------------- -Source: https://github.com/chronotope/humantime -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 The humantime Developers - Copyright (c) 2016 Pyfisch - Copyright © 2005-2013 Rich Felker - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -humantime-serde 1.1.1 --------------------------------------------------------------------------------- -Source: https://github.com/jean-airoldie/humantime-serde -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2017 The serde-humantime Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -hybrid-array 0.4.10 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/hybrid-array -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2022-2026 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -hyper 1.8.1 --------------------------------------------------------------------------------- -Source: https://github.com/hyperium/hyper -License: MIT - -Copyright notice: - Copyright (c) 2014-2025 Sean McArthur - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -hyper-rustls 0.27.7 --------------------------------------------------------------------------------- -Source: https://github.com/rustls/hyper-rustls -License: MIT (upstream declares: Apache-2.0 OR ISC OR MIT) - -Copyright notice: - Copyright (c) 2016, Joseph Birr-Pixton - Copyright (c) 2016 Joseph Birr-Pixton - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR ISC OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -hyper-timeout 0.5.2 --------------------------------------------------------------------------------- -Source: https://github.com/hjr3/hyper-timeout -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 The weldr Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -hyper-util 0.1.20 --------------------------------------------------------------------------------- -Source: https://github.com/hyperium/hyper-util -License: MIT - -Copyright notice: - Copyright (c) 2023-2025 Sean McArthur - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -iana-time-zone 0.1.64 --------------------------------------------------------------------------------- -Source: https://github.com/strawlab/iana-time-zone -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2020 Andrew Straw - Copyright (c) 2020 Andrew D. Straw - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -icu_collections 2.0.0 --------------------------------------------------------------------------------- -Source: https://github.com/unicode-org/icu4x -License: Unicode-3.0 - -Copyright notice: - Copyright © 2020-2024 Unicode, Inc. - ICU 1.8.1 to ICU 57.1 © 1995-2016 International Business Machines Corporation and others. - -License text: see Part II — Unicode-3.0 - --------------------------------------------------------------------------------- -icu_locale_core 2.0.0 --------------------------------------------------------------------------------- -Source: https://github.com/unicode-org/icu4x -License: Unicode-3.0 - -Copyright notice: - Copyright © 2020-2024 Unicode, Inc. - ICU 1.8.1 to ICU 57.1 © 1995-2016 International Business Machines Corporation and others. - -License text: see Part II — Unicode-3.0 - --------------------------------------------------------------------------------- -icu_normalizer 2.0.0 --------------------------------------------------------------------------------- -Source: https://github.com/unicode-org/icu4x -License: Unicode-3.0 - -Copyright notice: - Copyright © 2020-2024 Unicode, Inc. - ICU 1.8.1 to ICU 57.1 © 1995-2016 International Business Machines Corporation and others. - -License text: see Part II — Unicode-3.0 - --------------------------------------------------------------------------------- -icu_normalizer_data 2.0.0 --------------------------------------------------------------------------------- -Source: https://github.com/unicode-org/icu4x -License: Unicode-3.0 - -Copyright notice: - Copyright © 2020-2024 Unicode, Inc. - ICU 1.8.1 to ICU 57.1 © 1995-2016 International Business Machines Corporation and others. - -License text: see Part II — Unicode-3.0 - --------------------------------------------------------------------------------- -icu_properties 2.0.1 --------------------------------------------------------------------------------- -Source: https://github.com/unicode-org/icu4x -License: Unicode-3.0 - -Copyright notice: - Copyright © 2020-2024 Unicode, Inc. - ICU 1.8.1 to ICU 57.1 © 1995-2016 International Business Machines Corporation and others. - -License text: see Part II — Unicode-3.0 - --------------------------------------------------------------------------------- -icu_properties_data 2.0.1 --------------------------------------------------------------------------------- -Source: https://github.com/unicode-org/icu4x -License: Unicode-3.0 - -Copyright notice: - Copyright © 2020-2024 Unicode, Inc. - ICU 1.8.1 to ICU 57.1 © 1995-2016 International Business Machines Corporation and others. - -License text: see Part II — Unicode-3.0 - --------------------------------------------------------------------------------- -icu_provider 2.0.0 --------------------------------------------------------------------------------- -Source: https://github.com/unicode-org/icu4x -License: Unicode-3.0 - -Copyright notice: - Copyright © 2020-2024 Unicode, Inc. - ICU 1.8.1 to ICU 57.1 © 1995-2016 International Business Machines Corporation and others. - -License text: see Part II — Unicode-3.0 - --------------------------------------------------------------------------------- -ident_case 1.0.1 --------------------------------------------------------------------------------- -Source: https://github.com/TedDriggs/ident_case -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright 2017 Serde Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -idna 1.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/servo/rust-url -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2013-2025 The rust-url developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -idna_adapter 1.2.1 --------------------------------------------------------------------------------- -Source: https://github.com/hsivonen/idna_adapter -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) The rust-url developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -ignore 0.4.24 --------------------------------------------------------------------------------- -Source: https://github.com/BurntSushi/ripgrep/tree/master/crates/ignore -License: MIT (upstream declares: Unlicense OR MIT) - -Copyright notice: - Copyright (c) 2015 Andrew Gallant - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Unlicense OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -image 0.24.9 --------------------------------------------------------------------------------- -Source: https://github.com/image-rs/image -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - The image-rs Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -image 0.25.9 --------------------------------------------------------------------------------- -Source: https://github.com/image-rs/image -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - The image-rs Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -image-webp 0.2.4 --------------------------------------------------------------------------------- -Source: https://github.com/image-rs/image-webp -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -imagesize 0.14.0 --------------------------------------------------------------------------------- -Source: https://github.com/Roughsketch/imagesize -License: MIT - -Copyright notice: - Copyright (c) 2017 Maiddog - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -indexmap 1.9.3 --------------------------------------------------------------------------------- -Source: https://github.com/bluss/indexmap -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2016--2017 - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -indexmap 2.12.0 --------------------------------------------------------------------------------- -Source: https://github.com/indexmap-rs/indexmap -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2016--2017 - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -indicatif 0.18.3 --------------------------------------------------------------------------------- -Source: https://github.com/console-rs/indicatif -License: MIT - -Copyright notice: - Copyright (c) 2017 Armin Ronacher - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -indoc 2.0.7 --------------------------------------------------------------------------------- -Source: https://github.com/dtolnay/indoc -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - David Tolnay - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -infer 0.15.0 --------------------------------------------------------------------------------- -Source: https://github.com/bojand/infer -License: MIT - -Copyright notice: - Copyright (c) 2019 Bojan - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -infer 0.19.0 --------------------------------------------------------------------------------- -Source: https://github.com/bojand/infer -License: MIT - -Copyright notice: - Copyright (c) 2019 Bojan - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -inotify 0.11.0 --------------------------------------------------------------------------------- -Source: https://github.com/hannobraun/inotify -License: ISC - -Copyright notice: - Copyright (c) Hanno Braun and contributors - -License text: see Part II — ISC - --------------------------------------------------------------------------------- -inotify-sys 0.1.5 --------------------------------------------------------------------------------- -Source: https://github.com/hannobraun/inotify-sys -License: ISC - -Copyright notice: - Copyright (c) Hanno Braun and contributors - -License text: see Part II — ISC - --------------------------------------------------------------------------------- -inout 0.1.4 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/utils -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2022 The RustCrypto Project Developers - Copyright (c) 2022 Artyom Pavlov - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -inout 0.2.2 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/utils -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2022-2025 The RustCrypto Project Developers - Copyright (c) 2022 Artyom Pavlov - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -instability 0.3.9 --------------------------------------------------------------------------------- -Source: https://github.com/ratatui/instability -License: MIT - -Copyright notice: - Copyright (c) 2020 Stephen M. Coakley - Copyright (c) The Ratatui Developers - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -instant 0.1.13 --------------------------------------------------------------------------------- -Source: https://github.com/sebcrozet/instant -License: BSD-3-Clause - -Copyright notice: - Copyright (c) 2019, Sébastien Crozet - -License text: see Part II — BSD-3-Clause - --------------------------------------------------------------------------------- -ipnet 2.11.0 --------------------------------------------------------------------------------- -Source: https://github.com/krisprice/ipnet -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2017 Juniper Networks, Inc. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -iri-string 0.7.9 --------------------------------------------------------------------------------- -Source: https://github.com/lo48576/iri-string -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2019-2024 YOSHIOKA Takuma - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -is-terminal 0.4.17 --------------------------------------------------------------------------------- -Source: https://github.com/sunfishcode/is-terminal -License: MIT - -Copyright notice: - Copyright (c) 2015-2019 Doug Tangren - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -is_ci 1.2.0 --------------------------------------------------------------------------------- -Source: https://github.com/zkat/is_ci -License: ISC - -Copyright notice: - Copyright (c) Kat Marchán and other contributors. - -License text: see Part II — ISC - --------------------------------------------------------------------------------- -is_terminal_polyfill 1.70.2 --------------------------------------------------------------------------------- -Source: https://github.com/polyfill-rs/is_terminal_polyfill -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -itertools 0.13.0 --------------------------------------------------------------------------------- -Source: https://github.com/rust-itertools/itertools -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015 - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -itertools 0.14.0 --------------------------------------------------------------------------------- -Source: https://github.com/rust-itertools/itertools -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015 - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -itoa 1.0.17 --------------------------------------------------------------------------------- -Source: https://github.com/dtolnay/itoa -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - David Tolnay - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -jiff 0.2.28 --------------------------------------------------------------------------------- -Source: https://github.com/BurntSushi/jiff -License: MIT (upstream declares: Unlicense OR MIT) - -Copyright notice: - Copyright (c) 2015 Andrew Gallant - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Unlicense OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -jiff-tzdb 0.1.4 --------------------------------------------------------------------------------- -Source: https://github.com/BurntSushi/jiff -License: MIT (upstream declares: Unlicense OR MIT) - -Copyright notice: - Copyright (c) 2015 Andrew Gallant - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Unlicense OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -jiff-tzdb-platform 0.1.3 --------------------------------------------------------------------------------- -Source: https://github.com/BurntSushi/jiff -License: MIT (upstream declares: Unlicense OR MIT) - -Copyright notice: - Copyright (c) 2015 Andrew Gallant - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Unlicense OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -jobserver 0.1.34 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/jobserver-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 Alex Crichton - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -jpeg-decoder 0.3.2 --------------------------------------------------------------------------------- -Source: https://github.com/image-rs/jpeg-decoder -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 The jpeg-decoder Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -json-patch 4.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/idubrov/json-patch -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2017 Ivan Dubrov - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -jsonpath-rust 0.7.5 --------------------------------------------------------------------------------- -Source: https://github.com/besok/jsonpath-rust -License: MIT - -Copyright notice: - Copyright (c) [2021] [Boris Zhguchev] - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -jsonptr 0.7.1 --------------------------------------------------------------------------------- -Source: https://github.com/chanced/jsonptr -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2024 Chance Dinkins - Copyright (c) 2022 Chance Dinkins - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -jsonschema 0.30.0 --------------------------------------------------------------------------------- -Source: https://github.com/Stranger6667/jsonschema -License: MIT - -Copyright notice: - Copyright (c) 2020-2025 Dmitry Dygalo - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -jsonwebtoken 10.3.0 --------------------------------------------------------------------------------- -Source: https://github.com/Keats/jsonwebtoken -License: MIT - -Copyright notice: - Copyright (c) 2015 Vincent Prouillet - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -k256 0.13.4 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/elliptic-curves/tree/master/k256 -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2020-2024 RustCrypto Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -k8s-openapi 0.26.1 --------------------------------------------------------------------------------- -Source: https://github.com/Arnavion/k8s-openapi -License: Apache-2.0 - -Copyright notice: - Copyright 2018 Arnav Singh - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -kanal 0.1.1 --------------------------------------------------------------------------------- -Source: https://github.com/fereidani/kanal -License: MIT - -Copyright notice: - Copyright (c) 2022-2023 Khashayar Fereidani and other Kanal contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -kasuari 0.4.11 --------------------------------------------------------------------------------- -Source: https://github.com/ratatui/kasuari -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 Dylan Ede - Copyright (c) 2024 Josh McKinney - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -kstring 2.0.2 --------------------------------------------------------------------------------- -Source: https://github.com/cobalt-org/kstring -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -kube 2.0.1 --------------------------------------------------------------------------------- -Source: https://github.com/kube-rs/kube -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - clux - - Natalie Klestrup Röijezon - - kazk - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -kube-client 2.0.1 --------------------------------------------------------------------------------- -Source: https://github.com/kube-rs/kube -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - clux - - Natalie Klestrup Röijezon - - kazk - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -kube-core 2.0.1 --------------------------------------------------------------------------------- -Source: https://github.com/kube-rs/kube -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - clux - - Natalie Klestrup Röijezon - - kazk - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -kube-derive 2.0.1 --------------------------------------------------------------------------------- -Source: https://github.com/kube-rs/kube -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - clux - - Natalie Klestrup Röijezon - - kazk - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -kube-runtime 2.0.1 --------------------------------------------------------------------------------- -Source: https://github.com/kube-rs/kube -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - clux - - Natalie Klestrup Röijezon - - kazk - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -kurbo 0.12.0 --------------------------------------------------------------------------------- -Source: https://github.com/linebender/kurbo -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2018 Raph Levien - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -kurbo 0.13.1 --------------------------------------------------------------------------------- -Source: https://github.com/linebender/kurbo -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2018 Raph Levien - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -kv-log-macro 1.0.7 --------------------------------------------------------------------------------- -Source: https://github.com/yoshuawuyts/kv-log-macro -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2019 Yoshua Wuyts - Copyright (c) 2019 Yoshua Wuyts - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -lab 0.11.0 --------------------------------------------------------------------------------- -Source: https://github.com/TooManyBees/lab -License: MIT - -Copyright notice: - Copyright (c) 2020 🐝🐝🐝 - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -labyrinth_macros 3.0.2 --------------------------------------------------------------------------------- -Source: https://github.com/dronavallipranav/rust-obfuscator/tree/main/labyrinth_macros -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - Pranav Dronavalli - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -landlock 0.4.4 --------------------------------------------------------------------------------- -Source: https://github.com/landlock-lsm/rust-landlock -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2020 Mickaël Salaün - Copyright (c) 2020 Mickaël Salaün - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -lazy-regex 3.4.1 --------------------------------------------------------------------------------- -Source: https://github.com/Canop/lazy-regex -License: MIT - -Copyright notice: - Copyright (c) 2018 Canop - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -lazy-regex-proc_macros 3.4.1 --------------------------------------------------------------------------------- -Source: https://github.com/Canop/lazy-regex/tree/main/src/proc_macros -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - Canop - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -lazy_static 1.5.0 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang-nursery/lazy-static.rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2010 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -lebe 0.5.3 --------------------------------------------------------------------------------- -Source: https://github.com/johannesvollmer/lebe -License: BSD-3-Clause - -Copyright notice: - Copyright (c) 2022 Contributors to the lebe Project. All rights reserved. - -License text: see Part II — BSD-3-Clause - --------------------------------------------------------------------------------- -libc 0.2.186 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/libc -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -libgit2-sys 0.18.2+1.9.1 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/git2-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 Alex Crichton - libgit2 is Copyright (C) the libgit2 contributors, - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - (C) 1995-2022 Jean-loup Gailly and Mark Adler - Copyright (c) 2011-2015 Vicent Marti - Copyright (C) 2007 Francois Gouget - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - Copyright (c) 1998-2007 The OpenSSL Project. All rights reserved. - Copyright (c) 2011 IETF Trust and the persons identified as - Copyright (C) 2008 The Android Open Source Project - Copyright (c) Edward Thomson. All rights reserved. - Copyright (c) Microsoft Corporation - Copyright (c) 2003-2016 University of Illinois at Urbana-Champaign. - Copyright 2001-2004 Unicode, Inc. - Copyright (C) 1990-2, RSA Data Security, Inc. All rights reserved. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - -Additional bundled component: libgit2 C library (vendored inside this crate) - Name: libgit2 - Source: https://github.com/libgit2/libgit2 - License: GPL-2.0 WITH libgit2 linking exception - Notes: The Rust binding (libgit2-sys) is MIT OR Apache-2.0; the vendored - C library is GPL-2.0 with an explicit linking exception that permits - linking into combined executables without GPL copyleft on the - combined work. Full upstream COPYING is in Part II. - --------------------------------------------------------------------------------- -libloading 0.8.9 --------------------------------------------------------------------------------- -Source: https://github.com/nagisa/rust_libloading -License: ISC - -Copyright notice: - Copyright © 2015, Simonas Kazlauskas - -License text: see Part II — ISC - --------------------------------------------------------------------------------- -libm 0.2.15 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/compiler-builtins -License: MIT - -Copyright notice: - Copyright (c) 2018 Jorge Aparicio - Copyright © 2005-2020 Rich Felker, et al. - Copyright © 1993,2004 Sun Microsystems or - Copyright © 2003-2011 David Schultz or - Copyright © 2003-2009 Steven G. Kargl or - Copyright © 2003-2009 Bruce D. Evans or - Copyright © 2008 Stephen L. Moshier or - Copyright © 2017-2018 Arm Limited - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -libmimalloc-sys 0.1.44 --------------------------------------------------------------------------------- -Source: https://github.com/purpleprotocol/mimalloc_rust/tree/master/libmimalloc-sys -License: MIT - -Copyright notice: - Copyright 2019 Octavian Oncescu - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -libsqlite3-sys 0.35.0 --------------------------------------------------------------------------------- -Source: https://github.com/rusqlite/rusqlite -License: MIT - -Copyright notice: - Copyright (c) 2014 The rusqlite developers - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -libz-rs-sys 0.5.2 --------------------------------------------------------------------------------- -Source: https://github.com/trifectatechfoundation/zlib-rs -License: Zlib - -Copyright notice: - (C) 2024 Trifecta Tech Foundation - -License text: see Part II — Zlib - -Additional requirements / notices: - Zlib additional terms: this package is used unmodified; no changes were made to the upstream source as incorporated via crates.io. - --------------------------------------------------------------------------------- -libz-sys 1.1.22 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/libz-sys -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 Alex Crichton - Copyright (c) 2020 Josh Triplett - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -linked-hash-map 0.5.6 --------------------------------------------------------------------------------- -Source: https://github.com/contain-rs/linked-hash-map -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2015 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -linkify 0.10.0 --------------------------------------------------------------------------------- -Source: https://github.com/robinst/linkify -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2017 Robin Stocker - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -linkme 0.3.35 --------------------------------------------------------------------------------- -Source: https://github.com/dtolnay/linkme -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - David Tolnay - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -linkme-impl 0.3.35 --------------------------------------------------------------------------------- -Source: https://github.com/dtolnay/linkme -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - David Tolnay - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -linux-raw-sys 0.4.15 --------------------------------------------------------------------------------- -Source: https://github.com/sunfishcode/linux-raw-sys -License: MIT (upstream declares: Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Dan Gohman - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -linux-raw-sys 0.12.1 --------------------------------------------------------------------------------- -Source: https://github.com/sunfishcode/linux-raw-sys -License: MIT (upstream declares: Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Dan Gohman - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -litemap 0.8.0 --------------------------------------------------------------------------------- -Source: https://github.com/unicode-org/icu4x -License: Unicode-3.0 - -Copyright notice: - Copyright © 2020-2024 Unicode, Inc. - ICU 1.8.1 to ICU 57.1 © 1995-2016 International Business Machines Corporation and others. - -License text: see Part II — Unicode-3.0 - --------------------------------------------------------------------------------- -litrs 1.0.0 --------------------------------------------------------------------------------- -Source: https://github.com/LukasKalbertodt/litrs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2020 Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -lock_api 0.4.14 --------------------------------------------------------------------------------- -Source: https://github.com/Amanieu/parking_lot -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -log 0.4.32 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/log -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -lopdf 0.32.0 --------------------------------------------------------------------------------- -Source: https://github.com/J-F-Liu/lopdf -License: MIT - -Copyright notice: - Copyright (c) 2016 Junfeng Liu - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -lru 0.12.5 --------------------------------------------------------------------------------- -Source: https://github.com/jeromefroe/lru-rs -License: MIT - -Copyright notice: - Copyright (c) 2016 Jerome Froelich - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -lru 0.16.3 --------------------------------------------------------------------------------- -Source: https://github.com/jeromefroe/lru-rs -License: MIT - -Copyright notice: - Copyright (c) 2016 Jerome Froelich - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -lsp-types 0.95.1 --------------------------------------------------------------------------------- -Source: https://github.com/gluon-lang/lsp-types -License: MIT - -Copyright notice: - Copyright (c) 2016 Markus Westerlind - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -mac 0.1.1 --------------------------------------------------------------------------------- -Source: https://github.com/reem/rust-mac -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Jonathan Reem - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -mac_address 1.1.8 --------------------------------------------------------------------------------- -Source: https://github.com/rep-nop/mac_address -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2018 Wesley Norris - Copyright © 2018 Wesley Norris - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -mach2 0.4.3 --------------------------------------------------------------------------------- -Source: https://github.com/JohnTitor/mach2 -License: MIT (upstream declares: BSD-2-Clause OR MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2019 Nick Fitzgerald, 2021 Yuki Okushi - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: BSD-2-Clause OR MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -markup5ever 0.11.0 --------------------------------------------------------------------------------- -Source: https://github.com/servo/html5ever -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 The html5ever Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -markup5ever 0.14.1 --------------------------------------------------------------------------------- -Source: https://github.com/servo/html5ever -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 The html5ever Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -markup5ever 0.38.0 --------------------------------------------------------------------------------- -Source: https://github.com/servo/html5ever -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 The html5ever Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -markup5ever_rcdom 0.38.0+unofficial --------------------------------------------------------------------------------- -Source: https://github.com/servo/html5ever -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 The html5ever Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -match_token 0.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/servo/html5ever -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -matchers 0.2.0 --------------------------------------------------------------------------------- -Source: https://github.com/hawkw/matchers -License: MIT - -Copyright notice: - Copyright (c) 2019 Eliza Weisman - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -matchit 0.8.4 --------------------------------------------------------------------------------- -Source: https://github.com/ibraheemdev/matchit -License: MIT AND BSD-3-Clause - (applicable terms: MIT, BSD-3-Clause) - -Copyright notice: - Copyright (c) 2022 Ibraheem Ahmed - Copyright (c) 2013, Julien Schmidt - -License text: see Part II — MIT; BSD-3-Clause - -Additional requirements / notices: - Upstream license expression: MIT AND BSD-3-Clause. All of the following license terms apply: MIT, BSD-3-Clause. - --------------------------------------------------------------------------------- -matrixmultiply 0.3.10 --------------------------------------------------------------------------------- -Source: https://github.com/bluss/matrixmultiply -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2016 - 2023 Ulrik Sverdrup "bluss" - Copyirhgt (c) 2018 R. Janis Goldschmidt - Copyright (c) 2021 DutchGhost [constparse.rs] - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -maybe-async 0.2.10 --------------------------------------------------------------------------------- -Source: https://github.com/fMeow/maybe-async-rs -License: MIT - -Copyright notice: - Copyright (c) 2020 Guoli Lyu - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -md-5 0.10.6 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/hashes -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2006-2009 Graydon Hoare - Copyright (c) 2009-2013 Mozilla Foundation - Copyright (c) 2016 Artyom Pavlov - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -md-5 0.11.0 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/hashes -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016-2026 The RustCrypto Project Developers - Copyright (c) 2016 Artyom Pavlov - Copyright (c) 2009-2013 Mozilla Foundation - Copyright (c) 2006-2009 Graydon Hoare - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -md5 0.7.0 --------------------------------------------------------------------------------- -Source: https://github.com/stainless-steel/md5 -License: MIT (upstream declares: Apache-2.0/MIT) - -Copyright notice: - Copyright 2015–2019 The md5 Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0/MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -md5 0.8.0 --------------------------------------------------------------------------------- -Source: https://github.com/stainless-steel/md5 -License: MIT (upstream declares: Apache-2.0/MIT) - -Copyright notice: - Copyright 2015–2025 The md5 Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0/MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -memchr 2.8.2 --------------------------------------------------------------------------------- -Source: https://github.com/BurntSushi/memchr -License: MIT (upstream declares: Unlicense OR MIT) - -Copyright notice: - Copyright (c) 2015 Andrew Gallant - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Unlicense OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -memmap2 0.9.10 --------------------------------------------------------------------------------- -Source: https://github.com/RazrFalcon/memmap2-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2020 Yevhenii Reizner - Copyright (c) 2015 Dan Burkert - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -memmem 0.1.1 --------------------------------------------------------------------------------- -Source: http://github.com/jneem/memmem -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2014 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -memo-map 0.3.3 --------------------------------------------------------------------------------- -Source: https://github.com/mitsuhiko/memo-map -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - Armin Ronacher - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -memoffset 0.9.1 --------------------------------------------------------------------------------- -Source: https://github.com/Gilnaa/memoffset -License: MIT - -Copyright notice: - Copyright (c) 2017 Gilad Naaman - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -mermaid-to-svg 0.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/warpdotdev/mermaid-to-svg -License: MIT - -Copyright notice: - Copyright (c) 2014 - 2022 Knut Sveidqvist - Copyright (c) 2012-2014 Chris Pettitt - Copyright 2023 Ameer Hamza - Copyright (c) 2025-2026 Denver Technologies, Inc. - -License text: see Part II — MIT - -Additional requirements / notices: - VENDORED WITH LOCAL MODIFICATIONS: - Vendored at third_party/mermaid-to-svg/. Local modifications vs upstream warpdotdev/mermaid-to-svg: dropped CLI binary and most snapshot tests; hermetic patch so experimental layout port stays disabled; dependency paths repointed to sibling vendored crates. See Cargo.toml VENDORING NOTES and third_party/mermaid-to-svg/THIRD_PARTY_NOTICES for further ancestry (mermaid.js, dagre.js, etc.). - Further third-party ancestry notices from the upstream project (excerpt — full file at third_party/mermaid-to-svg/THIRD_PARTY_NOTICES): - This project includes code derived from or inspired by the following - third-party projects. - - ================================================================================ - - mermaid.js - https://github.com/mermaid-js/mermaid - - The MIT License (MIT) - - Copyright (c) 2014 - 2022 Knut Sveidqvist - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. - - ================================================================================ - - dagre.js - https://github.com/dagrejs/dagre - - The MIT License (MIT) - - Copyright (c) 2012-2014 Chris Pettitt - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. - - ================================================================================ - - dagre_rust - https://github.com/r3alst/dagre-rust - - Vendored in third_party/dagre_rust/ with local modifications. - - Copyright 2023 Ameer Hamza - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --------------------------------------------------------------------------------- -metrics 0.21.1 --------------------------------------------------------------------------------- -Source: https://github.com/metrics-rs/metrics -License: MIT - -Copyright notice: - Copyright (c) 2021 Metrics Contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -metrics-exporter-prometheus 0.12.2 --------------------------------------------------------------------------------- -Source: https://github.com/metrics-rs/metrics -License: MIT - -Copyright notice: - Copyright (c) 2021 Metrics Contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -metrics-macros 0.7.1 --------------------------------------------------------------------------------- -Source: https://github.com/metrics-rs/metrics -License: MIT - -Copyright notice: - Copyright (c) 2021 Metrics Contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -metrics-util 0.15.0 --------------------------------------------------------------------------------- -Source: https://github.com/metrics-rs/metrics -License: MIT - -Copyright notice: - Copyright (c) 2021 Metrics Contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -mid 4.0.0 --------------------------------------------------------------------------------- -Source: https://github.com/doroved/mid -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2025 doroved - Copyright (c) 2025 doroved - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -mimalloc 0.1.48 --------------------------------------------------------------------------------- -Source: https://github.com/purpleprotocol/mimalloc_rust -License: MIT - -Copyright notice: - Copyright 2019 Octavian Oncescu - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -mime 0.3.17 --------------------------------------------------------------------------------- -Source: https://github.com/hyperium/mime -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 Sean McArthur - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -mime_guess 2.0.5 --------------------------------------------------------------------------------- -Source: https://github.com/abonander/mime_guess -License: MIT - -Copyright notice: - Copyright (c) 2015 Austin Bonander - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -minijinja 2.18.0 --------------------------------------------------------------------------------- -Source: https://github.com/mitsuhiko/minijinja -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - Armin Ronacher - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -minimal-lexical 0.2.1 --------------------------------------------------------------------------------- -Source: https://github.com/Alexhuszagh/minimal-lexical -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2009 The Go Authors. All rights reserved. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -miniz_oxide 0.8.9 --------------------------------------------------------------------------------- -Source: https://github.com/Frommi/miniz_oxide/tree/master/miniz_oxide -License: MIT (upstream declares: MIT OR Zlib OR Apache-2.0) - -Copyright notice: - Copyright 2013-2014 RAD Game Tools and Valve Software - Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - Copyright (c) 2017 Frommi - Copyright (c) 2017-2024 oyvindln - Copyright (c) 2020 Frommi - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Zlib OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -mio 1.2.1 --------------------------------------------------------------------------------- -Source: https://github.com/tokio-rs/mio -License: MIT - -Copyright notice: - Copyright (c) 2014 Carl Lerche and other MIO contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -mockall 0.14.0 --------------------------------------------------------------------------------- -Source: https://github.com/asomers/mockall -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2019 Alan Somers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -mockall_derive 0.14.0 --------------------------------------------------------------------------------- -Source: https://github.com/asomers/mockall -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2019 Alan Somers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -moka 0.12.11 --------------------------------------------------------------------------------- -Source: https://github.com/moka-rs/moka -License: (MIT OR Apache-2.0) AND Apache-2.0 - (applicable terms: Apache-2.0, MIT) - -Copyright notice: - Copyright 2020 - 2025 Tatsuya Kawano - Copyright (c) 2020 - 2025 Tatsuya Kawano - -License text: see Part II — Apache-2.0; MIT - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - UPSTREAM NOTICE FILE: - Additional Notices for Moka - - The majority of the Moka library is dual-licensed under the MIT and Apache 2.0 - licenses. - - However, the following files are an exception and are licensed solely under - the Apache License 2.0: - - - src/common/frequency_sketch.rs - - src/common/timer_wheel.rs - - These files were ported from the Java Caffeine library and are not dual-licensed. - - Please refer to the LICENSE-APACHE file for more details on the Apache License 2.0. - Upstream license expression: (MIT OR Apache-2.0) AND Apache-2.0. For this distribution, obligations are satisfied under: Apache-2.0, MIT. - --------------------------------------------------------------------------------- -more-asserts 0.3.1 --------------------------------------------------------------------------------- -Source: https://github.com/thomcc/rust-more-asserts -License: MIT (upstream declares: Unlicense OR MIT OR Apache-2.0 OR CC0-1.0) - -Copyright notice: - Copyright (C) 2022 Thom Chiovoloni - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Unlicense OR MIT OR Apache-2.0 OR CC0-1.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -moxcms 0.7.8 --------------------------------------------------------------------------------- -Source: https://github.com/awxkee/moxcms -License: BSD-3-Clause (upstream declares: BSD-3-Clause OR Apache-2.0) - -Copyright notice: - Copyright (c) Radzivon Bartoshyk. All rights reserved. - Copyright 2024 Radzivon Bartoshyk - -License text: see Part II — BSD-3-Clause - -Additional requirements / notices: - Upstream license expression: BSD-3-Clause OR Apache-2.0. For this distribution, obligations are satisfied under: BSD-3-Clause. - --------------------------------------------------------------------------------- -multer 3.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/rwf2/multer -License: MIT - -Copyright notice: - Copyright (c) 2020 Rousan Ali - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -multimap 0.10.1 --------------------------------------------------------------------------------- -Source: https://github.com/havarnov/multimap -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 multimap developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -nalgebra 0.33.2 --------------------------------------------------------------------------------- -Source: https://github.com/dimforge/nalgebra -License: Apache-2.0 - -Copyright notice: - Copyright 2020 Sébastien Crozet - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -new_debug_unreachable 1.0.6 --------------------------------------------------------------------------------- -Source: https://github.com/mbrubeck/rust-debug-unreachable -License: MIT - -Copyright notice: - Copyright (c) 2015 Jonathan Reem - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -nix 0.26.4 --------------------------------------------------------------------------------- -Source: https://github.com/nix-rust/nix -License: MIT - -Copyright notice: - Copyright (c) 2015 Carl Lerche + nix-rust Authors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -nix 0.28.0 --------------------------------------------------------------------------------- -Source: https://github.com/nix-rust/nix -License: MIT - -Copyright notice: - Copyright (c) 2015 Carl Lerche + nix-rust Authors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -nix 0.29.0 --------------------------------------------------------------------------------- -Source: https://github.com/nix-rust/nix -License: MIT - -Copyright notice: - Copyright (c) 2015 Carl Lerche + nix-rust Authors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -nix 0.30.1 --------------------------------------------------------------------------------- -Source: https://github.com/nix-rust/nix -License: MIT - -Copyright notice: - Copyright (c) 2015 Carl Lerche + nix-rust Authors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -nix 0.31.3 --------------------------------------------------------------------------------- -Source: https://github.com/nix-rust/nix -License: MIT - -Copyright notice: - Copyright (c) 2015 Carl Lerche + nix-rust Authors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -nohash-hasher 0.2.0 --------------------------------------------------------------------------------- -Source: https://github.com/paritytech/nohash-hasher -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright 2018 Parity Technologies (UK) Ltd. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -nom 7.1.3 --------------------------------------------------------------------------------- -Source: https://github.com/Geal/nom -License: MIT - -Copyright notice: - Copyright (c) 2014-2019 Geoffroy Couprie - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -nom 8.0.0 --------------------------------------------------------------------------------- -Source: https://github.com/rust-bakery/nom -License: MIT - -Copyright notice: - Copyright (c) 2014-2019 Geoffroy Couprie - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -nono 0.53.0 --------------------------------------------------------------------------------- -Source: https://github.com/always-further/nono -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - Luke Hinds - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -notify-debouncer-full 0.5.0 --------------------------------------------------------------------------------- -Source: https://github.com/notify-rs/notify -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2023 Notify Contributors - Copyright (c) 2023 Notify Contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -notify-debouncer-mini 0.6.0 --------------------------------------------------------------------------------- -Source: https://github.com/notify-rs/notify -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2023 Notify Contributors - Copyright (c) 2023 Notify Contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -notify-types 2.0.0 --------------------------------------------------------------------------------- -Source: https://github.com/notify-rs/notify -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2023 Notify Contributors - Copyright (c) 2023 Notify Contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -nu-ansi-term 0.50.3 --------------------------------------------------------------------------------- -Source: https://github.com/nushell/nu-ansi-term -License: MIT - -Copyright notice: - Copyright (c) 2014 Benjamin Sago - Copyright (c) 2021-2022 The Nushell Project Developers - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -nucleo 0.5.0 --------------------------------------------------------------------------------- -Source: https://github.com/helix-editor/nucleo -License: MPL-2.0 - -Copyright notice: - Copyright (c) 2022 Ibraheem Ahmed - Copyright (c) 2010 The Rust Project Developers - -License text: see Part II — MPL-2.0 - -Additional requirements / notices: - MPL-2.0 notice: Certain source files in this package are licensed under the Mozilla Public License, v. 2.0. Those files remain under the MPL-2.0; this product as a whole is not required to be licensed under the MPL-2.0. You may obtain a copy of the MPL at https://mozilla.org/MPL/2.0/. - --------------------------------------------------------------------------------- -nucleo-matcher 0.3.1 --------------------------------------------------------------------------------- -Source: https://github.com/helix-editor/nucleo -License: MPL-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - Pascal Kuthe - -License text: see Part II — MPL-2.0 - -Additional requirements / notices: - MPL-2.0 notice: Certain source files in this package are licensed under the Mozilla Public License, v. 2.0. Those files remain under the MPL-2.0; this product as a whole is not required to be licensed under the MPL-2.0. You may obtain a copy of the MPL at https://mozilla.org/MPL/2.0/. - --------------------------------------------------------------------------------- -num 0.4.3 --------------------------------------------------------------------------------- -Source: https://github.com/rust-num/num -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -num-bigint 0.4.6 --------------------------------------------------------------------------------- -Source: https://github.com/rust-num/num-bigint -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -num-bigint-dig 0.8.6 --------------------------------------------------------------------------------- -Source: https://github.com/dignifiedquire/num-bigint -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2014 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -num-cmp 0.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/lifthrasiir/num-cmp -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Apache 2.0 License [3]. Copyright (c) 2017, Kang Seonghoon. - Copyright (c) 2017, Kang Seonghoon. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -num-complex 0.4.6 --------------------------------------------------------------------------------- -Source: https://github.com/rust-num/num-complex -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -num-conv 0.2.0 --------------------------------------------------------------------------------- -Source: https://github.com/jhpratt/num-conv -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2023 Jacob Pratt - Copyright (c) 2023 Jacob Pratt - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -num-derive 0.4.2 --------------------------------------------------------------------------------- -Source: https://github.com/rust-num/num-derive -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -num-format 0.4.4 --------------------------------------------------------------------------------- -Source: https://github.com/bcmyers/num-format -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright 2018 Brian Myers - Copyright (c) 2018 Brian Myers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -num-integer 0.1.46 --------------------------------------------------------------------------------- -Source: https://github.com/rust-num/num-integer -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -num-iter 0.1.45 --------------------------------------------------------------------------------- -Source: https://github.com/rust-num/num-iter -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -num-rational 0.4.2 --------------------------------------------------------------------------------- -Source: https://github.com/rust-num/num-rational -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -num-traits 0.2.19 --------------------------------------------------------------------------------- -Source: https://github.com/rust-num/num-traits -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -num_cpus 1.17.0 --------------------------------------------------------------------------------- -Source: https://github.com/seanmonstar/num_cpus -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015-2025 Sean McArthur - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -oauth2 5.0.0 --------------------------------------------------------------------------------- -Source: https://github.com/ramosbugs/oauth2-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 Alex Crichton - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -obfstr 0.4.4 --------------------------------------------------------------------------------- -Source: https://github.com/CasualX/obfstr -License: MIT - -Copyright notice: - Copyright (c) 2019-2020 Casper - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -objc-sys 0.3.5 --------------------------------------------------------------------------------- -Source: https://github.com/madsmtm/objc2 -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - Mads Marquart - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -objc2 0.5.2 --------------------------------------------------------------------------------- -Source: https://github.com/madsmtm/objc2 -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - Steven Sheldon - - Mads Marquart - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -objc2 0.6.3 --------------------------------------------------------------------------------- -Source: https://github.com/madsmtm/objc2 -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - Mads Marquart - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -objc2-encode 4.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/madsmtm/objc2 -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - Mads Marquart - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -objc2-foundation 0.2.2 --------------------------------------------------------------------------------- -Source: https://github.com/madsmtm/objc2 -License: MIT - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -object 0.37.3 --------------------------------------------------------------------------------- -Source: https://github.com/gimli-rs/object -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2015 The Gimli Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -omniparse 0.2.1 --------------------------------------------------------------------------------- -Source: https://github.com/sirhco/omniparse -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Chris Olson - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -once_cell 1.21.3 --------------------------------------------------------------------------------- -Source: https://github.com/matklad/once_cell -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Aleksey Kladov - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -once_cell_polyfill 1.70.2 --------------------------------------------------------------------------------- -Source: https://github.com/polyfill-rs/once_cell_polyfill -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -onig 6.5.1 --------------------------------------------------------------------------------- -Source: https://github.com/iwillspeak/rust-onig -License: MIT - -Copyright notice: - > Copyright (c) 2015 Will Speak , Ivan Ivashchenko - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -onig_sys 69.9.1 --------------------------------------------------------------------------------- -Source: https://github.com/iwillspeak/rust-onig -License: MIT - -Copyright notice: - > Copyright (c) 2015 Will Speak , Ivan Ivashchenko - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -opaque-debug 0.3.1 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/utils -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018-2024 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -openssl-probe 0.1.6 --------------------------------------------------------------------------------- -Source: https://github.com/alexcrichton/openssl-probe -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2014 Alex Crichton - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -opentelemetry 0.24.0 --------------------------------------------------------------------------------- -Source: https://github.com/open-telemetry/opentelemetry-rust -License: Apache-2.0 - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -opentelemetry 0.32.0 --------------------------------------------------------------------------------- -Source: https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry -License: Apache-2.0 - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -opentelemetry-http 0.32.0 --------------------------------------------------------------------------------- -Source: https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-http -License: Apache-2.0 - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -opentelemetry-otlp 0.32.0 --------------------------------------------------------------------------------- -Source: https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-otlp -License: Apache-2.0 - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -opentelemetry-prometheus 0.17.0 --------------------------------------------------------------------------------- -Source: https://github.com/open-telemetry/opentelemetry-rust -License: Apache-2.0 - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -opentelemetry-proto 0.32.0 --------------------------------------------------------------------------------- -Source: https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-proto -License: Apache-2.0 - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -opentelemetry_sdk 0.24.1 --------------------------------------------------------------------------------- -Source: https://github.com/open-telemetry/opentelemetry-rust -License: Apache-2.0 - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -opentelemetry_sdk 0.32.1 --------------------------------------------------------------------------------- -Source: https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-sdk -License: Apache-2.0 - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -optfield 0.4.0 --------------------------------------------------------------------------------- -Source: https://github.com/roignpar/optfield -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2020 Robert Ignat - Copyright (c) 2020 Robert Ignat - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -option-ext 0.2.0 --------------------------------------------------------------------------------- -Source: https://github.com/soc/option-ext -License: MPL-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - Simon Ochsenreither - -License text: see Part II — MPL-2.0 - -Additional requirements / notices: - MPL-2.0 notice: Certain source files in this package are licensed under the Mozilla Public License, v. 2.0. Those files remain under the MPL-2.0; this product as a whole is not required to be licensed under the MPL-2.0. You may obtain a copy of the MPL at https://mozilla.org/MPL/2.0/. - --------------------------------------------------------------------------------- -ordered-float 2.10.1 --------------------------------------------------------------------------------- -Source: https://github.com/reem/rust-ordered-float -License: MIT - -Copyright notice: - Copyright (c) 2015 Jonathan Reem - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -ordered-float 4.6.0 --------------------------------------------------------------------------------- -Source: https://github.com/reem/rust-ordered-float -License: MIT - -Copyright notice: - Copyright (c) 2015 Jonathan Reem - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -ordered-stream 0.2.0 --------------------------------------------------------------------------------- -Source: https://github.com/danieldg/ordered-stream -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Daniel De Graaf - - Zeeshan Ali Khan - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -ordered_hashmap 0.0.3 --------------------------------------------------------------------------------- -Source: https://crates.io/crates/ordered_hashmap/0.0.3 -License: Apache-2.0 - -Copyright notice: - Copyright 2023 Ameer Hamza - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - VENDORED WITH LOCAL MODIFICATIONS: - Vendored at third_party/ordered_hashmap/. Local modifications: rustfmt only (no semantic change); upstream integration tests not vendored. See Cargo.toml VENDORING NOTES. - Apache-2.0 change notice: this package was modified as described above. Modified files remain under the Apache License 2.0. - --------------------------------------------------------------------------------- -os_info 3.14.0 --------------------------------------------------------------------------------- -Source: https://github.com/stanislav-tkach/os_info -License: MIT - -Copyright notice: - Copyright (c) 2017 Stanislav Tkach - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -os_pipe 1.2.3 --------------------------------------------------------------------------------- -Source: https://github.com/oconnor663/os_pipe.rs -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - Jack O'Connor - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -outref 0.5.2 --------------------------------------------------------------------------------- -Source: https://github.com/Nugine/outref -License: MIT - -Copyright notice: - Copyright (c) 2022 Nugine - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -p256 0.13.2 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/elliptic-curves/tree/master/p256 -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2020-2023 RustCrypto Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -p384 0.13.1 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/elliptic-curves/tree/master/p384 -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2020-2021 RustCrypto Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -parking 2.2.1 --------------------------------------------------------------------------------- -Source: https://github.com/smol-rs/parking -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright 2014-2020 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -parking_lot 0.12.5 --------------------------------------------------------------------------------- -Source: https://github.com/Amanieu/parking_lot -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -parking_lot_core 0.9.12 --------------------------------------------------------------------------------- -Source: https://github.com/Amanieu/parking_lot -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -password-hash 0.4.2 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/traits/tree/master/password-hash -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2020 RustCrypto Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -paste 1.0.15 --------------------------------------------------------------------------------- -Source: https://github.com/dtolnay/paste -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - David Tolnay - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -pastey 0.2.1 --------------------------------------------------------------------------------- -Source: https://github.com/as1100k/pastey -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Aditya Kumar - - David Tolnay - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -path-clean 1.0.1 --------------------------------------------------------------------------------- -Source: https://github.com/danreeves/path-clean -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2018 Dan Reeves - Copyright (c) 2018 Dan Reeves - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -pbjson 0.9.0 --------------------------------------------------------------------------------- -Source: https://github.com/influxdata/pbjson -License: MIT - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -pbjson-build 0.9.0 --------------------------------------------------------------------------------- -Source: https://github.com/influxdata/pbjson -License: MIT - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -pbjson-types 0.9.0 --------------------------------------------------------------------------------- -Source: https://github.com/influxdata/pbjson -License: MIT - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -pbkdf2 0.11.0 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/password-hashes/tree/master/pbkdf2 -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2017 Artyom Pavlov - Copyright (c) 2018-2021 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -pdf_oxide 0.3.46 --------------------------------------------------------------------------------- -Source: https://github.com/yfedoseev/pdf_oxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2025-present Yury Fedoseev - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -pem 3.0.6 --------------------------------------------------------------------------------- -Source: https://github.com/jcreekmore/pem-rs -License: MIT - -Copyright notice: - Copyright (c) 2016 Jonathan Creekmore - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -pem-rfc7468 0.7.0 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/formats/tree/master/pem-rfc7468 -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2021 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -percent-encoding 2.3.2 --------------------------------------------------------------------------------- -Source: https://github.com/servo/rust-url -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2013-2025 The rust-url developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -pest 2.8.3 --------------------------------------------------------------------------------- -Source: https://github.com/pest-parser/pest -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018 Dragoș Tiselice - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -pest_derive 2.8.3 --------------------------------------------------------------------------------- -Source: https://github.com/pest-parser/pest -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018 Dragoș Tiselice - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -pest_generator 2.8.3 --------------------------------------------------------------------------------- -Source: https://github.com/pest-parser/pest -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018 Dragoș Tiselice - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -pest_meta 2.8.3 --------------------------------------------------------------------------------- -Source: https://github.com/pest-parser/pest -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018 Dragoș Tiselice - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -petgraph 0.6.5 --------------------------------------------------------------------------------- -Source: https://github.com/petgraph/petgraph -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015 - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -petgraph 0.7.1 --------------------------------------------------------------------------------- -Source: https://github.com/petgraph/petgraph -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015 - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -petgraph 0.8.3 --------------------------------------------------------------------------------- -Source: https://github.com/petgraph/petgraph -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015 - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -phf 0.10.1 --------------------------------------------------------------------------------- -Source: https://github.com/sfackler/rust-phf -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - Steven Fackler - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -phf 0.11.3 --------------------------------------------------------------------------------- -Source: https://github.com/rust-phf/rust-phf -License: MIT - -Copyright notice: - Copyright (c) 2014-2022 Steven Fackler, Yuki Okushi - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -phf 0.12.1 --------------------------------------------------------------------------------- -Source: https://github.com/rust-phf/rust-phf -License: MIT - -Copyright notice: - Copyright (c) 2014-2022 Steven Fackler, Yuki Okushi - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -phf 0.13.1 --------------------------------------------------------------------------------- -Source: https://github.com/rust-phf/rust-phf -License: MIT - -Copyright notice: - Copyright (c) 2014-2022 Steven Fackler, Yuki Okushi - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -phf_codegen 0.10.0 --------------------------------------------------------------------------------- -Source: https://github.com/sfackler/rust-phf -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - Steven Fackler - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -phf_codegen 0.11.3 --------------------------------------------------------------------------------- -Source: https://github.com/rust-phf/rust-phf -License: MIT - -Copyright notice: - Copyright (c) 2014-2022 Steven Fackler, Yuki Okushi - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -phf_codegen 0.13.1 --------------------------------------------------------------------------------- -Source: https://github.com/rust-phf/rust-phf -License: MIT - -Copyright notice: - Copyright (c) 2014-2022 Steven Fackler, Yuki Okushi - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -phf_generator 0.10.0 --------------------------------------------------------------------------------- -Source: https://github.com/sfackler/rust-phf -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - Steven Fackler - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -phf_generator 0.11.3 --------------------------------------------------------------------------------- -Source: https://github.com/rust-phf/rust-phf -License: MIT - -Copyright notice: - Copyright (c) 2014-2022 Steven Fackler, Yuki Okushi - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -phf_generator 0.12.1 --------------------------------------------------------------------------------- -Source: https://github.com/rust-phf/rust-phf -License: MIT - -Copyright notice: - Copyright (c) 2014-2022 Steven Fackler, Yuki Okushi - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -phf_generator 0.13.1 --------------------------------------------------------------------------------- -Source: https://github.com/rust-phf/rust-phf -License: MIT - -Copyright notice: - Copyright (c) 2014-2022 Steven Fackler, Yuki Okushi - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -phf_macros 0.11.3 --------------------------------------------------------------------------------- -Source: https://github.com/rust-phf/rust-phf -License: MIT - -Copyright notice: - Copyright (c) 2014-2022 Steven Fackler, Yuki Okushi - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -phf_macros 0.12.1 --------------------------------------------------------------------------------- -Source: https://github.com/rust-phf/rust-phf -License: MIT - -Copyright notice: - Copyright (c) 2014-2022 Steven Fackler, Yuki Okushi - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -phf_macros 0.13.1 --------------------------------------------------------------------------------- -Source: https://github.com/rust-phf/rust-phf -License: MIT - -Copyright notice: - Copyright (c) 2014-2022 Steven Fackler, Yuki Okushi - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -phf_shared 0.10.0 --------------------------------------------------------------------------------- -Source: https://github.com/sfackler/rust-phf -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - Steven Fackler - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -phf_shared 0.11.3 --------------------------------------------------------------------------------- -Source: https://github.com/rust-phf/rust-phf -License: MIT - -Copyright notice: - Copyright (c) 2014-2022 Steven Fackler, Yuki Okushi - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -phf_shared 0.12.1 --------------------------------------------------------------------------------- -Source: https://github.com/rust-phf/rust-phf -License: MIT - -Copyright notice: - Copyright (c) 2014-2022 Steven Fackler, Yuki Okushi - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -phf_shared 0.13.1 --------------------------------------------------------------------------------- -Source: https://github.com/rust-phf/rust-phf -License: MIT - -Copyright notice: - Copyright (c) 2014-2022 Steven Fackler, Yuki Okushi - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -pico-args 0.5.0 --------------------------------------------------------------------------------- -Source: https://github.com/RazrFalcon/pico-args -License: MIT - -Copyright notice: - Copyright (c) 2019 Yevhenii Reizner - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -pin-project 1.1.11 --------------------------------------------------------------------------------- -Source: https://github.com/taiki-e/pin-project -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -pin-project-internal 1.1.11 --------------------------------------------------------------------------------- -Source: https://github.com/taiki-e/pin-project -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -pin-project-lite 0.2.16 --------------------------------------------------------------------------------- -Source: https://github.com/taiki-e/pin-project-lite -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -pin-utils 0.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang-nursery/pin-utils -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2018 The pin-utils authors - Copyright (c) 2018 The pin-utils authors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -piper 0.2.4 --------------------------------------------------------------------------------- -Source: https://github.com/smol-rs/piper -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Stjepan Glavina - - John Nunley - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -pkcs1 0.7.5 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/formats/tree/master/pkcs1 -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2021-2023 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -pkcs8 0.10.2 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/formats/tree/master/pkcs8 -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2020-2023 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -pkg-config 0.3.32 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/pkg-config-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 Alex Crichton - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -plist 1.8.0 --------------------------------------------------------------------------------- -Source: https://github.com/ebarnard/rust-plist -License: MIT - -Copyright notice: - Copyright (c) 2015 Edward Barnard - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -png 0.17.16 --------------------------------------------------------------------------------- -Source: https://github.com/image-rs/image-png -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015 nwin - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -png 0.18.0 --------------------------------------------------------------------------------- -Source: https://github.com/image-rs/image-png -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015 nwin - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -polling 3.11.0 --------------------------------------------------------------------------------- -Source: https://github.com/smol-rs/polling -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Stjepan Glavina - - John Nunley - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -pollster 0.4.0 --------------------------------------------------------------------------------- -Source: https://github.com/zesterer/pollster -License: MIT (upstream declares: Apache-2.0/MIT) - -Copyright notice: - Copyright (c) 2020-2021 Joshua Barretto - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0/MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -polycool 0.4.0 --------------------------------------------------------------------------------- -Source: https://github.com/linebender/kurbo -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018 Raph Levien - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -polyval 0.6.2 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/universal-hashes -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2019-2023 RustCrypto Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -portable-atomic 1.11.1 --------------------------------------------------------------------------------- -Source: https://github.com/taiki-e/portable-atomic -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -portable-pty 0.9.0 --------------------------------------------------------------------------------- -Source: https://github.com/wezterm/wezterm -License: MIT - -Copyright notice: - Copyright (c) 2018 Wez Furlong - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -potential_utf 0.1.3 --------------------------------------------------------------------------------- -Source: https://github.com/unicode-org/icu4x -License: Unicode-3.0 - -Copyright notice: - Copyright © 2020-2024 Unicode, Inc. - ICU 1.8.1 to ICU 57.1 © 1995-2016 International Business Machines Corporation and others. - -License text: see Part II — Unicode-3.0 - --------------------------------------------------------------------------------- -powerfmt 0.2.0 --------------------------------------------------------------------------------- -Source: https://github.com/jhpratt/powerfmt -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2023 Jacob Pratt et al. - Copyright (c) 2023 Jacob Pratt et al. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -pprof 0.15.0 --------------------------------------------------------------------------------- -Source: https://github.com/tikv/pprof-rs -License: Apache-2.0 - -Copyright notice: - Copyright 2019 TiKV Project Authors. - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -ppv-lite86 0.2.21 --------------------------------------------------------------------------------- -Source: https://github.com/cryptocorrosion/cryptocorrosion -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2019 The CryptoCorrosion Contributors - Copyright (c) 2019 The CryptoCorrosion Contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -precomputed-hash 0.1.1 --------------------------------------------------------------------------------- -Source: https://github.com/emilio/precomputed-hash -License: MIT - -Copyright notice: - Copyright (c) 2017 Emilio Cobos Álvarez - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -predicates 3.1.3 --------------------------------------------------------------------------------- -Source: https://github.com/assert-rs/predicates-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -predicates-core 1.0.9 --------------------------------------------------------------------------------- -Source: https://github.com/assert-rs/predicates-rs/tree/master/crates/core -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -predicates-tree 1.0.12 --------------------------------------------------------------------------------- -Source: https://github.com/assert-rs/predicates-rs/tree/master/crates/tree -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -pretty_assertions 1.4.1 --------------------------------------------------------------------------------- -Source: https://github.com/rust-pretty-assertions/rust-pretty-assertions -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 rust-derive-builder contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -prettyplease 0.2.37 --------------------------------------------------------------------------------- -Source: https://github.com/dtolnay/prettyplease -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - David Tolnay - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -primeorder 0.13.6 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/elliptic-curves/tree/master/primeorder -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2020-2023 RustCrypto Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -proc-macro-crate 3.4.0 --------------------------------------------------------------------------------- -Source: https://github.com/bkchr/proc-macro-crate -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Bastian Köcher - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -proc-macro2 1.0.106 --------------------------------------------------------------------------------- -Source: https://github.com/dtolnay/proc-macro2 -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - David Tolnay - - Alex Crichton - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -process-wrap 9.0.0 --------------------------------------------------------------------------------- -Source: https://github.com/watchexec/process-wrap -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Félix Saparelli - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -procfs 0.17.0 --------------------------------------------------------------------------------- -Source: https://github.com/eminence/procfs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (C) 1994, 1995 by Daniel Quinlan (quinlan@yggdrasil.com) - and Copyright (C) 2002-2008,2017 Michael Kerrisk - Copyright (c) 2006, 2008 by Michael Kerrisk - Copyright 2003 Binh Nguyen - Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. - Copyright (c) YEAR YOUR NAME. - Copyright (c) 2015 The procfs Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -procfs-core 0.17.0 --------------------------------------------------------------------------------- -Source: https://github.com/eminence/procfs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (C) 1994, 1995 by Daniel Quinlan (quinlan@yggdrasil.com) - and Copyright (C) 2002-2008,2017 Michael Kerrisk - Copyright (c) 2006, 2008 by Michael Kerrisk - Copyright 2003 Binh Nguyen - Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. - Copyright (c) YEAR YOUR NAME. - Copyright (c) 2015 The procfs Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -prodash 31.0.0 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/prodash -License: MIT - -Copyright notice: - Copyright © `2020` `Sebastian Thiel` - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -prometheus 0.13.4 --------------------------------------------------------------------------------- -Source: https://github.com/tikv/rust-prometheus -License: Apache-2.0 - -Copyright notice: - Copyright 2019 TiKV Project Authors. - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -prometheus 0.14.0 --------------------------------------------------------------------------------- -Source: https://github.com/tikv/rust-prometheus -License: Apache-2.0 - -Copyright notice: - Copyright 2019 TiKV Project Authors. - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -prometheus-client 0.22.3 --------------------------------------------------------------------------------- -Source: https://github.com/prometheus/client_rust -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2020 Max Inden - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -prometheus-client-derive-encode 0.4.2 --------------------------------------------------------------------------------- -Source: https://github.com/prometheus/client_rust -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Max Inden - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -prost 0.14.3 --------------------------------------------------------------------------------- -Source: https://github.com/tokio-rs/prost -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - Dan Burkert - - Lucio Franco - - Casper Meijn - - Tokio Contributors - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -prost-build 0.14.1 --------------------------------------------------------------------------------- -Source: https://github.com/tokio-rs/prost -License: Apache-2.0 - -Copyright notice: - Copyright 2017 Dan Burkert - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -prost-derive 0.14.3 --------------------------------------------------------------------------------- -Source: https://github.com/tokio-rs/prost -License: Apache-2.0 - -Copyright notice: - Copyright 2017 Dan Burkert - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -prost-reflect 0.16.4 --------------------------------------------------------------------------------- -Source: https://github.com/andrewhickman/prost-reflect -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Andrew Hickman - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -prost-types 0.14.3 --------------------------------------------------------------------------------- -Source: https://github.com/tokio-rs/prost -License: Apache-2.0 - -Copyright notice: - Copyright 2017 Dan Burkert - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -protobuf 2.28.0 --------------------------------------------------------------------------------- -Source: https://github.com/stepancheg/rust-protobuf -License: MIT - -Copyright notice: - Copyright (c) 2019 Stepan Koltsov - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -protobuf 3.7.2 --------------------------------------------------------------------------------- -Source: https://github.com/stepancheg/rust-protobuf -License: MIT - -Copyright notice: - Copyright (c) 2019 Stepan Koltsov - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -protobuf-support 3.7.2 --------------------------------------------------------------------------------- -Source: https://github.com/stepancheg/rust-protobuf -License: MIT - -Copyright notice: - Copyright (c) 2019 Stepan Koltsov - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -pulldown-cmark 0.13.0 --------------------------------------------------------------------------------- -Source: https://github.com/raphlinus/pulldown-cmark -License: MIT - -Copyright notice: - Copyright 2015 Google Inc. All rights reserved. - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -pulldown-cmark-escape 0.11.0 --------------------------------------------------------------------------------- -Source: https://github.com/raphlinus/pulldown-cmark -License: MIT - -Copyright notice: - Copyright 2015 Google Inc. All rights reserved. - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -pulldown-cmark-to-cmark 21.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/Byron/pulldown-cmark-to-cmark -License: Apache-2.0 - -Copyright notice: - Copyright 2018 "Sebastian Thiel ", "Dylan Owen ", "Alessandro Ogier ", "Zixian Cai <2891235+caizixian@users.noreply.github.com>" - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -pxfm 0.1.25 --------------------------------------------------------------------------------- -Source: https://github.com/awxkee/pxfm -License: BSD-3-Clause (upstream declares: BSD-3-Clause OR Apache-2.0) - -Copyright notice: - Copyright (c) Radzivon Bartoshyk. All rights reserved. - Copyright 2024 Radzivon Bartoshyk - -License text: see Part II — BSD-3-Clause - -Additional requirements / notices: - Upstream license expression: BSD-3-Clause OR Apache-2.0. For this distribution, obligations are satisfied under: BSD-3-Clause. - --------------------------------------------------------------------------------- -qcms 0.3.0 --------------------------------------------------------------------------------- -Source: https://github.com/FirefoxGraphics/qcms -License: MIT - -Copyright notice: - Copyright (C) 2009 Mozilla Corporation - Copyright (C) 1998-2007 Marti Maria - Copyright (C) 2009 Mozilla Foundation - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -qoi 0.4.1 --------------------------------------------------------------------------------- -Source: https://github.com/aldanor/qoi-rust -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2022 Ivan Smirnov - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -quanta 0.11.1 --------------------------------------------------------------------------------- -Source: https://github.com/metrics-rs/quanta -License: MIT - -Copyright notice: - Copyright (c) 2019 Nuclear Furnace - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -quick-error 2.0.1 --------------------------------------------------------------------------------- -Source: http://github.com/tailhook/quick-error -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2015 The quick-error Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -quick-xml 0.26.0 --------------------------------------------------------------------------------- -Source: https://github.com/tafia/quick-xml -License: MIT - -Copyright notice: - Copyright (c) 2016 Johann Tuffe - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -quick-xml 0.31.0 --------------------------------------------------------------------------------- -Source: https://github.com/tafia/quick-xml -License: MIT - -Copyright notice: - Copyright (c) 2016 Johann Tuffe - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -quick-xml 0.38.3 --------------------------------------------------------------------------------- -Source: https://github.com/tafia/quick-xml -License: MIT - -Copyright notice: - Copyright (c) 2016 Johann Tuffe - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -quick-xml 0.39.4 --------------------------------------------------------------------------------- -Source: https://github.com/tafia/quick-xml -License: MIT - -Copyright notice: - Copyright (c) 2016 Johann Tuffe - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -quote 1.0.45 --------------------------------------------------------------------------------- -Source: https://github.com/dtolnay/quote -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - David Tolnay - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -rand 0.8.5 --------------------------------------------------------------------------------- -Source: https://github.com/rust-random/rand -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2018 Developers of the Rand project - Copyright (c) 2014 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -rand 0.9.2 --------------------------------------------------------------------------------- -Source: https://github.com/rust-random/rand -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2018 Developers of the Rand project - Copyright (c) 2014 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -rand 0.10.0 --------------------------------------------------------------------------------- -Source: https://github.com/rust-random/rand -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2018 Developers of the Rand project - Copyright (c) 2014 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -rand_chacha 0.3.1 --------------------------------------------------------------------------------- -Source: https://github.com/rust-random/rand -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2018 Developers of the Rand project - Copyright (c) 2014 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -rand_chacha 0.9.0 --------------------------------------------------------------------------------- -Source: https://github.com/rust-random/rand -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2018 Developers of the Rand project - Copyright (c) 2014 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -rand_core 0.6.4 --------------------------------------------------------------------------------- -Source: https://github.com/rust-random/rand -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2018 Developers of the Rand project - Copyright (c) 2014 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -rand_core 0.9.3 --------------------------------------------------------------------------------- -Source: https://github.com/rust-random/rand -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2018 Developers of the Rand project - Copyright (c) 2014 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -rand_core 0.10.0 --------------------------------------------------------------------------------- -Source: https://github.com/rust-random/rand_core -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018-2026 The Rand Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -rand_distr 0.4.3 --------------------------------------------------------------------------------- -Source: https://github.com/rust-random/rand -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2018 Developers of the Rand project - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -rapidhash 4.2.0 --------------------------------------------------------------------------------- -Source: https://github.com/hoxxep/rapidhash -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Liam Gray - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -ratatui 0.29.0 --------------------------------------------------------------------------------- -Source: https://github.com/ratatui/ratatui -License: MIT - -Copyright notice: - Copyright (c) 2016-2022 Florian Dehau - Copyright (c) 2023-2024 The Ratatui Developers - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -ratatui-core 0.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/ratatui/ratatui -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - Florian Dehau - - The Ratatui Developers - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -raw-cpuid 10.7.0 --------------------------------------------------------------------------------- -Source: https://github.com/gz/rust-cpuid -License: MIT - -Copyright notice: - Copyright (c) 2015 Gerd Zellweger - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -rawpointer 0.2.1 --------------------------------------------------------------------------------- -Source: https://github.com/bluss/rawpointer -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2015 - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -rayon 1.11.0 --------------------------------------------------------------------------------- -Source: https://github.com/rayon-rs/rayon -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2010 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -rayon-core 1.13.0 --------------------------------------------------------------------------------- -Source: https://github.com/rayon-rs/rayon -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2010 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -read-fonts 0.35.0 --------------------------------------------------------------------------------- -Source: https://github.com/googlefonts/fontations -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2019 Colin Rothfels - Copyright (c) 2019 Colin Rothfels - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -ref-cast 1.0.25 --------------------------------------------------------------------------------- -Source: https://github.com/dtolnay/ref-cast -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - David Tolnay - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -ref-cast-impl 1.0.25 --------------------------------------------------------------------------------- -Source: https://github.com/dtolnay/ref-cast -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - David Tolnay - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -referencing 0.30.0 --------------------------------------------------------------------------------- -Source: https://github.com/Stranger6667/jsonschema -License: MIT - -Copyright notice: - Copyright (c) 2020-2025 Dmitry Dygalo - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -reflink-copy 0.1.28 --------------------------------------------------------------------------------- -Source: https://github.com/cargo-bins/reflink-copy -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Jiahao XU - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -regex 1.12.4 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/regex -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -regex-automata 0.4.13 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/regex -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -regex-lite 0.1.8 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/regex -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -regex-syntax 0.8.11 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/regex -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -regress 0.11.1 --------------------------------------------------------------------------------- -Source: https://github.com/ridiculousfish/regress -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2020 ridiculous_fish - Copyright (c) 2020 ridiculous_fish - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -reqwest 0.12.24 --------------------------------------------------------------------------------- -Source: https://github.com/seanmonstar/reqwest -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2016 Sean McArthur - Copyright (c) 2016-2025 Sean McArthur - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -reqwest 0.13.4 --------------------------------------------------------------------------------- -Source: https://github.com/seanmonstar/reqwest -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2016 Sean McArthur - Copyright (c) 2016-2026 Sean McArthur - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -reqwest-eventsource 0.6.0 --------------------------------------------------------------------------------- -Source: https://github.com/jpopesculian/reqwest-eventsource -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Julian Popescu - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -reqwest-middleware 0.4.2 --------------------------------------------------------------------------------- -Source: https://github.com/TrueLayer/reqwest-middleware -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2021 TrueLayer - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -reqwest-middleware 0.5.1 --------------------------------------------------------------------------------- -Source: https://github.com/TrueLayer/reqwest-middleware -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2021 TrueLayer - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -resvg 0.47.0 --------------------------------------------------------------------------------- -Source: https://github.com/linebender/resvg -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright 2017 the Resvg Authors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -rfc6979 0.4.0 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/signatures/tree/master/rfc6979 -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright 2018-2022 RustCrypto Developers - Copyright (c) 2018-2022 RustCrypto Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -rgb 0.8.52 --------------------------------------------------------------------------------- -Source: https://github.com/kornelski/rust-rgb -License: MIT - -Copyright notice: - Copyright (c) 2019 Kornel - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -ring 0.17.14 --------------------------------------------------------------------------------- -Source: https://github.com/briansmith/ring -License: Apache-2.0 AND ISC - (applicable terms: Apache-2.0, ISC) - -Copyright notice: - Copyright 2015-2025 Brian Smith. - Copyright (c) 2009 The Go Authors. All rights reserved. - Copyright 2015 The Chromium Authors. All rights reserved. - -License text: see Part II — Apache-2.0; ISC - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - Upstream license expression: Apache-2.0 AND ISC. All of the following license terms apply: Apache-2.0, ISC. - --------------------------------------------------------------------------------- -rmcp 2.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/modelcontextprotocol/rust-sdk -License: Apache-2.0 - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -rmcp-macros 2.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/modelcontextprotocol/rust-sdk -License: Apache-2.0 - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -roxmltree 0.20.0 --------------------------------------------------------------------------------- -Source: https://github.com/RazrFalcon/roxmltree -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018 Yevhenii Reizner - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -roxmltree 0.21.1 --------------------------------------------------------------------------------- -Source: https://github.com/RazrFalcon/roxmltree -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018 Yevhenii Reizner - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -rsa 0.9.10 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/RSA -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - RustCrypto Developers - - dignifiedquire - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -rtrb 0.3.2 --------------------------------------------------------------------------------- -Source: https://github.com/mgeier/rtrb -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Stjepan Glavina - - Matthias Geier - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -rusqlite 0.37.0 --------------------------------------------------------------------------------- -Source: https://github.com/rusqlite/rusqlite -License: MIT - -Copyright notice: - Copyright (c) 2014 The rusqlite developers - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -rust-stemmers 1.2.0 --------------------------------------------------------------------------------- -Source: https://github.com/CurrySoftware/rust-stemmers -License: MIT (upstream declares: MIT/BSD-3-Clause) - -Copyright notice: - Copyright (c) 2017 Jakob Demler - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/BSD-3-Clause. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -rust_decimal 1.39.0 --------------------------------------------------------------------------------- -Source: https://github.com/paupino/rust-decimal -License: MIT - -Copyright notice: - Copyright (c) 2016 Paul Mason - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -rustc-demangle 0.1.26 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/rustc-demangle -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2014 Alex Crichton - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -rustc-hash 2.1.1 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/rustc-hash -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright holders / authors (from package metadata): - - The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -rustc_version 0.4.1 --------------------------------------------------------------------------------- -Source: https://github.com/djc/rustc-version-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -rustix 0.38.44 --------------------------------------------------------------------------------- -Source: https://github.com/bytecodealliance/rustix -License: MIT (upstream declares: Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Dan Gohman - - Jakub Konka - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -rustix 1.1.4 --------------------------------------------------------------------------------- -Source: https://github.com/bytecodealliance/rustix -License: MIT (upstream declares: Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Dan Gohman - - Jakub Konka - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -rustls 0.23.37 --------------------------------------------------------------------------------- -Source: https://github.com/rustls/rustls -License: MIT (upstream declares: Apache-2.0 OR ISC OR MIT) - -Copyright notice: - Copyright (c) 2016, Joseph Birr-Pixton - Copyright (c) 2016 Joseph Birr-Pixton - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR ISC OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -rustls-native-certs 0.8.2 --------------------------------------------------------------------------------- -Source: https://github.com/rustls/rustls-native-certs -License: MIT (upstream declares: Apache-2.0 OR ISC OR MIT) - -Copyright notice: - Copyright (c) 2016, Joseph Birr-Pixton - Copyright (c) 2016 Joseph Birr-Pixton - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR ISC OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -rustls-pki-types 1.14.0 --------------------------------------------------------------------------------- -Source: https://github.com/rustls/pki-types -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2023 Dirkjan Ochtman - Copyright (c) 2023 Dirkjan Ochtman - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -rustls-platform-verifier 0.6.2 --------------------------------------------------------------------------------- -Source: https://github.com/rustls/rustls-platform-verifier -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2022 1Password - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -rustls-webpki 0.103.13 --------------------------------------------------------------------------------- -Source: https://github.com/rustls/webpki -License: ISC - -Copyright notice: - Copyright 2015 Brian Smith. - -License text: see Part II — ISC - --------------------------------------------------------------------------------- -rustversion 1.0.22 --------------------------------------------------------------------------------- -Source: https://github.com/dtolnay/rustversion -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - David Tolnay - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -rustybuzz 0.20.1 --------------------------------------------------------------------------------- -Source: https://github.com/harfbuzz/rustybuzz -License: MIT - -Copyright notice: - Copyright (c) HarfBuzz developers - Copyright (c) 2020 Yevhenii Reizner - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -ryu 1.0.20 --------------------------------------------------------------------------------- -Source: https://github.com/dtolnay/ryu -License: Apache-2.0 (upstream declares: Apache-2.0 OR BSL-1.0) - -Copyright notice: - Copyright 2018 Ulf Adams - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - Upstream license expression: Apache-2.0 OR BSL-1.0. For this distribution, obligations are satisfied under: Apache-2.0. - --------------------------------------------------------------------------------- -ryu-js 1.0.2 --------------------------------------------------------------------------------- -Source: https://github.com/boa-dev/ryu-js -License: Apache-2.0 (upstream declares: Apache-2.0 OR BSL-1.0) - -Copyright notice: - Copyright 2018 Ulf Adams - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - Upstream license expression: Apache-2.0 OR BSL-1.0. For this distribution, obligations are satisfied under: Apache-2.0. - --------------------------------------------------------------------------------- -safe_arch 0.7.4 --------------------------------------------------------------------------------- -Source: https://github.com/Lokathor/safe_arch -License: MIT (upstream declares: Zlib OR Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2023 Daniel "Lokathor" Gee. - Copyright (c) 2020 Daniel "Lokathor" Gee. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Zlib OR Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -same-file 1.0.6 --------------------------------------------------------------------------------- -Source: https://github.com/BurntSushi/same-file -License: MIT (upstream declares: Unlicense/MIT) - -Copyright notice: - Copyright (c) 2017 Andrew Gallant - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Unlicense/MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -schannel 0.1.28 --------------------------------------------------------------------------------- -Source: https://github.com/steffengy/schannel-rs -License: MIT - -Copyright notice: - Copyright (c) 2015 steffengy - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -schemars 0.8.22 --------------------------------------------------------------------------------- -Source: https://github.com/GREsau/schemars -License: MIT - -Copyright notice: - Copyright (c) 2019 Graham Esau - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -schemars 1.0.4 --------------------------------------------------------------------------------- -Source: https://github.com/GREsau/schemars -License: MIT - -Copyright notice: - Copyright (c) 2019 Graham Esau - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -schemars_derive 0.8.22 --------------------------------------------------------------------------------- -Source: https://github.com/GREsau/schemars -License: MIT - -Copyright notice: - Copyright (c) 2019 Graham Esau - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -schemars_derive 1.0.4 --------------------------------------------------------------------------------- -Source: https://github.com/GREsau/schemars -License: MIT - -Copyright notice: - Copyright (c) 2019 Graham Esau - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -scopeguard 1.2.0 --------------------------------------------------------------------------------- -Source: https://github.com/bluss/scopeguard -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016-2019 Ulrik Sverdrup "bluss" and scopeguard developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -scraper 0.18.1 --------------------------------------------------------------------------------- -Source: https://github.com/causal-agent/scraper -License: ISC - -Copyright notice: - Copyright © 2016, June McEnroe - Copyright © 2017, Vivek Kushwaha - -License text: see Part II — ISC - --------------------------------------------------------------------------------- -scraper 0.23.1 --------------------------------------------------------------------------------- -Source: https://github.com/causal-agent/scraper -License: ISC - -Copyright notice: - Copyright holders / authors (from package metadata): - - June McEnroe - -License text: see Part II — ISC - --------------------------------------------------------------------------------- -sec1 0.7.3 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/formats/tree/master/sec1 -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2021-2022 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -secrecy 0.10.3 --------------------------------------------------------------------------------- -Source: https://github.com/iqlusioninc/crates/tree/main/secrecy -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2019-2024 iqlusion - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -security-framework 3.5.1 --------------------------------------------------------------------------------- -Source: https://github.com/kornelski/rust-security-framework -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015 Steven Fackler - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -security-framework-sys 2.15.0 --------------------------------------------------------------------------------- -Source: https://github.com/kornelski/rust-security-framework -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015 Steven Fackler - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -selectors 0.25.0 --------------------------------------------------------------------------------- -Source: https://github.com/servo/servo -License: MPL-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - The Servo Project Developers - -License text: see Part II — MPL-2.0 - -Additional requirements / notices: - MPL-2.0 notice: Certain source files in this package are licensed under the Mozilla Public License, v. 2.0. Those files remain under the MPL-2.0; this product as a whole is not required to be licensed under the MPL-2.0. You may obtain a copy of the MPL at https://mozilla.org/MPL/2.0/. - --------------------------------------------------------------------------------- -selectors 0.26.0 --------------------------------------------------------------------------------- -Source: https://github.com/servo/stylo -License: MPL-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - The Servo Project Developers - -License text: see Part II — MPL-2.0 - -Additional requirements / notices: - MPL-2.0 notice: Certain source files in this package are licensed under the Mozilla Public License, v. 2.0. Those files remain under the MPL-2.0; this product as a whole is not required to be licensed under the MPL-2.0. You may obtain a copy of the MPL at https://mozilla.org/MPL/2.0/. - --------------------------------------------------------------------------------- -semver 1.0.28 --------------------------------------------------------------------------------- -Source: https://github.com/dtolnay/semver -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - David Tolnay - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -sentry 0.42.0 --------------------------------------------------------------------------------- -Source: https://github.com/getsentry/sentry-rust -License: MIT - -Copyright notice: - Copyright (c) 2021 Functional Software, Inc. dba Sentry - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -sentry-anyhow 0.42.0 --------------------------------------------------------------------------------- -Source: https://github.com/getsentry/sentry-rust -License: MIT - -Copyright notice: - Copyright (c) 2021 Functional Software, Inc. dba Sentry - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -sentry-backtrace 0.42.0 --------------------------------------------------------------------------------- -Source: https://github.com/getsentry/sentry-rust -License: MIT - -Copyright notice: - Copyright (c) 2021 Functional Software, Inc. dba Sentry - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -sentry-contexts 0.42.0 --------------------------------------------------------------------------------- -Source: https://github.com/getsentry/sentry-rust -License: MIT - -Copyright notice: - Copyright (c) 2021 Functional Software, Inc. dba Sentry - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -sentry-core 0.42.0 --------------------------------------------------------------------------------- -Source: https://github.com/getsentry/sentry-rust -License: MIT - -Copyright notice: - Copyright (c) 2021 Functional Software, Inc. dba Sentry - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -sentry-debug-images 0.42.0 --------------------------------------------------------------------------------- -Source: https://github.com/getsentry/sentry-rust -License: MIT - -Copyright notice: - Copyright (c) 2021 Functional Software, Inc. dba Sentry - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -sentry-panic 0.42.0 --------------------------------------------------------------------------------- -Source: https://github.com/getsentry/sentry-rust -License: MIT - -Copyright notice: - Copyright (c) 2021 Functional Software, Inc. dba Sentry - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -sentry-tracing 0.42.0 --------------------------------------------------------------------------------- -Source: https://github.com/getsentry/sentry-rust -License: MIT - -Copyright notice: - Copyright (c) 2021 Functional Software, Inc. dba Sentry - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -sentry-types 0.42.0 --------------------------------------------------------------------------------- -Source: https://github.com/getsentry/sentry-rust -License: MIT - -Copyright notice: - Copyright (c) 2021 Functional Software, Inc. dba Sentry - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -serde 1.0.228 --------------------------------------------------------------------------------- -Source: https://github.com/serde-rs/serde -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Erick Tryzelaar - - David Tolnay - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -serde-value 0.7.0 --------------------------------------------------------------------------------- -Source: https://github.com/arcnmx/serde-value -License: MIT - -Copyright notice: - Copyright (c) 2016 arcnmx - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -serde_core 1.0.228 --------------------------------------------------------------------------------- -Source: https://github.com/serde-rs/serde -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Erick Tryzelaar - - David Tolnay - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -serde_derive 1.0.228 --------------------------------------------------------------------------------- -Source: https://github.com/serde-rs/serde -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Erick Tryzelaar - - David Tolnay - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -serde_derive_internals 0.29.1 --------------------------------------------------------------------------------- -Source: https://github.com/serde-rs/serde -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Erick Tryzelaar - - David Tolnay - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -serde_ignored 0.1.14 --------------------------------------------------------------------------------- -Source: https://github.com/dtolnay/serde-ignored -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - David Tolnay - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -serde_json 1.0.149 --------------------------------------------------------------------------------- -Source: https://github.com/serde-rs/json -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Erick Tryzelaar - - David Tolnay - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -serde_json_canonicalizer 0.3.2 --------------------------------------------------------------------------------- -Source: https://github.com/evik42/serde-json-canonicalizer -License: MIT - -Copyright notice: - Copyright (c) 2023 Attila Mravik - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -serde_path_to_error 0.1.20 --------------------------------------------------------------------------------- -Source: https://github.com/dtolnay/path-to-error -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - David Tolnay - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -serde_repr 0.1.20 --------------------------------------------------------------------------------- -Source: https://github.com/dtolnay/serde-repr -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - David Tolnay - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -serde_spanned 0.6.9 --------------------------------------------------------------------------------- -Source: https://github.com/toml-rs/toml -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -serde_spanned 1.0.4 --------------------------------------------------------------------------------- -Source: https://github.com/toml-rs/toml -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -serde_tokenstream 0.2.3 --------------------------------------------------------------------------------- -Source: https://github.com/oxidecomputer/serde_tokenstream -License: Apache-2.0 - -Copyright notice: - Copyright 2026 Oxide Computer Company - Copyright 2022 Oxide Computer Company - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -serde_urlencoded 0.7.1 --------------------------------------------------------------------------------- -Source: https://github.com/nox/serde_urlencoded -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2016 Anthony Ramine - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -serde_yaml 0.9.34+deprecated --------------------------------------------------------------------------------- -Source: https://github.com/dtolnay/serde-yaml -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - David Tolnay - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -serial2 0.2.34 --------------------------------------------------------------------------------- -Source: https://github.com/de-vri-es/serial2-rs -License: BSD-2-Clause (upstream declares: BSD-2-Clause OR Apache-2.0) - -Copyright notice: - Copyright 2021, Maarten de Vries - Copyright (c) 2021, Maarten de Vries - -License text: see Part II — BSD-2-Clause - -Additional requirements / notices: - Upstream license expression: BSD-2-Clause OR Apache-2.0. For this distribution, obligations are satisfied under: BSD-2-Clause. - --------------------------------------------------------------------------------- -servo_arc 0.3.0 --------------------------------------------------------------------------------- -Source: https://github.com/servo/servo -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - The Servo Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -servo_arc 0.4.3 --------------------------------------------------------------------------------- -Source: https://github.com/servo/stylo -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - The Servo Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -sha1 0.10.6 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/hashes -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2006-2009 Graydon Hoare - Copyright (c) 2009-2013 Mozilla Foundation - Copyright (c) 2016 Artyom Pavlov - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -sha1-checked 0.10.0 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/hashes -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2024 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -sha1_smol 1.0.1 --------------------------------------------------------------------------------- -Source: https://github.com/mitsuhiko/sha1-smol -License: BSD-3-Clause - -Copyright notice: - Copyright (c) 2018, the respective contributors, as shown by the AUTHORS file. - Copyright (c) 2006-2009 Graydon Hoare - Copyright (c) 2009-2013 Mozilla Foundation - -License text: see Part II — BSD-3-Clause - --------------------------------------------------------------------------------- -sha2 0.10.9 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/hashes -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2006-2009 Graydon Hoare - Copyright (c) 2009-2013 Mozilla Foundation - Copyright (c) 2016 Artyom Pavlov - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -sha2 0.11.0 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/hashes -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016-2026 The RustCrypto Project Developers - Copyright (c) 2016 Artyom Pavlov - Copyright (c) 2009-2013 Mozilla Foundation - Copyright (c) 2006-2009 Graydon Hoare - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -sha256 1.6.0 --------------------------------------------------------------------------------- -Source: https://github.com/baoyachi/sha256-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2021-present baoyachi and others - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -sharded-slab 0.1.7 --------------------------------------------------------------------------------- -Source: https://github.com/hawkw/sharded-slab -License: MIT - -Copyright notice: - Copyright (c) 2019 Eliza Weisman - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -shared_library 0.1.9 --------------------------------------------------------------------------------- -Source: https://github.com/tomaka/shared_library -License: MIT (upstream declares: Apache-2.0/MIT) - -Copyright notice: - Copyright (c) 2017 Pierre Krieger - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0/MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -shell-words 1.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/tmiasko/shell-words -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2016 Tomasz Miąsko - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -shellexpand 3.1.2 --------------------------------------------------------------------------------- -Source: https://gitlab.com/ijackson/rust-shellexpand -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2016 Vladimir Matveev - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -shlex 1.3.0 --------------------------------------------------------------------------------- -Source: https://github.com/comex/rust-shlex -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2015 Nicholas Allegra (comex). - Copyright (c) 2015 Nicholas Allegra (comex). - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -signal-hook 0.3.18 --------------------------------------------------------------------------------- -Source: https://github.com/vorner/signal-hook -License: MIT (upstream declares: Apache-2.0/MIT) - -Copyright notice: - Copyright (c) 2017 tokio-jsonrpc developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0/MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -signal-hook-mio 0.2.5 --------------------------------------------------------------------------------- -Source: https://github.com/vorner/signal-hook -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2017 tokio-jsonrpc developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -signal-hook-registry 1.4.6 --------------------------------------------------------------------------------- -Source: https://github.com/vorner/signal-hook -License: MIT (upstream declares: Apache-2.0/MIT) - -Copyright notice: - Copyright (c) 2017 tokio-jsonrpc developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0/MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -signature 2.2.0 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/traits/tree/master/signature -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2018-2023 RustCrypto Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -sigstore-bundle 0.6.6 --------------------------------------------------------------------------------- -Source: https://github.com/prefix-dev/sigstore-rust -License: Apache-2.0 - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -sigstore-crypto 0.6.6 --------------------------------------------------------------------------------- -Source: https://github.com/prefix-dev/sigstore-rust -License: Apache-2.0 - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -sigstore-merkle 0.6.6 --------------------------------------------------------------------------------- -Source: https://github.com/prefix-dev/sigstore-rust -License: Apache-2.0 - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -sigstore-rekor 0.6.6 --------------------------------------------------------------------------------- -Source: https://github.com/prefix-dev/sigstore-rust -License: Apache-2.0 - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -sigstore-trust-root 0.6.3 --------------------------------------------------------------------------------- -Source: https://github.com/prefix-dev/sigstore-rust -License: BSD-3-Clause - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — BSD-3-Clause - --------------------------------------------------------------------------------- -sigstore-tsa 0.6.6 --------------------------------------------------------------------------------- -Source: https://github.com/prefix-dev/sigstore-rust -License: Apache-2.0 - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -sigstore-types 0.6.6 --------------------------------------------------------------------------------- -Source: https://github.com/prefix-dev/sigstore-rust -License: Apache-2.0 - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -sigstore-verify 0.6.3 --------------------------------------------------------------------------------- -Source: https://github.com/prefix-dev/sigstore-rust -License: BSD-3-Clause - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — BSD-3-Clause - --------------------------------------------------------------------------------- -simba 0.9.1 --------------------------------------------------------------------------------- -Source: https://github.com/dimforge/simba -License: Apache-2.0 - -Copyright notice: - Copyright 2020 Sébastien Crozet - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -simd-adler32 0.3.7 --------------------------------------------------------------------------------- -Source: https://github.com/mcountryman/simd-adler32 -License: MIT - -Copyright notice: - Copyright (c) [2021] [Marvin Countryman] - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -simdutf8 0.1.5 --------------------------------------------------------------------------------- -Source: https://github.com/rusticstuff/simdutf8 -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Hans Kratz - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -similar 2.7.0 --------------------------------------------------------------------------------- -Source: https://github.com/mitsuhiko/similar -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - Armin Ronacher - - Pierre-Étienne Meunier - - Brandon Williams - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -simple_asn1 0.6.3 --------------------------------------------------------------------------------- -Source: https://github.com/acw/simple_asn1 -License: ISC - -Copyright notice: - Copyright (c) 2017 Adam Wick - -License text: see Part II — ISC - --------------------------------------------------------------------------------- -simplecss 0.2.2 --------------------------------------------------------------------------------- -Source: https://github.com/linebender/simplecss -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2018 Reizner Evgeniy - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -siphasher 0.3.11 --------------------------------------------------------------------------------- -Source: https://github.com/jedisct1/rust-siphash -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright 2012-2016 The Rust Project Developers. - Copyright 2016-2023 Frank Denis. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -siphasher 1.0.3 --------------------------------------------------------------------------------- -Source: https://github.com/jedisct1/rust-siphash -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright 2012-2016 The Rust Project Developers. - Copyright 2016-2026 Frank Denis. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -sketches-ddsketch 0.2.2 --------------------------------------------------------------------------------- -Source: https://github.com/mheffner/rust-sketches-ddsketch -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - Mike Heffner - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -skrifa 0.37.0 --------------------------------------------------------------------------------- -Source: https://github.com/googlefonts/fontations -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2019 Colin Rothfels - Copyright (c) 2019 Colin Rothfels - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -slab 0.4.11 --------------------------------------------------------------------------------- -Source: https://github.com/tokio-rs/slab -License: MIT - -Copyright notice: - Copyright (c) 2019 Carl Lerche - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -slotmap 1.0.7 --------------------------------------------------------------------------------- -Source: https://github.com/orlp/slotmap -License: Zlib - -Copyright notice: - Copyright (c) 2021 Orson Peters - -License text: see Part II — Zlib - -Additional requirements / notices: - Zlib additional terms: this package is used unmodified; no changes were made to the upstream source as incorporated via crates.io. - --------------------------------------------------------------------------------- -small_ctor 0.1.2 --------------------------------------------------------------------------------- -Source: https://github.com/mitsuhiko/small-ctor -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - Armin Ronacher - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -smallvec 1.15.1 --------------------------------------------------------------------------------- -Source: https://github.com/servo/rust-smallvec -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018 The Servo Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -smawk 0.3.2 --------------------------------------------------------------------------------- -Source: https://github.com/mgeisler/smawk -License: MIT - -Copyright notice: - Copyright (c) 2017 Martin Geisler - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -socket2 0.6.4 --------------------------------------------------------------------------------- -Source: https://github.com/rust-lang/socket2 -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 Alex Crichton - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -spez 0.1.2 --------------------------------------------------------------------------------- -Source: https://github.com/m-ou-se/spez -License: BSD-2-Clause - -Copyright notice: - Copyright (c) 2020, Mara Bos - -License text: see Part II — BSD-2-Clause - --------------------------------------------------------------------------------- -spin 0.9.8 --------------------------------------------------------------------------------- -Source: https://github.com/mvdnes/spin-rs -License: MIT - -Copyright notice: - Copyright (c) 2014 Mathijs van de Nes - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -spin 0.10.0 --------------------------------------------------------------------------------- -Source: https://github.com/mvdnes/spin-rs -License: MIT - -Copyright notice: - Copyright (c) 2014 Mathijs van de Nes - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -spki 0.7.3 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/formats/tree/master/spki -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2021-2023 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -sqlite-vec 0.1.7-alpha.2 --------------------------------------------------------------------------------- -Source: https://github.com/asg017/sqlite-vec -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Alex Garcia - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -sqlx 0.8.6 --------------------------------------------------------------------------------- -Source: https://github.com/launchbadge/sqlx -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2020 LaunchBadge, LLC - Copyright (c) 2020 LaunchBadge, LLC - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -sqlx-core 0.8.6 --------------------------------------------------------------------------------- -Source: https://github.com/launchbadge/sqlx -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2020 LaunchBadge, LLC - Copyright (c) 2020 LaunchBadge, LLC - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -sqlx-macros 0.8.6 --------------------------------------------------------------------------------- -Source: https://github.com/launchbadge/sqlx -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2020 LaunchBadge, LLC - Copyright (c) 2020 LaunchBadge, LLC - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -sqlx-macros-core 0.8.6 --------------------------------------------------------------------------------- -Source: https://github.com/launchbadge/sqlx -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2020 LaunchBadge, LLC - Copyright (c) 2020 LaunchBadge, LLC - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -sse-stream 0.2.1 --------------------------------------------------------------------------------- -Source: https://github.com/4t145/sse-stream -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - 4t145 - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -stable_deref_trait 1.2.1 --------------------------------------------------------------------------------- -Source: https://github.com/storyyeller/stable_deref_trait -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2017 Robert Grosse - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -static_assertions 1.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/nvzqz/static-assertions-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2017 Nikolai Vazquez - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -statrs 0.18.0 --------------------------------------------------------------------------------- -Source: https://github.com/statrs-dev/statrs -License: MIT - -Copyright notice: - Copyright (c) 2016 Michael Ma - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -stop-words 0.9.0 --------------------------------------------------------------------------------- -Source: https://github.com/cmccomb/stop-words -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2023 Chris McComb - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -str_stack 0.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/Stebalien/str_stack -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2015 Steven Allen - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -streaming-iterator 0.1.9 --------------------------------------------------------------------------------- -Source: https://github.com/sfackler/streaming-iterator -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 Steven Fackler - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -strict-num 0.1.1 --------------------------------------------------------------------------------- -Source: https://github.com/RazrFalcon/strict-num -License: MIT - -Copyright notice: - Copyright (c) 2022 Yevhenii Reizner - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -string_cache 0.8.9 --------------------------------------------------------------------------------- -Source: https://github.com/servo/string-cache -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2012-2013 Mozilla Foundation - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -string_cache 0.9.0 --------------------------------------------------------------------------------- -Source: https://github.com/servo/string-cache -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2012-2013 Mozilla Foundation - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -string_cache_codegen 0.5.4 --------------------------------------------------------------------------------- -Source: https://github.com/servo/string-cache -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2012-2013 Mozilla Foundation - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -string_cache_codegen 0.6.1 --------------------------------------------------------------------------------- -Source: https://github.com/servo/string-cache -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2012-2013 Mozilla Foundation - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -stringprep 0.1.5 --------------------------------------------------------------------------------- -Source: https://github.com/sfackler/rust-stringprep -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2017 The rust-stringprep Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -strip-ansi-escapes 0.2.1 --------------------------------------------------------------------------------- -Source: https://github.com/luser/strip-ansi-escapes -License: MIT (upstream declares: Apache-2.0/MIT) - -Copyright notice: - Copyright (c) 2018 Mozilla - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0/MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -strsim 0.11.1 --------------------------------------------------------------------------------- -Source: https://github.com/rapidfuzz/strsim-rs -License: MIT - -Copyright notice: - Copyright (c) 2015 Danny Guo - Copyright (c) 2016 Titus Wormer - Copyright (c) 2018 Akash Kurdekar - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -strum 0.26.3 --------------------------------------------------------------------------------- -Source: https://github.com/Peternator7/strum -License: MIT - -Copyright notice: - Copyright (c) 2019 Peter Glotfelty - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -strum 0.27.2 --------------------------------------------------------------------------------- -Source: https://github.com/Peternator7/strum -License: MIT - -Copyright notice: - Copyright (c) 2019 Peter Glotfelty - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -strum 0.28.0 --------------------------------------------------------------------------------- -Source: https://github.com/Peternator7/strum -License: MIT - -Copyright notice: - Copyright (c) 2019 Peter Glotfelty - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -strum_macros 0.26.4 --------------------------------------------------------------------------------- -Source: https://github.com/Peternator7/strum -License: MIT - -Copyright notice: - Copyright (c) 2019 Peter Glotfelty - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -strum_macros 0.27.2 --------------------------------------------------------------------------------- -Source: https://github.com/Peternator7/strum -License: MIT - -Copyright notice: - Copyright (c) 2019 Peter Glotfelty - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -strum_macros 0.28.0 --------------------------------------------------------------------------------- -Source: https://github.com/Peternator7/strum -License: MIT - -Copyright notice: - Copyright (c) 2019 Peter Glotfelty - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -subsetter 0.2.3 --------------------------------------------------------------------------------- -Source: https://github.com/typst/subsetter -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018 Yevhenii Reizner - Copyright (c) 2017 Just van Rossum - fonts/Syne-Regular_subset.oft (Copyright 2017 The Syne Project Authors (https://gitlab.com/bonjour-monde/fonderie/syne-typeface)) - Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is - Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - ADDITIONAL UPSTREAM NOTICES: - # Code - - ttf-parser - Code from ttf-parser was used/adapted for the following parts: - - Reader, Writer, LazyArray16 and LazyArray16Iter - - `name` table parsing. - - `hmtx` table parsing. - - Most of the `cff` parsing logic as well auxiliary structs and functions - such as `calc_subroutine_bias`, `SIDMetadata`, `CIDMetadata` `RealNumber`, - `Index`, `IndexSize`, `OffsetSize`, `FDSelect`, `ArgumentStack`, `Top Dict` and `FONT Dict`, - `DictionaryParser`. - - The MIT license applies: - - Copyright (c) 2018 Yevhenii Reizner - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. - - ============================================================================== - - fonttools - Code from fonttools was used/adapted for the following parts: - - The `Decompiler` for charstrings. - - The MIT license applies: - MIT License - - Copyright (c) 2017 Just van Rossum - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. - - # Fonts - - The SIL OPEN FONT LICENSE Version 1.1 applies to the following fonts: - - fonts/ClickerScript-Regular.ttf - - fonts/MPLUS1p-Regular.ttf - - fonts/Cantarell-VF.otf - - fonts/NotoSans-Regular.ttf - - fonts/NotoSans-Regular_var.ttf - - fonts/NotoSansCJKsc-Bold-subset1.otf - - fonts/NotoSansCJKsc-Regular.otf - - fonts/Syne-Regular_subset.oft (Copyright 2017 The Syne Project Authors (https://gitlab.com/bonjour-monde/fonderie/syne-typeface)) - - ----------------------------------------------------------- - SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 - ----------------------------------------------------------- - - PREAMBLE - The goals of the Open Font License (OFL) are to stimulate worldwide - development of collaborative font projects, to support the font creation - efforts of academic and linguistic communities, and to provide a free and - open framework in which fonts may be shared and improved in partnership - with others. - - The OFL allows the licensed fonts to be used, studied, modified and - redistributed freely as long as they are not sold by themselves. The - fonts, including any derivative works, can be bundled, embedded, - redistributed and/or sold with any software provided that any reserved - names are not used by derivative works. The fonts and derivatives, - however, cannot be released under any other type of license. The - requirement for fonts to remain under this license does not apply - to any document created using the fonts or their derivatives. - - DEFINITIONS - "Font Software" refers to the set of files released by the Copyright - Holder(s) under this license and clearly marked as such. This may - include source files, build scripts and documentation. - - "Reserved Font Name" refers to any names specified as such after the - copyright statement(s). - - "Original Version" refers to the collection of Font Software components as - distributed by the Copyright Holder(s). - - "Modified Version" refers to any derivative made by adding to, deleting, - or substituting -- in part or in whole -- any of the components of the - Original Version, by changing formats or by porting the Font Software to a - new environment. - - "Author" refers to any designer, engineer, programmer, technical - writer or other person who contributed to the Font Software. - - PERMISSION & CONDITIONS - Permission is hereby granted, free of charge, to any person obtaining - a copy of the Font Software, to use, study, copy, merge, embed, modify, - redistribute, and sell modified and unmodified copies of the Font - Software, subject to the following conditions: - - 1) Neither the Font Software nor any of its individual components, - in Original or Modified Versions, may be sold by itself. - - 2) Original or Modified Versions of the Font Software may be bundled, - redistributed and/or sold with any software, provided that each copy - contains the above copyright notice and this license. These can be - included either as stand-alone text files, human-readable headers or - in the appropriate machine-readable metadata fields within text or - binary files as long as those fields can be easily viewed by the user. - - 3) No Modified Version of the Font Software may use the Reserved Font - Name(s) unless explicit written permission is granted by the corresponding - Copyright Holder. This restriction only applies to the primary font name as - presented to the users. - - 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font - Software shall not be used to promote, endorse or advertise any - Modified Version, except to acknowledge the contribution(s) of the - Copyright Holder(s) and the Author(s) or with their explicit written - permission. - - 5) The Font Software, modified or unmodified, in part or in whole, - must be distributed entirely under this license, and must not be - distributed under any other license. The requirement for fonts to - remain under this license does not apply to any document created - using the Font Software. - - TERMINATION - This license becomes null and void if any of the above conditions are - not met. - - DISCLAIMER - THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT - OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE - COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL - DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM - OTHER DEALINGS IN THE FONT SOFTWARE. - - ============================================================================== - - The Bitstream Vera Fonts license applies to the following fonts: - - fonts/DejaVuSansMono.ttf - - Bitstream Vera Fonts Copyright - ——————————————— - - Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is - a trademark of Bitstream, Inc. - - Permission is hereby granted, free of charge, to any person obtaining a copy - of the fonts accompanying this license (“Fonts”) and associated - documentation files (the “Font Software”), to reproduce and distribute the - Font Software, including without limitation the rights to use, copy, merge, - publish, distribute, and/or sell copies of the Font Software, and to permit - persons to whom the Font Software is furnished to do so, subject to the - following conditions: - - The above copyright and trademark notices and this permission notice shall - be included in all copies of one or more of the Font Software typefaces. - - The Font Software may be modified, altered, or added to, and in particular - the designs of glyphs or characters in the Fonts may be modified and - additional glyphs or characters may be added to the Fonts, only if the fonts - are renamed to names not containing either the words “Bitstream” or the word - “Vera”. - - This License becomes null and void to the extent applicable to Fonts or Font - Software that has been modified and is distributed under the “Bitstream - Vera” names. - - The Font Software may be sold as part of a larger software package but no - copy of one or more of the Font Software typefaces may be sold by itself. - - THE FONT SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS - OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, - TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME - FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING - ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF - THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE - FONT SOFTWARE. - - Except as contained in this notice, the names of Gnome, the Gnome - Foundation, and Bitstream Inc., shall not be used in advertising or - otherwise to promote the sale, use or other dealings in this Font Software - without prior written authorization from the Gnome Foundation or Bitstream - Inc., respectively. For further information, contact: fonts at gnome dot - org. - - Arev Fonts Copyright - ——————————————— - - Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. - - Permission is hereby granted, free of charge, to any person obtaining - a copy of the fonts accompanying this license (“Fonts”) and - associated documentation files (the “Font Software”), to reproduce - and distribute the modifications to the Bitstream Vera Font Software, - including without limitation the rights to use, copy, merge, publish, - distribute, and/or sell copies of the Font Software, and to permit - persons to whom the Font Software is furnished to do so, subject to - the following conditions: - - The above copyright and trademark notices and this permission notice - shall be included in all copies of one or more of the Font Software - typefaces. - - The Font Software may be modified, altered, or added to, and in - particular the designs of glyphs or characters in the Fonts may be - modified and additional glyphs or characters may be added to the - Fonts, only if the fonts are renamed to names not containing either - the words “Tavmjong Bah” or the word “Arev”. - - This License becomes null and void to the extent applicable to Fonts - or Font Software that has been modified and is distributed under the - “Tavmjong Bah Arev” names. - - The Font Software may be sold as part of a larger software package but - no copy of one or more of the Font Software typefaces may be sold by - itself. - - THE FONT SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT - OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL - TAVMJONG BAH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL - DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM - OTHER DEALINGS IN THE FONT SOFTWARE. - - Except as contained in this notice, the name of Tavmjong Bah shall not - be used in advertising or otherwise to promote the sale, use or other - dealings in this Font Software without prior written authorization - from Tavmjong Bah. For further information, contact: tavmjong @ free - . fr. - - ============================================================================== - - The GUST font license applies to the following fonts: - - fonts/LatinModernRoman-Regular.otf - - fonts/NewCMMath-Regular.otf - - % This is version 1.0, dated 22 June 2009, of the GUST Font License. - % (GUST is the Polish TeX Users Group, http://www.gust.org.pl) - % - % For the most recent version of this license see - % http://www.gust.org.pl/fonts/licenses/GUST-FONT-LICENSE.txt - % or - % http://tug.org/fonts/licenses/GUST-FONT-LICENSE.txt - % - % This work may be distributed and/or modified under the conditions - % of the LaTeX Project Public License, either version 1.3c of this - % license or (at your option) any later version. - % - % Please also observe the following clause: - % 1) it is requested, but not legally required, that derived works be - % distributed only after changing the names of the fonts comprising this - % work and given in an accompanying "manifest", and that the - % files comprising the Work, as listed in the manifest, also be given - % new names. Any exceptions to this request are also given in the - % manifest. - % - % We recommend the manifest be given in a separate file named - % MANIFEST-.txt, where is some unique identification - % of the font family. If a separate "readme" file accompanies the Work, - % we recommend a name of the form README-.txt. - % - % The latest version of the LaTeX Project Public License is in - % http://www.latex-project.org/lppl.txt and version 1.3c or later - % is part of all distributions of LaTeX version 2006/05/20 or later. - - ============================================================================== - - The Apache 2.0 license applies to the following fonts: - - fonts/Roboto-Regular.ttf - - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - ============================================================================== - - The MIT license applies to the following fonts: - - fonts/TestTTC.ttc - - MIT License - - Copyright (c) 2017 Just van Rossum - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. - --------------------------------------------------------------------------------- -subtle 2.6.1 --------------------------------------------------------------------------------- -Source: https://github.com/dalek-cryptography/subtle -License: BSD-3-Clause - -Copyright notice: - Copyright (c) 2016-2017 Isis Agora Lovecruft, Henry de Valence. All rights reserved. - Copyright (c) 2016-2024 Isis Agora Lovecruft. All rights reserved. - -License text: see Part II — BSD-3-Clause - --------------------------------------------------------------------------------- -supports-color 3.0.2 --------------------------------------------------------------------------------- -Source: https://github.com/zkat/supports-color -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - Kat Marchán - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -svgtypes 0.16.1 --------------------------------------------------------------------------------- -Source: https://github.com/linebender/svgtypes -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2018 Yevhenii Reizner - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -symbolic-common 12.16.3 --------------------------------------------------------------------------------- -Source: https://github.com/getsentry/symbolic -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - Armin Ronacher - - Jan Michael Auer - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -symbolic-demangle 12.16.3 --------------------------------------------------------------------------------- -Source: https://github.com/getsentry/symbolic -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - Armin Ronacher - - Jan Michael Auer - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -syn 1.0.109 --------------------------------------------------------------------------------- -Source: https://github.com/dtolnay/syn -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - David Tolnay - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -syn 2.0.117 --------------------------------------------------------------------------------- -Source: https://github.com/dtolnay/syn -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - David Tolnay - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -sync_wrapper 1.0.2 --------------------------------------------------------------------------------- -Source: https://github.com/Actyx/sync_wrapper -License: Apache-2.0 - -Copyright notice: - Copyright 2020 Actyx AG - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -synstructure 0.13.2 --------------------------------------------------------------------------------- -Source: https://github.com/mystor/synstructure -License: MIT - -Copyright notice: - Copyright 2016 Nika Layzell - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -syntect 5.3.0 --------------------------------------------------------------------------------- -Source: https://github.com/trishume/syntect -License: MIT - -Copyright notice: - Copyright (c) 2017 Tristan Hume, Keith Hall, Google Inc and other contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -taffy 0.10.1 --------------------------------------------------------------------------------- -Source: https://github.com/DioxusLabs/taffy -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - Alice Cecile - - Johnathan Kelley - - Nico Burns - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tagptr 0.2.0 --------------------------------------------------------------------------------- -Source: https://github.com/oliver-giersch/tagptr -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright 2021 Oliver Giersch - Copyright (c) 2021 Oliver Giersch - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -tar 0.4.46 --------------------------------------------------------------------------------- -Source: https://github.com/alexcrichton/tar-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) The tar-rs Project Contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -tdigests 1.0.1 --------------------------------------------------------------------------------- -Source: https://github.com/andylokandy/tdigests -License: MIT - -Copyright notice: - Copyright (c) 2024 Andy Lok - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tempfile 3.27.0 --------------------------------------------------------------------------------- -Source: https://github.com/Stebalien/tempfile -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015 Steven Allen - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -tendril 0.4.3 --------------------------------------------------------------------------------- -Source: https://github.com/servo/tendril -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2015 Keegan McAllister - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -tendril 0.5.0 --------------------------------------------------------------------------------- -Source: https://github.com/servo/html5ever -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015 Keegan McAllister - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -termios 0.3.3 --------------------------------------------------------------------------------- -Source: https://github.com/dcuddeback/termios-rs -License: MIT - -Copyright notice: - Copyright (c) 2015 David Cuddeback - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -termtree 0.5.1 --------------------------------------------------------------------------------- -Source: https://github.com/rust-cli/termtree -License: MIT - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -termwiz 0.23.3 --------------------------------------------------------------------------------- -Source: https://github.com/wezterm/wezterm -License: MIT - -Copyright notice: - Copyright (c) 2018 Wez Furlong - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -textwrap 0.16.2 --------------------------------------------------------------------------------- -Source: https://github.com/mgeisler/textwrap -License: MIT - -Copyright notice: - Copyright (c) 2016 Martin Geisler - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -thiserror 1.0.69 --------------------------------------------------------------------------------- -Source: https://github.com/dtolnay/thiserror -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - David Tolnay - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -thiserror 2.0.18 --------------------------------------------------------------------------------- -Source: https://github.com/dtolnay/thiserror -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - David Tolnay - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -thiserror-impl 1.0.69 --------------------------------------------------------------------------------- -Source: https://github.com/dtolnay/thiserror -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - David Tolnay - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -thiserror-impl 2.0.18 --------------------------------------------------------------------------------- -Source: https://github.com/dtolnay/thiserror -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - David Tolnay - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -thread_local 1.1.9 --------------------------------------------------------------------------------- -Source: https://github.com/Amanieu/thread_local-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -tiff 0.9.1 --------------------------------------------------------------------------------- -Source: https://github.com/image-rs/image-tiff -License: MIT - -Copyright notice: - Copyright (c) 2018 PistonDevelopers - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tiff 0.10.3 --------------------------------------------------------------------------------- -Source: https://github.com/image-rs/image-tiff -License: MIT - -Copyright notice: - Copyright (c) 2018 PistonDevelopers - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tikv-jemalloc-ctl 0.6.1 --------------------------------------------------------------------------------- -Source: https://github.com/tikv/jemallocator -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2017 Steven Fackler - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -tikv-jemalloc-sys 0.6.1+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7 --------------------------------------------------------------------------------- -Source: https://github.com/tikv/jemallocator -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2014 Alex Crichton - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -tikv-jemallocator 0.6.1 --------------------------------------------------------------------------------- -Source: https://github.com/tikv/jemallocator -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2014 Alex Crichton - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -time 0.3.47 --------------------------------------------------------------------------------- -Source: https://github.com/time-rs/time -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Jacob Pratt et al. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -time-core 0.1.8 --------------------------------------------------------------------------------- -Source: https://github.com/time-rs/time -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Jacob Pratt et al. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -time-macros 0.2.27 --------------------------------------------------------------------------------- -Source: https://github.com/time-rs/time -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Jacob Pratt et al. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -tiny-skia 0.12.0 --------------------------------------------------------------------------------- -Source: https://github.com/linebender/tiny-skia -License: BSD-3-Clause - -Copyright notice: - Copyright (c) 2011 Google Inc. All rights reserved. - Copyright (c) 2020 Yevhenii Reizner All rights reserved. - -License text: see Part II — BSD-3-Clause - --------------------------------------------------------------------------------- -tiny-skia-path 0.12.0 --------------------------------------------------------------------------------- -Source: https://github.com/linebender/tiny-skia/tree/master/path -License: BSD-3-Clause - -Copyright notice: - Copyright (c) 2011 Google Inc. All rights reserved. - Copyright (c) 2020 Yevhenii Reizner All rights reserved. - -License text: see Part II — BSD-3-Clause - --------------------------------------------------------------------------------- -tinystr 0.8.1 --------------------------------------------------------------------------------- -Source: https://github.com/unicode-org/icu4x -License: Unicode-3.0 - -Copyright notice: - Copyright © 2020-2024 Unicode, Inc. - ICU 1.8.1 to ICU 57.1 © 1995-2016 International Business Machines Corporation and others. - -License text: see Part II — Unicode-3.0 - --------------------------------------------------------------------------------- -tinyvec 1.10.0 --------------------------------------------------------------------------------- -Source: https://github.com/Lokathor/tinyvec -License: MIT (upstream declares: Zlib OR Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2019 Daniel "Lokathor" Gee. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Zlib OR Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -tinyvec_macros 0.1.1 --------------------------------------------------------------------------------- -Source: https://github.com/Soveu/tinyvec_macros -License: MIT (upstream declares: MIT OR Apache-2.0 OR Zlib) - -Copyright notice: - Copyright (c) 2020 Soveu - (C) 2020 Tomasz "Soveu" Marx - Copyright 2020 Tomasz "Soveu" Marx - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0 OR Zlib. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -tls_codec 0.4.2 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/formats -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2020 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -tls_codec_derive 0.4.2 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/formats -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2020 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -token-source 1.0.0 --------------------------------------------------------------------------------- -Source: https://github.com/nicolas-vivot/token-source/tree/main -License: MIT - -Copyright notice: - Copyright (c) 2025 nvivot - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tokio 1.52.3 --------------------------------------------------------------------------------- -Source: https://github.com/tokio-rs/tokio -License: MIT - -Copyright notice: - Copyright (c) Tokio Contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tokio-macros 2.7.0 --------------------------------------------------------------------------------- -Source: https://github.com/tokio-rs/tokio -License: MIT - -Copyright notice: - Copyright (c) 2019 Yoshua Wuyts - Copyright (c) Tokio Contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tokio-retry 0.3.0 --------------------------------------------------------------------------------- -Source: https://github.com/srijs/rust-tokio-retry -License: MIT - -Copyright notice: - Copyright (c) 2017 Sam Rijs - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tokio-rustls 0.26.4 --------------------------------------------------------------------------------- -Source: https://github.com/rustls/tokio-rustls -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2017 quininer kel - Copyright (c) 2017 quininer kel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -tokio-stream 0.1.17 --------------------------------------------------------------------------------- -Source: https://github.com/tokio-rs/tokio -License: MIT - -Copyright notice: - Copyright (c) Tokio Contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tokio-tungstenite 0.27.0 --------------------------------------------------------------------------------- -Source: https://github.com/snapview/tokio-tungstenite -License: MIT - -Copyright notice: - Copyright (c) 2017 Daniel Abramov - Copyright (c) 2017 Alexey Galakhov - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tokio-tungstenite 0.28.0 --------------------------------------------------------------------------------- -Source: https://github.com/snapview/tokio-tungstenite -License: MIT - -Copyright notice: - Copyright (c) 2017 Daniel Abramov - Copyright (c) 2017 Alexey Galakhov - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tokio-util 0.7.17 --------------------------------------------------------------------------------- -Source: https://github.com/tokio-rs/tokio -License: MIT - -Copyright notice: - Copyright (c) Tokio Contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -toml 0.9.12+spec-1.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/toml-rs/toml -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -toml_datetime 0.6.11 --------------------------------------------------------------------------------- -Source: https://github.com/toml-rs/toml -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -toml_datetime 0.7.5+spec-1.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/toml-rs/toml -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -toml_edit 0.22.27 --------------------------------------------------------------------------------- -Source: https://github.com/toml-rs/toml -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -toml_edit 0.23.7 --------------------------------------------------------------------------------- -Source: https://github.com/toml-rs/toml -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -toml_parser 1.0.9+spec-1.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/toml-rs/toml -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -toml_write 0.1.2 --------------------------------------------------------------------------------- -Source: https://github.com/toml-rs/toml -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -toml_writer 1.0.6+spec-1.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/toml-rs/toml -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Individual contributors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -tonic 0.14.3 --------------------------------------------------------------------------------- -Source: https://github.com/hyperium/tonic -License: MIT - -Copyright notice: - Copyright (c) 2025 Lucio Franco - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tonic-build 0.14.3 --------------------------------------------------------------------------------- -Source: https://github.com/hyperium/tonic -License: MIT - -Copyright notice: - Copyright (c) 2025 Lucio Franco - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tonic-prost 0.14.3 --------------------------------------------------------------------------------- -Source: https://github.com/hyperium/tonic -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - Lucio Franco - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tonic-prost-build 0.14.3 --------------------------------------------------------------------------------- -Source: https://github.com/hyperium/tonic -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - Lucio Franco - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tonic-reflection 0.14.5 --------------------------------------------------------------------------------- -Source: https://github.com/hyperium/tonic -License: MIT - -Copyright notice: - Copyright (c) 2025 Lucio Franco - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tonic-types 0.14.5 --------------------------------------------------------------------------------- -Source: https://github.com/hyperium/tonic -License: MIT - -Copyright notice: - Copyright (c) 2025 Lucio Franco - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tonic-web 0.14.5 --------------------------------------------------------------------------------- -Source: https://github.com/hyperium/tonic -License: MIT - -Copyright notice: - Copyright (c) 2025 Lucio Franco - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tower 0.5.2 --------------------------------------------------------------------------------- -Source: https://github.com/tower-rs/tower -License: MIT - -Copyright notice: - Copyright (c) 2019 Tower Contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tower-http 0.6.8 --------------------------------------------------------------------------------- -Source: https://github.com/tower-rs/tower-http -License: MIT - -Copyright notice: - Copyright (c) 2019-2021 Tower Contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tower-layer 0.3.3 --------------------------------------------------------------------------------- -Source: https://github.com/tower-rs/tower -License: MIT - -Copyright notice: - Copyright (c) 2019 Tower Contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tower-service 0.3.3 --------------------------------------------------------------------------------- -Source: https://github.com/tower-rs/tower -License: MIT - -Copyright notice: - Copyright (c) 2019 Tower Contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tracing 0.1.44 --------------------------------------------------------------------------------- -Source: https://github.com/tokio-rs/tracing -License: MIT - -Copyright notice: - Copyright (c) 2019 Tokio Contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tracing-appender 0.2.4 --------------------------------------------------------------------------------- -Source: https://github.com/tokio-rs/tracing -License: MIT - -Copyright notice: - Copyright (c) 2019 Tokio Contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tracing-attributes 0.1.31 --------------------------------------------------------------------------------- -Source: https://github.com/tokio-rs/tracing -License: MIT - -Copyright notice: - Copyright (c) 2019 Tokio Contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tracing-chrome 0.7.2 --------------------------------------------------------------------------------- -Source: https://github.com/thoren-d/tracing-chrome -License: MIT - -Copyright notice: - Copyright (c) 2020 Thoren Paulson - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tracing-core 0.1.36 --------------------------------------------------------------------------------- -Source: https://github.com/tokio-rs/tracing -License: MIT - -Copyright notice: - Copyright (c) 2019 Tokio Contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tracing-log 0.2.0 --------------------------------------------------------------------------------- -Source: https://github.com/tokio-rs/tracing -License: MIT - -Copyright notice: - Copyright (c) 2019 Tokio Contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tracing-opentelemetry 0.33.0 --------------------------------------------------------------------------------- -Source: https://github.com/tokio-rs/tracing-opentelemetry -License: MIT - -Copyright notice: - Copyright (c) 2019 Tokio Contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tracing-serde 0.2.0 --------------------------------------------------------------------------------- -Source: https://github.com/tokio-rs/tracing -License: MIT - -Copyright notice: - Copyright (c) 2019 Tokio Contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tracing-subscriber 0.3.23 --------------------------------------------------------------------------------- -Source: https://github.com/tokio-rs/tracing -License: MIT - -Copyright notice: - Copyright (c) 2019 Tokio Contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tree-sitter 0.25.10 --------------------------------------------------------------------------------- -Source: https://github.com/tree-sitter/tree-sitter -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - Max Brunsfeld - - Amaan Qureshi - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tree-sitter-bash 0.25.0 --------------------------------------------------------------------------------- -Source: https://github.com/tree-sitter/tree-sitter-bash -License: MIT - -Copyright notice: - Copyright (c) 2017 Max Brunsfeld - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tree-sitter-go 0.25.0 --------------------------------------------------------------------------------- -Source: https://github.com/tree-sitter/tree-sitter-go -License: MIT - -Copyright notice: - Copyright (c) 2014 Max Brunsfeld - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tree-sitter-javascript 0.25.0 --------------------------------------------------------------------------------- -Source: https://github.com/tree-sitter/tree-sitter-javascript -License: MIT - -Copyright notice: - Copyright (c) 2014 Max Brunsfeld - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tree-sitter-language 0.1.5 --------------------------------------------------------------------------------- -Source: https://github.com/tree-sitter/tree-sitter -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - Max Brunsfeld - - Amaan Qureshi - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tree-sitter-python 0.25.0 --------------------------------------------------------------------------------- -Source: https://github.com/tree-sitter/tree-sitter-python -License: MIT - -Copyright notice: - Copyright (c) 2016 Max Brunsfeld - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tree-sitter-rust 0.24.2 --------------------------------------------------------------------------------- -Source: https://github.com/tree-sitter/tree-sitter-rust -License: MIT - -Copyright notice: - Copyright (c) 2017 Maxim Sokolov - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tree-sitter-typescript 0.23.2 --------------------------------------------------------------------------------- -Source: https://github.com/tree-sitter/tree-sitter-typescript -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - Max Brunsfeld - - Amaan Qureshi - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -tree_magic_mini 3.2.2 --------------------------------------------------------------------------------- -Source: https://github.com/mbrubeck/tree_magic -License: MIT - -Copyright notice: - Copyright (c) 2017 Aaron Hancock - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -try-lock 0.2.5 --------------------------------------------------------------------------------- -Source: https://github.com/seanmonstar/try-lock -License: MIT - -Copyright notice: - Copyright (c) 2018-2023 Sean McArthur - Copyright (c) 2016 Alex Crichton - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -ttf-parser 0.25.1 --------------------------------------------------------------------------------- -Source: https://github.com/harfbuzz/ttf-parser -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2018 Yevhenii Reizner - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -tui-scrollbar 0.2.2 --------------------------------------------------------------------------------- -Source: https://github.com/joshka/tui-widgets -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Joshka - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -tungstenite 0.27.0 --------------------------------------------------------------------------------- -Source: https://github.com/snapview/tungstenite-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2017 Alexey Galakhov - Copyright (c) 2016 Jason Housley - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -tungstenite 0.28.0 --------------------------------------------------------------------------------- -Source: https://github.com/snapview/tungstenite-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2017 Alexey Galakhov - Copyright (c) 2016 Jason Housley - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -two-face 0.4.5 --------------------------------------------------------------------------------- -Source: https://github.com/CosmicHorrorDev/two-face -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2023-2023 The `two-face` developers (https://github.com/CosmicHorrorDev/two-face). - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -typenum 1.19.0 --------------------------------------------------------------------------------- -Source: https://github.com/paholg/typenum -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2014 Paho Lurie-Gregg - Copyright (c) 2014 Paho Lurie-Gregg - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -typeshare 1.0.4 --------------------------------------------------------------------------------- -Source: https://github.com/1Password/typeshare -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -typeshare-annotation 1.0.4 --------------------------------------------------------------------------------- -Source: https://github.com/1Password/typeshare -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -typify 0.6.2 --------------------------------------------------------------------------------- -Source: https://github.com/oxidecomputer/typify -License: Apache-2.0 - -Copyright notice: - Copyright 2024 Oxide Computer Company - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -typify-impl 0.6.2 --------------------------------------------------------------------------------- -Source: https://github.com/oxidecomputer/typify -License: Apache-2.0 - -Copyright notice: - Copyright 2022 Oxide Computer Company - Copyright 2025 Oxide Computer Company - Copyright 2023 Oxide Computer Company - Copyright 2024 Oxide Computer Company - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -typify-macro 0.6.2 --------------------------------------------------------------------------------- -Source: https://github.com/oxidecomputer/typify -License: Apache-2.0 - -Copyright notice: - Copyright 2025 Oxide Computer Company - Copyright 2023 Oxide Computer Company - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -ucd-trie 0.1.7 --------------------------------------------------------------------------------- -Source: https://github.com/BurntSushi/ucd-generate -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015 Andrew Gallant - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -uname 0.1.1 --------------------------------------------------------------------------------- -Source: https://github.com/icorderi/rust-uname -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2016 rust-uname Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -unicase 2.8.1 --------------------------------------------------------------------------------- -Source: https://github.com/seanmonstar/unicase -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014-2017 Sean McArthur - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -unicode-bidi 0.3.18 --------------------------------------------------------------------------------- -Source: https://github.com/servo/unicode-bidi -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - This project is copyright 2015, The Servo Project Developers (given in the - Copyright (c) 2015 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -unicode-bidi-mirroring 0.4.0 --------------------------------------------------------------------------------- -Source: https://github.com/RazrFalcon/unicode-bidi-mirroring -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2020 Yevhenii Reizner - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -unicode-bom 2.0.3 --------------------------------------------------------------------------------- -Source: https://gitlab.com/philbooth/unicode-bom -License: Apache-2.0 - -Copyright notice: - Copyright © 2018 Phil Booth - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -unicode-ccc 0.4.0 --------------------------------------------------------------------------------- -Source: https://github.com/RazrFalcon/unicode-ccc -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2020 Yevhenii Reizner - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -unicode-ident 1.0.24 --------------------------------------------------------------------------------- -Source: https://github.com/dtolnay/unicode-ident -License: (MIT OR Apache-2.0) AND Unicode-3.0 - (applicable terms: Unicode-3.0, Apache-2.0, MIT) - -Copyright notice: - Copyright © 1991-2023 Unicode, Inc. - -License text: see Part II — Unicode-3.0; Apache-2.0; MIT - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - Upstream license expression: (MIT OR Apache-2.0) AND Unicode-3.0. For this distribution, obligations are satisfied under: Unicode-3.0, Apache-2.0, MIT. - --------------------------------------------------------------------------------- -unicode-linebreak 0.1.5 --------------------------------------------------------------------------------- -Source: https://github.com/axelf4/unicode-linebreak -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - Axel Forsman - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Apache-2.0 additional terms: this package is used unmodified from its upstream source/crates.io (or git) release for this product build. Any NOTICE file shipped with the package (if present) is reproduced below. - --------------------------------------------------------------------------------- -unicode-normalization 0.1.25 --------------------------------------------------------------------------------- -Source: https://github.com/unicode-rs/unicode-normalization -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -unicode-properties 0.1.4 --------------------------------------------------------------------------------- -Source: https://github.com/unicode-rs/unicode-properties -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2015 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -unicode-script 0.5.8 --------------------------------------------------------------------------------- -Source: https://github.com/unicode-rs/unicode-script -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2021 The Unicode-rs Developers - Copyright (c) 2019 Manish Goregaokar - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -unicode-segmentation 1.12.0 --------------------------------------------------------------------------------- -Source: https://github.com/unicode-rs/unicode-segmentation -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -unicode-truncate 1.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/Aetf/unicode-truncate -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2019 Aetf - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -unicode-truncate 2.0.1 --------------------------------------------------------------------------------- -Source: https://github.com/Aetf/unicode-truncate -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2019 Aetf - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -unicode-vo 0.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/RazrFalcon/unicode-vo -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2018 Reizner Evgeniy - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -unicode-width 0.1.14 --------------------------------------------------------------------------------- -Source: https://github.com/unicode-rs/unicode-width -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -unicode-width 0.2.0 --------------------------------------------------------------------------------- -Source: https://github.com/unicode-rs/unicode-width -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -unicode-xid 0.2.6 --------------------------------------------------------------------------------- -Source: https://github.com/unicode-rs/unicode-xid -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015 The Rust Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -unit-prefix 0.5.1 --------------------------------------------------------------------------------- -Source: https://github.com/commons-rs/unit-prefix -License: MIT - -Copyright notice: - Copyright (c) 2024 Benjamin Sago, Fabio Valentini - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -universal-hash 0.5.1 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/traits -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2019-2020 RustCrypto Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -unsafe-libyaml 0.2.11 --------------------------------------------------------------------------------- -Source: https://github.com/dtolnay/unsafe-libyaml -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - David Tolnay - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -untrusted 0.7.1 --------------------------------------------------------------------------------- -Source: https://github.com/briansmith/untrusted -License: ISC - -Copyright notice: - Copyright 2015-2016 Brian Smith. - -License text: see Part II — ISC - --------------------------------------------------------------------------------- -untrusted 0.9.0 --------------------------------------------------------------------------------- -Source: https://github.com/briansmith/untrusted -License: ISC - -Copyright notice: - Copyright 2015-2016 Brian Smith. - -License text: see Part II — ISC - --------------------------------------------------------------------------------- -url 2.5.8 --------------------------------------------------------------------------------- -Source: https://github.com/servo/rust-url -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2013-2025 The rust-url developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -urlencoding 2.1.3 --------------------------------------------------------------------------------- -Source: https://github.com/kornelski/rust_urlencoding -License: MIT - -Copyright notice: - © 2016 Bertram Truong - © 2021 Kornel Lesiński - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -usvg 0.47.0 --------------------------------------------------------------------------------- -Source: https://github.com/linebender/resvg -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright 2017 the Resvg Authors - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -utf-8 0.7.6 --------------------------------------------------------------------------------- -Source: https://github.com/SimonSapin/rust-utf8 -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Simon Sapin - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -utf8-width 0.1.7 --------------------------------------------------------------------------------- -Source: https://github.com/magiclen/utf8-width -License: MIT - -Copyright notice: - Copyright (c) 2020 magiclen.org (Ron Li) - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -utf8_iter 1.0.4 --------------------------------------------------------------------------------- -Source: https://github.com/hsivonen/utf8_iter -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Henri Sivonen - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -utf8parse 0.2.2 --------------------------------------------------------------------------------- -Source: https://github.com/alacritty/vte -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2016 Joe Wilm - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -uuid 1.23.1 --------------------------------------------------------------------------------- -Source: https://github.com/uuid-rs/uuid -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2014 The Rust Project Developers - Copyright (c) 2018 Ashley Mannix, Christopher Armstrong, Dylan DPC, Hunar Roop Kahlon - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -uuid-simd 0.8.0 --------------------------------------------------------------------------------- -Source: https://github.com/Nugine/simd -License: MIT - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -value-bag 1.12.0 --------------------------------------------------------------------------------- -Source: https://github.com/sval-rs/value-bag -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2020 sval-rs - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -vcpkg 0.2.15 --------------------------------------------------------------------------------- -Source: https://github.com/mcgoo/vcpkg-rs -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2017 Jim McGrath - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -version_check 0.9.5 --------------------------------------------------------------------------------- -Source: https://github.com/SergioBenitez/version_check -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2017-2018 Sergio Benitez - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -vsimd 0.8.0 --------------------------------------------------------------------------------- -Source: https://github.com/Nugine/simd -License: MIT - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -vte 0.14.1 --------------------------------------------------------------------------------- -Source: https://github.com/alacritty/vte -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2016 Joe Wilm - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -vte 0.15.0 --------------------------------------------------------------------------------- -Source: https://github.com/alacritty/vte -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2016 Joe Wilm - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -vtparse 0.6.2 --------------------------------------------------------------------------------- -Source: https://github.com/wez/wezterm -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - Wez Furlong - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -wait-timeout 0.2.1 --------------------------------------------------------------------------------- -Source: https://github.com/alexcrichton/wait-timeout -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2014 Alex Crichton - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -waitpid-any 0.3.0 --------------------------------------------------------------------------------- -Source: https://github.com/oxalica/waitpid-any -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -walkdir 2.5.0 --------------------------------------------------------------------------------- -Source: https://github.com/BurntSushi/walkdir -License: MIT (upstream declares: Unlicense/MIT) - -Copyright notice: - Copyright (c) 2015 Andrew Gallant - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Unlicense/MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -want 0.3.1 --------------------------------------------------------------------------------- -Source: https://github.com/seanmonstar/want -License: MIT - -Copyright notice: - Copyright (c) 2018-2019 Sean McArthur - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -wayland-backend 0.3.12 --------------------------------------------------------------------------------- -Source: https://github.com/smithay/wayland-rs -License: MIT - -Copyright notice: - Copyright (c) 2015 Elinor Berger - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -wayland-client 0.31.12 --------------------------------------------------------------------------------- -Source: https://github.com/smithay/wayland-rs -License: MIT - -Copyright notice: - Copyright (c) 2015 Elinor Berger - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -wayland-protocols 0.32.10 --------------------------------------------------------------------------------- -Source: https://github.com/smithay/wayland-rs -License: MIT - -Copyright notice: - Copyright (c) 2015 Elinor Berger - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -wayland-protocols-wlr 0.3.10 --------------------------------------------------------------------------------- -Source: https://github.com/smithay/wayland-rs -License: MIT - -Copyright notice: - Copyright (c) 2015 Elinor Berger - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -wayland-scanner 0.31.10 --------------------------------------------------------------------------------- -Source: https://github.com/smithay/wayland-rs -License: MIT - -Copyright notice: - Copyright (c) 2015 Elinor Berger - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -wayland-sys 0.31.8 --------------------------------------------------------------------------------- -Source: https://github.com/smithay/wayland-rs -License: MIT - -Copyright notice: - Copyright (c) 2015 Elinor Berger - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -web-time 1.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/daxpedda/web-time -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2023 dAxpeDDa - Copyright (c) 2023 dAxpeDDa - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -web_atoms 0.2.3 --------------------------------------------------------------------------------- -Source: https://github.com/servo/html5ever -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 The html5ever Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -webbrowser 1.0.6 --------------------------------------------------------------------------------- -Source: https://github.com/amodm/webbrowser-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015-2022 Amod Malviya - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -webpki-roots 0.26.11 --------------------------------------------------------------------------------- -Source: https://github.com/rustls/webpki-roots -License: CDLA-Permissive-2.0 - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — CDLA-Permissive-2.0 - --------------------------------------------------------------------------------- -webpki-roots 1.0.3 --------------------------------------------------------------------------------- -Source: https://github.com/rustls/webpki-roots -License: CDLA-Permissive-2.0 - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — CDLA-Permissive-2.0 - --------------------------------------------------------------------------------- -weezl 0.1.10 --------------------------------------------------------------------------------- -Source: https://github.com/image-rs/weezl -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) HeroicKatora 2020 - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -wezterm-bidi 0.2.3 --------------------------------------------------------------------------------- -Source: https://github.com/wez/wezterm -License: MIT AND Unicode-DFS-2016 - (applicable terms: MIT, Unicode-DFS-2016) - -Copyright notice: - Copyright (c) 2022-Present Wez Furlong - Copyright © 1991-2022 Unicode, Inc. All rights reserved. - -License text: see Part II — MIT; Unicode-DFS-2016 - -Additional requirements / notices: - Upstream license expression: MIT AND Unicode-DFS-2016. All of the following license terms apply: MIT, Unicode-DFS-2016. - --------------------------------------------------------------------------------- -wezterm-blob-leases 0.1.1 --------------------------------------------------------------------------------- -Source: https://github.com/wezterm/wezterm -License: MIT - -Copyright notice: - Copyright (c) 2023-Present Wez Furlong - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -wezterm-color-types 0.3.0 --------------------------------------------------------------------------------- -Source: https://github.com/wez/wezterm -License: MIT - -Copyright notice: - Copyright (c) 2018-Present Wez Furlong - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -wezterm-dynamic 0.2.1 --------------------------------------------------------------------------------- -Source: https://github.com/wezterm/wezterm -License: MIT - -Copyright notice: - Copyright (c) 2018-Present Wez Furlong - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -wezterm-dynamic-derive 0.1.1 --------------------------------------------------------------------------------- -Source: https://github.com/wezterm/wezterm -License: MIT - -Copyright notice: - Copyright (c) 2018 Wez Furlong - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -wezterm-input-types 0.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/wez/wezterm -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - Wez Furlong - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -which 8.0.0 --------------------------------------------------------------------------------- -Source: https://github.com/harryfei/which-rs -License: MIT - -Copyright notice: - Copyright (c) 2015 fangyuanziti - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -whoami 1.6.1 --------------------------------------------------------------------------------- -Source: https://github.com/ardaku/whoami -License: MIT (upstream declares: Apache-2.0 OR BSL-1.0 OR MIT) - -Copyright notice: - Copyright © 2017-2025 The WhoAmI Contributors. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR BSL-1.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -wide 0.7.33 --------------------------------------------------------------------------------- -Source: https://github.com/Lokathor/wide -License: MIT (upstream declares: Zlib OR Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2020 Daniel "Lokathor" Gee. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Zlib OR Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -winapi 0.3.9 --------------------------------------------------------------------------------- -Source: https://github.com/retep998/winapi-rs -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2015-2018 The winapi-rs Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -winapi-util 0.1.11 --------------------------------------------------------------------------------- -Source: https://github.com/BurntSushi/winapi-util -License: MIT (upstream declares: Unlicense OR MIT) - -Copyright notice: - Copyright (c) 2017 Andrew Gallant - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Unlicense OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows 0.54.0 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows 0.61.3 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows 0.62.2 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows-collections 0.2.0 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows-collections 0.3.2 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows-core 0.54.0 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows-core 0.61.2 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows-core 0.62.2 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows-future 0.2.1 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows-future 0.3.2 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows-implement 0.60.2 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows-interface 0.59.3 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows-link 0.1.3 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows-link 0.2.1 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows-numerics 0.2.0 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows-numerics 0.3.1 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows-registry 0.6.1 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows-result 0.1.2 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows-result 0.3.4 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows-result 0.4.1 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows-strings 0.4.2 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows-strings 0.5.1 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows-sys 0.48.0 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows-sys 0.52.0 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows-sys 0.59.0 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows-sys 0.60.2 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows-sys 0.61.2 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows-targets 0.48.5 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows-targets 0.52.6 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows-targets 0.53.5 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows-threading 0.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows-threading 0.2.1 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows_aarch64_msvc 0.48.5 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows_aarch64_msvc 0.52.6 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows_aarch64_msvc 0.53.1 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows_x86_64_msvc 0.48.5 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows_x86_64_msvc 0.52.6 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -windows_x86_64_msvc 0.53.1 --------------------------------------------------------------------------------- -Source: https://github.com/microsoft/windows-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) Microsoft Corporation. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -winnow 0.7.14 --------------------------------------------------------------------------------- -Source: https://github.com/winnow-rs/winnow -License: MIT - -Copyright notice: - Copyright (c) the package authors. See the package repository for details. - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -winreg 0.10.1 --------------------------------------------------------------------------------- -Source: https://github.com/gentoo90/winreg-rs -License: MIT - -Copyright notice: - Copyright (c) 2015 Igor Shaula - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -winreg 0.52.0 --------------------------------------------------------------------------------- -Source: https://github.com/gentoo90/winreg-rs -License: MIT - -Copyright notice: - Copyright (c) 2015 Igor Shaula - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -winsafe 0.0.19 --------------------------------------------------------------------------------- -Source: https://github.com/rodrigocfd/winsafe -License: MIT - -Copyright notice: - Copyright (c) 2019-present, Rodrigo Cesar de Freitas Dias - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -wl-clipboard-rs 0.9.3 --------------------------------------------------------------------------------- -Source: https://github.com/YaLTeR/wl-clipboard-rs -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2019 Ivan Molodetskikh - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -write-fonts 0.43.0 --------------------------------------------------------------------------------- -Source: https://github.com/googlefonts/fontations -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2019 Colin Rothfels - Copyright (c) 2019 Colin Rothfels - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -writeable 0.6.1 --------------------------------------------------------------------------------- -Source: https://github.com/unicode-org/icu4x -License: Unicode-3.0 - -Copyright notice: - Copyright © 2020-2024 Unicode, Inc. - ICU 1.8.1 to ICU 57.1 © 1995-2016 International Business Machines Corporation and others. - -License text: see Part II — Unicode-3.0 - --------------------------------------------------------------------------------- -x11rb 0.13.2 --------------------------------------------------------------------------------- -Source: https://github.com/psychon/x11rb -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2019 x11rb Contributers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -x11rb-protocol 0.13.2 --------------------------------------------------------------------------------- -Source: https://github.com/psychon/x11rb -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2019 x11rb Contributers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -x509-cert 0.2.5 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/formats/tree/master/x509-cert -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2021 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -x509-tsp 0.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/formats/tree/master/x509-tsp -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2023 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -xattr 1.6.1 --------------------------------------------------------------------------------- -Source: https://github.com/Stebalien/xattr -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2015 Steven Allen - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -xml5ever 0.38.0 --------------------------------------------------------------------------------- -Source: https://github.com/servo/html5ever -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2014 The html5ever Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -xmlparser 0.13.6 --------------------------------------------------------------------------------- -Source: https://github.com/RazrFalcon/xmlparser -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2018 Reizner Evgeniy - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -xmlwriter 0.1.0 --------------------------------------------------------------------------------- -Source: https://github.com/RazrFalcon/xmlwriter -License: MIT - -Copyright notice: - Copyright (c) 2019 Reizner Evgeniy - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -yaml-rust 0.4.5 --------------------------------------------------------------------------------- -Source: https://github.com/chyh1990/yaml-rust -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2015 Chen Yuheng - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -yansi 1.0.1 --------------------------------------------------------------------------------- -Source: https://github.com/SergioBenitez/yansi -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright 2017 Sergio Benitez - Copyright (c) 2017 Sergio Benitez - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -yoke 0.8.0 --------------------------------------------------------------------------------- -Source: https://github.com/unicode-org/icu4x -License: Unicode-3.0 - -Copyright notice: - Copyright © 2020-2024 Unicode, Inc. - ICU 1.8.1 to ICU 57.1 © 1995-2016 International Business Machines Corporation and others. - -License text: see Part II — Unicode-3.0 - --------------------------------------------------------------------------------- -yoke-derive 0.8.0 --------------------------------------------------------------------------------- -Source: https://github.com/unicode-org/icu4x -License: Unicode-3.0 - -Copyright notice: - Copyright © 2020-2024 Unicode, Inc. - ICU 1.8.1 to ICU 57.1 © 1995-2016 International Business Machines Corporation and others. - -License text: see Part II — Unicode-3.0 - --------------------------------------------------------------------------------- -zbus 5.14.0 --------------------------------------------------------------------------------- -Source: https://github.com/z-galaxy/zbus -License: MIT - -Copyright notice: - Copyright (c) 2024 Zeeshan Ali Khan & zbus contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -zbus_macros 5.14.0 --------------------------------------------------------------------------------- -Source: https://github.com/z-galaxy/zbus -License: MIT - -Copyright notice: - Copyright (c) 2024 Zeeshan Ali Khan & zbus contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -zbus_names 4.3.1 --------------------------------------------------------------------------------- -Source: https://github.com/z-galaxy/zbus -License: MIT - -Copyright notice: - Copyright (c) 2024 Zeeshan Ali Khan & zbus contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -zerocopy 0.8.48 --------------------------------------------------------------------------------- -Source: https://github.com/google/zerocopy -License: MIT (upstream declares: BSD-2-Clause OR Apache-2.0 OR MIT) - -Copyright notice: - Copyright 2023 The Fuchsia Authors - Copyright 2019 The Fuchsia Authors. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: BSD-2-Clause OR Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -zerocopy-derive 0.8.48 --------------------------------------------------------------------------------- -Source: https://github.com/google/zerocopy -License: MIT (upstream declares: BSD-2-Clause OR Apache-2.0 OR MIT) - -Copyright notice: - Copyright 2023 The Fuchsia Authors - Copyright 2019 The Fuchsia Authors. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: BSD-2-Clause OR Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -zerofrom 0.1.6 --------------------------------------------------------------------------------- -Source: https://github.com/unicode-org/icu4x -License: Unicode-3.0 - -Copyright notice: - Copyright © 2020-2024 Unicode, Inc. - ICU 1.8.1 to ICU 57.1 © 1995-2016 International Business Machines Corporation and others. - -License text: see Part II — Unicode-3.0 - --------------------------------------------------------------------------------- -zerofrom-derive 0.1.6 --------------------------------------------------------------------------------- -Source: https://github.com/unicode-org/icu4x -License: Unicode-3.0 - -Copyright notice: - Copyright © 2020-2024 Unicode, Inc. - ICU 1.8.1 to ICU 57.1 © 1995-2016 International Business Machines Corporation and others. - -License text: see Part II — Unicode-3.0 - --------------------------------------------------------------------------------- -zeroize 1.8.2 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/utils -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2018-2021 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -zeroize_derive 1.4.2 --------------------------------------------------------------------------------- -Source: https://github.com/RustCrypto/utils/tree/master/zeroize/derive -License: MIT (upstream declares: Apache-2.0 OR MIT) - -Copyright notice: - Copyright (c) 2019-2023 The RustCrypto Project Developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: Apache-2.0 OR MIT. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -zerotrie 0.2.2 --------------------------------------------------------------------------------- -Source: https://github.com/unicode-org/icu4x -License: Unicode-3.0 - -Copyright notice: - Copyright © 2020-2024 Unicode, Inc. - ICU 1.8.1 to ICU 57.1 © 1995-2016 International Business Machines Corporation and others. - -License text: see Part II — Unicode-3.0 - --------------------------------------------------------------------------------- -zerovec 0.11.4 --------------------------------------------------------------------------------- -Source: https://github.com/unicode-org/icu4x -License: Unicode-3.0 - -Copyright notice: - Copyright © 2020-2024 Unicode, Inc. - ICU 1.8.1 to ICU 57.1 © 1995-2016 International Business Machines Corporation and others. - -License text: see Part II — Unicode-3.0 - --------------------------------------------------------------------------------- -zerovec-derive 0.11.1 --------------------------------------------------------------------------------- -Source: https://github.com/unicode-org/icu4x -License: Unicode-3.0 - -Copyright notice: - Copyright © 2020-2024 Unicode, Inc. - ICU 1.8.1 to ICU 57.1 © 1995-2016 International Business Machines Corporation and others. - -License text: see Part II — Unicode-3.0 - --------------------------------------------------------------------------------- -zip 0.6.6 --------------------------------------------------------------------------------- -Source: https://github.com/zip-rs/zip -License: MIT - -Copyright notice: - Copyright (c) 2014 Mathijs van de Nes - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -zlib-rs 0.5.5 --------------------------------------------------------------------------------- -Source: https://github.com/trifectatechfoundation/zlib-rs -License: Zlib - -Copyright notice: - (C) 2024 Trifecta Tech Foundation - -License text: see Part II — Zlib - -Additional requirements / notices: - Zlib additional terms: this package is used unmodified; no changes were made to the upstream source as incorporated via crates.io. - --------------------------------------------------------------------------------- -zmij 1.0.19 --------------------------------------------------------------------------------- -Source: https://github.com/dtolnay/zmij -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - David Tolnay - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -zstd 0.11.2+zstd.1.5.2 --------------------------------------------------------------------------------- -Source: https://github.com/gyscos/zstd-rs -License: MIT - -Copyright notice: - Copyright (c) 2016 Alexandre Bury - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -zstd 0.13.3 --------------------------------------------------------------------------------- -Source: https://github.com/gyscos/zstd-rs -License: MIT - -Copyright notice: - Copyright (c) 2016 Alexandre Bury - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -zstd-safe 5.0.2+zstd.1.5.2 --------------------------------------------------------------------------------- -Source: https://github.com/gyscos/zstd-rs -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2016 Alexandre Bury - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -zstd-safe 7.2.4 --------------------------------------------------------------------------------- -Source: https://github.com/gyscos/zstd-rs -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright (c) 2016 Alexandre Bury - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -zstd-sys 2.0.16+zstd.1.5.7 --------------------------------------------------------------------------------- -Source: https://github.com/gyscos/zstd-rs -License: MIT (upstream declares: MIT/Apache-2.0) - -Copyright notice: - Copyright (c) 2016 Alexandre Bury - Copyright (c) 2016-present, Facebook, Inc. All rights reserved. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT/Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -zune-core 0.4.12 --------------------------------------------------------------------------------- -Source: https://crates.io/crates/zune-core/0.4.12 -License: MIT (upstream declares: MIT OR Apache-2.0 OR Zlib) - -Copyright notice: - Copyright (c) 2023. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0 OR Zlib. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -zune-core 0.5.1 --------------------------------------------------------------------------------- -Source: https://github.com/etemesi254/zune-image -License: MIT (upstream declares: MIT OR Apache-2.0 OR Zlib) - -Copyright notice: - Copyright (c) zune-image developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0 OR Zlib. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -zune-inflate 0.2.54 --------------------------------------------------------------------------------- -Source: https://crates.io/crates/zune-inflate/0.2.54 -License: MIT (upstream declares: MIT OR Apache-2.0 OR Zlib) - -Copyright notice: - Copyright (c) 2023. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0 OR Zlib. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -zune-jpeg 0.4.21 --------------------------------------------------------------------------------- -Source: https://github.com/etemesi254/zune-image/tree/dev/crates/zune-jpeg -License: MIT (upstream declares: MIT OR Apache-2.0 OR Zlib) - -Copyright notice: - Copyright (c) 2023. - Copyright (c) 2025. - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0 OR Zlib. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -zune-jpeg 0.5.15 --------------------------------------------------------------------------------- -Source: https://github.com/etemesi254/zune-image/tree/dev/crates/zune-jpeg -License: MIT (upstream declares: MIT OR Apache-2.0 OR Zlib) - -Copyright notice: - Copyright (c) zune-image developers - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0 OR Zlib. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -zvariant 5.10.0 --------------------------------------------------------------------------------- -Source: https://github.com/z-galaxy/zbus -License: MIT - -Copyright notice: - Copyright (c) 2024 Zeeshan Ali Khan & zbus contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -zvariant_derive 5.10.0 --------------------------------------------------------------------------------- -Source: https://github.com/z-galaxy/zbus -License: MIT - -Copyright notice: - Copyright (c) 2024 Zeeshan Ali Khan & zbus contributors - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -zvariant_utils 3.3.0 --------------------------------------------------------------------------------- -Source: https://github.com/z-galaxy/zbus -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - Zeeshan Ali Khan - - turbocooler - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -notify 8.2.0 --------------------------------------------------------------------------------- -Source: https://github.com/notify-rs/notify -License: CC0-1.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - Félix Saparelli - - Daniel Faust - - Aron Heinecke - -License text: see upstream https://github.com/notify-rs/notify (license: CC0-1.0) - --------------------------------------------------------------------------------- -nonempty 0.12.0 --------------------------------------------------------------------------------- -Source: https://github.com/cloudhead/nonempty -License: MIT - -Copyright notice: - Copyright holders / authors (from package metadata): - - Alexis Sellier - -License text: see Part II — MIT - --------------------------------------------------------------------------------- -borrow-or-share 0.2.2 --------------------------------------------------------------------------------- -Source: https://github.com/yescallop/borrow-or-share -License: MIT-0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - Scallop Ye - -License text: see upstream https://github.com/yescallop/borrow-or-share (license: MIT-0) - --------------------------------------------------------------------------------- -gix-error 0.2.4 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: MIT (upstream declares: MIT OR Apache-2.0) - -Copyright notice: - Copyright holders / authors (from package metadata): - - Sebastian Thiel - -License text: see Part II — MIT - -Additional requirements / notices: - Upstream license expression: MIT OR Apache-2.0. For this distribution, obligations are satisfied under: MIT. - --------------------------------------------------------------------------------- -gix-imara-diff 0.2.3 --------------------------------------------------------------------------------- -Source: https://github.com/GitoxideLabs/gitoxide -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors (from package metadata): - - pascalkuthe - - Sebastian Thiel - -License text: see Part II — Apache-2.0 - - -================================================================================ -PART I (continued) — BUNDLED UI / SYNTAX THEMES -================================================================================ - -In-tree TUI palettes and bundled TextMate (.tmTheme) assets under -kigi-pager-render / kigi-markdown. Not crates.io dependencies. - -First-party themes (not listed as third-party entries): - - groknight, grokday, auto — xAI original - - groknight reuses Tokyo Night accent hexes (covered by the Tokyo Night entry) - - --------------------------------------------------------------------------------- -Tokyo Night --------------------------------------------------------------------------------- -Source: https://github.com/folke/tokyonight.nvim -License: Apache-2.0 - -Copyright notice: - Copyright holders / authors: - - Folke Lemaitre and contributors (tokyonight.nvim) - - Original Tokyo Night VS Code palette lineage: enkia / tokyo-night - (https://github.com/enkia/tokyo-night-vscode-theme; upstream MIT) - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - UI palette for theme `tokyonight` (Night/Storm hexes) in - kigi-pager-render/src/theme/tokyonight.rs. - Bundled TextMate syntax theme: - crates/codegen/kigi-pager-render/assets/tokyo-night.tmTheme - crates/codegen/kigi-markdown/assets/tokyo-night.tmTheme - First-party theme `groknight` reuses Tokyo Night accent hexes (same entry). - Palette hexes match the Tokyo Night Night/Storm colors shared by the nvim - port (Apache-2.0) and the original VS Code theme (MIT). This distribution - attributes the palette and bundled .tmTheme under Apache-2.0 via the nvim - port as the primary reference used for the TUI constants; the VS Code - lineage is noted for completeness. - - --------------------------------------------------------------------------------- -Rosé Pine Moon --------------------------------------------------------------------------------- -Source: https://github.com/rose-pine/rose-pine-theme -License: MIT - -Copyright notice: - Copyright (c) 2023 Rosé Pine - -License text: see Part II — MIT - -Additional requirements / notices: - UI palette for theme `rosepine-moon` in - kigi-pager-render/src/theme/rosepine.rs (Moon variant hexes from the - Rosé Pine palette). - - --------------------------------------------------------------------------------- -Oscura Midnight --------------------------------------------------------------------------------- -Source: https://github.com/narative/oscura -License: MIT - -Copyright notice: - Copyright (c) 2025 Narative - -License text: see Part II — MIT - -Additional requirements / notices: - UI palette for theme `oscura-midnight` in - kigi-pager-render/src/theme/oscura.rs. - Ported from the desktop app design tokens in - frontend/apps/grok-desktop/src/themes/oscura-midnight.json (OKLCH→sRGB), - which implement the Oscura Midnight aesthetic from narative/oscura (MIT). - Some TUI semantic/accent role colors are first-party choices on top of that - base. - - - - -================================================================================ -PART I (continued) — IN-TREE SOURCE PORTS -================================================================================ - -Code adapted from upstream open-source projects into first-party crates (not -crates.io dependencies and not under third_party/). Paths below are relative -to this repository root. Ported files have been modified from their originals -(translated between languages where applicable, adapted to this codebase's -APIs/runtimes, and extended); this section constitutes the prominent notice -of those changes required by Apache License 2.0 §4(b). Full license texts are -in Part II. A crate-local copy of these notices (with the same license bodies) -ships at crates/codegen/kigi-tools/THIRD_PARTY_NOTICES.md. - - --------------------------------------------------------------------------------- -openai/codex --------------------------------------------------------------------------------- -Source: https://github.com/openai/codex -License: Apache-2.0 -Upstream paths: codex-rs/core/src/tools/handlers/ (and apply-patch crate) - -Copyright notice: - Copyright 2025 OpenAI - -License text: see Part II — Apache-2.0 - -Additional requirements / notices: - Tool implementations under: - crates/codegen/kigi-tools/src/implementations/codex/ - Modules: apply_patch, grep_files, list_dir, read_file. - These are derived/portions of openai/codex tool handlers, adapted to this - crate's Tool trait and runtime. Apache-2.0 §4 requires retention of - copyright, patent, trademark, and attribution notices, a copy of the - license, and a notice of changes (this entry). - - --------------------------------------------------------------------------------- -sst/opencode --------------------------------------------------------------------------------- -Source: https://github.com/sst/opencode -License: MIT -Upstream paths: packages/opencode/src/tool/ - -Copyright notice: - Copyright (c) 2025 opencode - -License text: see Part II — MIT - -Additional requirements / notices: - Tool implementations under: - crates/codegen/kigi-tools/src/implementations/opencode/ - Modules: bash, edit, glob, grep, read, skill, todowrite, write. - These are derived/portions of sst/opencode tools, adapted to this crate's - Tool trait and runtime. The MIT copyright and permission notice must be - included in all copies or substantial portions of the Software (this entry - and the crate-local THIRD_PARTY_NOTICES.md satisfy that for source - distributions). - - -================================================================================ -PART II — LICENSE TEXTS -================================================================================ - -Original license texts referenced by Part I. Primary source for SPDX licenses: -https://github.com/spdx/license-list-data (text/ directory). -libgit2 COPYING: https://github.com/libgit2/libgit2/blob/v1.9.1/COPYING - - -################################################################################ -# MIT -################################################################################ - -MIT License - -Copyright (c) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and -associated documentation files (the "Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial -portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. - - -################################################################################ -# Apache-2.0 -################################################################################ - -Apache License -Version 2.0, January 2004 -http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - - (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - - You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -APPENDIX: How to apply the Apache License to your work. - -To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - -Copyright [yyyy] [name of copyright owner] - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - - -################################################################################ -# BSD-2-Clause -################################################################################ - -Copyright (c) - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -################################################################################ -# BSD-3-Clause -################################################################################ - -Copyright (c) . - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -################################################################################ -# ISC -################################################################################ - -ISC License: - -Copyright (c) 2004-2010 by Internet Systems Consortium, Inc. ("ISC") -Copyright (c) 1995-2003 by Internet Software Consortium - -Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - - -################################################################################ -# Zlib -################################################################################ - -zlib License - -This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. - - 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. - - 3. This notice may not be removed or altered from any source distribution. - - -################################################################################ -# BSL-1.0 -################################################################################ - -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - -################################################################################ -# MPL-2.0 -################################################################################ - -Mozilla Public License Version 2.0 -================================== - -1. Definitions --------------- - -1.1. "Contributor" - means each individual or legal entity that creates, contributes to - the creation of, or owns Covered Software. - -1.2. "Contributor Version" - means the combination of the Contributions of others (if any) used - by a Contributor and that particular Contributor's Contribution. - -1.3. "Contribution" - means Covered Software of a particular Contributor. - -1.4. "Covered Software" - means Source Code Form to which the initial Contributor has attached - the notice in Exhibit A, the Executable Form of such Source Code - Form, and Modifications of such Source Code Form, in each case - including portions thereof. - -1.5. "Incompatible With Secondary Licenses" - means - - (a) that the initial Contributor has attached the notice described - in Exhibit B to the Covered Software; or - - (b) that the Covered Software was made available under the terms of - version 1.1 or earlier of the License, but not also under the - terms of a Secondary License. - -1.6. "Executable Form" - means any form of the work other than Source Code Form. - -1.7. "Larger Work" - means a work that combines Covered Software with other material, in - a separate file or files, that is not Covered Software. - -1.8. "License" - means this document. - -1.9. "Licensable" - means having the right to grant, to the maximum extent possible, - whether at the time of the initial grant or subsequently, any and - all of the rights conveyed by this License. - -1.10. "Modifications" - means any of the following: - - (a) any file in Source Code Form that results from an addition to, - deletion from, or modification of the contents of Covered - Software; or - - (b) any new file in Source Code Form that contains any Covered - Software. - -1.11. "Patent Claims" of a Contributor - means any patent claim(s), including without limitation, method, - process, and apparatus claims, in any patent Licensable by such - Contributor that would be infringed, but for the grant of the - License, by the making, using, selling, offering for sale, having - made, import, or transfer of either its Contributions or its - Contributor Version. - -1.12. "Secondary License" - means either the GNU General Public License, Version 2.0, the GNU - Lesser General Public License, Version 2.1, the GNU Affero General - Public License, Version 3.0, or any later versions of those - licenses. - -1.13. "Source Code Form" - means the form of the work preferred for making modifications. - -1.14. "You" (or "Your") - means an individual or a legal entity exercising rights under this - License. For legal entities, "You" includes any entity that - controls, is controlled by, or is under common control with You. For - purposes of this definition, "control" means (a) the power, direct - or indirect, to cause the direction or management of such entity, - whether by contract or otherwise, or (b) ownership of more than - fifty percent (50%) of the outstanding shares or beneficial - ownership of such entity. - -2. License Grants and Conditions --------------------------------- - -2.1. Grants - -Each Contributor hereby grants You a world-wide, royalty-free, -non-exclusive license: - -(a) under intellectual property rights (other than patent or trademark) - Licensable by such Contributor to use, reproduce, make available, - modify, display, perform, distribute, and otherwise exploit its - Contributions, either on an unmodified basis, with Modifications, or - as part of a Larger Work; and - -(b) under Patent Claims of such Contributor to make, use, sell, offer - for sale, have made, import, and otherwise transfer either its - Contributions or its Contributor Version. - -2.2. Effective Date - -The licenses granted in Section 2.1 with respect to any Contribution -become effective for each Contribution on the date the Contributor first -distributes such Contribution. - -2.3. Limitations on Grant Scope - -The licenses granted in this Section 2 are the only rights granted under -this License. No additional rights or licenses will be implied from the -distribution or licensing of Covered Software under this License. -Notwithstanding Section 2.1(b) above, no patent license is granted by a -Contributor: - -(a) for any code that a Contributor has removed from Covered Software; - or - -(b) for infringements caused by: (i) Your and any other third party's - modifications of Covered Software, or (ii) the combination of its - Contributions with other software (except as part of its Contributor - Version); or - -(c) under Patent Claims infringed by Covered Software in the absence of - its Contributions. - -This License does not grant any rights in the trademarks, service marks, -or logos of any Contributor (except as may be necessary to comply with -the notice requirements in Section 3.4). - -2.4. Subsequent Licenses - -No Contributor makes additional grants as a result of Your choice to -distribute the Covered Software under a subsequent version of this -License (see Section 10.2) or under the terms of a Secondary License (if -permitted under the terms of Section 3.3). - -2.5. Representation - -Each Contributor represents that the Contributor believes its -Contributions are its original creation(s) or it has sufficient rights -to grant the rights to its Contributions conveyed by this License. - -2.6. Fair Use - -This License is not intended to limit any rights You have under -applicable copyright doctrines of fair use, fair dealing, or other -equivalents. - -2.7. Conditions - -Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted -in Section 2.1. - -3. Responsibilities -------------------- - -3.1. Distribution of Source Form - -All distribution of Covered Software in Source Code Form, including any -Modifications that You create or to which You contribute, must be under -the terms of this License. You must inform recipients that the Source -Code Form of the Covered Software is governed by the terms of this -License, and how they can obtain a copy of this License. You may not -attempt to alter or restrict the recipients' rights in the Source Code -Form. - -3.2. Distribution of Executable Form - -If You distribute Covered Software in Executable Form then: - -(a) such Covered Software must also be made available in Source Code - Form, as described in Section 3.1, and You must inform recipients of - the Executable Form how they can obtain a copy of such Source Code - Form by reasonable means in a timely manner, at a charge no more - than the cost of distribution to the recipient; and - -(b) You may distribute such Executable Form under the terms of this - License, or sublicense it under different terms, provided that the - license for the Executable Form does not attempt to limit or alter - the recipients' rights in the Source Code Form under this License. - -3.3. Distribution of a Larger Work - -You may create and distribute a Larger Work under terms of Your choice, -provided that You also comply with the requirements of this License for -the Covered Software. If the Larger Work is a combination of Covered -Software with a work governed by one or more Secondary Licenses, and the -Covered Software is not Incompatible With Secondary Licenses, this -License permits You to additionally distribute such Covered Software -under the terms of such Secondary License(s), so that the recipient of -the Larger Work may, at their option, further distribute the Covered -Software under the terms of either this License or such Secondary -License(s). - -3.4. Notices - -You may not remove or alter the substance of any license notices -(including copyright notices, patent notices, disclaimers of warranty, -or limitations of liability) contained within the Source Code Form of -the Covered Software, except that You may alter any license notices to -the extent required to remedy known factual inaccuracies. - -3.5. Application of Additional Terms - -You may choose to offer, and to charge a fee for, warranty, support, -indemnity or liability obligations to one or more recipients of Covered -Software. However, You may do so only on Your own behalf, and not on -behalf of any Contributor. You must make it absolutely clear that any -such warranty, support, indemnity, or liability obligation is offered by -You alone, and You hereby agree to indemnify every Contributor for any -liability incurred by such Contributor as a result of warranty, support, -indemnity or liability terms You offer. You may include additional -disclaimers of warranty and limitations of liability specific to any -jurisdiction. - -4. Inability to Comply Due to Statute or Regulation ---------------------------------------------------- - -If it is impossible for You to comply with any of the terms of this -License with respect to some or all of the Covered Software due to -statute, judicial order, or regulation then You must: (a) comply with -the terms of this License to the maximum extent possible; and (b) -describe the limitations and the code they affect. Such description must -be placed in a text file included with all distributions of the Covered -Software under this License. Except to the extent prohibited by statute -or regulation, such description must be sufficiently detailed for a -recipient of ordinary skill to be able to understand it. - -5. Termination --------------- - -5.1. The rights granted under this License will terminate automatically -if You fail to comply with any of its terms. However, if You become -compliant, then the rights granted under this License from a particular -Contributor are reinstated (a) provisionally, unless and until such -Contributor explicitly and finally terminates Your grants, and (b) on an -ongoing basis, if such Contributor fails to notify You of the -non-compliance by some reasonable means prior to 60 days after You have -come back into compliance. Moreover, Your grants from a particular -Contributor are reinstated on an ongoing basis if such Contributor -notifies You of the non-compliance by some reasonable means, this is the -first time You have received notice of non-compliance with this License -from such Contributor, and You become compliant prior to 30 days after -Your receipt of the notice. - -5.2. If You initiate litigation against any entity by asserting a patent -infringement claim (excluding declaratory judgment actions, -counter-claims, and cross-claims) alleging that a Contributor Version -directly or indirectly infringes any patent, then the rights granted to -You by any and all Contributors for the Covered Software under Section -2.1 of this License shall terminate. - -5.3. In the event of termination under Sections 5.1 or 5.2 above, all -end user license agreements (excluding distributors and resellers) which -have been validly granted by You or Your distributors under this License -prior to termination shall survive termination. - -************************************************************************ -* * -* 6. Disclaimer of Warranty * -* ------------------------- * -* * -* Covered Software is provided under this License on an "as is" * -* basis, without warranty of any kind, either expressed, implied, or * -* statutory, including, without limitation, warranties that the * -* Covered Software is free of defects, merchantable, fit for a * -* particular purpose or non-infringing. The entire risk as to the * -* quality and performance of the Covered Software is with You. * -* Should any Covered Software prove defective in any respect, You * -* (not any Contributor) assume the cost of any necessary servicing, * -* repair, or correction. This disclaimer of warranty constitutes an * -* essential part of this License. No use of any Covered Software is * -* authorized under this License except under this disclaimer. * -* * -************************************************************************ - -************************************************************************ -* * -* 7. Limitation of Liability * -* -------------------------- * -* * -* Under no circumstances and under no legal theory, whether tort * -* (including negligence), contract, or otherwise, shall any * -* Contributor, or anyone who distributes Covered Software as * -* permitted above, be liable to You for any direct, indirect, * -* special, incidental, or consequential damages of any character * -* including, without limitation, damages for lost profits, loss of * -* goodwill, work stoppage, computer failure or malfunction, or any * -* and all other commercial damages or losses, even if such party * -* shall have been informed of the possibility of such damages. This * -* limitation of liability shall not apply to liability for death or * -* personal injury resulting from such party's negligence to the * -* extent applicable law prohibits such limitation. Some * -* jurisdictions do not allow the exclusion or limitation of * -* incidental or consequential damages, so this exclusion and * -* limitation may not apply to You. * -* * -************************************************************************ - -8. Litigation -------------- - -Any litigation relating to this License may be brought only in the -courts of a jurisdiction where the defendant maintains its principal -place of business and such litigation shall be governed by laws of that -jurisdiction, without reference to its conflict-of-law provisions. -Nothing in this Section shall prevent a party's ability to bring -cross-claims or counter-claims. - -9. Miscellaneous ----------------- - -This License represents the complete agreement concerning the subject -matter hereof. If any provision of this License is held to be -unenforceable, such provision shall be reformed only to the extent -necessary to make it enforceable. Any law or regulation which provides -that the language of a contract shall be construed against the drafter -shall not be used to construe this License against a Contributor. - -10. Versions of the License ---------------------------- - -10.1. New Versions - -Mozilla Foundation is the license steward. Except as provided in Section -10.3, no one other than the license steward has the right to modify or -publish new versions of this License. Each version will be given a -distinguishing version number. - -10.2. Effect of New Versions - -You may distribute the Covered Software under the terms of the version -of the License under which You originally received the Covered Software, -or under the terms of any subsequent version published by the license -steward. - -10.3. Modified Versions - -If you create software not governed by this License, and you want to -create a new license for such software, you may create and use a -modified version of this License if you rename the license and remove -any references to the name of the license steward (except to note that -such modified license differs from this License). - -10.4. Distributing Source Code Form that is Incompatible With Secondary -Licenses - -If You choose to distribute Source Code Form that is Incompatible With -Secondary Licenses under the terms of this version of the License, the -notice described in Exhibit B of this License must be attached. - -Exhibit A - Source Code Form License Notice -------------------------------------------- - - This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at https://mozilla.org/MPL/2.0/. - -If it is not possible or desirable to put the notice in a particular -file, then You may include the notice in a location (such as a LICENSE -file in a relevant directory) where a recipient would be likely to look -for such a notice. - -You may add additional accurate notices of copyright ownership. - -Exhibit B - "Incompatible With Secondary Licenses" Notice ---------------------------------------------------------- - - This Source Code Form is "Incompatible With Secondary Licenses", as - defined by the Mozilla Public License, v. 2.0. - - -################################################################################ -# CDLA-Permissive-2.0 -################################################################################ - -Community Data License Agreement - Permissive - Version 2.0 - -This is the Community Data License Agreement - Permissive, Version 2.0 (the "agreement"). Data Provider(s) and Data Recipient(s) agree as follows: - -1. Provision of the Data - -1.1. A Data Recipient may use, modify, and share the Data made available by Data Provider(s) under this agreement if that Data Recipient follows the terms of this agreement. - -1.2. This agreement does not impose any restriction on a Data Recipient's use, modification, or sharing of any portions of the Data that are in the public domain or that may be used, modified, or shared under any other legal exception or limitation. - -2. Conditions for Sharing Data - -2.1. A Data Recipient may share Data, with or without modifications, so long as the Data Recipient makes available the text of this agreement with the shared Data. - -3. No Restrictions on Results - -3.1. This agreement does not impose any restriction or obligations with respect to the use, modification, or sharing of Results. - -4. No Warranty; Limitation of Liability - -4.1. All Data Recipients receive the Data subject to the following terms: - -THE DATA IS PROVIDED ON AN "AS IS" BASIS, WITHOUT REPRESENTATIONS, WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - -NO DATA PROVIDER SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE DATA OR RESULTS, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -5. Definitions - -5.1. "Data" means the material received by a Data Recipient under this agreement. - -5.2. "Data Provider" means any person who is the source of Data provided under this agreement and in reliance on a Data Recipient's agreement to its terms. - -5.3. "Data Recipient" means any person who receives Data directly or indirectly from a Data Provider and agrees to the terms of this agreement. - -5.4. "Results" means any outcome obtained by computational analysis of Data, including for example machine learning models and models' insights. - - -################################################################################ -# Unicode-3.0 -################################################################################ - -UNICODE LICENSE V3 - -COPYRIGHT AND PERMISSION NOTICE - -Copyright © 1991-2023 Unicode, Inc. - -NOTICE TO USER: Carefully read the following legal agreement. BY -DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING DATA FILES, AND/OR -SOFTWARE, YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE -TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE, DO NOT -DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of data files and any associated documentation (the "Data Files") or -software and any associated documentation (the "Software") to deal in the -Data Files or Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, and/or sell -copies of the Data Files or Software, and to permit persons to whom the -Data Files or Software are furnished to do so, provided that either (a) -this copyright and permission notice appear with all copies of the Data -Files or Software, or (b) this copyright and permission notice appear in -associated Documentation. - -THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY -KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF -THIRD PARTY RIGHTS. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE -BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, -OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA -FILES OR SOFTWARE. - -Except as contained in this notice, the name of a copyright holder shall -not be used in advertising or otherwise to promote the sale, use or other -dealings in these Data Files or Software without prior written -authorization of the copyright holder. - - -################################################################################ -# Unicode-DFS-2016 -################################################################################ - -UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE - -Unicode Data Files include all data files under the directories http://www.unicode.org/Public/, http://www.unicode.org/reports/, http://www.unicode.org/cldr/data/, http://source.icu-project.org/repos/icu/, and http://www.unicode.org/utility/trac/browser/. - -Unicode Data Files do not include PDF online code charts under the directory http://www.unicode.org/Public/. - -Software includes any source code published in the Unicode Standard or under the directories http://www.unicode.org/Public/, http://www.unicode.org/reports/, http://www.unicode.org/cldr/data/, http://source.icu-project.org/repos/icu/, and http://www.unicode.org/utility/trac/browser/. - -NOTICE TO USER: Carefully read the following legal agreement. BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE. - -COPYRIGHT AND PERMISSION NOTICE - -Copyright © 1991-2016 Unicode, Inc. All rights reserved. Distributed under the Terms of Use in http://www.unicode.org/copyright.html. - -Permission is hereby granted, free of charge, to any person obtaining a copy of the Unicode data files and any associated documentation (the "Data Files") or Unicode software and any associated documentation (the "Software") to deal in the Data Files or Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Data Files or Software, and to permit persons to whom the Data Files or Software are furnished to do so, provided that either - - (a) this copyright and permission notice appear with all copies of the Data Files or Software, or - (b) this copyright and permission notice appear in associated Documentation. - -THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA FILES OR SOFTWARE. - -Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in these Data Files or Software without prior written authorization of the copyright holder. - - -################################################################################ -# GPL-2.0-only -################################################################################ - -GNU GENERAL PUBLIC LICENSE -Version 2, June 1991 - -Copyright (C) 1989, 1991 Free Software Foundation, Inc. -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - -Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. - -Preamble - -The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. - -When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. - -To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. - -For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. - -We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. - -Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. - -Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. - -The precise terms and conditions for copying, distribution and modification follow. - -TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - -0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. - -1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. - -You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. - -2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. - - c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. - -3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. - -If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. - -4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. - -5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. - -6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. - -7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. - -This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. - -8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. - -9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. - -10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. - -NO WARRANTY - -11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - -12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -END OF TERMS AND CONDITIONS - -How to Apply These Terms to Your New Programs - -If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. - -To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. - - one line to give the program's name and an idea of what it does. Copyright (C) yyyy name of author - - This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. - -signature of Ty Coon, 1 April 1989 Ty Coon, President of Vice - - -################################################################################ -# libgit2 COPYING (GPL-2.0 WITH linking exception) — vendored C library -# Source: https://raw.githubusercontent.com/libgit2/libgit2/v1.9.1/COPYING -################################################################################ - -libgit2 is Copyright (C) the libgit2 contributors, - unless otherwise stated. See the AUTHORS file for details. - - Note that the only valid version of the GPL as far as this project - is concerned is _this_ particular version of the license (ie v2, not - v2.2 or v3.x or whatever), unless explicitly otherwise stated. - ----------------------------------------------------------------------- - - LINKING EXCEPTION - - In addition to the permissions in the GNU General Public License, - the authors give you unlimited permission to link the compiled - version of this library into combinations with other programs, - and to distribute those combinations without any restriction - coming from the use of this file. (The General Public License - restrictions do apply in other respects; for example, they cover - modification of the file, and distribution when not linked into - a combined executable.) - ----------------------------------------------------------------------- - - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. - ----------------------------------------------------------------------- - -The bundled ZLib code is licensed under the ZLib license: - - (C) 1995-2022 Jean-loup Gailly and Mark Adler - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - Jean-loup Gailly Mark Adler - jloup@gzip.org madler@alumni.caltech.edu - ----------------------------------------------------------------------- - -The Clar framework is licensed under the ISC license: - -Copyright (c) 2011-2015 Vicent Marti - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - ----------------------------------------------------------------------- - -The bundled PCRE implementation (deps/pcre/) is licensed under the BSD -license. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - * Neither the name of the University of Cambridge nor the name of Google - Inc. nor the names of their contributors may be used to endorse or - promote products derived from this software without specific prior - written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- - -The bundled winhttp definition files (deps/winhttp/) are licensed under -the GNU LGPL (available at the end of this file). - -Copyright (C) 2007 Francois Gouget - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - ----------------------------------------------------------------------- - - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. - - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! - ----------------------------------------------------------------------- - -The bundled SHA1 collision detection code is licensed under the MIT license: - -MIT License - -Copyright (c) 2017: - Marc Stevens - Cryptology Group - Centrum Wiskunde & Informatica - P.O. Box 94079, 1090 GB Amsterdam, Netherlands - marc@marc-stevens.nl - - Dan Shumow - Microsoft Research - danshu@microsoft.com - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ----------------------------------------------------------------------- - -The bundled wildmatch code is licensed under the BSD license: - -Copyright Rich Salz. -All rights reserved. - -Redistribution and use in any form are permitted provided that the -following restrictions are are met: - -1. Source distributions must retain this entire copyright notice - and comment. -2. Binary distributions must include the acknowledgement ``This - product includes software developed by Rich Salz'' in the - documentation or other materials provided with the - distribution. This must not be represented as an endorsement - or promotion without specific prior written permission. -3. The origin of this software must not be misrepresented, either - by explicit claim or by omission. Credits must appear in the - source and documentation. -4. Altered versions must be plainly marked as such in the source - and documentation and must not be misrepresented as being the - original software. - -THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED -WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - ----------------------------------------------------------------------- - -Portions of the OpenSSL headers are included under the OpenSSL license: - -Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) -All rights reserved. - -This package is an SSL implementation written -by Eric Young (eay@cryptsoft.com). -The implementation was written so as to conform with Netscapes SSL. - -This library is free for commercial and non-commercial use as long as -the following conditions are aheared to. The following conditions -apply to all code found in this distribution, be it the RC4, RSA, -lhash, DES, etc., code; not just the SSL code. The SSL documentation -included with this distribution is covered by the same copyright terms -except that the holder is Tim Hudson (tjh@cryptsoft.com). - -Copyright remains Eric Young's, and as such any Copyright notices in -the code are not to be removed. -If this package is used in a product, Eric Young should be given attribution -as the author of the parts of the library used. -This can be in the form of a textual message at program startup or -in documentation (online or textual) provided with the package. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the copyright - notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. -3. All advertising materials mentioning features or use of this software - must display the following acknowledgement: - "This product includes cryptographic software written by - Eric Young (eay@cryptsoft.com)" - The word 'cryptographic' can be left out if the rouines from the library - being used are not cryptographic related :-). -4. If you include any Windows specific code (or a derivative thereof) from - the apps directory (application code) you must include an acknowledgement: - "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - -THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -SUCH DAMAGE. - -The licence and distribution terms for any publically available version or -derivative of this code cannot be changed. i.e. this code cannot simply be -copied and put under another distribution licence -[including the GNU Public Licence.] - -==================================================================== -Copyright (c) 1998-2007 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@openssl.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- - -The xoroshiro256** implementation is licensed in the public domain: - -Written in 2018 by David Blackman and Sebastiano Vigna (vigna@acm.org) - -To the extent possible under law, the author has dedicated all copyright -and related and neighboring rights to this software to the public domain -worldwide. This software is distributed without any warranty. - -See . - ----------------------------------------------------------------------- - -The built-in SHA256 support (src/hash/rfc6234) is taken from RFC 6234 -under the following license: - -Copyright (c) 2011 IETF Trust and the persons identified as -authors of the code. All rights reserved. - -Redistribution and use in source and binary forms, with or -without modification, are permitted provided that the following -conditions are met: - -- Redistributions of source code must retain the above - copyright notice, this list of conditions and - the following disclaimer. - -- Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - -- Neither the name of Internet Society, IETF or IETF Trust, nor - the names of specific contributors, may be used to endorse or - promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND -CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR -CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- - -The built-in git_fs_path_basename_r() function is based on the -Android implementation, BSD licensed: - -Copyright (C) 2008 The Android Open Source Project -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -* Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -SUCH DAMAGE. - ----------------------------------------------------------------------- - -The bundled ntlmclient code is licensed under the MIT license: - -Copyright (c) Edward Thomson. All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the "Software"), -to deal in the Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - ----------------------------------------------------------------------- - -Portions of this software derived from Team Explorer Everywhere: - -Copyright (c) Microsoft Corporation - -All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the "Software"), -to deal in the Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - ---------------------------------------------------------------------------- - -Portions of this software derived from the LLVM Compiler Infrastructure: - -Copyright (c) 2003-2016 University of Illinois at Urbana-Champaign. -All rights reserved. - -Developed by: - - LLVM Team - - University of Illinois at Urbana-Champaign - - http://llvm.org - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal with -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimers. - - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimers in the - documentation and/or other materials provided with the distribution. - - * Neither the names of the LLVM Team, University of Illinois at - Urbana-Champaign, nor the names of its contributors may be used to - endorse or promote products derived from this Software without specific - prior written permission. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE -SOFTWARE. - ---------------------------------------------------------------------------- - -Portions of this software derived from Unicode, Inc: - -Copyright 2001-2004 Unicode, Inc. - -Disclaimer - -This source code is provided as is by Unicode, Inc. No claims are -made as to fitness for any particular purpose. No warranties of any -kind are expressed or implied. The recipient agrees to determine -applicability of information provided. If this file has been -purchased on magnetic or optical media from Unicode, Inc., the -sole remedy for any claim will be exchange of defective media -within 90 days of receipt. - -Limitations on Rights to Redistribute This Code - -Unicode, Inc. hereby grants the right to freely use the information -supplied in this file in the creation of products supporting the -Unicode Standard, and to make copies of this file in any form -for internal or external distribution as long as this notice -remains attached. - ---------------------------------------------------------------------------- - -Portions of this software derived from sheredom/utf8.h: - -This is free and unencumbered software released into the public domain. - -Anyone is free to copy, modify, publish, use, compile, sell, or -distribute this software, either in source code form or as a compiled -binary, for any purpose, commercial or non-commercial, and by any -means. - -In jurisdictions that recognize copyright laws, the author or authors -of this software dedicate any and all copyright interest in the -software to the public domain. We make this dedication for the benefit -of the public at large and to the detriment of our heirs and -successors. We intend this dedication to be an overt act of -relinquishment in perpetuity of all present and future rights to this -software under copyright law. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - -For more information, please refer to - ---------------------------------------------------------------------------- - -Portions of this software derived from RFC 1320: - -Copyright (C) 1990-2, RSA Data Security, Inc. All rights reserved. - -License to copy and use this software is granted provided that it -is identified as the "RSA Data Security, Inc. MD4 Message-Digest -Algorithm" in all material mentioning or referencing this software -or this function. - -License is also granted to make and use derivative works provided -that such works are identified as "derived from the RSA Data -Security, Inc. MD4 Message-Digest Algorithm" in all material -mentioning or referencing the derived work. - -RSA Data Security, Inc. makes no representations concerning either -the merchantability of this software or the suitability of this -software for any particular purpose. It is provided "as is" -without express or implied warranty of any kind. - -These notices must be retained in any copies of any part of this -documentation and/or software. - ----------------------------------------------------------------------- - -The bundled llhttp dependency is licensed under the MIT license: - -Copyright Fedor Indutny, 2018. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. - - -================================================================================ -END OF THIRD-PARTY NOTICES -================================================================================ diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md new file mode 100644 index 0000000..8c5183f --- /dev/null +++ b/THIRD-PARTY-NOTICES.md @@ -0,0 +1,23906 @@ +# Third-Party Notices + +This file lists the third-party Rust crates distributed as part of the +`kigi` binary, grouped by license, with the full license texts and the +crates each text applies to. Generated by +[cargo-about](https://github.com/EmbarkStudios/cargo-about) from +`about.toml`; regenerate with: + +``` +cargo about generate about.hbs -o THIRD-PARTY-NOTICES.md +``` + +## Overview + +- Apache License 2.0 (752 crates) +- MIT License (284 crates) +- Unicode License v3 (19 crates) +- BSD 3-Clause "New" or "Revised" License (18 crates) +- ISC License (12 crates) +- Mozilla Public License 2.0 (8 crates) +- zlib License (4 crates) +- Boost Software License 1.0 (2 crates) +- Unicode License Agreement - Data Files and Software (2016) (2 crates) +- BSD 2-Clause "Simplified" License (1 crate) +- Creative Commons Zero v1.0 Universal (1 crate) +- Community Data License Agreement Permissive 2.0 (1 crate) +- Eclipse Public License 2.0 (1 crate) +- MIT No Attribution (1 crate) +- Do What The F*ck You Want To Public License (1 crate) + +## Licenses + +### Apache License 2.0 + +Applies to: + +- [mac_address 1.1.8](https://github.com/rep-nop/mac_address) + +``` + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2018 Wesley Norris + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [landlock 0.4.5](https://github.com/landlock-lsm/rust-landlock) + +``` + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2020 Mickaël Salaün + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [powerfmt 0.2.0](https://github.com/jhpratt/powerfmt) + +``` + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2023 Jacob Pratt et al. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [cursor-icon 1.2.0](https://github.com/rust-windowing/cursor-icon) + +``` + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2023 Kirill Chibisov + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [deranged 0.5.8](https://github.com/jhpratt/deranged) + +``` + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2024 Jacob Pratt et al. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [serde_tokenstream 0.2.3](https://github.com/oxidecomputer/serde_tokenstream) + +``` + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +``` + +### Apache License 2.0 + +Applies to: + +- [cmov 0.5.4](https://github.com/RustCrypto/utils) +- [ctutils 0.4.2](https://github.com/RustCrypto/utils) +- [encode_unicode 1.0.0](https://github.com/tormol/encode_unicode) +- [encoding_rs 0.8.35](https://github.com/hsivonen/encoding_rs) +- [flagset 0.4.7](https://github.com/enarx/flagset) +- [htmd 0.5.4](https://github.com/letmutex/htmd) +- [kurbo 0.13.1](https://github.com/linebender/kurbo) +- [nohash-hasher 0.2.0](https://github.com/paritytech/nohash-hasher) +- [polycool 0.4.0](https://github.com/linebender/kurbo) +- [secrecy 0.10.3](https://github.com/iqlusioninc/crates/tree/main/secrecy) +- [static_assertions 1.1.0](https://github.com/nvzqz/static-assertions-rs) +- [tinyvec 1.12.0](https://github.com/Lokathor/tinyvec) +- [utf8_iter 1.0.4](https://github.com/hsivonen/utf8_iter) +- [x11rb-protocol 0.13.2](https://github.com/psychon/x11rb) +- [x11rb 0.13.2](https://github.com/psychon/x11rb) +- [zeroize 1.9.0](https://github.com/RustCrypto/utils) +- [zeroize_derive 1.5.0](https://github.com/RustCrypto/utils) + +``` + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [fast_image_resize 6.0.0](https://github.com/cykooz/fast_image_resize) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright (c) 2021 Kirill Kuzminykh + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [windows-collections 0.2.0](https://github.com/microsoft/windows-rs) +- [windows-collections 0.3.2](https://github.com/microsoft/windows-rs) +- [windows-core 0.61.2](https://github.com/microsoft/windows-rs) +- [windows-core 0.62.2](https://github.com/microsoft/windows-rs) +- [windows-future 0.2.1](https://github.com/microsoft/windows-rs) +- [windows-future 0.3.2](https://github.com/microsoft/windows-rs) +- [windows-implement 0.60.2](https://github.com/microsoft/windows-rs) +- [windows-interface 0.59.3](https://github.com/microsoft/windows-rs) +- [windows-link 0.1.3](https://github.com/microsoft/windows-rs) +- [windows-link 0.2.1](https://github.com/microsoft/windows-rs) +- [windows-numerics 0.2.0](https://github.com/microsoft/windows-rs) +- [windows-numerics 0.3.1](https://github.com/microsoft/windows-rs) +- [windows-result 0.3.4](https://github.com/microsoft/windows-rs) +- [windows-result 0.4.1](https://github.com/microsoft/windows-rs) +- [windows-strings 0.4.2](https://github.com/microsoft/windows-rs) +- [windows-strings 0.5.1](https://github.com/microsoft/windows-rs) +- [windows-sys 0.48.0](https://github.com/microsoft/windows-rs) +- [windows-sys 0.59.0](https://github.com/microsoft/windows-rs) +- [windows-sys 0.60.2](https://github.com/microsoft/windows-rs) +- [windows-sys 0.61.2](https://github.com/microsoft/windows-rs) +- [windows-targets 0.48.5](https://github.com/microsoft/windows-rs) +- [windows-targets 0.52.6](https://github.com/microsoft/windows-rs) +- [windows-targets 0.53.5](https://github.com/microsoft/windows-rs) +- [windows-threading 0.1.0](https://github.com/microsoft/windows-rs) +- [windows-threading 0.2.1](https://github.com/microsoft/windows-rs) +- [windows 0.61.3](https://github.com/microsoft/windows-rs) +- [windows 0.62.2](https://github.com/microsoft/windows-rs) +- [windows_x86_64_gnu 0.48.5](https://github.com/microsoft/windows-rs) +- [windows_x86_64_gnu 0.52.6](https://github.com/microsoft/windows-rs) +- [windows_x86_64_gnu 0.53.1](https://github.com/microsoft/windows-rs) +- [windows_x86_64_msvc 0.48.5](https://github.com/microsoft/windows-rs) +- [windows_x86_64_msvc 0.52.6](https://github.com/microsoft/windows-rs) +- [windows_x86_64_msvc 0.53.1](https://github.com/microsoft/windows-rs) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright (c) Microsoft Corporation. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [zopfli 0.8.3](https://github.com/zopfli-rs/zopfli) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2011 Google Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [pulldown-cmark-to-cmark 22.0.0](https://github.com/Byron/pulldown-cmark-to-cmark) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2018 "Sebastian Thiel ", "Dylan Owen ", "Alessandro Ogier ", "Zixian Cai <2891235+caizixian@users.noreply.github.com>" + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [pprof 0.15.0](https://github.com/tikv/pprof-rs) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2019 TiKV Project Authors. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [moka 0.12.15](https://github.com/moka-rs/moka) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2020 - 2026 Tatsuya Kawano + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [csscolorparser 0.6.2](https://github.com/mazznoer/csscolorparser-rs) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2020 Nor Khasyatillah + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [tinyvec_macros 0.1.1](https://github.com/Soveu/tinyvec_macros) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2020 Tomasz "Soveu" Marx + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +``` + +### Apache License 2.0 + +Applies to: + +- [backon 1.6.0](https://github.com/Xuanwo/backon) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2021 Datafuse Labs + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +``` + +### Apache License 2.0 + +Applies to: + +- [dagre_rust 0.0.5](https://github.com/r3alst/dagre-rust) +- [graphlib_rust 0.0.2](https://github.com/r3alst/graphlib-rust) +- [ordered_hashmap 0.0.3](https://github.com/r3alst/ordered-hashmap) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2023 Ameer Hamza + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +``` + +### Apache License 2.0 + +Applies to: + +- [zerocopy-derive 0.8.54](https://github.com/google/zerocopy) +- [zerocopy 0.8.54](https://github.com/google/zerocopy) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2023 The Fuchsia Authors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +``` + +### Apache License 2.0 + +Applies to: + +- [web-time 1.1.0](https://github.com/daxpedda/web-time) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2023 dAxpeDDa + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [moxcms 0.8.1](https://github.com/awxkee/moxcms.git) +- [pxfm 0.1.30](https://github.com/awxkee/pxfm) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2024 Radzivon Bartoshyk + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [ciborium-io 0.2.2](https://github.com/enarx/ciborium) +- [ciborium-ll 0.2.2](https://github.com/enarx/ciborium) +- [ciborium 0.2.2](https://github.com/enarx/ciborium) +- [command-fds 0.3.3](https://github.com/google/command-fds/) +- [crc-fast 1.10.0](https://github.com/awesomized/crc-fast-rust) +- [rustls-platform-verifier 0.7.0](https://github.com/rustls/rustls-platform-verifier) +- [unicode-linebreak 0.1.5](https://github.com/axelf4/unicode-linebreak) +- [zune-core 0.5.1](https://github.com/etemesi254/zune-image) +- [zune-jpeg 0.5.15](https://github.com/etemesi254/zune-image/tree/dev/crates/zune-jpeg) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [ipnet 2.12.0](https://github.com/krisprice/ipnet) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2017 Juniper Networks, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [deadpool-runtime 0.1.4](https://github.com/bikeshedder/deadpool) +- [deadpool 0.12.3](https://github.com/bikeshedder/deadpool) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2019 Michael P. Jung + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +``` + +### Apache License 2.0 + +Applies to: + +- [prometheus 0.14.0](https://github.com/tikv/rust-prometheus) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2019 TiKV Project Authors. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [kasuari 0.4.12](https://github.com/ratatui/kasuari) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [bytecount 0.6.9](https://github.com/llogiq/bytecount) +- [diff 0.1.13](https://github.com/utkarshkukreti/diff.rs) +- [winapi 0.3.9](https://github.com/retep998/winapi-rs) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [anstream 1.0.0](https://github.com/rust-cli/anstyle.git) +- [anstyle-lossy 1.1.5](https://github.com/rust-cli/anstyle.git) +- [anstyle-parse 0.2.7](https://github.com/rust-cli/anstyle.git) +- [anstyle-parse 1.0.0](https://github.com/rust-cli/anstyle.git) +- [anstyle-query 1.1.5](https://github.com/rust-cli/anstyle.git) +- [anstyle-syntect 1.0.5](https://github.com/rust-cli/anstyle.git) +- [anstyle-wincon 3.0.11](https://github.com/rust-cli/anstyle.git) +- [anstyle 1.0.14](https://github.com/rust-cli/anstyle.git) +- [clap 4.6.2](https://github.com/clap-rs/clap) +- [clap_builder 4.6.2](https://github.com/clap-rs/clap) +- [clap_complete 4.6.7](https://github.com/clap-rs/clap) +- [clap_derive 4.6.1](https://github.com/clap-rs/clap) +- [clap_lex 1.1.0](https://github.com/clap-rs/clap) +- [colorchoice 1.0.5](https://github.com/rust-cli/anstyle.git) +- [crc32fast 1.5.0](https://github.com/srijs/rust-crc32fast) +- [derive_builder 0.20.2](https://github.com/colin-kiegel/rust-derive-builder) +- [derive_builder_core 0.20.2](https://github.com/colin-kiegel/rust-derive-builder) +- [derive_builder_macro 0.20.2](https://github.com/colin-kiegel/rust-derive-builder) +- [env_filter 2.0.0](https://github.com/rust-cli/env_logger) +- [env_logger 0.11.11](https://github.com/rust-cli/env_logger) +- [fallible-iterator 0.3.0](https://github.com/sfackler/rust-fallible-iterator) +- [fallible-streaming-iterator 0.1.9](https://github.com/sfackler/fallible-streaming-iterator) +- [hex 0.4.3](https://github.com/KokaKiwi/rust-hex) +- [humantime 2.4.0](https://github.com/chronotope/humantime) +- [is_terminal_polyfill 1.70.2](https://github.com/polyfill-rs/is_terminal_polyfill) +- [kstring 2.0.3](https://github.com/cobalt-org/kstring) +- [once_cell_polyfill 1.70.2](https://github.com/polyfill-rs/once_cell_polyfill) +- [pretty_assertions 1.4.1](https://github.com/rust-pretty-assertions/rust-pretty-assertions) +- [procfs-core 0.17.0](https://github.com/eminence/procfs) +- [procfs 0.17.0](https://github.com/eminence/procfs) +- [quick-error 2.0.1](http://github.com/tailhook/quick-error) +- [serde_spanned 0.6.9](https://github.com/toml-rs/toml) +- [serde_spanned 1.1.1](https://github.com/toml-rs/toml) +- [streaming-iterator 0.1.9](https://github.com/sfackler/streaming-iterator) +- [stringprep 0.1.5](https://github.com/sfackler/rust-stringprep) +- [tikv-jemalloc-ctl 0.6.1](https://github.com/tikv/jemallocator) +- [toml 0.9.12+spec-1.1.0](https://github.com/toml-rs/toml) +- [toml_datetime 0.6.11](https://github.com/toml-rs/toml) +- [toml_datetime 0.7.5+spec-1.1.0](https://github.com/toml-rs/toml) +- [toml_datetime 1.1.1+spec-1.1.0](https://github.com/toml-rs/toml) +- [toml_edit 0.22.27](https://github.com/toml-rs/toml) +- [toml_edit 0.25.13+spec-1.1.0](https://github.com/toml-rs/toml) +- [toml_parser 1.1.2+spec-1.1.0](https://github.com/toml-rs/toml) +- [toml_write 0.1.2](https://github.com/toml-rs/toml) +- [toml_writer 1.1.2+spec-1.1.0](https://github.com/toml-rs/toml) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +``` + +### Apache License 2.0 + +Applies to: + +- [async-broadcast 0.7.2](https://github.com/smol-rs/async-broadcast) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + Copyright 2020 Yoshua Wuyts + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [agent-client-protocol-schema 0.11.4](https://github.com/agentclientprotocol/agent-client-protocol) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + Copyright 2025 Zed Industries, Inc. and contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [cassowary 0.3.0](https://github.com/dylanede/cassowary-rs) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [kv-log-macro 1.0.7](https://github.com/yoshuawuyts/kv-log-macro) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + Copyright 2019 Yoshua Wuyts + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [aws-sdk-s3 1.138.1](https://github.com/awslabs/aws-sdk-rust) +- [aws-sdk-sso 1.103.0](https://github.com/awslabs/aws-sdk-rust) +- [aws-sdk-ssooidc 1.105.0](https://github.com/awslabs/aws-sdk-rust) +- [aws-sdk-sts 1.108.0](https://github.com/awslabs/aws-sdk-rust) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +``` + +### Apache License 2.0 + +Applies to: + +- [shell-words 1.1.1](https://github.com/tmiasko/shell-words) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [futures-channel 0.3.32](https://github.com/rust-lang/futures-rs) +- [futures-core 0.3.32](https://github.com/rust-lang/futures-rs) +- [futures-executor 0.3.32](https://github.com/rust-lang/futures-rs) +- [futures-io 0.3.32](https://github.com/rust-lang/futures-rs) +- [futures-macro 0.3.32](https://github.com/rust-lang/futures-rs) +- [futures-sink 0.3.32](https://github.com/rust-lang/futures-rs) +- [futures-task 0.3.32](https://github.com/rust-lang/futures-rs) +- [futures-util 0.3.32](https://github.com/rust-lang/futures-rs) +- [futures 0.3.32](https://github.com/rust-lang/futures-rs) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright (c) 2016 Alex Crichton +Copyright (c) 2017 The Tokio Authors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [typenum 1.20.1](https://github.com/paholg/typenum) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2014 Paho Lurie-Gregg + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +``` + +### Apache License 2.0 + +Applies to: + +- [reqwest 0.12.28](https://github.com/seanmonstar/reqwest) +- [reqwest 0.13.4](https://github.com/seanmonstar/reqwest) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2016 Sean McArthur + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [yansi 1.0.1](https://github.com/SergioBenitez/yansi) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2017 Sergio Benitez + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [http 0.2.12](https://github.com/hyperium/http) +- [http 1.4.2](https://github.com/hyperium/http) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2017 http-rs authors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [tokio-rustls 0.26.4](https://github.com/rustls/tokio-rustls) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2017 quininer kel + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [pin-utils 0.1.0](https://github.com/rust-lang-nursery/pin-utils) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2018 The pin-utils authors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [ecdsa 0.16.9](https://github.com/RustCrypto/signatures/tree/master/ecdsa) +- [ed25519 2.2.3](https://github.com/RustCrypto/signatures/tree/master/ed25519) +- [rfc6979 0.4.0](https://github.com/RustCrypto/signatures/tree/master/rfc6979) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2018-2022 RustCrypto Developers + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [crossbeam 0.8.4](https://github.com/crossbeam-rs/crossbeam) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2019 The Crossbeam Project Developers + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [ppv-lite86 0.2.21](https://github.com/cryptocorrosion/cryptocorrosion) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2019 The CryptoCorrosion Contributors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [iana-time-zone 0.1.65](https://github.com/strawlab/iana-time-zone) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2020 Andrew Straw + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [optfield 0.4.0](https://github.com/roignpar/optfield) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2020 Robert Ignat + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [alacritty_terminal 0.26.0](https://github.com/alacritty/alacritty) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2020 The Alacritty Project + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [regress 0.11.1](https://github.com/ridiculousfish/regress) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2020 ridiculous_fish + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [fast-float2 0.2.3](https://github.com/Alexhuszagh/fast-float-rust) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2021 Ivan Smirnov + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [atoi_simd 0.18.1](https://github.com/RoDmitry/atoi_simd) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2022-NOW Dmitry Rodionov + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [rustls-pki-types 1.15.0](https://github.com/rustls/pki-types) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2023 Dirkjan Ochtman + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [file-id 0.2.3](https://github.com/notify-rs/notify.git) +- [notify-debouncer-full 0.5.0](https://github.com/notify-rs/notify.git) +- [notify-debouncer-mini 0.6.0](https://github.com/notify-rs/notify.git) +- [notify-types 2.1.0](https://github.com/notify-rs/notify.git) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2023 Notify Contributors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [rapidhash 4.5.1](https://github.com/hoxxep/rapidhash) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2024 Liam Gray + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [debug_unsafe 0.1.4](https://github.com/RoDmitry/debug_unsafe) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2025-NOW Dmitry Rodionov + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [memmap2 0.9.11](https://github.com/RazrFalcon/memmap2-rs) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [2015] [Dan Burkert] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [keyring 3.6.3](https://github.com/hwchen/keyring-rs.git) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [2017] [keyring developers] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [async-recursion 1.1.1](https://github.com/dcchut/async-recursion) +- [gif 0.14.2](https://github.com/image-rs/image-gif) +- [rsa 0.9.10](https://github.com/RustCrypto/RSA) +- [weezl 0.1.12](https://github.com/image-rs/weezl) +- [weezl 0.2.1](https://github.com/image-rs/weezl) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +``` + +### Apache License 2.0 + +Applies to: + +- [addr2line 0.25.1](https://github.com/gimli-rs/addr2line) +- [ahash 0.8.12](https://github.com/tkaitchuck/ahash) +- [arc-swap 1.9.2](https://github.com/vorner/arc-swap) +- [arrayvec 0.7.8](https://github.com/bluss/arrayvec) +- [assert_matches 1.5.0](https://github.com/murarth/assert_matches) +- [async-channel 1.9.0](https://github.com/smol-rs/async-channel) +- [async-channel 2.5.0](https://github.com/smol-rs/async-channel) +- [async-compression 0.4.42](https://github.com/Nullus157/async-compression) +- [async-executor 1.14.0](https://github.com/smol-rs/async-executor) +- [async-fs 2.2.0](https://github.com/smol-rs/async-fs) +- [async-global-executor 2.4.1](https://github.com/Keruspe/async-global-executor) +- [async-io 2.6.0](https://github.com/smol-rs/async-io) +- [async-lock 3.4.2](https://github.com/smol-rs/async-lock) +- [async-net 2.0.0](https://github.com/smol-rs/async-net) +- [async-process 2.5.0](https://github.com/smol-rs/async-process) +- [async-signal 0.2.14](https://github.com/smol-rs/async-signal) +- [async-std 1.13.2](https://github.com/async-rs/async-std) +- [async-task 4.7.1](https://github.com/smol-rs/async-task) +- [atomic-waker 1.1.2](https://github.com/smol-rs/atomic-waker) +- [atomic 0.6.1](https://github.com/Amanieu/atomic-rs) +- [autocfg 1.5.1](https://github.com/cuviper/autocfg) +- [backoff 0.4.0](https://github.com/ihrwein/backoff) +- [backtrace 0.3.76](https://github.com/rust-lang/backtrace-rs) +- [base64 0.22.1](https://github.com/marshallpierce/rust-base64) +- [bitflags 1.3.2](https://github.com/bitflags/bitflags) +- [bitflags 2.13.1](https://github.com/bitflags/bitflags) +- [blocking 1.6.2](https://github.com/smol-rs/blocking) +- [bstr 1.13.0](https://github.com/BurntSushi/bstr) +- [bumpalo 3.20.3](https://github.com/fitzgen/bumpalo) +- [bytes-utils 0.1.4](https://github.com/vorner/bytes-utils) +- [camino 1.2.4](https://github.com/camino-rs/camino) +- [cast 0.3.0](https://github.com/japaric/cast.rs) +- [cc 1.2.67](https://github.com/rust-lang/cc-rs) +- [cfg-if 1.0.4](https://github.com/rust-lang/cfg-if) +- [cmake 0.1.58](https://github.com/rust-lang/cmake-rs) +- [compression-codecs 0.4.38](https://github.com/Nullus157/async-compression) +- [compression-core 0.4.32](https://github.com/Nullus157/async-compression) +- [concurrent-queue 2.5.0](https://github.com/smol-rs/concurrent-queue) +- [core-foundation-sys 0.8.7](https://github.com/servo/core-foundation-rs) +- [core-foundation 0.10.1](https://github.com/servo/core-foundation-rs) +- [cpp_demangle 0.4.5](https://github.com/gimli-rs/cpp_demangle) +- [criterion-plot 0.5.0](https://github.com/bheisler/criterion.rs) +- [criterion 0.6.0](https://github.com/bheisler/criterion.rs) +- [crossbeam-channel 0.5.16](https://github.com/crossbeam-rs/crossbeam) +- [crossbeam-deque 0.8.7](https://github.com/crossbeam-rs/crossbeam) +- [crossbeam-epoch 0.9.20](https://github.com/crossbeam-rs/crossbeam) +- [crossbeam-queue 0.3.13](https://github.com/crossbeam-rs/crossbeam) +- [crossbeam-utils 0.8.22](https://github.com/crossbeam-rs/crossbeam) +- [curve25519-dalek-derive 0.1.1](https://github.com/dalek-cryptography/curve25519-dalek) +- [data-url 0.3.2](https://github.com/servo/rust-url) +- [debugid 0.8.0](https://github.com/getsentry/rust-debugid) +- [displaydoc 0.2.6](https://github.com/yaahc/displaydoc) +- [either 1.16.0](https://github.com/rayon-rs/either) +- [equivalent 1.0.2](https://github.com/indexmap-rs/equivalent) +- [errno 0.3.14](https://github.com/lambda-fairy/rust-errno) +- [euclid 0.22.14](https://github.com/servo/euclid) +- [event-listener-strategy 0.5.4](https://github.com/smol-rs/event-listener-strategy) +- [event-listener 2.5.3](https://github.com/smol-rs/event-listener) +- [event-listener 5.4.1](https://github.com/smol-rs/event-listener) +- [fastrand 2.4.1](https://github.com/smol-rs/fastrand) +- [filetime 0.2.29](https://github.com/alexcrichton/filetime) +- [find-msvc-tools 0.1.9](https://github.com/rust-lang/cc-rs) +- [findshlibs 0.10.2](https://github.com/gimli-rs/findshlibs) +- [fixedbitset 0.4.2](https://github.com/petgraph/fixedbitset) +- [fixedbitset 0.5.7](https://github.com/petgraph/fixedbitset) +- [flate2 1.1.9](https://github.com/rust-lang/flate2-rs) +- [fnv 1.0.7](https://github.com/servo/rust-fnv) +- [form_urlencoded 1.2.2](https://github.com/servo/rust-url) +- [fraction 0.15.4](https://github.com/dnsl48/fraction.git) +- [fs2 0.4.3](https://github.com/danburkert/fs2-rs) +- [futf 0.1.5](https://github.com/servo/futf) +- [futures-lite 2.6.1](https://github.com/smol-rs/futures-lite) +- [futures-timer 3.0.4](https://github.com/async-rs/futures-timer) +- [gethostname 1.1.0](https://codeberg.org/swsnr/gethostname.rs.git) +- [getopts 0.2.24](https://github.com/rust-lang/getopts) +- [gimli 0.32.3](https://github.com/gimli-rs/gimli) +- [git2 0.21.0](https://github.com/rust-lang/git2-rs) +- [gix-imara-diff 0.2.3](https://github.com/GitoxideLabs/gitoxide) +- [glob 0.3.3](https://github.com/rust-lang/glob) +- [group 0.13.0](https://github.com/zkcrypto/group) +- [hash32 0.3.1](https://github.com/japaric/hash32) +- [hashbrown 0.14.5](https://github.com/rust-lang/hashbrown) +- [hashbrown 0.15.5](https://github.com/rust-lang/hashbrown) +- [hashbrown 0.16.1](https://github.com/rust-lang/hashbrown) +- [hashbrown 0.17.1](https://github.com/rust-lang/hashbrown) +- [heapless 0.8.0](https://github.com/rust-embedded/heapless) +- [heck 0.5.0](https://github.com/withoutboats/heck) +- [html5ever 0.29.1](https://github.com/servo/html5ever) +- [html5ever 0.38.0](https://github.com/servo/html5ever) +- [httparse 1.10.1](https://github.com/seanmonstar/httparse) +- [humantime-serde 1.1.1](https://github.com/jean-airoldie/humantime-serde) +- [hyper-rustls 0.27.9](https://github.com/rustls/hyper-rustls) +- [hyper-timeout 0.5.2](https://github.com/hjr3/hyper-timeout) +- [idna 1.1.0](https://github.com/servo/rust-url/) +- [idna_adapter 1.2.2](https://github.com/hsivonen/idna_adapter) +- [indexmap 2.14.0](https://github.com/indexmap-rs/indexmap) +- [insta 1.48.0](https://github.com/mitsuhiko/insta) +- [itertools 0.10.5](https://github.com/rust-itertools/itertools) +- [itertools 0.13.0](https://github.com/rust-itertools/itertools) +- [itertools 0.14.0](https://github.com/rust-itertools/itertools) +- [jobserver 0.1.35](https://github.com/rust-lang/jobserver-rs) +- [jpeg-decoder 0.3.2](https://github.com/image-rs/jpeg-decoder) +- [lazy_static 1.5.0](https://github.com/rust-lang-nursery/lazy-static.rs) +- [libgit2-sys 0.18.5+1.9.4](https://github.com/rust-lang/git2-rs) +- [libz-sys 1.1.29](https://github.com/rust-lang/libz-sys) +- [linkify 0.10.0](https://github.com/robinst/linkify) +- [linux-raw-sys 0.12.1](https://github.com/sunfishcode/linux-raw-sys) +- [linux-raw-sys 0.4.15](https://github.com/sunfishcode/linux-raw-sys) +- [lock_api 0.4.14](https://github.com/Amanieu/parking_lot) +- [log 0.4.33](https://github.com/rust-lang/log) +- [markup5ever 0.14.1](https://github.com/servo/html5ever) +- [markup5ever 0.38.0](https://github.com/servo/html5ever) +- [markup5ever_rcdom 0.38.0+unofficial](https://github.com/servo/html5ever) +- [memmem 0.1.1](http://github.com/jneem/memmem) +- [memo-map 0.3.3](https://github.com/mitsuhiko/memo-map) +- [mime 0.3.17](https://github.com/hyperium/mime) +- [minijinja 2.21.0](https://github.com/mitsuhiko/minijinja) +- [multimap 0.10.1](https://github.com/havarnov/multimap) +- [num-bigint-dig 0.8.6](https://github.com/dignifiedquire/num-bigint) +- [num-bigint 0.4.8](https://github.com/rust-num/num-bigint) +- [num-complex 0.4.6](https://github.com/rust-num/num-complex) +- [num-derive 0.4.2](https://github.com/rust-num/num-derive) +- [num-integer 0.1.46](https://github.com/rust-num/num-integer) +- [num-iter 0.1.46](https://github.com/rust-num/num-iter) +- [num-rational 0.4.2](https://github.com/rust-num/num-rational) +- [num-traits 0.2.19](https://github.com/rust-num/num-traits) +- [num 0.4.3](https://github.com/rust-num/num) +- [num_cpus 1.17.0](https://github.com/seanmonstar/num_cpus) +- [oauth2 5.0.0](https://github.com/ramosbugs/oauth2-rs) +- [object 0.37.3](https://github.com/gimli-rs/object) +- [once_cell 1.21.4](https://github.com/matklad/once_cell) +- [openssl-probe 0.2.1](https://github.com/rustls/openssl-probe) +- [ordered-stream 0.2.0](https://github.com/danieldg/ordered-stream) +- [parking 2.2.1](https://github.com/smol-rs/parking) +- [parking_lot 0.12.5](https://github.com/Amanieu/parking_lot) +- [parking_lot_core 0.9.12](https://github.com/Amanieu/parking_lot) +- [percent-encoding 2.3.2](https://github.com/servo/rust-url/) +- [pest 2.8.7](https://github.com/pest-parser/pest) +- [pest_derive 2.8.7](https://github.com/pest-parser/pest) +- [pest_generator 2.8.7](https://github.com/pest-parser/pest) +- [pest_meta 2.8.7](https://github.com/pest-parser/pest) +- [petgraph 0.6.5](https://github.com/petgraph/petgraph) +- [petgraph 0.8.3](https://github.com/petgraph/petgraph) +- [piper 0.2.5](https://github.com/smol-rs/piper) +- [pkg-config 0.3.33](https://github.com/rust-lang/pkg-config-rs) +- [png 0.18.1](https://github.com/image-rs/image-png) +- [polling 3.11.0](https://github.com/smol-rs/polling) +- [prost-build 0.14.4](https://github.com/tokio-rs/prost) +- [prost-derive 0.14.4](https://github.com/tokio-rs/prost) +- [prost-types 0.14.4](https://github.com/tokio-rs/prost) +- [prost 0.14.4](https://github.com/tokio-rs/prost) +- [rayon-core 1.13.0](https://github.com/rayon-rs/rayon) +- [rayon 1.12.0](https://github.com/rayon-rs/rayon) +- [regex-automata 0.4.16](https://github.com/rust-lang/regex) +- [regex-lite 0.1.9](https://github.com/rust-lang/regex) +- [regex-syntax 0.8.11](https://github.com/rust-lang/regex) +- [regex 1.13.1](https://github.com/rust-lang/regex) +- [ring 0.17.14](https://github.com/briansmith/ring) +- [roxmltree 0.20.0](https://github.com/RazrFalcon/roxmltree) +- [roxmltree 0.21.1](https://github.com/RazrFalcon/roxmltree) +- [rustc-demangle 0.1.28](https://github.com/rust-lang/rustc-demangle) +- [rustc_version 0.4.1](https://github.com/djc/rustc-version-rs) +- [rustix-openpty 0.2.0](https://github.com/sunfishcode/rustix-openpty) +- [rustix 0.38.44](https://github.com/bytecodealliance/rustix) +- [rustix 1.1.4](https://github.com/bytecodealliance/rustix) +- [rustls-native-certs 0.8.4](https://github.com/rustls/rustls-native-certs) +- [rustls 0.23.42](https://github.com/rustls/rustls) +- [scopeguard 1.2.0](https://github.com/bluss/scopeguard) +- [security-framework-sys 2.17.0](https://github.com/kornelski/rust-security-framework) +- [security-framework 3.7.0](https://github.com/kornelski/rust-security-framework) +- [servo_arc 0.4.3](https://github.com/servo/stylo) +- [shellexpand 3.1.2](https://gitlab.com/ijackson/rust-shellexpand) +- [signal-hook-mio 0.2.5](https://github.com/vorner/signal-hook) +- [signal-hook-registry 1.4.8](https://github.com/vorner/signal-hook) +- [signal-hook 0.3.18](https://github.com/vorner/signal-hook) +- [signal-hook 0.4.4](https://github.com/vorner/signal-hook) +- [similar 2.7.0](https://github.com/mitsuhiko/similar) +- [simplecss 0.2.2](https://github.com/linebender/simplecss) +- [smallvec 1.15.2](https://github.com/servo/rust-smallvec) +- [socket2 0.6.5](https://github.com/rust-lang/socket2) +- [stable_deref_trait 1.2.1](https://github.com/storyyeller/stable_deref_trait) +- [string_cache 0.8.9](https://github.com/servo/string-cache) +- [string_cache 0.9.0](https://github.com/servo/string-cache) +- [string_cache_codegen 0.5.4](https://github.com/servo/string-cache) +- [string_cache_codegen 0.6.1](https://github.com/servo/string-cache) +- [strip-ansi-escapes 0.2.1](https://github.com/luser/strip-ansi-escapes) +- [svgtypes 0.16.1](https://github.com/linebender/svgtypes) +- [symlink 0.1.0](https://gitlab.com/chris-morgan/symlink) +- [syn 1.0.109](https://github.com/dtolnay/syn) +- [tar 0.4.46](https://github.com/composefs/tar-rs) +- [tempfile 3.27.0](https://github.com/Stebalien/tempfile) +- [tendril 0.4.3](https://github.com/servo/tendril) +- [tendril 0.5.1](https://github.com/servo/html5ever) +- [thread_local 1.1.10](https://github.com/Amanieu/thread_local-rs) +- [tikv-jemalloc-sys 0.6.1+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7](https://github.com/tikv/jemallocator) +- [tikv-jemallocator 0.6.1](https://github.com/tikv/jemallocator) +- [tinytemplate 1.2.1](https://github.com/bheisler/TinyTemplate) +- [ttf-parser 0.25.1](https://github.com/harfbuzz/ttf-parser) +- [tungstenite 0.29.0](https://github.com/snapview/tungstenite-rs) +- [two-face 0.4.5](https://github.com/CosmicHorrorDev/two-face) +- [ucd-trie 0.1.7](https://github.com/BurntSushi/ucd-generate) +- [unicase 2.9.0](https://github.com/seanmonstar/unicase) +- [unicode-bidi-mirroring 0.4.0](https://github.com/RazrFalcon/unicode-bidi-mirroring) +- [unicode-bidi 0.3.18](https://github.com/servo/unicode-bidi) +- [unicode-ccc 0.4.0](https://github.com/RazrFalcon/unicode-ccc) +- [unicode-normalization 0.1.25](https://github.com/unicode-rs/unicode-normalization) +- [unicode-properties 0.1.4](https://github.com/unicode-rs/unicode-properties) +- [unicode-segmentation 1.13.3](https://github.com/unicode-rs/unicode-segmentation) +- [unicode-truncate 1.1.0](https://github.com/Aetf/unicode-truncate) +- [unicode-truncate 2.0.1](https://github.com/Aetf/unicode-truncate) +- [unicode-vo 0.1.0](https://github.com/RazrFalcon/unicode-vo) +- [unicode-width 0.1.14](https://github.com/unicode-rs/unicode-width) +- [unicode-width 0.2.0](https://github.com/unicode-rs/unicode-width) +- [unicode-xid 0.2.6](https://github.com/unicode-rs/unicode-xid) +- [url 2.5.8](https://github.com/servo/rust-url) +- [uuid 1.24.0](https://github.com/uuid-rs/uuid) +- [value-bag 1.13.0](https://github.com/sval-rs/value-bag) +- [version_check 0.9.5](https://github.com/SergioBenitez/version_check) +- [wait-timeout 0.2.1](https://github.com/alexcrichton/wait-timeout) +- [web_atoms 0.2.5](https://github.com/servo/html5ever) +- [wiremock 0.6.5](https://github.com/LukeMathWalker/wiremock-rs) +- [wl-clipboard-rs 0.9.3](https://github.com/YaLTeR/wl-clipboard-rs) +- [xattr 1.6.1](https://github.com/Stebalien/xattr) +- [xml5ever 0.38.0](https://github.com/servo/html5ever) +- [xmlparser 0.13.6](https://github.com/RazrFalcon/xmlparser) +- [yaml-rust 0.4.5](https://github.com/chyh1990/yaml-rust) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [ff 0.13.1](https://github.com/zkcrypto/ff) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + +``` + +### Apache License 2.0 + +Applies to: + +- [hashlink 0.10.0](https://github.com/kyren/hashlink) +- [shared_library 0.1.9](https://github.com/tomaka/shared_library/) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +``` + +### Apache License 2.0 + +Applies to: + +- [async-lsp 0.2.4](https://github.com/oxalica/async-lsp) +- [bit-set 0.5.3](https://github.com/contain-rs/bit-set) +- [bit-set 0.8.0](https://github.com/contain-rs/bit-set) +- [bit-vec 0.6.3](https://github.com/contain-rs/bit-vec) +- [bit-vec 0.8.0](https://github.com/contain-rs/bit-vec) +- [downcast-rs 1.2.1](https://github.com/marcianx/downcast-rs) +- [linked-hash-map 0.5.6](https://github.com/contain-rs/linked-hash-map) +- [minimal-lexical 0.2.1](https://github.com/Alexhuszagh/minimal-lexical) +- [waitpid-any 0.3.0](https://github.com/oxalica/waitpid-any) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [hkdf 0.12.4](https://github.com/RustCrypto/KDFs/) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +``` + +### Apache License 2.0 + +Applies to: + +- [aes 0.9.1](https://github.com/RustCrypto/block-ciphers) +- [base16ct 0.2.0](https://github.com/RustCrypto/formats/tree/master/base16ct) +- [base64ct 1.8.3](https://github.com/RustCrypto/formats) +- [block-buffer 0.10.4](https://github.com/RustCrypto/utils) +- [block-buffer 0.12.1](https://github.com/RustCrypto/utils) +- [block-padding 0.4.2](https://github.com/RustCrypto/utils) +- [cbc 0.2.1](https://github.com/RustCrypto/block-modes) +- [chacha20 0.10.1](https://github.com/RustCrypto/stream-ciphers) +- [cipher 0.5.2](https://github.com/RustCrypto/traits) +- [cmpv2 0.2.0](https://github.com/RustCrypto/formats/tree/master/cmpv2) +- [const-oid 0.10.2](https://github.com/RustCrypto/formats) +- [const-oid 0.9.6](https://github.com/RustCrypto/formats/tree/master/const-oid) +- [cpubits 0.1.1](https://github.com/RustCrypto/utils) +- [cpufeatures 0.2.17](https://github.com/RustCrypto/utils) +- [cpufeatures 0.3.0](https://github.com/RustCrypto/utils) +- [crmf 0.2.0](https://github.com/RustCrypto/formats/tree/master/crmf) +- [crypto-bigint 0.5.5](https://github.com/RustCrypto/crypto-bigint) +- [crypto-common 0.1.6](https://github.com/RustCrypto/traits) +- [crypto-common 0.2.2](https://github.com/RustCrypto/traits) +- [der 0.7.10](https://github.com/RustCrypto/formats/tree/master/der) +- [der_derive 0.7.3](https://github.com/RustCrypto/formats/tree/master/der/derive) +- [digest 0.10.7](https://github.com/RustCrypto/traits) +- [digest 0.11.3](https://github.com/RustCrypto/traits) +- [elliptic-curve 0.13.8](https://github.com/RustCrypto/traits/tree/master/elliptic-curve) +- [hmac 0.12.1](https://github.com/RustCrypto/MACs) +- [hmac 0.13.0](https://github.com/RustCrypto/MACs) +- [hybrid-array 0.4.13](https://github.com/RustCrypto/hybrid-array) +- [inout 0.2.2](https://github.com/RustCrypto/utils) +- [md-5 0.11.0](https://github.com/RustCrypto/hashes) +- [p256 0.13.2](https://github.com/RustCrypto/elliptic-curves/tree/master/p256) +- [p384 0.13.1](https://github.com/RustCrypto/elliptic-curves/tree/master/p384) +- [pem-rfc7468 0.7.0](https://github.com/RustCrypto/formats/tree/master/pem-rfc7468) +- [pkcs1 0.7.5](https://github.com/RustCrypto/formats/tree/master/pkcs1) +- [pkcs8 0.10.2](https://github.com/RustCrypto/formats/tree/master/pkcs8) +- [primeorder 0.13.6](https://github.com/RustCrypto/elliptic-curves/tree/master/primeorder) +- [sec1 0.7.3](https://github.com/RustCrypto/formats/tree/master/sec1) +- [sha1-checked 0.10.0](https://github.com/RustCrypto/hashes) +- [sha1 0.10.7](https://github.com/RustCrypto/hashes) +- [sha1 0.11.0](https://github.com/RustCrypto/hashes) +- [sha2 0.10.9](https://github.com/RustCrypto/hashes) +- [sha2 0.11.0](https://github.com/RustCrypto/hashes) +- [signature 2.2.0](https://github.com/RustCrypto/traits/tree/master/signature) +- [spki 0.7.3](https://github.com/RustCrypto/formats/tree/master/spki) +- [tls_codec 0.4.2](https://github.com/RustCrypto/formats) +- [tls_codec_derive 0.4.2](https://github.com/RustCrypto/formats) +- [x509-cert 0.2.5](https://github.com/RustCrypto/formats/tree/master/x509-cert) +- [x509-tsp 0.1.0](https://github.com/RustCrypto/formats/tree/master/x509-tsp) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [webbrowser 1.2.1](https://github.com/amodm/webbrowser-rs) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +Copyright (c) 2015-2022 Amod Malviya + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [rand_core 0.10.1](https://github.com/rust-random/rand_core) +- [rand_core 0.6.4](https://github.com/rust-random/rand) +- [rand_core 0.9.5](https://github.com/rust-random/rand) + +``` + Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +``` + +### Apache License 2.0 + +Applies to: + +- [getrandom 0.2.17](https://github.com/rust-random/getrandom) +- [getrandom 0.3.4](https://github.com/rust-random/getrandom) +- [getrandom 0.4.3](https://github.com/rust-random/getrandom) +- [rand_chacha 0.3.1](https://github.com/rust-random/rand) + +``` + Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [adler2 2.0.1](https://github.com/oyvindln/adler2) +- [home 0.5.12](https://github.com/rust-lang/cargo) +- [proc-macro-crate 3.5.0](https://github.com/bkchr/proc-macro-crate) + +``` + Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/LICENSE-2.0 + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [unicode-script 0.5.8](https://github.com/unicode-rs/unicode-script) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2021 The Unicode-rs Developers + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [miow 0.6.1](https://github.com/yoshuawuyts/miow) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [vcpkg 0.2.15](https://github.com/mcgoo/vcpkg-rs) + +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + +``` + +### Apache License 2.0 + +Applies to: + +- [enumflags2 0.7.12](https://github.com/meithecatte/enumflags2) + +``` +Apache License + +Version 2.0, January 2004 + +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of this License; and +You must cause any modified files to carry prominent notices stating that You changed the files; and +You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and +If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + +You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. +5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + + +Copyright 2017-2023 Maik Klein, Maja Kądziołka + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [enumflags2_derive 0.7.12](https://github.com/meithecatte/enumflags2) + +``` +Apache License + +Version 2.0, January 2004 + +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of this License; and +You must cause any modified files to carry prominent notices stating that You changed the files; and +You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and +If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + +You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. +5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + + +Copyright [2017] [Maik Klein] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [font-types 0.11.3](https://github.com/googlefonts/fontations) +- [read-fonts 0.39.2](https://github.com/googlefonts/fontations) +- [skrifa 0.42.1](https://github.com/googlefonts/fontations) +- [write-fonts 0.48.1](https://github.com/googlefonts/fontations) + +``` +Apache License + +Version 2.0, January 2004 + +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of this License; and +You must cause any modified files to carry prominent notices stating that You changed the files; and +You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and +If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + +You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. +5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +Copyright 2019 Colin Rothfels + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [supports-color 3.0.2](https://github.com/zkat/supports-color) + +``` +Apache License + +Version 2.0, January 2004 + +http://www.apache.org/licenses/ TERMS +AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + + + + "License" shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + + + + +"Licensor" shall mean the copyright owner or entity authorized by the copyright +owner that is granting the License. + + + + "Legal Entity" shall mean the +union of the acting entity and all other entities that control, are controlled +by, or are under common control with that entity. For the purposes of this +definition, "control" means (i) the power, direct or indirect, to cause the +direction or management of such entity, whether by contract or otherwise, or (ii) +ownership of fifty percent (50%) or more of the outstanding shares, or (iii) +beneficial ownership of such entity. + + + + "You" (or "Your") shall mean +an individual or Legal Entity exercising permissions granted by this License. + + + + + "Source" form shall mean the preferred form for making modifications, +including but not limited to software source code, documentation source, and +configuration files. + + + + "Object" form shall mean any form resulting +from mechanical transformation or translation of a Source form, including but not +limited to compiled object code, generated documentation, and conversions to +other media types. + + + + "Work" shall mean the work of authorship, +whether in Source or Object form, made available under the License, as indicated +by a copyright notice that is included in or attached to the work (an example is +provided in the Appendix below). + + + + "Derivative Works" shall mean any +work, whether in Source or Object form, that is based on (or derived from) the +Work and for which the editorial revisions, annotations, elaborations, or other +modifications represent, as a whole, an original work of authorship. For the +purposes of this License, Derivative Works shall not include works that remain +separable from, or merely link (or bind by name) to the interfaces of, the Work +and Derivative Works thereof. + + + + "Contribution" shall mean any work +of authorship, including the original version of the Work and any modifications +or additions to that Work or Derivative Works thereof, that is intentionally +submitted to Licensor for inclusion in the Work by the copyright owner or by an +individual or Legal Entity authorized to submit on behalf of the copyright owner. +For the purposes of this definition, "submitted" means any form of electronic, +verbal, or written communication sent to the Licensor or its representatives, +including but not limited to communication on electronic mailing lists, source +code control systems, and issue tracking systems that are managed by, or on +behalf of, the Licensor for the purpose of discussing and improving the Work, but +excluding communication that is conspicuously marked or otherwise designated in +writing by the copyright owner as "Not a Contribution." + + + + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of +whom a Contribution has been received by Licensor and subsequently incorporated +within the Work. + + 2. Grant of Copyright License. Subject to the terms and +conditions of this License, each Contributor hereby grants to You a perpetual, +worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license +to reproduce, prepare Derivative Works of, publicly display, publicly perform, +sublicense, and distribute the Work and such Derivative Works in Source or Object +form. + + 3. Grant of Patent License. Subject to the terms and conditions of this +License, each Contributor hereby grants to You a perpetual, worldwide, +non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this +section) patent license to make, have made, use, offer to sell, sell, import, and +otherwise transfer the Work, where such license applies only to those patent +claims licensable by such Contributor that are necessarily infringed by their +Contribution(s) alone or by combination of their Contribution(s) with the Work to +which such Contribution(s) was submitted. If You institute patent litigation +against any entity (including a cross-claim or counterclaim in a lawsuit) +alleging that the Work or a Contribution incorporated within the Work constitutes +direct or contributory patent infringement, then any patent licenses granted to +You under this License for that Work shall terminate as of the date such +litigation is filed. + + 4. Redistribution. You may reproduce and distribute +copies of the Work or Derivative Works thereof in any medium, with or without +modifications, and in Source or Object form, provided that You meet the following +conditions: + + (a) You must give any other recipients of the Work or +Derivative Works a copy of this License; and + + (b) You must cause any +modified files to carry prominent notices stating that You changed the files; +and + + (c) You must retain, in the Source form of any Derivative Works that +You distribute, all copyright, patent, trademark, and attribution notices from +the Source form of the Work, excluding those notices that do not pertain to any +part of the Derivative Works; and + + (d) If the Work includes a "NOTICE" text +file as part of its distribution, then any Derivative Works that You distribute +must include a readable copy of the attribution notices contained within such +NOTICE file, excluding those notices that do not pertain to any part of the +Derivative Works, in at least one of the following places: within a NOTICE text +file distributed as part of the Derivative Works; within the Source form or +documentation, if provided along with the Derivative Works; or, within a display +generated by the Derivative Works, if and wherever such third-party notices +normally appear. The contents of the NOTICE file are for informational purposes +only and do not modify the License. You may add Your own attribution notices +within Derivative Works that You distribute, alongside or as an addendum to the +NOTICE text from the Work, provided that such additional attribution notices +cannot be construed as modifying the License. + + You may add Your own +copyright statement to Your modifications and may provide additional or different +license terms and conditions for use, reproduction, or distribution of Your +modifications, or for any such Derivative Works as a whole, provided Your use, +reproduction, and distribution of the Work otherwise complies with the conditions +stated in this License. + + 5. Submission of Contributions. Unless You explicitly +state otherwise, any Contribution intentionally submitted for inclusion in the +Work by You to the Licensor shall be under the terms and conditions of this +License, without any additional terms or conditions. Notwithstanding the above, +nothing herein shall supersede or modify the terms of any separate license +agreement you may have executed with Licensor regarding such Contributions. + + +6. Trademarks. This License does not grant permission to use the trade names, +trademarks, service marks, or product names of the Licensor, except as required +for reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless +required by applicable law or agreed to in writing, Licensor provides the Work +(and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, +without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, +MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible +for determining the appropriateness of using or redistributing the Work and +assume any risks associated with Your exercise of permissions under this +License. + + 8. Limitation of Liability. In no event and under no legal theory, +whether in tort (including negligence), contract, or otherwise, unless required +by applicable law (such as deliberate and grossly negligent acts) or agreed to in +writing, shall any Contributor be liable to You for damages, including any +direct, indirect, special, incidental, or consequential damages of any character +arising as a result of this License or out of the use or inability to use the +Work (including but not limited to damages for loss of goodwill, work stoppage, +computer failure or malfunction, or any and all other commercial damages or +losses), even if such Contributor has been advised of the possibility of such +damages. + + 9. Accepting Warranty or Additional Liability. While redistributing +the Work or Derivative Works thereof, You may choose to offer, and charge a fee +for, acceptance of support, warranty, indemnity, or other liability obligations +and/or rights consistent with this License. However, in accepting such +obligations, You may act only on Your own behalf and on Your sole responsibility, +not on behalf of any other Contributor, and only if You agree to indemnify, +defend, and hold each Contributor harmless for any liability incurred by, or +claims asserted against, such Contributor by reason of your accepting any such +warranty or additional liability. END OF TERMS AND CONDITIONS + +APPENDIX: How to +apply the Apache License to your work. + +To apply the Apache License to your work, +attach the following boilerplate notice, with the fields enclosed by brackets +"[]" replaced with your own identifying information. (Don't include the +brackets!) The text should be enclosed in the appropriate comment syntax for the +file format. We also recommend that a file or class name and description of +purpose be included on the same "printed page" as the copyright notice for easier +identification within third-party archives. + +Copyright [yyyy] Kat +Marchán + +Licensed under the Apache License, Version 2.0 (the "License"); + +you may +not use this file except in compliance with the License. + +You may obtain a copy +of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by +applicable law or agreed to in writing, software + +distributed under the License +is distributed on an "AS IS" BASIS, + +WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. + +See the License for the specific language +governing permissions and + +limitations under the License. +``` + +### Apache License 2.0 + +Applies to: + +- [unicode-bom 2.0.3](https://gitlab.com/philbooth/unicode-bom) + +``` +Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [bytemuck 1.25.1](https://github.com/Lokathor/bytemuck) +- [bytemuck_derive 1.11.0](https://github.com/Lokathor/bytemuck) + +``` +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + +To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [httpdate 1.0.3](https://github.com/pyfisch/httpdate) + +``` +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, +and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by +the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all +other entities that control, are controlled by, or are under common +control with that entity. For the purposes of this definition, +"control" means (i) the power, direct or indirect, to cause the +direction or management of such entity, whether by contract or +otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity +exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, +including but not limited to software source code, documentation +source, and configuration files. + +"Object" form shall mean any form resulting from mechanical +transformation or translation of a Source form, including but +not limited to compiled object code, generated documentation, +and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or +Object form, made available under the License, as indicated by a +copyright notice that is included in or attached to the work +(an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object +form, that is based on (or derived from) the Work and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. For the purposes +of this License, Derivative Works shall not include works that remain +separable from, or merely link (or bind by name) to the interfaces of, +the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including +the original version of the Work and any modifications or additions +to that Work or Derivative Works thereof, that is intentionally +submitted to Licensor for inclusion in the Work by the copyright owner +or by an individual or Legal Entity authorized to submit on behalf of +the copyright owner. For the purposes of this definition, "submitted" +means any form of electronic, verbal, or written communication sent +to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, +and issue tracking systems that are managed by, or on behalf of, the +Licensor for the purpose of discussing and improving the Work, but +excluding communication that is conspicuously marked or otherwise +designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity +on behalf of whom a Contribution has been received by Licensor and +subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of +this License, each Contributor hereby grants to You a perpetual, +worldwide, non-exclusive, no-charge, royalty-free, irrevocable +copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the +Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of +this License, each Contributor hereby grants to You a perpetual, +worldwide, non-exclusive, no-charge, royalty-free, irrevocable +(except as stated in this section) patent license to make, have made, +use, offer to sell, sell, import, and otherwise transfer the Work, +where such license applies only to those patent claims licensable +by such Contributor that are necessarily infringed by their +Contribution(s) alone or by combination of their Contribution(s) +with the Work to which such Contribution(s) was submitted. If You +institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work +or a Contribution incorporated within the Work constitutes direct +or contributory patent infringement, then any patent licenses +granted to You under this License for that Work shall terminate +as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the +Work or Derivative Works thereof in any medium, with or without +modifications, and in Source or Object form, provided that You +meet the following conditions: + +(a) You must give any other recipients of the Work or +Derivative Works a copy of this License; and + +(b) You must cause any modified files to carry prominent notices +stating that You changed the files; and + +(c) You must retain, in the Source form of any Derivative Works +that You distribute, all copyright, patent, trademark, and +attribution notices from the Source form of the Work, +excluding those notices that do not pertain to any part of +the Derivative Works; and + +(d) If the Work includes a "NOTICE" text file as part of its +distribution, then any Derivative Works that You distribute must +include a readable copy of the attribution notices contained +within such NOTICE file, excluding those notices that do not +pertain to any part of the Derivative Works, in at least one +of the following places: within a NOTICE text file distributed +as part of the Derivative Works; within the Source form or +documentation, if provided along with the Derivative Works; or, +within a display generated by the Derivative Works, if and +wherever such third-party notices normally appear. The contents +of the NOTICE file are for informational purposes only and +do not modify the License. You may add Your own attribution +notices within Derivative Works that You distribute, alongside +or as an addendum to the NOTICE text from the Work, provided +that such additional attribution notices cannot be construed +as modifying the License. + +You may add Your own copyright statement to Your modifications and +may provide additional or different license terms and conditions +for use, reproduction, or distribution of Your modifications, or +for any such Derivative Works as a whole, provided Your use, +reproduction, and distribution of the Work otherwise complies with +the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, +any Contribution intentionally submitted for inclusion in the Work +by You to the Licensor shall be under the terms and conditions of +this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify +the terms of any separate license agreement you may have executed +with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade +names, trademarks, service marks, or product names of the Licensor, +except as required for reasonable and customary use in describing the +origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or +agreed to in writing, Licensor provides the Work (and each +Contributor provides its Contributions) on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +implied, including, without limitation, any warranties or conditions +of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A +PARTICULAR PURPOSE. You are solely responsible for determining the +appropriateness of using or redistributing the Work and assume any +risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, +whether in tort (including negligence), contract, or otherwise, +unless required by applicable law (such as deliberate and grossly +negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, +incidental, or consequential damages of any character arising as a +result of this License or out of the use or inability to use the +Work (including but not limited to damages for loss of goodwill, +work stoppage, computer failure or malfunction, or any and all +other commercial damages or losses), even if such Contributor +has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing +the Work or Derivative Works thereof, You may choose to offer, +and charge a fee for, acceptance of support, warranty, indemnity, +or other liability obligations and/or rights consistent with this +License. However, in accepting such obligations, You may act only +on Your own behalf and on Your sole responsibility, not on behalf +of any other Contributor, and only if You agree to indemnify, +defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason +of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + +To apply the Apache License to your work, attach the following +boilerplate notice, with the fields enclosed by brackets "[]" +replaced with your own identifying information. (Don't include +the brackets!) The text should be enclosed in the appropriate +comment syntax for the file format. We also recommend that a +file or class name and description of purpose be included on the +same "printed page" as the copyright notice for easier +identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [kigi-proto-build 0.1.0](https://crates.io/crates/kigi-proto-build) +- [kigi-acp-lib 0.1.0](https://crates.io/crates/kigi-acp-lib) +- [kigi-agent 0.1.0](https://crates.io/crates/kigi-agent) +- [kigi-agent-lifecycle 0.1.0](https://crates.io/crates/kigi-agent-lifecycle) +- [kigi-auth 0.1.0](https://crates.io/crates/kigi-auth) +- [kigi-bin 0.1.0](https://crates.io/crates/kigi-bin) +- [kigi-chat-state 0.1.0](https://crates.io/crates/kigi-chat-state) +- [kigi-codebase-graph 0.1.0](https://crates.io/crates/kigi-codebase-graph) +- [kigi-config 0.1.0](https://crates.io/crates/kigi-config) +- [kigi-config-types 0.1.0](https://crates.io/crates/kigi-config-types) +- [kigi-crash-handler 0.1.0](https://crates.io/crates/kigi-crash-handler) +- [kigi-env 0.1.0](https://crates.io/crates/kigi-env) +- [kigi-fast-worktree 0.1.0](https://crates.io/crates/kigi-fast-worktree) +- [kigi-file-utils 0.1.0](https://crates.io/crates/kigi-file-utils) +- [kigi-fsnotify 0.1.0](https://crates.io/crates/kigi-fsnotify) +- [kigi-gix-status 0.1.0](https://crates.io/crates/kigi-gix-status) +- [kigi-hooks 0.1.0](https://crates.io/crates/kigi-hooks) +- [kigi-hooks-plugins-types 0.1.0](https://crates.io/crates/kigi-hooks-plugins-types) +- [kigi-http 0.1.0](https://crates.io/crates/kigi-http) +- [kigi-hunk-tracker 0.1.0](https://crates.io/crates/kigi-hunk-tracker) +- [kigi-log 0.1.0](https://crates.io/crates/kigi-log) +- [kigi-markdown 0.1.0](https://crates.io/crates/kigi-markdown) +- [kigi-markdown-core 0.1.0](https://crates.io/crates/kigi-markdown-core) +- [kigi-mcp 0.1.0](https://crates.io/crates/kigi-mcp) +- [kigi-memory 0.1.0](https://crates.io/crates/kigi-memory) +- [kigi-models 0.1.0](https://crates.io/crates/kigi-models) +- [kigi-pager-minimal 0.1.0](https://crates.io/crates/kigi-pager-minimal) +- [kigi-pager-pty-harness 0.1.0](https://crates.io/crates/kigi-pager-pty-harness) +- [kigi-pager-render 0.1.0](https://crates.io/crates/kigi-pager-render) +- [kigi-paths 0.1.0](https://crates.io/crates/kigi-paths) +- [kigi-prompt-queue 0.1.0](https://crates.io/crates/kigi-prompt-queue) +- [kigi-ratatui-inline 0.1.0](https://crates.io/crates/kigi-ratatui-inline) +- [kigi-ratatui-textarea 0.1.0](https://crates.io/crates/kigi-ratatui-textarea) +- [kigi-sampler 0.1.0](https://crates.io/crates/kigi-sampler) +- [kigi-sampling-types 0.1.0](https://crates.io/crates/kigi-sampling-types) +- [kigi-sandbox 0.1.0](https://crates.io/crates/kigi-sandbox) +- [kigi-secrets 0.1.0](https://crates.io/crates/kigi-secrets) +- [kigi-shared 0.0.0](https://crates.io/crates/kigi-shared) +- [kigi-shell 0.1.0](https://crates.io/crates/kigi-shell) +- [kigi-shell-base 0.1.0](https://crates.io/crates/kigi-shell-base) +- [kigi-sqlite-journal 0.1.0](https://crates.io/crates/kigi-sqlite-journal) +- [kigi-subagent-resolution 0.1.0](https://crates.io/crates/kigi-subagent-resolution) +- [kigi-system-power 0.1.0](https://crates.io/crates/kigi-system-power) +- [kigi-test-support 0.1.0](https://crates.io/crates/kigi-test-support) +- [kigi-token-estimation 0.1.0](https://crates.io/crates/kigi-token-estimation) +- [kigi-tools 0.1.0](https://crates.io/crates/kigi-tools) +- [kigi-tools-api 0.1.0](https://crates.io/crates/kigi-tools-api) +- [kigi-tracing-macros 0.1.0](https://crates.io/crates/kigi-tracing-macros) +- [kigi-tty-utils 0.1.0](https://crates.io/crates/kigi-tty-utils) +- [kigi-tui 0.1.0](https://crates.io/crates/kigi-tui) +- [kigi-update 0.1.0](https://crates.io/crates/kigi-update) +- [kigi-version 0.1.0](https://crates.io/crates/kigi-version) +- [kigi-workspace 0.1.0](https://crates.io/crates/kigi-workspace) +- [kigi-workspace-types 0.1.0](https://crates.io/crates/kigi-workspace-types) +- [ptyctl 0.1.0](https://crates.io/crates/ptyctl) +- [ptyctl-cli 0.1.0](https://crates.io/crates/ptyctl-cli) +- [kigi-compaction 0.1.0](https://crates.io/crates/kigi-compaction) +- [kigi-interjection-core 0.1.0](https://crates.io/crates/kigi-interjection-core) +- [kigi-test-utils 0.1.0](https://crates.io/crates/kigi-test-utils) +- [kigi-tool-protocol 0.1.0](https://crates.io/crates/kigi-tool-protocol) +- [kigi-tool-runtime 0.1.0](https://crates.io/crates/kigi-tool-runtime) +- [kigi-tool-types 0.1.0](https://crates.io/crates/kigi-tool-types) +- [agent-client-protocol 0.10.4](https://github.com/agentclientprotocol/rust-sdk) +- [allocator-api2 0.2.21](https://github.com/zakarumych/allocator-api2) +- [anes 0.1.6](https://github.com/zrzka/anes-rs) +- [anyhow 1.0.103](https://github.com/dtolnay/anyhow) +- [arboard 3.6.1](https://github.com/1Password/arboard) +- [async-trait 0.1.89](https://github.com/dtolnay/async-trait) +- [aws-config 1.9.0](https://github.com/smithy-lang/smithy-rs) +- [aws-credential-types 1.3.0](https://github.com/smithy-lang/smithy-rs) +- [aws-lc-sys 0.42.0](https://github.com/aws/aws-lc-rs) +- [aws-runtime 1.8.1](https://github.com/smithy-lang/smithy-rs) +- [aws-sigv4 1.5.1](https://github.com/smithy-lang/smithy-rs) +- [aws-smithy-async 1.3.0](https://github.com/smithy-lang/smithy-rs) +- [aws-smithy-checksums 0.65.0](https://github.com/smithy-lang/smithy-rs) +- [aws-smithy-eventstream 0.61.1](https://github.com/smithy-lang/smithy-rs) +- [aws-smithy-http-client 1.2.0](https://github.com/smithy-lang/smithy-rs) +- [aws-smithy-http 0.64.0](https://github.com/smithy-lang/smithy-rs) +- [aws-smithy-json 0.63.0](https://github.com/smithy-lang/smithy-rs) +- [aws-smithy-observability 0.3.0](https://github.com/awslabs/smithy-rs) +- [aws-smithy-query 0.61.1](https://github.com/smithy-lang/smithy-rs) +- [aws-smithy-runtime-api-macros 1.1.0](https://github.com/smithy-lang/smithy-rs) +- [aws-smithy-runtime-api 1.13.0](https://github.com/smithy-lang/smithy-rs) +- [aws-smithy-runtime 1.12.0](https://github.com/smithy-lang/smithy-rs) +- [aws-smithy-schema 0.2.0](https://github.com/smithy-lang/smithy-rs) +- [aws-smithy-types 1.6.1](https://github.com/smithy-lang/smithy-rs) +- [aws-smithy-xml 0.61.1](https://github.com/smithy-lang/smithy-rs) +- [aws-types 1.4.0](https://github.com/smithy-lang/smithy-rs) +- [blake3 1.8.5](https://github.com/BLAKE3-team/BLAKE3) +- [cms 0.2.3](https://github.com/RustCrypto/formats/tree/master/cms) +- [constant_time_eq 0.4.2](https://github.com/cesarb/constant_time_eq) +- [dark-light 2.0.0](https://github.com/rust-dark-light/rust-dark-light) +- [dirs-sys 0.4.1](https://github.com/dirs-dev/dirs-sys-rs) +- [dirs-sys 0.5.0](https://github.com/dirs-dev/dirs-sys-rs) +- [dirs 5.0.1](https://github.com/soc/dirs-rs) +- [dirs 6.0.0](https://github.com/soc/dirs-rs) +- [document-features 0.2.12](https://github.com/slint-ui/document-features) +- [dtoa 1.0.11](https://github.com/dtolnay/dtoa) +- [dunce 1.0.5](https://gitlab.com/kornelski/dunce) +- [dyn-clone 1.0.20](https://github.com/dtolnay/dyn-clone) +- [enum_delegate 0.2.0](https://gitlab.com/dawn_app/enum_delegate) +- [enum_delegate_lib 0.2.0](https://gitlab.com/dawn_app/enum_delegate) +- [eventsource-stream 0.2.3](https://github.com/jpopesculian/eventsource-stream) +- [fdeflate 0.3.7](https://github.com/image-rs/fdeflate) +- [finl_unicode 1.4.0](https://github.com/dahosek/finl_unicode) +- [fxhash 0.2.1](https://github.com/cbreeden/fxhash) +- [gix-actor 0.41.1](https://github.com/GitoxideLabs/gitoxide) +- [gix-attributes 0.33.2](https://github.com/GitoxideLabs/gitoxide) +- [gix-bitmap 0.3.2](https://github.com/GitoxideLabs/gitoxide) +- [gix-chunk 0.7.2](https://github.com/GitoxideLabs/gitoxide) +- [gix-command 0.9.1](https://github.com/GitoxideLabs/gitoxide) +- [gix-commitgraph 0.37.1](https://github.com/GitoxideLabs/gitoxide) +- [gix-config-value 0.18.1](https://github.com/GitoxideLabs/gitoxide) +- [gix-config 0.56.0](https://github.com/GitoxideLabs/gitoxide) +- [gix-date 0.15.6](https://github.com/GitoxideLabs/gitoxide) +- [gix-diff 0.63.0](https://github.com/GitoxideLabs/gitoxide) +- [gix-dir 0.25.0](https://github.com/GitoxideLabs/gitoxide) +- [gix-discover 0.51.0](https://github.com/GitoxideLabs/gitoxide) +- [gix-error 0.2.5](https://github.com/GitoxideLabs/gitoxide) +- [gix-features 0.48.1](https://github.com/GitoxideLabs/gitoxide) +- [gix-filter 0.30.0](https://github.com/GitoxideLabs/gitoxide) +- [gix-fs 0.21.2](https://github.com/GitoxideLabs/gitoxide) +- [gix-glob 0.26.1](https://github.com/GitoxideLabs/gitoxide) +- [gix-hash 0.25.1](https://github.com/GitoxideLabs/gitoxide) +- [gix-hashtable 0.15.2](https://github.com/GitoxideLabs/gitoxide) +- [gix-ignore 0.21.1](https://github.com/GitoxideLabs/gitoxide) +- [gix-index 0.51.0](https://github.com/GitoxideLabs/gitoxide) +- [gix-lock 23.0.1](https://github.com/GitoxideLabs/gitoxide) +- [gix-object 0.60.0](https://github.com/GitoxideLabs/gitoxide) +- [gix-odb 0.80.0](https://github.com/GitoxideLabs/gitoxide) +- [gix-pack 0.70.0](https://github.com/GitoxideLabs/gitoxide) +- [gix-packetline 0.21.5](https://github.com/GitoxideLabs/gitoxide) +- [gix-path 0.12.2](https://github.com/GitoxideLabs/gitoxide) +- [gix-pathspec 0.18.1](https://github.com/GitoxideLabs/gitoxide) +- [gix-protocol 0.61.0](https://github.com/GitoxideLabs/gitoxide) +- [gix-quote 0.7.2](https://github.com/GitoxideLabs/gitoxide) +- [gix-ref 0.63.0](https://github.com/GitoxideLabs/gitoxide) +- [gix-refspec 0.41.0](https://github.com/GitoxideLabs/gitoxide) +- [gix-revision 0.45.0](https://github.com/GitoxideLabs/gitoxide) +- [gix-revwalk 0.31.0](https://github.com/GitoxideLabs/gitoxide) +- [gix-sec 0.14.1](https://github.com/GitoxideLabs/gitoxide) +- [gix-shallow 0.12.1](https://github.com/GitoxideLabs/gitoxide) +- [gix-status 0.30.0](https://github.com/GitoxideLabs/gitoxide) +- [gix-submodule 0.30.0](https://github.com/GitoxideLabs/gitoxide) +- [gix-tempfile 23.0.2](https://github.com/GitoxideLabs/gitoxide) +- [gix-trace 0.1.20](https://github.com/GitoxideLabs/gitoxide) +- [gix-transport 0.57.2](https://github.com/GitoxideLabs/gitoxide) +- [gix-traverse 0.57.0](https://github.com/GitoxideLabs/gitoxide) +- [gix-url 0.36.2](https://github.com/GitoxideLabs/gitoxide) +- [gix-utils 0.3.4](https://github.com/GitoxideLabs/gitoxide) +- [gix-validate 0.11.2](https://github.com/GitoxideLabs/gitoxide) +- [gix-worktree 0.52.0](https://github.com/GitoxideLabs/gitoxide) +- [gix 0.83.0](https://github.com/GitoxideLabs/gitoxide) +- [half 2.7.1](https://github.com/VoidStarKat/half-rs) +- [hayro-ccitt 0.3.0](https://github.com/LaurenzV/hayro) +- [hayro-jbig2 0.3.0](https://github.com/LaurenzV/hayro) +- [hayro-jpeg2000 0.4.0](https://github.com/LaurenzV/hayro) +- [ident_case 1.0.1](https://github.com/TedDriggs/ident_case) +- [image-webp 0.2.4](https://github.com/image-rs/image-webp) +- [image 0.25.10](https://github.com/image-rs/image) +- [indoc 2.0.7](https://github.com/dtolnay/indoc) +- [itoa 1.0.18](https://github.com/dtolnay/itoa) +- [libc 0.2.186](https://github.com/rust-lang/libc) +- [litrs 1.0.0](https://github.com/LukasKalbertodt/litrs) +- [mac 0.1.1](https://github.com/reem/rust-mac.git) +- [match_token 0.1.0](https://github.com/servo/html5ever) +- [md5 0.8.1](https://github.com/stainless-steel/md5) +- [miniz_oxide 0.8.9](https://github.com/Frommi/miniz_oxide/tree/master/miniz_oxide) +- [nono 0.53.0](https://github.com/always-further/nono) +- [num-cmp 0.1.0](https://github.com/lifthrasiir/num-cmp) +- [num-conv 0.2.2](https://github.com/jhpratt/num-conv) +- [objc2-app-kit 0.3.2](https://github.com/madsmtm/objc2) +- [objc2-core-foundation 0.3.2](https://github.com/madsmtm/objc2) +- [objc2-core-graphics 0.3.2](https://github.com/madsmtm/objc2) +- [office_oxide 0.1.6](https://github.com/yfedoseev/office_oxide) +- [opentelemetry 0.32.0](https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry) +- [opentelemetry_sdk 0.32.1](https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-sdk) +- [paste 1.0.15](https://github.com/dtolnay/paste) +- [pastey 0.2.3](https://github.com/as1100k/pastey) +- [pdf_oxide 0.3.74](https://github.com/yfedoseev/pdf_oxide) +- [pin-project-internal 1.1.13](https://github.com/taiki-e/pin-project) +- [pin-project-lite 0.2.17](https://github.com/taiki-e/pin-project-lite) +- [pin-project 1.1.13](https://github.com/taiki-e/pin-project) +- [portable-atomic 1.13.1](https://github.com/taiki-e/portable-atomic) +- [prettyplease 0.2.37](https://github.com/dtolnay/prettyplease) +- [proc-macro2 1.0.106](https://github.com/dtolnay/proc-macro2) +- [process-wrap 9.1.0](https://github.com/watchexec/process-wrap) +- [quote 1.0.46](https://github.com/dtolnay/quote) +- [rand 0.10.2](https://github.com/rust-random/rand) +- [rand 0.8.7](https://github.com/rust-random/rand) +- [rand 0.9.5](https://github.com/rust-random/rand) +- [rand_chacha 0.9.0](https://github.com/rust-random/rand) +- [ref-cast-impl 1.0.25](https://github.com/dtolnay/ref-cast) +- [ref-cast 1.0.25](https://github.com/dtolnay/ref-cast) +- [reflink-copy 0.1.30](https://github.com/cargo-bins/reflink-copy) +- [reqwest-eventsource 0.6.0](https://github.com/jpopesculian/reqwest-eventsource) +- [reqwest-middleware 0.4.2](https://github.com/TrueLayer/reqwest-middleware) +- [resvg 0.47.0](https://github.com/linebender/resvg) +- [rmcp-macros 2.2.0](https://github.com/modelcontextprotocol/rust-sdk/) +- [rmcp 2.2.0](https://github.com/modelcontextprotocol/rust-sdk/) +- [rustc-hash 2.1.3](https://github.com/rust-lang/rustc-hash) +- [rustversion 1.0.23](https://github.com/dtolnay/rustversion) +- [ryu-js 1.0.3](https://github.com/boa-dev/ryu-js) +- [ryu 1.0.23](https://github.com/dtolnay/ryu) +- [semver 1.0.28](https://github.com/dtolnay/semver) +- [serde 1.0.228](https://github.com/serde-rs/serde) +- [serde_core 1.0.228](https://github.com/serde-rs/serde) +- [serde_derive 1.0.228](https://github.com/serde-rs/serde) +- [serde_derive_internals 0.29.1](https://github.com/serde-rs/serde) +- [serde_ignored 0.1.14](https://github.com/dtolnay/serde-ignored) +- [serde_json 1.0.150](https://github.com/serde-rs/json) +- [serde_path_to_error 0.1.20](https://github.com/dtolnay/path-to-error) +- [serde_repr 0.1.20](https://github.com/dtolnay/serde-repr) +- [serde_urlencoded 0.7.1](https://github.com/nox/serde_urlencoded) +- [serde_yaml 0.9.34+deprecated](https://github.com/dtolnay/serde-yaml) +- [serial2 0.2.37](https://github.com/de-vri-es/serial2-rs) +- [shlex 1.3.0](https://github.com/comex/rust-shlex) +- [shlex 2.0.1](https://github.com/comex/rust-shlex) +- [sigstore-bundle 0.6.6](https://github.com/prefix-dev/sigstore-rust) +- [sigstore-crypto 0.6.6](https://github.com/prefix-dev/sigstore-rust) +- [sigstore-merkle 0.6.6](https://github.com/prefix-dev/sigstore-rust) +- [sigstore-rekor 0.6.6](https://github.com/prefix-dev/sigstore-rust) +- [sigstore-tsa 0.6.6](https://github.com/prefix-dev/sigstore-rust) +- [sigstore-types 0.6.6](https://github.com/prefix-dev/sigstore-rust) +- [simdutf8 0.1.5](https://github.com/rusticstuff/simdutf8) +- [siphasher 1.0.3](https://github.com/jedisct1/rust-siphash) +- [sqlite-vec 0.1.7-alpha.2](https://github.com/asg017/sqlite-vec) +- [sse-stream 0.2.4](https://github.com/4t145/sse-stream/) +- [stop-words 0.9.0](https://github.com/cmccomb/stop-words) +- [subsetter 0.2.6](https://github.com/typst/subsetter) +- [syn 2.0.119](https://github.com/dtolnay/syn) +- [sync_wrapper 1.0.2](https://github.com/Actyx/sync_wrapper) +- [tagptr 0.2.0](https://github.com/oliver-giersch/tagptr.git) +- [terminput 0.3.1](https://github.com/aschey/terminput) +- [thiserror-impl 1.0.69](https://github.com/dtolnay/thiserror) +- [thiserror-impl 2.0.18](https://github.com/dtolnay/thiserror) +- [thiserror 1.0.69](https://github.com/dtolnay/thiserror) +- [thiserror 2.0.18](https://github.com/dtolnay/thiserror) +- [time-core 0.1.9](https://github.com/time-rs/time) +- [time-macros 0.2.31](https://github.com/time-rs/time) +- [time 0.3.53](https://github.com/time-rs/time) +- [tui-scrollbar 0.2.7](https://github.com/ratatui/tui-widgets) +- [typed-path 0.12.3](https://github.com/chipsenkbeil/typed-path) +- [typify-impl 0.6.2](https://github.com/oxidecomputer/typify) +- [typify-macro 0.6.2](https://github.com/oxidecomputer/typify) +- [typify 0.6.2](https://github.com/oxidecomputer/typify) +- [unicode-ident 1.0.24](https://github.com/dtolnay/unicode-ident) +- [usvg 0.47.0](https://github.com/linebender/resvg) +- [utf-8 0.7.6](https://github.com/SimonSapin/rust-utf8) +- [utf8parse 0.2.2](https://github.com/alacritty/vte) +- [vte 0.14.1](https://github.com/alacritty/vte) +- [vte 0.15.0](https://github.com/alacritty/vte) +- [zstd-safe 7.2.4](https://github.com/gyscos/zstd-rs) +- [zstd-sys 2.0.16+zstd.1.5.7](https://github.com/gyscos/zstd-rs) + +``` +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + +To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [kigi-mermaid 0.1.0](https://crates.io/crates/kigi-mermaid) + +``` +Roboto-Regular.ttf +Copyright 2011 Google Inc. All Rights Reserved. + +This font is bundled (via include_bytes!) into the distributed Grok CLI binary +and is redistributed under the Apache License, Version 2.0 (below). It is used as +a deterministic fallback face so diagram text metrics do not depend on system +fonts. Retain this notice alongside the font when redistributing. + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +``` + +### Apache License 2.0 + +Applies to: + +- [chrono 0.4.45](https://github.com/chronotope/chrono) + +``` +Rust-chrono is dual-licensed under The MIT License [1] and +Apache 2.0 License [2]. Copyright (c) 2014--2026, Kang Seonghoon and +contributors. + +Nota Bene: This is same as the Rust Project's own license. + + +[1]: , which is reproduced below: + +~~~~ +The MIT License (MIT) + +Copyright (c) 2014, Kang Seonghoon. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +~~~~ + + +[2]: , which is reproduced below: + +~~~~ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +~~~~ + + +``` + +### BSD 2-Clause "Simplified" License + +Applies to: + +- [arrayref 0.3.9](https://github.com/droundy/arrayref) + +``` +Copyright (c) 2015 David Roundy +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the + distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +``` + +### BSD 3-Clause "New" or "Revised" License + +Applies to: + +- [matchit 0.8.4](https://github.com/ibraheemdev/matchit) + +``` +BSD 3-Clause License + +Copyright (c) 2013, Julien Schmidt +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +``` + +### BSD 3-Clause "New" or "Revised" License + +Applies to: + +- [rust-stemmers 1.2.0](https://github.com/CurrySoftware/rust-stemmers) + +``` +Copyright (c) 2001, Dr Martin Porter +Copyright (c) 2004,2005, Richard Boulton +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the Snowball project nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +``` + +### BSD 3-Clause "New" or "Revised" License + +Applies to: + +- [tiny-skia-path 0.12.0](https://github.com/linebender/tiny-skia/tree/master/path) +- [tiny-skia 0.12.0](https://github.com/linebender/tiny-skia) + +``` +Copyright (c) 2011 Google Inc. All rights reserved. +Copyright (c) 2020 Yevhenii Reizner All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +``` + +### BSD 3-Clause "New" or "Revised" License + +Applies to: + +- [deunicode 1.6.2](https://github.com/kornelski/deunicode/) + +``` +Copyright (c) 2015, Amit Chowdhury +Copyright (c) 2018-2021, Kornel Lesinski +Copyright (c) 2020-2021, Hunter WB + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * The names of this software's contributors may not be used to endorse or + promote products derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +``` + +### BSD 3-Clause "New" or "Revised" License + +Applies to: + +- [alloc-no-stdlib 2.0.4](https://github.com/dropbox/rust-alloc-no-stdlib) +- [brotli-decompressor 5.0.3](https://github.com/dropbox/rust-brotli-decompressor) +- [brotli 8.0.4](https://github.com/dropbox/rust-brotli) + +``` +Copyright (c) 2016 Dropbox, Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +``` + +### BSD 3-Clause "New" or "Revised" License + +Applies to: + +- [subtle 2.6.1](https://github.com/dalek-cryptography/subtle) + +``` +Copyright (c) 2016-2017 Isis Agora Lovecruft, Henry de Valence. All rights reserved. +Copyright (c) 2016-2024 Isis Agora Lovecruft. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +1. Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +``` + +### BSD 3-Clause "New" or "Revised" License + +Applies to: + +- [ed25519-dalek 2.2.0](https://github.com/dalek-cryptography/curve25519-dalek/tree/main/ed25519-dalek) + +``` +Copyright (c) 2017-2019 isis agora lovecruft. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +1. Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +``` + +### BSD 3-Clause "New" or "Revised" License + +Applies to: + +- [instant 0.1.13](https://github.com/sebcrozet/instant) + +``` +Copyright (c) 2019, Sébastien Crozet +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the author nor the names of its contributors may be used + to endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +``` + +### BSD 3-Clause "New" or "Revised" License + +Applies to: + +- [alloc-stdlib 0.2.4](https://github.com/dropbox/rust-alloc-no-stdlib) +- [aws-lc-sys 0.42.0](https://github.com/aws/aws-lc-rs) +- [curve25519-dalek 4.1.3](https://github.com/dalek-cryptography/curve25519-dalek/tree/main/curve25519-dalek) +- [sha1_smol 1.0.1](https://github.com/mitsuhiko/sha1-smol) +- [sigstore-trust-root 0.6.3](https://github.com/prefix-dev/sigstore-rust) +- [sigstore-verify 0.6.3](https://github.com/prefix-dev/sigstore-rust) + +``` +Copyright (c) . + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +``` + +### BSD 3-Clause "New" or "Revised" License + +Applies to: + +- [encoding_rs 0.8.35](https://github.com/hsivonen/encoding_rs) + +``` +Copyright © WHATWG (Apple, Google, Mozilla, Microsoft). + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +``` + +### Boost Software License 1.0 + +Applies to: + +- [error-code 3.3.2](https://github.com/DoumanAsh/error-code) + +``` +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +``` + +### Boost Software License 1.0 + +Applies to: + +- [clipboard-win 5.4.1](https://github.com/DoumanAsh/clipboard-win) + +``` +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +``` + +### Creative Commons Zero v1.0 Universal + +Applies to: + +- [notify 8.2.0](https://github.com/notify-rs/notify.git) + +``` +Creative Commons CC0 1.0 Universal + +<> CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER. <> + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work; + + ii. moral rights retained by the original author(s) and/or performer(s); + + iii. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work; + + iv. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below; + + v. rights protecting the extraction, dissemination, use and reuse of data in a Work; + + vi. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and + + vii. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document. + + b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law. + + c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work. + + d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work. +``` + +### Community Data License Agreement Permissive 2.0 + +Applies to: + +- [webpki-roots 1.0.8](https://github.com/rustls/webpki-roots) + +``` +# Community Data License Agreement - Permissive - Version 2.0 + +This is the Community Data License Agreement - Permissive, Version +2.0 (the "agreement"). Data Provider(s) and Data Recipient(s) agree +as follows: + +## 1. Provision of the Data + +1.1. A Data Recipient may use, modify, and share the Data made +available by Data Provider(s) under this agreement if that Data +Recipient follows the terms of this agreement. + +1.2. This agreement does not impose any restriction on a Data +Recipient's use, modification, or sharing of any portions of the +Data that are in the public domain or that may be used, modified, +or shared under any other legal exception or limitation. + +## 2. Conditions for Sharing Data + +2.1. A Data Recipient may share Data, with or without modifications, so +long as the Data Recipient makes available the text of this agreement +with the shared Data. + +## 3. No Restrictions on Results + +3.1. This agreement does not impose any restriction or obligations +with respect to the use, modification, or sharing of Results. + +## 4. No Warranty; Limitation of Liability + +4.1. All Data Recipients receive the Data subject to the following +terms: + +THE DATA IS PROVIDED ON AN "AS IS" BASIS, WITHOUT REPRESENTATIONS, +WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED +INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, +NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +NO DATA PROVIDER SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING +WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE DATA OR RESULTS, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +## 5. Definitions + +5.1. "Data" means the material received by a Data Recipient under +this agreement. + +5.2. "Data Provider" means any person who is the source of Data +provided under this agreement and in reliance on a Data Recipient's +agreement to its terms. + +5.3. "Data Recipient" means any person who receives Data directly +or indirectly from a Data Provider and agrees to the terms of this +agreement. + +5.4. "Results" means any outcome obtained by computational analysis +of Data, including for example machine learning models and models' +insights. + +``` + +### Eclipse Public License 2.0 + +Applies to: + +- [colored_json 5.0.0](https://github.com/ctron/colored_json) + +``` +Eclipse Public License - v 2.0 + + THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE + PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION + OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + + a) in the case of the initial Contributor, the initial content + Distributed under this Agreement, and + + b) in the case of each subsequent Contributor: + i) changes to the Program, and + ii) additions to the Program; + where such changes and/or additions to the Program originate from + and are Distributed by that particular Contributor. A Contribution + "originates" from a Contributor if it was added to the Program by + such Contributor itself or anyone acting on such Contributor's behalf. + Contributions do not include changes or additions to the Program that + are not Modified Works. + +"Contributor" means any person or entity that Distributes the Program. + +"Licensed Patents" mean patent claims licensable by a Contributor which +are necessarily infringed by the use or sale of its Contribution alone +or when combined with the Program. + +"Program" means the Contributions Distributed in accordance with this +Agreement. + +"Recipient" means anyone who receives the Program under this Agreement +or any Secondary License (as applicable), including Contributors. + +"Derivative Works" shall mean any work, whether in Source Code or other +form, that is based on (or derived from) the Program and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. + +"Modified Works" shall mean any work in Source Code or other form that +results from an addition to, deletion from, or modification of the +contents of the Program, including, for purposes of clarity any new file +in Source Code form that contains any contents of the Program. Modified +Works shall not include works that contain only declarations, +interfaces, types, classes, structures, or files of the Program solely +in each case in order to link to, bind by name, or subclass the Program +or Modified Works thereof. + +"Distribute" means the acts of a) distributing or b) making available +in any manner that enables the transfer of a copy. + +"Source Code" means the form of a Program preferred for making +modifications, including but not limited to software source code, +documentation source, and configuration files. + +"Secondary License" means either the GNU General Public License, +Version 2.0, or any later versions of that license, including any +exceptions or additional permissions as identified by the initial +Contributor. + +2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free copyright + license to reproduce, prepare Derivative Works of, publicly display, + publicly perform, Distribute and sublicense the Contribution of such + Contributor, if any, and such Derivative Works. + + b) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free patent + license under Licensed Patents to make, use, sell, offer to sell, + import and otherwise transfer the Contribution of such Contributor, + if any, in Source Code or other form. This patent license shall + apply to the combination of the Contribution and the Program if, at + the time the Contribution is added by the Contributor, such addition + of the Contribution causes such combination to be covered by the + Licensed Patents. The patent license shall not apply to any other + combinations which include the Contribution. No hardware per se is + licensed hereunder. + + c) Recipient understands that although each Contributor grants the + licenses to its Contributions set forth herein, no assurances are + provided by any Contributor that the Program does not infringe the + patent or other intellectual property rights of any other entity. + Each Contributor disclaims any liability to Recipient for claims + brought by any other entity based on infringement of intellectual + property rights or otherwise. As a condition to exercising the + rights and licenses granted hereunder, each Recipient hereby + assumes sole responsibility to secure any other intellectual + property rights needed, if any. For example, if a third party + patent license is required to allow Recipient to Distribute the + Program, it is Recipient's responsibility to acquire that license + before distributing the Program. + + d) Each Contributor represents that to its knowledge it has + sufficient copyright rights in its Contribution, if any, to grant + the copyright license set forth in this Agreement. + + e) Notwithstanding the terms of any Secondary License, no + Contributor makes additional grants to any Recipient (other than + those set forth in this Agreement) as a result of such Recipient's + receipt of the Program under the terms of a Secondary License + (if permitted under the terms of Section 3). + +3. REQUIREMENTS + +3.1 If a Contributor Distributes the Program in any form, then: + + a) the Program must also be made available as Source Code, in + accordance with section 3.2, and the Contributor must accompany + the Program with a statement that the Source Code for the Program + is available under this Agreement, and informs Recipients how to + obtain it in a reasonable manner on or through a medium customarily + used for software exchange; and + + b) the Contributor may Distribute the Program under a license + different than this Agreement, provided that such license: + i) effectively disclaims on behalf of all other Contributors all + warranties and conditions, express and implied, including + warranties or conditions of title and non-infringement, and + implied warranties or conditions of merchantability and fitness + for a particular purpose; + + ii) effectively excludes on behalf of all other Contributors all + liability for damages, including direct, indirect, special, + incidental and consequential damages, such as lost profits; + + iii) does not attempt to limit or alter the recipients' rights + in the Source Code under section 3.2; and + + iv) requires any subsequent distribution of the Program by any + party to be under a license that satisfies the requirements + of this section 3. + +3.2 When the Program is Distributed as Source Code: + + a) it must be made available under this Agreement, or if the + Program (i) is combined with other material in a separate file or + files made available under a Secondary License, and (ii) the initial + Contributor attached to the Source Code the notice described in + Exhibit A of this Agreement, then the Program may be made available + under the terms of such Secondary Licenses, and + + b) a copy of this Agreement must be included with each copy of + the Program. + +3.3 Contributors may not remove or alter any copyright, patent, +trademark, attribution notices, disclaimers of warranty, or limitations +of liability ("notices") contained within the Program from any copy of +the Program which they Distribute, provided that Contributors may add +their own appropriate notices. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities +with respect to end users, business partners and the like. While this +license is intended to facilitate the commercial use of the Program, +the Contributor who includes the Program in a commercial product +offering should do so in a manner which does not create potential +liability for other Contributors. Therefore, if a Contributor includes +the Program in a commercial product offering, such Contributor +("Commercial Contributor") hereby agrees to defend and indemnify every +other Contributor ("Indemnified Contributor") against any losses, +damages and costs (collectively "Losses") arising from claims, lawsuits +and other legal actions brought by a third party against the Indemnified +Contributor to the extent caused by the acts or omissions of such +Commercial Contributor in connection with its distribution of the Program +in a commercial product offering. The obligations in this section do not +apply to any claims or Losses relating to any actual or alleged +intellectual property infringement. In order to qualify, an Indemnified +Contributor must: a) promptly notify the Commercial Contributor in +writing of such claim, and b) allow the Commercial Contributor to control, +and cooperate with the Commercial Contributor in, the defense and any +related settlement negotiations. The Indemnified Contributor may +participate in any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial +product offering, Product X. That Contributor is then a Commercial +Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance +claims and warranties are such Commercial Contributor's responsibility +alone. Under this section, the Commercial Contributor would have to +defend claims against the other Contributors related to those performance +claims and warranties, and if a court requires any other Contributor to +pay any damages as a result, the Commercial Contributor must pay +those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS" +BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR +IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF +TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR +PURPOSE. Each Recipient is solely responsible for determining the +appropriateness of using and distributing the Program and assumes all +risks associated with its exercise of rights under this Agreement, +including but not limited to the risks and costs of program errors, +compliance with applicable laws, damage to or loss of data, programs +or equipment, and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS +SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST +PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE +EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of +the remainder of the terms of this Agreement, and without further +action by the parties hereto, such provision shall be reformed to the +minimum extent necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging that the +Program itself (excluding combinations of the Program with other software +or hardware) infringes such Recipient's patent(s), then such Recipient's +rights granted under Section 2(b) shall terminate as of the date such +litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it +fails to comply with any of the material terms or conditions of this +Agreement and does not cure such failure in a reasonable period of +time after becoming aware of such noncompliance. If all Recipient's +rights under this Agreement terminate, Recipient agrees to cease use +and distribution of the Program as soon as reasonably practicable. +However, Recipient's obligations under this Agreement and any licenses +granted by Recipient relating to the Program shall continue and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, +but in order to avoid inconsistency the Agreement is copyrighted and +may only be modified in the following manner. The Agreement Steward +reserves the right to publish new versions (including revisions) of +this Agreement from time to time. No one other than the Agreement +Steward has the right to modify this Agreement. The Eclipse Foundation +is the initial Agreement Steward. The Eclipse Foundation may assign the +responsibility to serve as the Agreement Steward to a suitable separate +entity. Each new version of the Agreement will be given a distinguishing +version number. The Program (including Contributions) may always be +Distributed subject to the version of the Agreement under which it was +received. In addition, after a new version of the Agreement is published, +Contributor may elect to Distribute the Program (including its +Contributions) under the new version. + +Except as expressly stated in Sections 2(a) and 2(b) above, Recipient +receives no rights or licenses to the intellectual property of any +Contributor under this Agreement, whether expressly, by implication, +estoppel or otherwise. All rights in the Program not expressly granted +under this Agreement are reserved. Nothing in this Agreement is intended +to be enforceable by any entity that is not a Contributor or Recipient. +No third-party beneficiary rights are created under this Agreement. + +Exhibit A - Form of Secondary Licenses Notice + +"This Source Code may also be made available under the following +Secondary Licenses when the conditions for such availability set forth +in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), +version(s), and exceptions or additional permissions here}." + + Simply including a copy of this Agreement, including this Exhibit A + is not sufficient to license the Source Code under Secondary Licenses. + + If it is not possible or desirable to put the notice in a particular + file, then You may include the notice in a location (such as a LICENSE + file in a relevant directory) where a recipient would be likely to + look for such a notice. + + You may add additional accurate notices of copyright ownership. + +``` + +### ISC License + +Applies to: + +- [untrusted 0.7.1](https://github.com/briansmith/untrusted) +- [untrusted 0.9.0](https://github.com/briansmith/untrusted) + +``` +// Copyright 2015-2016 Brian Smith. +// +// Permission to use, copy, modify, and/or distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES +// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR +// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +``` + +### ISC License + +Applies to: + +- [simple_asn1 0.6.4](https://github.com/acw/simple_asn1) + +``` +Copyright (c) 2017 Adam Wick + +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. + +``` + +### ISC License + +Applies to: + +- [inotify-sys 0.1.8](https://github.com/hannobraun/inotify-sys) + +``` +Copyright (c) Hanno Braun and contributors + +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. +``` + +### ISC License + +Applies to: + +- [inotify 0.11.4](https://github.com/hannobraun/inotify-rs) + +``` +Copyright (c) Hanno Braun and contributors + +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. + +``` + +### ISC License + +Applies to: + +- [ring 0.17.14](https://github.com/briansmith/ring) + +``` +Copyright 2015-2025 Brian Smith. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +``` + +### ISC License + +Applies to: + +- [ego-tree 0.10.0](https://github.com/rust-scraper/ego-tree) + +``` +Copyright © 2016, June McEnroe + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +``` + +### ISC License + +Applies to: + +- [rustls-webpki 0.103.13](https://github.com/rustls/webpki) + +``` +Except as otherwise noted, this project is licensed under the following +(ISC-style) terms: + +Copyright 2015 Brian Smith. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +The files under third-party/chromium are licensed as described in +third-party/chromium/LICENSE. + +``` + +### ISC License + +Applies to: + +- [aws-lc-rs 1.17.1](https://github.com/aws/aws-lc-rs) +- [aws-lc-sys 0.42.0](https://github.com/aws/aws-lc-rs) +- [scraper 0.23.1](https://github.com/causal-agent/scraper) + +``` +ISC License: + +Copyright (c) 2004-2010 by Internet Systems Consortium, Inc. ("ISC") +Copyright (c) 1995-2003 by Internet Software Consortium + +Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +``` + +### ISC License + +Applies to: + +- [is_ci 1.2.0](https://github.com/zkat/is_ci) + +``` +The ISC License + +Copyright (c) Kat Marchán and other contributors. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.Apache License + +``` + +### MIT License + +Applies to: + +- [rustybuzz 0.20.1](https://github.com/harfbuzz/rustybuzz) + +``` + MIT License + + Copyright (c) Microsoft Corporation. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE + +``` + +### MIT License + +Applies to: + +- [uds_windows 1.2.1](https://github.com/haraldh/rust_uds_windows) + +``` + MIT License + + Copyright (c) Microsoft Corporation. All rights reserved. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE + +``` + +### MIT License + +Applies to: + +- [instability 0.3.12](https://github.com/ratatui/instability) + +``` +# MIT License + +Copyright (c) 2020 Stephen M. Coakley +Copyright (c) The Ratatui Developers + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [onig_sys 69.9.3](https://github.com/rust-onig/rust-onig) + +``` +# Rust-Onig is Open Source! + +All source code in this repository is distributed under the terms of +the *MIT License* unless otherwise stated. The Oniguruma source code +remains the property of the original authors and is re-distributed +under the original license, see [COPYING](oniguruma/COPYING) for more +information. + +> The MIT License (MIT) +> +> Copyright (c) 2015 Will Speak , Ivan Ivashchenko +> , and contributors. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [onig 6.5.3](https://github.com/iwillspeak/rust-onig) + +``` +# Rust-Onig is Open Source! + +All source code in this repository is distributed under the terms of +the *MIT License* unless otherwise stated. The Oniguruma source code +remains the property of the original authors and is re-distributed +under the original license. + +> The MIT License (MIT) +> +> Copyright (c) 2015 Will Speak , Ivan Ivashchenko +> , and contributors. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [brotli 8.0.4](https://github.com/dropbox/rust-brotli) + +``` +Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [mio 1.2.2](https://github.com/tokio-rs/mio) + +``` +Copyright (c) 2014 Carl Lerche and other MIO contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [libsqlite3-sys 0.35.0](https://github.com/rusqlite/rusqlite) +- [rusqlite 0.37.0](https://github.com/rusqlite/rusqlite) + +``` +Copyright (c) 2014 The rusqlite developers + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [nom 7.1.3](https://github.com/Geal/nom) +- [nom 8.0.0](https://github.com/rust-bakery/nom) + +``` +Copyright (c) 2014-2019 Geoffroy Couprie + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [float-cmp 0.9.0](https://github.com/mikedilger/float-cmp) + +``` +Copyright (c) 2014-2020 Optimal Computing (NZ) Ltd + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [hyper 1.10.1](https://github.com/hyperium/hyper) + +``` +Copyright (c) 2014-2026 Sean McArthur + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [termios 0.3.3](https://github.com/dcuddeback/termios-rs) + +``` +Copyright (c) 2015 David Cuddeback + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [plist 1.10.0](https://github.com/ebarnard/rust-plist/) + +``` +Copyright (c) 2015 Edward Barnard + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` + +### MIT License + +Applies to: + +- [wayland-backend 0.3.15](https://github.com/smithay/wayland-rs) +- [wayland-client 0.31.14](https://github.com/smithay/wayland-rs) +- [wayland-protocols-wlr 0.3.12](https://github.com/smithay/wayland-rs) +- [wayland-protocols 0.32.13](https://github.com/smithay/wayland-rs) +- [wayland-scanner 0.31.10](https://github.com/smithay/wayland-rs) +- [wayland-sys 0.31.11](https://github.com/smithay/wayland-rs) + +``` +Copyright (c) 2015 Elinor Berger + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [winreg 0.10.1](https://github.com/gentoo90/winreg-rs) +- [winreg 0.52.0](https://github.com/gentoo90/winreg-rs) + +``` +Copyright (c) 2015 Igor Shaula + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [new_debug_unreachable 1.0.6](https://github.com/mbrubeck/rust-debug-unreachable) +- [ordered-float 4.6.0](https://github.com/reem/rust-ordered-float) + +``` +Copyright (c) 2015 Jonathan Reem + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [which 8.0.5](https://github.com/harryfei/which-rs.git) + +``` +Copyright (c) 2015 fangyuanziti + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [schannel 0.1.29](https://github.com/steffengy/schannel-rs) + +``` +Copyright (c) 2015 steffengy + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [tokio-tungstenite 0.29.0](https://github.com/snapview/tokio-tungstenite) + +``` +Copyright (c) 2017 Daniel Abramov +Copyright (c) 2017 Alexey Galakhov + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [memoffset 0.9.1](https://github.com/Gilnaa/memoffset) + +``` +Copyright (c) 2017 Gilad Naaman + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` + +### MIT License + +Applies to: + +- [h2 0.4.15](https://github.com/hyperium/h2) + +``` +Copyright (c) 2017 h2 authors + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [bytes 1.12.1](https://github.com/tokio-rs/bytes) + +``` +Copyright (c) 2018 Carl Lerche + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [serial_test 3.5.0](https://github.com/palfrey/serial_test/) +- [serial_test_derive 3.5.0](https://github.com/palfrey/serial_test/) + +``` +Copyright (c) 2018 Tom Parker-Shemilt + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` + +### MIT License + +Applies to: + +- [want 0.3.1](https://github.com/seanmonstar/want) + +``` +Copyright (c) 2018-2019 Sean McArthur + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +``` + +### MIT License + +Applies to: + +- [try-lock 0.2.5](https://github.com/seanmonstar/try-lock) + +``` +Copyright (c) 2018-2023 Sean McArthur +Copyright (c) 2016 Alex Crichton + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +``` + +### MIT License + +Applies to: + +- [wezterm-color-types 0.3.0](https://github.com/wez/wezterm) + +``` +Copyright (c) 2018-Present Wez Furlong + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [nonempty 0.12.0](https://github.com/cloudhead/nonempty) + +``` +Copyright (c) 2019 Alexis Sellier + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [slab 0.4.12](https://github.com/tokio-rs/slab) + +``` +Copyright (c) 2019 Carl Lerche + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [assert-json-diff 2.0.2](https://github.com/davidpdrsn/assert-json-diff.git) + +``` +Copyright (c) 2019 David Pedersen + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [sharded-slab 0.1.7](https://github.com/hawkw/sharded-slab) + +``` +Copyright (c) 2019 Eliza Weisman + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [matchers 0.2.0](https://github.com/hawkw/matchers) + +``` +Copyright (c) 2019 Eliza Weisman + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [http-body 0.4.6](https://github.com/hyperium/http-body) + +``` +Copyright (c) 2019 Hyper Contributors + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [protobuf-support 3.7.2](https://github.com/stepancheg/rust-protobuf/) +- [protobuf 3.7.2](https://github.com/stepancheg/rust-protobuf/) + +``` +Copyright (c) 2019 Stepan Koltsov + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE +OR OTHER DEALINGS IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [tracing-appender 0.2.5](https://github.com/tokio-rs/tracing) +- [tracing-attributes 0.1.31](https://github.com/tokio-rs/tracing) +- [tracing-core 0.1.36](https://github.com/tokio-rs/tracing) +- [tracing-log 0.2.0](https://github.com/tokio-rs/tracing) +- [tracing-opentelemetry 0.33.0](https://github.com/tokio-rs/tracing-opentelemetry) +- [tracing-serde 0.2.0](https://github.com/tokio-rs/tracing) +- [tracing-subscriber 0.3.23](https://github.com/tokio-rs/tracing) +- [tracing 0.1.44](https://github.com/tokio-rs/tracing) + +``` +Copyright (c) 2019 Tokio Contributors + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [tower-layer 0.3.3](https://github.com/tower-rs/tower) +- [tower-service 0.3.3](https://github.com/tower-rs/tower) +- [tower 0.5.3](https://github.com/tower-rs/tower) + +``` +Copyright (c) 2019 Tower Contributors + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [pico-args 0.5.0](https://github.com/RazrFalcon/pico-args) + +``` +Copyright (c) 2019 Yevhenii Reizner + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +``` + +### MIT License + +Applies to: + +- [axum 0.8.9](https://github.com/tokio-rs/axum) + +``` +Copyright (c) 2019 axum Contributors + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [obfstr 0.4.5](https://github.com/CasualX/obfstr) + +``` +Copyright (c) 2019-2020 Casper + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [tower-http 0.6.11](https://github.com/tower-rs/tower-http) + +``` +Copyright (c) 2019-2021 Tower Contributors + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [http-body-util 0.1.4](https://github.com/hyperium/http-body) +- [http-body 1.1.0](https://github.com/hyperium/http-body) + +``` +Copyright (c) 2019-2026 Sean McArthur & Hyper Contributors + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [maybe-async 0.2.11](https://github.com/fMeow/maybe-async-rs) + +``` +Copyright (c) 2020 Guoli Lyu + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [clru 0.6.3](https://github.com/marmeladema/clru-rs) + +``` +Copyright (c) 2020 Élie ROUDNINSKI (marmeladema) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [strict-num 0.1.1](https://github.com/RazrFalcon/strict-num) + +``` +Copyright (c) 2022 Yevhenii Reizner + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [hyper-util 0.1.20](https://github.com/hyperium/hyper-util) + +``` +Copyright (c) 2023-2025 Sean McArthur + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [zbus 5.17.0](https://github.com/z-galaxy/zbus/) +- [zbus_macros 5.17.0](https://github.com/z-galaxy/zbus/) +- [zbus_names 4.3.3](https://github.com/z-galaxy/zbus/) +- [zvariant 5.13.0](https://github.com/z-galaxy/zbus/) +- [zvariant_derive 5.13.0](https://github.com/z-galaxy/zbus/) + +``` +Copyright (c) 2024 Zeeshan Ali Khan & zbus contributors + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [tonic-build 0.14.6](https://github.com/hyperium/tonic) +- [tonic 0.14.6](https://github.com/hyperium/tonic) + +``` +Copyright (c) 2025 Lucio Franco + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [synstructure 0.13.2](https://github.com/mystor/synstructure) + +``` +Copyright 2016 Nika Layzell + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [mimalloc 0.1.52](https://github.com/purpleprotocol/mimalloc_rust) + +``` +Copyright 2019 Octavian Oncescu + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. +``` + +### MIT License + +Applies to: + +- [ansi-to-tui 7.0.0](https://github.com/uttarayan21/ansi-to-tui) + +``` +Copyright 2021 Uttarayan Mondal + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [axum-macros 0.5.1](https://github.com/tokio-rs/axum) + +``` +Copyright 2021 axum Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [fax 0.2.7](https://github.com/pdf-rs/fax) + +``` +Copyright © 2021 The pdf-rs contributers. + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [lru 0.12.5](https://github.com/jeromefroe/lru-rs.git) +- [lru 0.16.4](https://github.com/jeromefroe/lru-rs.git) +- [lru 0.18.1](https://github.com/jeromefroe/lru-rs.git) + +``` +MIT License + +Copyright (c) 2016 Jerome Froelich + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` + +### MIT License + +Applies to: + +- [textwrap 0.16.2](https://github.com/mgeisler/textwrap) + +``` +MIT License + +Copyright (c) 2016 Martin Geisler + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [tree_magic_mini 3.2.2](https://github.com/mbrubeck/tree_magic/) + +``` +MIT License + +Copyright (c) 2017 Aaron Hancock + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [fs_extra 1.3.0](https://github.com/webdesus/fs_extra) + +``` +MIT License + +Copyright (c) 2017 Denis Kurilenko + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [precomputed-hash 0.1.1](https://github.com/emilio/precomputed-hash) + +``` +MIT License + +Copyright (c) 2017 Emilio Cobos Álvarez + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [cached 0.56.0](https://github.com/jaemk/cached) +- [cached_proc_macro 0.25.0](https://github.com/jaemk/cached) +- [cached_proc_macro_types 0.1.1](https://github.com/jaemk/cached) + +``` +MIT License + +Copyright (c) 2017 James Kominick + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [lipsum 0.9.1](https://github.com/mgeisler/lipsum/) +- [smawk 0.3.3](https://github.com/mgeisler/smawk) + +``` +MIT License + +Copyright (c) 2017 Martin Geisler + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [cfb 0.7.3](https://github.com/mdsteele/rust-cfb) + +``` +MIT License + +Copyright (c) 2017 Matthew D. Steele + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [tokio-retry 0.3.2](https://github.com/djc/tokio-retry) + +``` +MIT License + +Copyright (c) 2017 Sam Rijs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [darling 0.20.11](https://github.com/TedDriggs/darling) +- [darling 0.23.0](https://github.com/TedDriggs/darling) +- [darling_core 0.20.11](https://github.com/TedDriggs/darling) +- [darling_core 0.23.0](https://github.com/TedDriggs/darling) +- [darling_macro 0.20.11](https://github.com/TedDriggs/darling) +- [darling_macro 0.23.0](https://github.com/TedDriggs/darling) + +``` +MIT License + +Copyright (c) 2017 Ted Driggs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [syntect 5.3.0](https://github.com/trishume/syntect) + +``` +MIT License + +Copyright (c) 2017 Tristan Hume, Keith Hall, Google Inc and other contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [faster-hex 0.10.0](https://github.com/NervosFoundation/faster-hex) + +``` +MIT License + +Copyright (c) 2018 Nervos Foundation + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [tiff 0.11.3](https://github.com/image-rs/image-tiff) + +``` +MIT License + +Copyright (c) 2018 PistonDevelopers + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [filedescriptor 0.8.3](https://github.com/wezterm/wezterm) +- [portable-pty 0.9.0](https://github.com/wezterm/wezterm) +- [termwiz 0.23.3](https://github.com/wezterm/wezterm) +- [wezterm-dynamic-derive 0.1.1](https://github.com/wezterm/wezterm) + +``` +MIT License + +Copyright (c) 2018 Wez Furlong + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [libmimalloc-sys 0.1.49](https://github.com/purpleprotocol/mimalloc_rust/tree/master/libmimalloc-sys) + +``` +MIT License + +Copyright (c) 2018-2025 Microsoft Corporation, Daan Leijen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [wezterm-dynamic 0.2.1](https://github.com/wezterm/wezterm) + +``` +MIT License + +Copyright (c) 2018-Present Wez Furlong + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [dashmap 6.2.1](https://github.com/xacrimon/dashmap) + +``` +MIT License + +Copyright (c) 2019 Acrimon + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [infer 0.15.0](https://github.com/bojand/infer) +- [infer 0.19.0](https://github.com/bojand/infer) + +``` +MIT License + +Copyright (c) 2019 Bojan + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [schemars 0.8.22](https://github.com/GREsau/schemars) +- [schemars 1.2.1](https://github.com/GREsau/schemars) +- [schemars_derive 0.8.22](https://github.com/GREsau/schemars) +- [schemars_derive 1.2.1](https://github.com/GREsau/schemars) + +``` +MIT License + +Copyright (c) 2019 Graham Esau + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [rgb 0.8.53](https://github.com/kornelski/rust-rgb) + +``` +MIT License + +Copyright (c) 2019 Kornel + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [strum 0.26.3](https://github.com/Peternator7/strum) +- [strum 0.27.2](https://github.com/Peternator7/strum) +- [strum 0.28.0](https://github.com/Peternator7/strum) +- [strum_macros 0.26.4](https://github.com/Peternator7/strum) +- [strum_macros 0.27.2](https://github.com/Peternator7/strum) +- [strum_macros 0.28.0](https://github.com/Peternator7/strum) + +``` +MIT License + +Copyright (c) 2019 Peter Glotfelty + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [email_address 0.2.9](https://github.com/johnstonskj/rust-email_address.git) + +``` +MIT License + +Copyright (c) 2019 Simon Johnston + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [tokio-macros 2.7.0](https://github.com/tokio-rs/tokio) + +``` +MIT License + +Copyright (c) 2019 Yoshua Wuyts +Copyright (c) Tokio Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [axum-core 0.5.6](https://github.com/tokio-rs/axum) + +``` +MIT License + +Copyright (c) 2019–2025 axum Contributors + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. +``` + +### MIT License + +Applies to: + +- [ashpd 0.10.3](https://github.com/bilelmoussaoui/ashpd) + +``` +MIT License + +Copyright (c) 2020 Bilal Elmoussaoui + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [cfg_aliases 0.1.1](https://github.com/katharostech/cfg_aliases) +- [cfg_aliases 0.2.2](https://github.com/katharostech/cfg_aliases) + +``` +MIT License + +Copyright (c) 2020 Katharos Technology + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [multer 3.1.0](https://github.com/rwf2/multer) + +``` +MIT License + +Copyright (c) 2020 Rousan Ali + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [tracing-chrome 0.7.2](https://github.com/thoren-d/tracing-chrome) + +``` +MIT License + +Copyright (c) 2020 Thoren Paulson + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [html-escape 0.2.14](https://github.com/magiclen/html-escape) + +``` +MIT License + +Copyright (c) 2020 magiclen.org (Ron Li) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [lab 0.11.0](https://github.com/TooManyBees/lab) + +``` +MIT License + +Copyright (c) 2020 🐝🐝🐝 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [jsonschema 0.30.0](https://github.com/Stranger6667/jsonschema) +- [referencing 0.30.0](https://github.com/Stranger6667/jsonschema) + +``` +MIT License + +Copyright (c) 2020-2025 Dmitry Dygalo + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [compact_str 0.8.2](https://github.com/ParkMyCar/compact_str) +- [compact_str 0.9.1](https://github.com/ParkMyCar/compact_str) + +``` +MIT License + +Copyright (c) 2021 Parker Timmerman + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [castaway 0.2.4](https://github.com/sagebind/castaway) + +``` +MIT License + +Copyright (c) 2021 Stephen M. Coakley + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [matchit 0.8.4](https://github.com/ibraheemdev/matchit) + +``` +MIT License + +Copyright (c) 2022 Ibraheem Ahmed + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [outref 0.5.2](https://github.com/Nugine/outref) + +``` +MIT License + +Copyright (c) 2022 Nugine + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` + +### MIT License + +Applies to: + +- [aligned-vec 0.6.4](https://github.com/sarah-ek/aligned-vec/) + +``` +MIT License + +Copyright (c) 2022 sarah + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [educe 0.6.0](https://github.com/magiclen/educe) +- [enum-ordinalize-derive 4.4.1](https://github.com/magiclen/enum-ordinalize) +- [enum-ordinalize 4.4.1](https://github.com/magiclen/enum-ordinalize) + +``` +MIT License + +Copyright (c) 2023 magiclen.org (Ron Li) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [equator-macro 0.4.2](https://github.com/sarah-ek/equator/) +- [equator 0.4.2](https://github.com/sarah-ek/equator/) + +``` +MIT License + +Copyright (c) 2023 sarah + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [ansi-width 0.1.0](https://crates.io/crates/ansi-width) + +``` +MIT License + +Copyright (c) 2023 uutils developers + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [wezterm-blob-leases 0.1.1](https://github.com/wezterm/wezterm) + +``` +MIT License + +Copyright (c) 2023-Present Wez Furlong + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [unit-prefix 0.5.2](https://codeberg.org/commons-rs/unit-prefix) + +``` +MIT License + +Copyright (c) 2024 Benjamin Sago, Fabio Valentini + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [bm25 2.3.2](https://github.com/Michael-JB/bm25) + +``` +MIT License + +Copyright (c) 2024 Michael Barlow + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [core_maths 0.1.1](https://github.com/robertbastian/core_maths) + +``` +MIT License + +Copyright (c) 2024 Robert Bastian + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` + +### MIT License + +Applies to: + +- [fluent-uri 0.3.2](https://github.com/yescallop/fluent-uri-rs) + +``` +MIT License + +Copyright (c) 2024 Scallop Ye + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` + +### MIT License + +Applies to: + +- [convert_case 0.10.0](https://github.com/rutrum/convert-case) +- [convert_case 0.8.0](https://github.com/rutrum/convert-case) + +``` +MIT License + +Copyright (c) 2025 rutrum + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` + +### MIT License + +Applies to: + +- [async-openai-macros 0.1.1](https://github.com/64bit/async-openai) +- [async-openai 0.33.1](https://github.com/64bit/async-openai) +- [async-stream-impl 0.3.6](https://github.com/tokio-rs/async-stream) +- [async-stream 0.3.6](https://github.com/tokio-rs/async-stream) +- [base64-simd 0.8.0](https://github.com/Nugine/simd) +- [cryptify 3.2.1](https://github.com/dronavallipranav/rust-obfuscator/tree/main/cryptify) +- [documented-macros 0.9.2](https://github.com/cyqsimon/documented) +- [documented 0.9.2](https://github.com/cyqsimon/documented) +- [labyrinth_macros 3.0.2](https://github.com/dronavallipranav/rust-obfuscator/tree/main/labyrinth_macros) +- [libm 0.2.16](https://github.com/rust-lang/compiler-builtins) +- [objc-sys 0.3.5](https://github.com/madsmtm/objc2) +- [objc2-encode 4.1.0](https://github.com/madsmtm/objc2) +- [objc2-foundation 0.2.2](https://github.com/madsmtm/objc2) +- [objc2-foundation 0.3.2](https://github.com/madsmtm/objc2) +- [objc2 0.5.2](https://github.com/madsmtm/objc2) +- [objc2 0.6.4](https://github.com/madsmtm/objc2) +- [pbjson-build 0.9.0](https://github.com/influxdata/pbjson) +- [plotters-backend 0.3.7](https://github.com/plotters-rs/plotters) +- [plotters-svg 0.3.7](https://github.com/plotters-rs/plotters.git) +- [plotters 0.3.7](https://github.com/plotters-rs/plotters) +- [qcms 0.3.0](https://github.com/FirefoxGraphics/qcms) +- [symbolic-common 12.18.3](https://github.com/getsentry/symbolic) +- [symbolic-demangle 12.18.3](https://github.com/getsentry/symbolic) +- [taffy 0.12.2](https://github.com/DioxusLabs/taffy) +- [tonic-prost-build 0.14.6](https://github.com/hyperium/tonic) +- [tonic-prost 0.14.6](https://github.com/hyperium/tonic) +- [tree-sitter-typescript 0.23.2](https://github.com/tree-sitter/tree-sitter-typescript) +- [tree-sitter 0.25.10](https://github.com/tree-sitter/tree-sitter) +- [uuid-simd 0.8.0](https://github.com/Nugine/simd) +- [vsimd 0.8.0](https://github.com/Nugine/simd) +- [vtparse 0.6.2](https://github.com/wez/wezterm) +- [wezterm-bidi 0.2.3](https://github.com/wez/wezterm) +- [wezterm-input-types 0.1.0](https://github.com/wez/wezterm) + +``` +MIT License + +Copyright (c) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and +associated documentation files (the "Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial +portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT +LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO +EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [tokio-stream 0.1.18](https://github.com/tokio-rs/tokio) +- [tokio-util 0.7.18](https://github.com/tokio-rs/tokio) +- [tokio 1.52.4](https://github.com/tokio-rs/tokio) + +``` +MIT License + +Copyright (c) Tokio Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [simd-adler32 0.3.10](https://github.com/mcountryman/simd-adler32) + +``` +MIT License + +Copyright (c) [2021] [Marvin Countryman] + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [deltae 0.3.2](https://gitlab.com/ryanobeirne/deltae.git) + +``` +MIT License + +Copyright 2019 Ryan O'Beirne + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [imagesize 0.14.0](https://github.com/Roughsketch/imagesize) + +``` +MIT License + +Copyright (c) 2017 Maiddog + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [crossterm 0.28.1](https://github.com/crossterm-rs/crossterm) +- [crossterm_winapi 0.9.1](https://github.com/crossterm-rs/crossterm-winapi) + +``` +MIT License + +Copyright (c) 2019 Timon + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [grid 1.0.1](https://github.com/becheran/grid) + +``` +MIT License + +Copyright (c) 2020 Armin Becher + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [fontconfig-parser 0.5.8](https://github.com/Riey/fontconfig-parser) + +``` +MIT License + +Copyright (c) 2021 Riey + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [serde_json_canonicalizer 0.3.2](https://github.com/evik42/serde-json-canonicalizer) + +``` +MIT License + +Copyright (c) 2023 Attila Mravik + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [endi 1.1.1](https://github.com/zeenix/endi) +- [unsafe-libyaml 0.2.11](https://github.com/dtolnay/unsafe-libyaml) +- [zmij 1.0.23](https://github.com/dtolnay/zmij) +- [zvariant_utils 3.5.0](https://github.com/z-galaxy/zbus/) + +``` +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [winnow 0.7.15](https://github.com/winnow-rs/winnow) +- [winnow 1.0.4](https://github.com/winnow-rs/winnow) + +``` +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [pulldown-cmark-escape 0.11.0](https://github.com/raphlinus/pulldown-cmark) +- [pulldown-cmark 0.13.4](https://github.com/raphlinus/pulldown-cmark) + +``` +The MIT License + +Copyright 2015 Google Inc. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [fancy-regex 0.11.0](https://github.com/fancy-regex/fancy-regex) +- [fancy-regex 0.14.0](https://github.com/fancy-regex/fancy-regex) +- [fancy-regex 0.16.2](https://github.com/fancy-regex/fancy-regex) + +``` +The MIT License + +Copyright 2015 The Fancy Regex Authors. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [spin 0.10.1](https://github.com/mvdnes/spin-rs.git) +- [spin 0.9.9](https://github.com/mvdnes/spin-rs.git) + +``` +The MIT License (MIT) + +Copyright (c) 2014 Mathijs van de Nes + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` + +### MIT License + +Applies to: + +- [zip 8.6.0](https://github.com/zip-rs/zip2) + +``` +The MIT License (MIT) + +Copyright (c) 2014 Mathijs van de Nes + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [zip 3.0.0](https://github.com/zip-rs/zip2.git) + +``` +The MIT License (MIT) + +Copyright (c) 2014 Mathijs van de Nes + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Some files in the "tests/data" subdirectory of this repository are under other +licences; see files named LICENSE.*.txt for details. +``` + +### MIT License + +Applies to: + +- [tree-sitter-go 0.25.0](https://github.com/tree-sitter/tree-sitter-go) +- [tree-sitter-javascript 0.25.0](https://github.com/tree-sitter/tree-sitter-javascript) + +``` +The MIT License (MIT) + +Copyright (c) 2014 Max Brunsfeld + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [phf 0.11.3](https://github.com/rust-phf/rust-phf) +- [phf 0.12.1](https://github.com/rust-phf/rust-phf) +- [phf 0.13.1](https://github.com/rust-phf/rust-phf) +- [phf 0.14.0](https://github.com/rust-phf/rust-phf) +- [phf_codegen 0.11.3](https://github.com/rust-phf/rust-phf) +- [phf_codegen 0.13.1](https://github.com/rust-phf/rust-phf) +- [phf_generator 0.11.3](https://github.com/rust-phf/rust-phf) +- [phf_generator 0.12.1](https://github.com/rust-phf/rust-phf) +- [phf_generator 0.13.1](https://github.com/rust-phf/rust-phf) +- [phf_generator 0.14.0](https://github.com/rust-phf/rust-phf) +- [phf_macros 0.11.3](https://github.com/rust-phf/rust-phf) +- [phf_macros 0.12.1](https://github.com/rust-phf/rust-phf) +- [phf_macros 0.13.1](https://github.com/rust-phf/rust-phf) +- [phf_macros 0.14.0](https://github.com/rust-phf/rust-phf) +- [phf_shared 0.11.3](https://github.com/rust-phf/rust-phf) +- [phf_shared 0.12.1](https://github.com/rust-phf/rust-phf) +- [phf_shared 0.13.1](https://github.com/rust-phf/rust-phf) +- [phf_shared 0.14.0](https://github.com/rust-phf/rust-phf) + +``` +The MIT License (MIT) + +Copyright (c) 2014-2022 Steven Fackler, Yuki Okushi + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [aho-corasick 1.1.4](https://github.com/BurntSushi/aho-corasick) +- [byteorder-lite 0.1.0](https://github.com/image-rs/byteorder-lite) +- [byteorder 1.5.0](https://github.com/BurntSushi/byteorder) +- [globset 0.4.19](https://github.com/BurntSushi/ripgrep/tree/master/crates/globset) +- [ignore 0.4.29](https://github.com/BurntSushi/ripgrep/tree/master/crates/ignore) +- [jiff-tzdb-platform 0.1.3](https://github.com/BurntSushi/jiff) +- [jiff-tzdb 0.1.8](https://github.com/BurntSushi/jiff) +- [jiff 0.2.32](https://github.com/BurntSushi/jiff) +- [memchr 2.8.3](https://github.com/BurntSushi/memchr) +- [walkdir 2.5.0](https://github.com/BurntSushi/walkdir) + +``` +The MIT License (MIT) + +Copyright (c) 2015 Andrew Gallant + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [nix 0.26.4](https://github.com/nix-rust/nix) +- [nix 0.28.0](https://github.com/nix-rust/nix) +- [nix 0.29.0](https://github.com/nix-rust/nix) +- [nix 0.30.1](https://github.com/nix-rust/nix) +- [nix 0.31.3](https://github.com/nix-rust/nix) + +``` +The MIT License (MIT) + +Copyright (c) 2015 Carl Lerche + nix-rust Authors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [strsim 0.11.1](https://github.com/rapidfuzz/strsim-rs) + +``` +The MIT License (MIT) + +Copyright (c) 2015 Danny Guo +Copyright (c) 2016 Titus Wormer +Copyright (c) 2018 Akash Kurdekar + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [fsevent-sys 4.1.0](https://github.com/octplane/fsevent-rust/tree/master/fsevent-sys) + +``` +The MIT License (MIT) + +Copyright (c) 2015 Pierre Baillet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +``` + +### MIT License + +Applies to: + +- [jsonwebtoken 10.4.0](https://github.com/Keats/jsonwebtoken) + +``` +The MIT License (MIT) + +Copyright (c) 2015 Vincent Prouillet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [data-encoding 2.11.0](https://github.com/ia0/data-encoding) + +``` +The MIT License (MIT) + +Copyright (c) 2015-2020 Julien Cretin +Copyright (c) 2017-2020 Google Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [aws-lc-sys 0.42.0](https://github.com/aws/aws-lc-rs) + +``` +The MIT License (MIT) + +Copyright (c) 2015-2020 the fiat-crypto authors (see +https://github.com/mit-plv/fiat-crypto/blob/master/AUTHORS). + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [mockito 1.7.2](https://github.com/lipanski/mockito) + +``` +The MIT License (MIT) + +Copyright (c) 2016 Florin Lipan + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [derive_more-impl 2.1.1](https://github.com/JelteF/derive_more) +- [derive_more 0.99.20](https://github.com/JelteF/derive_more) +- [derive_more 2.1.1](https://github.com/JelteF/derive_more) + +``` +The MIT License (MIT) + +Copyright (c) 2016 Jelte Fennema + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [pem 3.0.6](https://github.com/jcreekmore/pem-rs.git) + +``` +The MIT License (MIT) + +Copyright (c) 2016 Jonathan Creekmore + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [lsp-types 0.95.1](https://github.com/gluon-lang/lsp-types) + +``` +The MIT License (MIT) + +Copyright (c) 2016 Markus Westerlind + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +``` + +### MIT License + +Applies to: + +- [tree-sitter-python 0.25.0](https://github.com/tree-sitter/tree-sitter-python) + +``` +The MIT License (MIT) + +Copyright (c) 2016 Max Brunsfeld + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [color_quant 1.1.0](https://github.com/image-rs/color_quant.git) + +``` +The MIT License (MIT) + +Copyright (c) 2016 PistonDevelopers + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [ratatui 0.29.0](https://github.com/ratatui/ratatui) + +``` +The MIT License (MIT) + +Copyright (c) 2016-2022 Florian Dehau +Copyright (c) 2023-2024 The Ratatui Developers + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [ratatui-core 0.1.2](https://github.com/ratatui/ratatui) + +``` +The MIT License (MIT) + +Copyright (c) 2016-2022 Florian Dehau +Copyright (c) 2023-2025 The Ratatui Developers + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [same-file 1.0.6](https://github.com/BurntSushi/same-file) +- [winapi-util 0.1.11](https://github.com/BurntSushi/winapi-util) + +``` +The MIT License (MIT) + +Copyright (c) 2017 Andrew Gallant + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [console 0.16.4](https://github.com/console-rs/console) +- [indicatif 0.18.6](https://github.com/console-rs/indicatif) + +``` +The MIT License (MIT) + +Copyright (c) 2017 Armin Ronacher + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +``` + +### MIT License + +Applies to: + +- [tree-sitter-bash 0.25.1](https://github.com/tree-sitter/tree-sitter-bash) + +``` +The MIT License (MIT) + +Copyright (c) 2017 Max Brunsfeld + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [tree-sitter-rust 0.24.2](https://github.com/tree-sitter/tree-sitter-rust) + +``` +The MIT License (MIT) + +Copyright (c) 2017 Maxim Sokolov + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [tree-sitter-language 0.1.7](https://github.com/tree-sitter/tree-sitter) + +``` +The MIT License (MIT) + +Copyright (c) 2018 Max Brunsfeld + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [fuzzy-matcher 0.3.7](https://github.com/lotabout/fuzzy-matcher) + +``` +The MIT License (MIT) + +Copyright (c) 2019 Jinzhou Zhang + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [xmlwriter 0.1.0](https://github.com/RazrFalcon/xmlwriter) + +``` +The MIT License (MIT) + +Copyright (c) 2019 Reizner Evgeniy + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [oorandom 11.1.5](https://hg.sr.ht/~icefox/oorandom) + +``` +The MIT License (MIT) + +Copyright (c) 2019 Simon Heath + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` + +### MIT License + +Applies to: + +- [fontdb 0.23.0](https://github.com/RazrFalcon/fontdb) + +``` +The MIT License (MIT) + +Copyright (c) 2020 Yevhenii Reizner + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [kanal 0.1.1](https://github.com/fereidani/kanal) + +``` +The MIT License (MIT) + +Copyright (c) 2022-2023 Khashayar Fereidani and other Kanal contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` + +### MIT License + +Applies to: + +- [tdigests 1.0.1](https://github.com/andylokandy/tdigests) + +``` +The MIT License (MIT) + +Copyright (c) 2024 Andy Lok + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [mermaid-to-svg 0.1.0](https://github.com/warpdotdev/mermaid-to-svg) + +``` +The MIT License (MIT) + +Copyright (c) 2025-2026 Denver Technologies, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [os_pipe 1.2.3](https://github.com/oconnor663/os_pipe.rs) + +``` +The MIT License (MIT) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [prodash 31.0.0](https://github.com/GitoxideLabs/prodash) + +``` +The MIT License (MIT) +===================== + +Copyright © `2020` `Sebastian Thiel` + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the “Software”), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [zstd 0.13.3](https://github.com/gyscos/zstd-rs) + +``` +The MIT License (MIT) +Copyright (c) 2016 Alexandre Bury + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [nu-ansi-term 0.50.3](https://github.com/nushell/nu-ansi-term) + +``` +The MIT License (MIT) + +Copyright (c) 2014 Benjamin Sago +Copyright (c) 2021-2022 The Nushell Project Developers + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [bincode 1.3.3](https://github.com/servo/bincode) + +``` +The MIT License (MIT) + +Copyright (c) 2014 Ty Overby + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [mime_guess 2.0.5](https://github.com/abonander/mime_guess) + +``` +The MIT License (MIT) + +Copyright (c) 2015 Austin Bonander + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +``` + +### MIT License + +Applies to: + +- [generic-array 0.14.9](https://github.com/fizyk20/generic-array.git) + +``` +The MIT License (MIT) + +Copyright (c) 2015 Bartłomiej Kamiński + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` + +### MIT License + +Applies to: + +- [quick-xml 0.39.4](https://github.com/tafia/quick-xml) +- [quick-xml 0.41.0](https://github.com/tafia/quick-xml) + +``` +The MIT License (MIT) + +Copyright (c) 2016 Johann Tuffe + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +``` + +### MIT License + +Applies to: + +- [urlencoding 2.1.3](https://github.com/kornelski/rust_urlencoding) + +``` +© 2016 Bertram Truong +© 2021 Kornel Lesiński + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +``` + +### MIT No Attribution + +Applies to: + +- [borrow-or-share 0.2.4](https://github.com/yescallop/borrow-or-share) + +``` +MIT No Attribution + +Copyright 2024 Scallop Ye + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` + +### Mozilla Public License 2.0 + +Applies to: + +- [nucleo-matcher 0.3.1](https://github.com/helix-editor/nucleo) +- [nucleo 0.5.0](https://github.com/helix-editor/nucleo) +- [dtoa-short 0.3.5](https://github.com/upsuper/dtoa-short) + +``` +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. + +``` + +### Mozilla Public License 2.0 + +Applies to: + +- [colored 3.1.1](https://github.com/mackwic/colored) +- [cssparser-macros 0.6.1](https://github.com/servo/rust-cssparser) +- [cssparser 0.34.0](https://github.com/servo/rust-cssparser) + +``` +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. + +``` + +### Mozilla Public License 2.0 + +Applies to: + +- [option-ext 0.2.0](https://github.com/soc/option-ext.git) +- [selectors 0.26.0](https://github.com/servo/stylo) + +``` +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at https://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. + +``` + +### Unicode License v3 + +Applies to: + +- [unicode-ident 1.0.24](https://github.com/dtolnay/unicode-ident) + +``` +UNICODE LICENSE V3 + +COPYRIGHT AND PERMISSION NOTICE + +Copyright © 1991-2023 Unicode, Inc. + +NOTICE TO USER: Carefully read the following legal agreement. BY +DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING DATA FILES, AND/OR +SOFTWARE, YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE +TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE, DO NOT +DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of data files and any associated documentation (the "Data Files") or +software and any associated documentation (the "Software") to deal in the +Data Files or Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, and/or sell +copies of the Data Files or Software, and to permit persons to whom the +Data Files or Software are furnished to do so, provided that either (a) +this copyright and permission notice appear with all copies of the Data +Files or Software, or (b) this copyright and permission notice appear in +associated Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY +KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF +THIRD PARTY RIGHTS. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE +BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, +OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA +FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder shall +not be used in advertising or otherwise to promote the sale, use or other +dealings in these Data Files or Software without prior written +authorization of the copyright holder. + +``` + +### Unicode License v3 + +Applies to: + +- [icu_collections 2.2.0](https://github.com/unicode-org/icu4x) +- [icu_locale_core 2.2.0](https://github.com/unicode-org/icu4x) +- [icu_normalizer 2.2.0](https://github.com/unicode-org/icu4x) +- [icu_normalizer_data 2.2.0](https://github.com/unicode-org/icu4x) +- [icu_properties 2.2.0](https://github.com/unicode-org/icu4x) +- [icu_properties_data 2.2.0](https://github.com/unicode-org/icu4x) +- [icu_provider 2.2.0](https://github.com/unicode-org/icu4x) +- [litemap 0.8.2](https://github.com/unicode-org/icu4x) +- [potential_utf 0.1.5](https://github.com/unicode-org/icu4x) +- [tinystr 0.8.3](https://github.com/unicode-org/icu4x) +- [writeable 0.6.3](https://github.com/unicode-org/icu4x) +- [yoke-derive 0.8.2](https://github.com/unicode-org/icu4x) +- [yoke 0.8.3](https://github.com/unicode-org/icu4x) +- [zerofrom-derive 0.1.7](https://github.com/unicode-org/icu4x) +- [zerofrom 0.1.8](https://github.com/unicode-org/icu4x) +- [zerotrie 0.2.4](https://github.com/unicode-org/icu4x) +- [zerovec-derive 0.11.3](https://github.com/unicode-org/icu4x) +- [zerovec 0.11.6](https://github.com/unicode-org/icu4x) + +``` +UNICODE LICENSE V3 + +COPYRIGHT AND PERMISSION NOTICE + +Copyright © 2020-2024 Unicode, Inc. + +NOTICE TO USER: Carefully read the following legal agreement. BY +DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING DATA FILES, AND/OR +SOFTWARE, YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE +TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE, DO NOT +DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of data files and any associated documentation (the "Data Files") or +software and any associated documentation (the "Software") to deal in the +Data Files or Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, and/or sell +copies of the Data Files or Software, and to permit persons to whom the +Data Files or Software are furnished to do so, provided that either (a) +this copyright and permission notice appear with all copies of the Data +Files or Software, or (b) this copyright and permission notice appear in +associated Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY +KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF +THIRD PARTY RIGHTS. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE +BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, +OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA +FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder shall +not be used in advertising or otherwise to promote the sale, use or other +dealings in these Data Files or Software without prior written +authorization of the copyright holder. + +SPDX-License-Identifier: Unicode-3.0 + +— + +Portions of ICU4X may have been adapted from ICU4C and/or ICU4J. +ICU 1.8.1 to ICU 57.1 © 1995-2016 International Business Machines Corporation and others. + +``` + +### Unicode License Agreement - Data Files and Software (2016) + +Applies to: + +- [finl_unicode 1.4.0](https://github.com/dahosek/finl_unicode) +- [wezterm-bidi 0.2.3](https://github.com/wez/wezterm) + +``` +UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE + +Unicode Data Files include all data files under the directories http://www.unicode.org/Public/, http://www.unicode.org/reports/, http://www.unicode.org/cldr/data/, http://source.icu-project.org/repos/icu/, and http://www.unicode.org/utility/trac/browser/. + +Unicode Data Files do not include PDF online code charts under the directory http://www.unicode.org/Public/. + +Software includes any source code published in the Unicode Standard or under the directories http://www.unicode.org/Public/, http://www.unicode.org/reports/, http://www.unicode.org/cldr/data/, http://source.icu-project.org/repos/icu/, and http://www.unicode.org/utility/trac/browser/. + +NOTICE TO USER: Carefully read the following legal agreement. BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE. + +COPYRIGHT AND PERMISSION NOTICE + +Copyright © 1991-2016 Unicode, Inc. All rights reserved. Distributed under the Terms of Use in http://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining a copy of the Unicode data files and any associated documentation (the "Data Files") or Unicode software and any associated documentation (the "Software") to deal in the Data Files or Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Data Files or Software, and to permit persons to whom the Data Files or Software are furnished to do so, provided that either + + (a) this copyright and permission notice appear with all copies of the Data Files or Software, or + (b) this copyright and permission notice appear in associated Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in these Data Files or Software without prior written authorization of the copyright holder. + +``` + +### Do What The F*ck You Want To Public License + +Applies to: + +- [terminfo 0.9.0](https://github.com/meh/rust-terminfo) + +``` + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + + Copyleft (ↄ) meh. | http://meh.schizofreni.co + + Everyone is permitted to copy and distribute verbatim or modified + copies of this license document, and changing it is allowed as long + as the name is changed. + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. You just DO WHAT THE FUCK YOU WANT TO. + +``` + +### zlib License + +Applies to: + +- [zlib-rs 0.6.6](https://github.com/trifectatechfoundation/zlib-rs) + +``` +(C) 2024 Trifecta Tech Foundation + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + +3. This notice may not be removed or altered from any source distribution. + +``` + +### zlib License + +Applies to: + +- [slotmap 1.1.1](https://github.com/orlp/slotmap) + +``` +Copyright (c) 2021 Orson Peters + +This software is provided 'as-is', without any express or implied warranty. In +no event will the authors be held liable for any damages arising from the use of +this software. + +Permission is granted to anyone to use this software for any purpose, including +commercial applications, and to alter it and redistribute it freely, subject to +the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not claim + that you wrote the original software. If you use this software in a product, + an acknowledgment in the product documentation would be appreciated but is + not required. + + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + + 3. This notice may not be removed or altered from any source distribution. + +``` + +### zlib License + +Applies to: + +- [foldhash 0.1.5](https://github.com/orlp/foldhash) +- [foldhash 0.2.0](https://github.com/orlp/foldhash) + +``` +Copyright (c) 2024 Orson Peters + +This software is provided 'as-is', without any express or implied warranty. In +no event will the authors be held liable for any damages arising from the use of +this software. + +Permission is granted to anyone to use this software for any purpose, including +commercial applications, and to alter it and redistribute it freely, subject to +the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim + that you wrote the original software. If you use this software in a product, + an acknowledgment in the product documentation would be appreciated but is + not required. + +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + +3. This notice may not be removed or altered from any source distribution. +``` + diff --git a/about.hbs b/about.hbs new file mode 100644 index 0000000..7a5abe5 --- /dev/null +++ b/about.hbs @@ -0,0 +1,34 @@ +# Third-Party Notices + +This file lists the third-party Rust crates distributed as part of the +`kigi` binary, grouped by license, with the full license texts and the +crates each text applies to. Generated by +[cargo-about](https://github.com/EmbarkStudios/cargo-about) from +`about.toml`; regenerate with: + +``` +cargo about generate about.hbs -o THIRD-PARTY-NOTICES.md +``` + +## Overview + +{{#each overview}} +- {{{name}}} ({{count}} crate{{#unless (eq count 1)}}s{{/unless}}) +{{/each}} + +## Licenses + +{{#each licenses}} +### {{{name}}} + +Applies to: + +{{#each used_by}} +- [{{{crate.name}}} {{{crate.version}}}]({{#if crate.repository}}{{{crate.repository}}}{{else}}https://crates.io/crates/{{{crate.name}}}{{/if}}) +{{/each}} + +``` +{{{text}}} +``` + +{{/each}} diff --git a/about.toml b/about.toml new file mode 100644 index 0000000..7e98eb3 --- /dev/null +++ b/about.toml @@ -0,0 +1,45 @@ +# cargo-about configuration (PRD F8 / release packaging). +# +# Generates THIRD-PARTY-NOTICES.md at the repo root: +# +# cargo about generate about.hbs -o THIRD-PARTY-NOTICES.md +# +# Regeneration is a release-checklist step (docs/RELEASE.md), not a CI gate. +# The accepted list mirrors deny.toml's [licenses].allow — keep them in sync. + +accepted = [ + "Apache-2.0", + "Apache-2.0 WITH LLVM-exception", + "BSD-2-Clause", + "BSD-3-Clause", + "BSL-1.0", + "CC0-1.0", + "CDLA-Permissive-2.0", + # In the dependency graph but not in deny.toml's allow list (deny only + # gates advisories in CI today): colored_json (EPL-2.0), finl_unicode / + # wezterm-bidi (Unicode-DFS-2016), terminfo (WTFPL). + "EPL-2.0", + "ISC", + "MIT", + "MIT-0", + "MPL-2.0", + "OpenSSL", + "Unicode-3.0", + "Unicode-DFS-2016", + "WTFPL", + "Zlib", +] + +# Notices cover what we ship: the kigi binary's dependency graph. +targets = [ + "aarch64-apple-darwin", + "x86_64-apple-darwin", + "aarch64-unknown-linux-gnu", + "x86_64-unknown-linux-gnu", + "x86_64-pc-windows-msvc", +] + +# ring bundles ISC/MIT/OpenSSL-derived texts in a single LICENSE file that +# SPDX expression parsing cannot classify on its own. +[ring] +accepted = ["ISC", "MIT", "OpenSSL"] diff --git a/crates/codegen/kigi-bin/src/main.rs b/crates/codegen/kigi-bin/src/main.rs index e9ffde7..144efff 100644 --- a/crates/codegen/kigi-bin/src/main.rs +++ b/crates/codegen/kigi-bin/src/main.rs @@ -1655,9 +1655,6 @@ fn build_update_config() -> UpdateConfig { kigi_shell::agent::config::EndpointsConfig::default().deployment_key; } }); - config.npm_registry = std::env::var(obfstr::obfstr!("KIGI_NPM_REGISTRY")) - .ok() - .or_else(kigi_shell::util::config::load_npm_registry_sync); if let Ok(root) = kigi_shell::config::load_effective_config_disk_only() && let Some(ch) = kigi_shell::util::config::channel_from_toml_opt(&root) { diff --git a/crates/codegen/kigi-env/src/lib.rs b/crates/codegen/kigi-env/src/lib.rs index 6182032..5728265 100644 --- a/crates/codegen/kigi-env/src/lib.rs +++ b/crates/codegen/kigi-env/src/lib.rs @@ -29,6 +29,9 @@ pub const PRODUCTION_ENDPOINTS: KigiEndpoints = KigiEndpoints { pub const CODE_BASE_URL_ENV: &str = "KIGI_CODE_BASE_URL"; /// Env var overriding [`oauth_host`] (PRD F1). pub const OAUTH_HOST_ENV: &str = "KIGI_OAUTH_HOST"; +/// Env var overriding [`update_base_url`] (PRD F8). Points the self-updater +/// at an alternate GitHub-Releases-shaped API (mirrors, tests). +pub const UPDATE_BASE_URL_ENV: &str = "KIGI_UPDATE_BASE_URL"; fn resolve(var: &str, compiled: &'static str) -> String { match std::env::var(var) { @@ -49,10 +52,11 @@ pub fn oauth_host() -> String { resolve(OAUTH_HOST_ENV, PRODUCTION_ENDPOINTS.oauth_host) } -/// GitHub Releases API endpoint for the self-updater. Compile-time constant; -/// the updater's channel/rollback semantics layer on top of it. -pub fn update_base_url() -> &'static str { - PRODUCTION_ENDPOINTS.update_base_url +/// GitHub Releases API endpoint for the self-updater: +/// `KIGI_UPDATE_BASE_URL` override when set, else the compiled production +/// endpoint. The updater's channel/rollback semantics layer on top of it. +pub fn update_base_url() -> String { + resolve(UPDATE_BASE_URL_ENV, PRODUCTION_ENDPOINTS.update_base_url) } /// Subscription upgrade page shown in rate-limit and upsell surfaces. @@ -144,6 +148,12 @@ mod tests { drop(_g); let _g2 = EnvVarGuard::set(OAUTH_HOST_ENV, "https://auth.example.test"); assert_eq!(oauth_host(), "https://auth.example.test"); + drop(_g2); + let _g3 = EnvVarGuard::set(UPDATE_BASE_URL_ENV, "http://127.0.0.1:1/releases"); + assert_eq!(update_base_url(), "http://127.0.0.1:1/releases"); + drop(_g3); + let _unset = EnvVarGuard::remove(UPDATE_BASE_URL_ENV); + assert_eq!(update_base_url(), PRODUCTION_ENDPOINTS.update_base_url); } #[test] diff --git a/crates/codegen/kigi-tui/npm/grok-darwin-arm64/.gitignore b/crates/codegen/kigi-tui/npm/grok-darwin-arm64/.gitignore deleted file mode 100644 index bb43652..0000000 --- a/crates/codegen/kigi-tui/npm/grok-darwin-arm64/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -bin/*.br -bin/grok -bin/grok.exe -THIRD_PARTY_NOTICES.md diff --git a/crates/codegen/kigi-tui/npm/grok-darwin-arm64/README.md b/crates/codegen/kigi-tui/npm/grok-darwin-arm64/README.md deleted file mode 100644 index b8cbeaf..0000000 --- a/crates/codegen/kigi-tui/npm/grok-darwin-arm64/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# @xai-official/grok-darwin-arm64 - -Platform-specific binary for [`@xai-official/grok`](https://www.npmjs.com/package/@xai-official/grok) on darwin-arm64. - -Do not install this package directly. Install the main package instead: - -```sh -npm install -g @xai-official/grok -``` - -The main package will automatically pull the correct binary for your platform via `optionalDependencies`. diff --git a/crates/codegen/kigi-tui/npm/grok-darwin-arm64/package.json b/crates/codegen/kigi-tui/npm/grok-darwin-arm64/package.json deleted file mode 100644 index 56d67d4..0000000 --- a/crates/codegen/kigi-tui/npm/grok-darwin-arm64/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "@xai-official/grok-darwin-arm64", - "version": "0.2.0-dev", - "description": "darwin-arm64 binary for @xai-official/grok. Do not install directly; install @xai-official/grok instead.", - "license": "Apache-2.0", - "files": [ - "bin/", - "THIRD_PARTY_NOTICES.md" - ], - "os": [ - "darwin" - ], - "cpu": [ - "arm64" - ], - "publishConfig": { - "access": "public" - } -} diff --git a/crates/codegen/kigi-tui/npm/grok-darwin-x64/.gitignore b/crates/codegen/kigi-tui/npm/grok-darwin-x64/.gitignore deleted file mode 100644 index bb43652..0000000 --- a/crates/codegen/kigi-tui/npm/grok-darwin-x64/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -bin/*.br -bin/grok -bin/grok.exe -THIRD_PARTY_NOTICES.md diff --git a/crates/codegen/kigi-tui/npm/grok-darwin-x64/README.md b/crates/codegen/kigi-tui/npm/grok-darwin-x64/README.md deleted file mode 100644 index 3d235b7..0000000 --- a/crates/codegen/kigi-tui/npm/grok-darwin-x64/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# @xai-official/grok-darwin-x64 - -Platform-specific binary for [`@xai-official/grok`](https://www.npmjs.com/package/@xai-official/grok) on darwin-x64. - -Do not install this package directly. Install the main package instead: - -```sh -npm install -g @xai-official/grok -``` - -The main package will automatically pull the correct binary for your platform via `optionalDependencies`. diff --git a/crates/codegen/kigi-tui/npm/grok-darwin-x64/package.json b/crates/codegen/kigi-tui/npm/grok-darwin-x64/package.json deleted file mode 100644 index 5a000f9..0000000 --- a/crates/codegen/kigi-tui/npm/grok-darwin-x64/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "@xai-official/grok-darwin-x64", - "version": "0.2.0-dev", - "description": "darwin-x64 binary for @xai-official/grok. Do not install directly; install @xai-official/grok instead.", - "license": "Apache-2.0", - "files": [ - "bin/", - "THIRD_PARTY_NOTICES.md" - ], - "os": [ - "darwin" - ], - "cpu": [ - "x64" - ], - "publishConfig": { - "access": "public" - } -} diff --git a/crates/codegen/kigi-tui/npm/grok-linux-arm64/.gitignore b/crates/codegen/kigi-tui/npm/grok-linux-arm64/.gitignore deleted file mode 100644 index bb43652..0000000 --- a/crates/codegen/kigi-tui/npm/grok-linux-arm64/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -bin/*.br -bin/grok -bin/grok.exe -THIRD_PARTY_NOTICES.md diff --git a/crates/codegen/kigi-tui/npm/grok-linux-arm64/README.md b/crates/codegen/kigi-tui/npm/grok-linux-arm64/README.md deleted file mode 100644 index 14834a9..0000000 --- a/crates/codegen/kigi-tui/npm/grok-linux-arm64/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# @xai-official/grok-linux-arm64 - -Platform-specific binary for [`@xai-official/grok`](https://www.npmjs.com/package/@xai-official/grok) on linux-arm64. - -Do not install this package directly. Install the main package instead: - -```sh -npm install -g @xai-official/grok -``` - -The main package will automatically pull the correct binary for your platform via `optionalDependencies`. diff --git a/crates/codegen/kigi-tui/npm/grok-linux-arm64/package.json b/crates/codegen/kigi-tui/npm/grok-linux-arm64/package.json deleted file mode 100644 index 6faaa6a..0000000 --- a/crates/codegen/kigi-tui/npm/grok-linux-arm64/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "@xai-official/grok-linux-arm64", - "version": "0.2.0-dev", - "description": "linux-arm64 binary for @xai-official/grok. Do not install directly; install @xai-official/grok instead.", - "license": "Apache-2.0", - "files": [ - "bin/", - "THIRD_PARTY_NOTICES.md" - ], - "os": [ - "linux" - ], - "cpu": [ - "arm64" - ], - "publishConfig": { - "access": "public" - } -} diff --git a/crates/codegen/kigi-tui/npm/grok-linux-x64/.gitignore b/crates/codegen/kigi-tui/npm/grok-linux-x64/.gitignore deleted file mode 100644 index bb43652..0000000 --- a/crates/codegen/kigi-tui/npm/grok-linux-x64/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -bin/*.br -bin/grok -bin/grok.exe -THIRD_PARTY_NOTICES.md diff --git a/crates/codegen/kigi-tui/npm/grok-linux-x64/README.md b/crates/codegen/kigi-tui/npm/grok-linux-x64/README.md deleted file mode 100644 index 7acfdee..0000000 --- a/crates/codegen/kigi-tui/npm/grok-linux-x64/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# @xai-official/grok-linux-x64 - -Platform-specific binary for [`@xai-official/grok`](https://www.npmjs.com/package/@xai-official/grok) on linux-x64. - -Do not install this package directly. Install the main package instead: - -```sh -npm install -g @xai-official/grok -``` - -The main package will automatically pull the correct binary for your platform via `optionalDependencies`. diff --git a/crates/codegen/kigi-tui/npm/grok-linux-x64/package.json b/crates/codegen/kigi-tui/npm/grok-linux-x64/package.json deleted file mode 100644 index 35c2d0f..0000000 --- a/crates/codegen/kigi-tui/npm/grok-linux-x64/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "@xai-official/grok-linux-x64", - "version": "0.2.0-dev", - "description": "linux-x64 binary for @xai-official/grok. Do not install directly; install @xai-official/grok instead.", - "license": "Apache-2.0", - "files": [ - "bin/", - "THIRD_PARTY_NOTICES.md" - ], - "os": [ - "linux" - ], - "cpu": [ - "x64" - ], - "publishConfig": { - "access": "public" - } -} diff --git a/crates/codegen/kigi-tui/npm/grok-win32-arm64/.gitignore b/crates/codegen/kigi-tui/npm/grok-win32-arm64/.gitignore deleted file mode 100644 index bb43652..0000000 --- a/crates/codegen/kigi-tui/npm/grok-win32-arm64/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -bin/*.br -bin/grok -bin/grok.exe -THIRD_PARTY_NOTICES.md diff --git a/crates/codegen/kigi-tui/npm/grok-win32-arm64/README.md b/crates/codegen/kigi-tui/npm/grok-win32-arm64/README.md deleted file mode 100644 index 02c15d2..0000000 --- a/crates/codegen/kigi-tui/npm/grok-win32-arm64/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# @xai-official/grok-win32-arm64 - -Platform-specific binary for [`@xai-official/grok`](https://www.npmjs.com/package/@xai-official/grok) on win32-arm64. - -Do not install this package directly. Install the main package instead: - -```sh -npm install -g @xai-official/grok -``` - -The main package will automatically pull the correct binary for your platform via `optionalDependencies`. diff --git a/crates/codegen/kigi-tui/npm/grok-win32-arm64/package.json b/crates/codegen/kigi-tui/npm/grok-win32-arm64/package.json deleted file mode 100644 index e00fcb3..0000000 --- a/crates/codegen/kigi-tui/npm/grok-win32-arm64/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "@xai-official/grok-win32-arm64", - "version": "0.2.0-dev", - "description": "win32-arm64 binary for @xai-official/grok. Do not install directly; install @xai-official/grok instead.", - "license": "Apache-2.0", - "files": [ - "bin/", - "THIRD_PARTY_NOTICES.md" - ], - "os": [ - "win32" - ], - "cpu": [ - "arm64" - ], - "publishConfig": { - "access": "public" - } -} diff --git a/crates/codegen/kigi-tui/npm/grok-win32-x64/.gitignore b/crates/codegen/kigi-tui/npm/grok-win32-x64/.gitignore deleted file mode 100644 index bb43652..0000000 --- a/crates/codegen/kigi-tui/npm/grok-win32-x64/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -bin/*.br -bin/grok -bin/grok.exe -THIRD_PARTY_NOTICES.md diff --git a/crates/codegen/kigi-tui/npm/grok-win32-x64/README.md b/crates/codegen/kigi-tui/npm/grok-win32-x64/README.md deleted file mode 100644 index ef0c4a4..0000000 --- a/crates/codegen/kigi-tui/npm/grok-win32-x64/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# @xai-official/grok-win32-x64 - -Platform-specific binary for [`@xai-official/grok`](https://www.npmjs.com/package/@xai-official/grok) on win32-x64. - -Do not install this package directly. Install the main package instead: - -```sh -npm install -g @xai-official/grok -``` - -The main package will automatically pull the correct binary for your platform via `optionalDependencies`. diff --git a/crates/codegen/kigi-tui/npm/grok-win32-x64/package.json b/crates/codegen/kigi-tui/npm/grok-win32-x64/package.json deleted file mode 100644 index 3e07dbc..0000000 --- a/crates/codegen/kigi-tui/npm/grok-win32-x64/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "@xai-official/grok-win32-x64", - "version": "0.2.0-dev", - "description": "win32-x64 binary for @xai-official/grok. Do not install directly; install @xai-official/grok instead.", - "license": "Apache-2.0", - "files": [ - "bin/", - "THIRD_PARTY_NOTICES.md" - ], - "os": [ - "win32" - ], - "cpu": [ - "x64" - ], - "publishConfig": { - "access": "public" - } -} diff --git a/crates/codegen/kigi-tui/npm/grok/README.md b/crates/codegen/kigi-tui/npm/grok/README.md deleted file mode 100644 index b70910e..0000000 --- a/crates/codegen/kigi-tui/npm/grok/README.md +++ /dev/null @@ -1,61 +0,0 @@ -# Grok - -Bring Grok into your terminal. Fast, flicker-free CLI built for plans, subagents, and parallel work. - -**[Homepage](https://x.ai/cli)** | **[Documentation](https://docs.x.ai/build/overview)** - -## Install - -```bash -curl -fsSL https://x.ai/cli/install.sh | bash -``` - -Or install with npm: - -```bash -npm i -g @xai-official/grok -``` - -## Get Started - -```bash -# Launch the interactive TUI -grok - -# Run a single task -grok -p "Explain this codebase" -``` - -On first launch, Grok opens your browser to authenticate. For CI or headless environments, use an API key from [console.x.ai](https://console.x.ai): - -```bash -export XAI_API_KEY="xai-..." -``` - -## Update - -```bash -grok update -``` - -Or if installed via npm: - -```bash -npm i -g @xai-official/grok@latest -``` - -## Supported Platforms - -| Platform | Architecture | -|---|---| -| macOS | Apple Silicon (arm64) | -| Linux | x86_64, arm64 | -| Windows | x86_64 | - -## Documentation - -For full documentation including configuration, MCP servers, custom models, headless mode, agent mode, and more, visit [docs.x.ai/build/overview](https://docs.x.ai/build/overview). - -## Feedback - -Run `/feedback` inside Grok to report issues or send feedback directly. diff --git a/crates/codegen/kigi-tui/npm/grok/bin/grok b/crates/codegen/kigi-tui/npm/grok/bin/grok deleted file mode 100755 index 14c54c8..0000000 --- a/crates/codegen/kigi-tui/npm/grok/bin/grok +++ /dev/null @@ -1,136 +0,0 @@ -#!/usr/bin/env node -// Thin trampoline: resolves the grok binary from the matching per-platform -// optional dependency package and execs it. -// -// Falls back to bootstrapping the canonical ~/.grok/bin/grok- symlink -// layout if postinstall hasn't run (e.g. npx, or postinstall failure). -// -// Binary location strategy (in priority order): -// 1. ~/.grok/bin/grok — canonical versioned symlink (postinstall.js) -// 2. @xai-official/grok-/bin/grok[.exe] — decompressed sibling -// 3. @xai-official/grok-/bin/grok[.exe].br — brotli-compressed -// -// Per-platform binaries are shipped brotli-compressed to stay well under -// npm's ~200 MB tarball ceiling. See sibling packages @xai-official/grok-*. -const { spawn } = require('child_process'); -const path = require('path'); -const fs = require('fs'); -const os = require('os'); -const zlib = require('zlib'); - -const pkgName = '@xai-official/grok'; -const IS_WINDOWS = process.platform === 'win32'; -const EXE = IS_WINDOWS ? '.exe' : ''; -const BIN_NAME = `grok${EXE}`; -const CANONICAL_DIR = path.join(os.homedir(), '.grok', 'bin'); -const CANONICAL_PATH = path.join(CANONICAL_DIR, BIN_NAME); - -function readLocalVersion() { - try { return require('../package.json').version; } catch { return undefined; } -} - -// Resolve the per-platform sibling package's directory. Returns null if the -// matching optional dependency wasn't installed (unsupported platform, or -// npm refused to install optionalDependencies). -function resolvePlatformPackageDir() { - const platformPkg = `@xai-official/grok-${process.platform}-${process.arch}`; - try { - return path.dirname(require.resolve(`${platformPkg}/package.json`)); - } catch { - return null; - } -} - -// Decompress a brotli-compressed binary to a sibling path. Atomic via tmp+rename. -function decompressBrotli(brPath, outPath) { - const compressed = fs.readFileSync(brPath); - const decompressed = zlib.brotliDecompressSync(compressed); - const tmp = outPath + `.tmp.${process.pid}`; - fs.writeFileSync(tmp, decompressed); - if (!IS_WINDOWS) fs.chmodSync(tmp, 0o755); - try { fs.renameSync(tmp, outPath); } catch {} -} - -// Bootstrap the canonical versioned-symlink layout from a source binary. -// Returns the canonical path on success, or the source path on failure. -function bootstrapCanonical(sourceBinPath, version) { - try { - fs.mkdirSync(CANONICAL_DIR, { recursive: true }); - const versionedName = `grok-${version}${EXE}`; - const versionedPath = path.join(CANONICAL_DIR, versionedName); - if (!fs.existsSync(versionedPath)) { - const tmpPath = versionedPath + `.tmp.${process.pid}`; - fs.copyFileSync(sourceBinPath, tmpPath); - if (!IS_WINDOWS) fs.chmodSync(tmpPath, 0o755); - fs.renameSync(tmpPath, versionedPath); - } - if (IS_WINDOWS) { - const oldPath = CANONICAL_PATH + '.old'; - try { fs.unlinkSync(oldPath); } catch {} - try { - try { fs.unlinkSync(CANONICAL_PATH); } catch {} - fs.copyFileSync(versionedPath, CANONICAL_PATH); - } catch { - fs.renameSync(CANONICAL_PATH, oldPath); - try { - fs.copyFileSync(versionedPath, CANONICAL_PATH); - } catch { - try { fs.renameSync(oldPath, CANONICAL_PATH); } catch {} - throw new Error('locked'); - } - } - } else { - const tmpLink = CANONICAL_PATH + `.link.${process.pid}`; - try { fs.unlinkSync(tmpLink); } catch {} - fs.symlinkSync(versionedName, tmpLink); - fs.renameSync(tmpLink, CANONICAL_PATH); - } - return CANONICAL_PATH; - } catch { - return sourceBinPath; - } -} - -function resolveBinary() { - if (fs.existsSync(CANONICAL_PATH)) return CANONICAL_PATH; - - const platformDir = resolvePlatformPackageDir(); - if (!platformDir) { - console.error(`${pkgName}: no platform binary installed for ${process.platform}-${process.arch}.`); - console.error(` Expected sibling package @xai-official/grok-${process.platform}-${process.arch}.`); - console.error(` This usually means npm skipped optionalDependencies (e.g. --no-optional)`); - console.error(` or the platform is not supported.`); - process.exit(1); - } - - const rawPath = path.join(platformDir, 'bin', BIN_NAME); - const brPath = rawPath + '.br'; - - // Decompress on first use if needed (atomic via tmp+rename). - if (!fs.existsSync(rawPath)) { - if (fs.existsSync(brPath)) { - decompressBrotli(brPath, rawPath); - } - } - if (!fs.existsSync(rawPath)) { - console.error(`${pkgName}: missing binary at ${rawPath}`); - process.exit(1); - } - - const version = readLocalVersion(); - if (version) { - return bootstrapCanonical(rawPath, version); - } - return rawPath; -} - -const execPath = resolveBinary(); -const childEnv = { ...process.env, KIGI_MANAGED_BY_NPM: '1' }; -const child = spawn(execPath, process.argv.slice(2), { stdio: 'inherit', env: childEnv }); -child.on('exit', (code, signal) => { - if (signal) { - process.kill(process.pid, signal); - } else { - process.exit(code ?? 0); - } -}); diff --git a/crates/codegen/kigi-tui/npm/grok/bin/postinstall.js b/crates/codegen/kigi-tui/npm/grok/bin/postinstall.js deleted file mode 100644 index 71099e8..0000000 --- a/crates/codegen/kigi-tui/npm/grok/bin/postinstall.js +++ /dev/null @@ -1,225 +0,0 @@ -#!/usr/bin/env node -// Runs once after npm install/update. Reads the grok binary from the -// matching per-platform optional dependency (@xai-official/grok-) -// and installs it to ~/.grok/bin/ using versioned filenames: -// -// Unix: grok- + grok (symlink) -// Windows: grok-.exe + grok.exe (copy) -// -// Versioned files ensure running processes are never disrupted on macOS -// (replacing a binary that a running process has mmap'd causes SIGKILL -// because the kernel can no longer verify the code signature). -const path = require('path'); -const fs = require('fs'); -const os = require('os'); -const zlib = require('zlib'); -const { execSync } = require('child_process'); -const TOML = require('@iarna/toml'); - -const CANONICAL_DIR = path.join(os.homedir(), '.grok', 'bin'); - -const key = `${process.platform}-${process.arch}`; -const SUPPORTED = new Set([ - 'darwin-arm64', - 'darwin-x64', - 'linux-x64', - 'linux-arm64', - 'win32-x64', - 'win32-arm64', -]); -if (!SUPPORTED.has(key)) { - console.error(`@xai-official/grok: unsupported platform ${key}`); - process.exit(0); -} - -// Resolve the per-platform sibling package's directory. The matching -// optionalDependency is installed by npm based on `os`/`cpu` filters; the -// other five are silently skipped. If the matching one is missing, npm was -// likely invoked with --no-optional or the platform is unsupported. -function resolvePlatformPackageDir() { - const platformPkg = `@xai-official/grok-${key}`; - try { - return path.dirname(require.resolve(`${platformPkg}/package.json`)); - } catch { - return null; - } -} - -let version; -try { version = require('../package.json').version; } catch {} -if (!version) { - console.error('@xai-official/grok: unable to determine version'); - process.exit(0); -} - -const IS_WINDOWS = process.platform === 'win32'; -const EXE = IS_WINDOWS ? '.exe' : ''; - -fs.mkdirSync(CANONICAL_DIR, { recursive: true }); - -// Install a vendored binary: versioned filename + symlink (Unix) or copy (Windows). -// Binaries are shipped brotli-compressed in the per-platform npm tarball to keep -// each sub-package well under npm's ~200 MB tarball limit. This function -// decompresses them before installing into the canonical layout. -function installBinary(binName, sourceDir, vendorSubpath) { - const brPath = path.join(sourceDir, 'bin', vendorSubpath + '.br'); - const rawPath = path.join(sourceDir, 'bin', vendorSubpath); - let vendoredBinPath; - if (fs.existsSync(brPath)) { - const compressed = fs.readFileSync(brPath); - const decompressed = zlib.brotliDecompressSync(compressed); - vendoredBinPath = rawPath; - fs.writeFileSync(vendoredBinPath, decompressed); - if (!IS_WINDOWS) fs.chmodSync(vendoredBinPath, 0o755); - try { fs.unlinkSync(brPath); } catch {} - } else if (fs.existsSync(rawPath)) { - vendoredBinPath = rawPath; - } else { - console.error(`@xai-official/grok: missing binary at ${brPath}`); - return false; - } - - const versionedName = `${binName}-${version}${EXE}`; - const versionedPath = path.join(CANONICAL_DIR, versionedName); - const canonicalName = `${binName}${EXE}`; - const canonicalPath = path.join(CANONICAL_DIR, canonicalName); - - // Only copy if this exact version isn't already installed. - if (!fs.existsSync(versionedPath)) { - const tmpPath = versionedPath + `.tmp.${process.pid}`; - try { - fs.copyFileSync(vendoredBinPath, tmpPath); - if (!IS_WINDOWS) fs.chmodSync(tmpPath, 0o755); - fs.renameSync(tmpPath, versionedPath); - } finally { - try { fs.unlinkSync(tmpPath); } catch {} - } - } - - if (IS_WINDOWS) { - // Symlinks need elevation on Windows; copy instead. If the exe is - // locked by a running process, rename it aside then retry. - const oldPath = canonicalPath + '.old'; - try { fs.unlinkSync(oldPath); } catch {} // stale backup from prior update - try { - try { fs.unlinkSync(canonicalPath); } catch {} - fs.copyFileSync(versionedPath, canonicalPath); - } catch (e) { - try { - fs.renameSync(canonicalPath, oldPath); - try { - fs.copyFileSync(versionedPath, canonicalPath); - } catch (copyErr) { - // Rollback: restore the old binary so the install isn't broken. - try { fs.renameSync(oldPath, canonicalPath); } catch {} - throw copyErr; - } - } catch (e2) { - console.error(`@xai-official/grok: failed to update ${canonicalPath}: ${e2.message}`); - console.error('Close all running grok processes and try again.'); - return false; - } - } - } else { - // Atomic symlink swap. - const tmpLink = canonicalPath + `.link.${process.pid}`; - try { fs.unlinkSync(tmpLink); } catch {} - fs.symlinkSync(versionedName, tmpLink); - fs.renameSync(tmpLink, canonicalPath); - } - - console.log(`${binName} ${version} installed to ${canonicalPath} -> ${versionedName}`); - return true; -} - -// Best-effort cleanup of old versioned binaries for a given binary name. -// Keeps the current version and the previous one (in case a process is still -// running the old binary and hasn't fully loaded all pages yet). -// Uses an exact prefix match + hyphen + digit to avoid grok-* matching grok-pager-*. -function cleanupOldVersions(binName) { - try { - const prefix = `${binName}-`; - const currentVersioned = `${binName}-${version}${EXE}`; - const entries = fs.readdirSync(CANONICAL_DIR); - const versionedBinaries = entries - .filter(e => { - if (!e.startsWith(prefix)) return false; - if (e.includes('.tmp.') || e.includes('.link.')) return false; - if (e === currentVersioned) return false; - const suffix = e.slice(prefix.length); - return /^\d/.test(suffix); - }) - .sort((a, b) => { - const pa = a.slice(prefix.length).split('.').map(Number); - const pb = b.slice(prefix.length).split('.').map(Number); - for (let i = 0; i < 3; i++) { - if ((pa[i] || 0) !== (pb[i] || 0)) return (pb[i] || 0) - (pa[i] || 0); - } - return 0; - }); - for (const old of versionedBinaries.slice(1)) { - try { fs.unlinkSync(path.join(CANONICAL_DIR, old)); } catch {} - } - } catch {} -} - -const platformDir = resolvePlatformPackageDir(); -if (!platformDir) { - console.error(`@xai-official/grok: platform package @xai-official/grok-${key} not installed.`); - console.error(' This usually means npm was invoked with --no-optional, or the install failed.'); - console.error(' Try: npm install -g @xai-official/grok'); - process.exit(0); -} - -installBinary('grok', platformDir, `grok${EXE}`); -cleanupOldVersions('grok'); -cleanupOldVersions('grok-pager'); - -// Write installer config -const configDir = path.join(os.homedir(), '.grok'); -const configPath = path.join(configDir, 'config.toml'); -let obj = {}; -try { obj = TOML.parse(fs.readFileSync(configPath, 'utf8')); } catch { } -obj.cli ??= {}; -obj.cli.installer = 'npm'; - -// Persist the npm registry so `grok update` and the trampoline use the same one. -const npmRegistry = process.env.KIGI_NPM_REGISTRY - || (() => { - try { - const resolved = execSync( - 'npm config get @xai-official:registry', - { encoding: 'utf8', timeout: 5000 } - ).trim(); - if (resolved && resolved !== 'undefined') return resolved; - } catch {} - return null; - })(); - -if (npmRegistry) { - obj.cli.npm_registry = npmRegistry; -} - -fs.writeFileSync(configPath, TOML.stringify(obj), 'utf8'); - -// Shell completions: print setup hints (no silent shell config mutation). -// Set KIGI_INSTALL_COMPLETIONS=1 to auto-generate to ~/.grok/completions. -const KIGI_PATH = path.join(CANONICAL_DIR, `grok${EXE}`); -if (process.env.KIGI_INSTALL_COMPLETIONS === '1' && !IS_WINDOWS) { - try { - const { spawnSync } = require('child_process'); - const completionsDir = path.join(os.homedir(), '.grok', 'completions'); - const bashPath = path.join(completionsDir, 'bash', 'grok.bash'); - const zshPath = path.join(completionsDir, 'zsh', '_grok'); - fs.mkdirSync(path.dirname(bashPath), { recursive: true }); - fs.mkdirSync(path.dirname(zshPath), { recursive: true }); - const bashRes = spawnSync(KIGI_PATH, ['completions', 'bash'], { encoding: 'utf8' }); - if (bashRes.status === 0) fs.writeFileSync(bashPath, bashRes.stdout); - const zshRes = spawnSync(KIGI_PATH, ['completions', 'zsh'], { encoding: 'utf8' }); - if (zshRes.status === 0) fs.writeFileSync(zshPath, zshRes.stdout); - console.log('Completions generated to ~/.grok/completions (bash/zsh)'); - } catch {} -} else if (!IS_WINDOWS) { - console.log('Tip: grok completions bash > ~/.local/share/bash-completion/completions/grok'); - console.log(' grok completions zsh > ~/.zsh/completions/_grok'); -} diff --git a/crates/codegen/kigi-tui/npm/grok/package.json b/crates/codegen/kigi-tui/npm/grok/package.json deleted file mode 100644 index 37708dc..0000000 --- a/crates/codegen/kigi-tui/npm/grok/package.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "@xai-official/grok", - "version": "0.1.220-alpha.4", - "description": "Bring Grok into your terminal", - "license": "Apache-2.0", - "bin": { - "grok": "bin/grok" - }, - "files": [ - "bin/" - ], - "os": [ - "darwin", - "linux", - "win32" - ], - "cpu": [ - "arm64", - "x64" - ], - "scripts": { - "postinstall": "node bin/postinstall.js" - }, - "publishConfig": { - "access": "public" - }, - "engines": { - "node": ">=20" - }, - "dependencies": { - "@iarna/toml": "^3.0.0" - }, - "optionalDependencies": { - "@xai-official/grok-darwin-arm64": "0.1.220-alpha.4", - "@xai-official/grok-darwin-x64": "0.1.220-alpha.4", - "@xai-official/grok-linux-arm64": "0.1.220-alpha.4", - "@xai-official/grok-linux-x64": "0.1.220-alpha.4", - "@xai-official/grok-win32-arm64": "0.1.220-alpha.4", - "@xai-official/grok-win32-x64": "0.1.220-alpha.4" - } -} diff --git a/crates/codegen/kigi-tui/npm/grok/scripts/assemble-platform-packages.js b/crates/codegen/kigi-tui/npm/grok/scripts/assemble-platform-packages.js deleted file mode 100644 index a9cf069..0000000 --- a/crates/codegen/kigi-tui/npm/grok/scripts/assemble-platform-packages.js +++ /dev/null @@ -1,134 +0,0 @@ -#!/usr/bin/env node -// Assemble the six per-platform npm packages prior to `npm publish`. -// -// For each supported (platform, arch) target this: -// 1. Brotli-compresses the built binary into `../grok-/bin/.br` -// 2. Stamps the sub-package's version to match the meta package -// -// Each per-platform package is its own npm publish target. The meta package -// (`@xai-official/grok`) lists all six as `optionalDependencies` pinned to -// the same version; npm installs only the one matching the host's -// `os` + `cpu` filters. -// -// Why brotli? npm's tarball ceiling is ~200 MB and the raw grok binary is -// 100–150 MB per platform. Brotli at max quality cuts that to 30–40 MB, -// leaves plenty of headroom for binary growth, and is decoded by Node's -// built-in zlib.brotliDecompressSync (no native deps required). -// -// Source paths come from environment variables (set in CI) and fall back to -// the default cargo target dirs for local testing. -const fs = require('fs'); -const path = require('path'); -const { promisify } = require('util'); -const zlib = require('zlib'); - -const brotliCompress = promisify(zlib.brotliCompress); - -const xaiRoot = process.env.XAI_ROOT || path.resolve(__dirname, '..', '..', '..', '..', '..'); -const npmRoot = path.resolve(__dirname, '..', '..'); - -const NOTICES_SOURCE = path.resolve( - npmRoot, '..', '..', 'kigi-tools', 'THIRD_PARTY_NOTICES.md'); -const NOTICES_NAME = 'THIRD_PARTY_NOTICES.md'; - -const META_PKG_JSON = path.resolve(__dirname, '..', 'package.json'); -const meta = JSON.parse(fs.readFileSync(META_PKG_JSON, 'utf8')); -const VERSION = meta.version; - -function ensureDir(p) { fs.mkdirSync(path.dirname(p), { recursive: true }); } - -async function packPlatform({ platform, arch, envVar, defaultSource, binName }) { - const pkgDir = path.join(npmRoot, `grok-${platform}-${arch}`); - const pkgJsonPath = path.join(pkgDir, 'package.json'); - - if (!fs.existsSync(pkgJsonPath)) { - console.error(`[assemble] Missing per-platform package at ${pkgDir}`); - return false; - } - - const source = process.env[envVar] || defaultSource; - if (!fs.existsSync(source)) { - console.error(`[assemble] Missing binary for ${platform}-${arch}: ${source}`); - console.error(` Set ${envVar} or build to the default location.`); - return false; - } - - // Stamp the sub-package's version to match the meta package. - const subPkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8')); - subPkg.version = VERSION; - fs.writeFileSync(pkgJsonPath, JSON.stringify(subPkg, null, 4) + '\n'); - - if (!fs.existsSync(NOTICES_SOURCE)) { - console.error(`[assemble] Missing third-party notices file: ${NOTICES_SOURCE}`); - return false; - } - fs.copyFileSync(NOTICES_SOURCE, path.join(pkgDir, NOTICES_NAME)); - - // Brotli-compress into the sub-package's bin/. - const outBr = path.join(pkgDir, 'bin', `${binName}.br`); - ensureDir(outBr); - const raw = fs.readFileSync(source); - const compressed = await brotliCompress(raw, { - params: { [zlib.constants.BROTLI_PARAM_QUALITY]: zlib.constants.BROTLI_MAX_QUALITY }, - }); - fs.writeFileSync(outBr, compressed); - console.log( - `[assemble] grok-${platform}-${arch}@${VERSION}: ` + - `${(raw.length / 1048576).toFixed(1)} MB -> ${(compressed.length / 1048576).toFixed(1)} MB ` + - `(${path.relative(npmRoot, outBr)})` - ); - return true; -} - -async function main() { - const targets = [ - { - platform: 'darwin', arch: 'arm64', binName: 'grok', - envVar: 'KIGI_DARWIN_ARM64', - defaultSource: path.join(xaiRoot, 'target', 'release', 'kigi-tui'), - }, - { - platform: 'darwin', arch: 'x64', binName: 'grok', - envVar: 'KIGI_DARWIN_X64', - defaultSource: path.join(xaiRoot, 'target', 'x86_64-apple-darwin', 'release', 'kigi-tui'), - }, - { - platform: 'linux', arch: 'x64', binName: 'grok', - envVar: 'KIGI_LINUX_X64', - defaultSource: path.join(xaiRoot, 'target', - 'explorer_cross_x86_64-unknown-linux-gnu', - 'x86_64-unknown-linux-gnu', 'release', 'kigi-tui'), - }, - { - platform: 'linux', arch: 'arm64', binName: 'grok', - envVar: 'KIGI_LINUX_ARM64', - defaultSource: path.join(xaiRoot, 'target', - 'explorer_cross_aarch64-unknown-linux-gnu', - 'aarch64-unknown-linux-gnu', 'release', 'kigi-tui'), - }, - { - platform: 'win32', arch: 'x64', binName: 'grok.exe', - envVar: 'KIGI_WIN32_X64', - defaultSource: path.join(xaiRoot, 'target', 'x86_64-pc-windows-msvc', 'release', 'kigi-tui.exe'), - }, - { - platform: 'win32', arch: 'arm64', binName: 'grok.exe', - envVar: 'KIGI_WIN32_ARM64', - defaultSource: path.join(xaiRoot, 'target', 'aarch64-pc-windows-msvc', 'release', 'kigi-tui.exe'), - }, - ]; - - // Compress in parallel — brotliCompress runs on the libuv thread pool so - // calls genuinely overlap (set UV_THREADPOOL_SIZE>=6 in CI for full - // parallelism; Node's default pool size is 4). - const results = await Promise.all(targets.map(packPlatform)); - const failed = results.filter(r => !r).length; - if (failed > 0) { - console.error(`[assemble] ${failed} target(s) failed.`); - process.exit(1); - } - - console.log(`[assemble] All 6 per-platform packages assembled at version ${VERSION}.`); -} - -main().catch((err) => { console.error(err); process.exit(1); }); diff --git a/crates/codegen/kigi-tui/npm/grok/scripts/test-postinstall.js b/crates/codegen/kigi-tui/npm/grok/scripts/test-postinstall.js deleted file mode 100644 index bff1ea1..0000000 --- a/crates/codegen/kigi-tui/npm/grok/scripts/test-postinstall.js +++ /dev/null @@ -1,983 +0,0 @@ -#!/usr/bin/env node -// Tests for the versioned-binary + symlink installation logic used by -// postinstall.js and the bin/grok trampoline. -// -// Run with: node scripts/test-postinstall.js -// -// Uses only Node.js built-in modules (no test framework needed). - -const fs = require('fs'); -const path = require('path'); -const os = require('os'); -const assert = require('assert'); - -let passed = 0; -let failed = 0; - -function test(name, fn) { - try { - fn(); - console.log(` ✓ ${name}`); - passed++; - } catch (e) { - console.error(` ✗ ${name}`); - console.error(` ${e.message}`); - failed++; - } -} - -function makeTmpDir() { - return fs.mkdtempSync(path.join(os.tmpdir(), 'grok-test-')); -} - -function cleanup(dir) { - fs.rmSync(dir, { recursive: true, force: true }); -} - -// ─── Extracted logic (mirrors postinstall.js and bin/grok exactly) ───── - -/** Semver-aware descending sort for "grok-X.Y.Z" filenames. */ -function semverSortDescending(a, b) { - const pa = a.slice(5).split('.').map(Number); - const pb = b.slice(5).split('.').map(Number); - for (let i = 0; i < 3; i++) { - if ((pa[i] || 0) !== (pb[i] || 0)) return (pb[i] || 0) - (pa[i] || 0); - } - return 0; -} - -/** Install a versioned binary + atomic symlink (same as postinstall.js). */ -function installVersionedBinary(vendoredBinPath, version, canonicalDir) { - const canonicalPath = path.join(canonicalDir, 'grok'); - fs.mkdirSync(canonicalDir, { recursive: true }); - - const versionedName = `grok-${version}`; - const versionedPath = path.join(canonicalDir, versionedName); - - if (!fs.existsSync(versionedPath)) { - const tmpPath = versionedPath + `.tmp.${process.pid}`; - try { - fs.copyFileSync(vendoredBinPath, tmpPath); - fs.chmodSync(tmpPath, 0o755); - fs.renameSync(tmpPath, versionedPath); - } finally { - try { fs.unlinkSync(tmpPath); } catch {} - } - } - - const tmpLink = canonicalPath + `.link.${process.pid}`; - try { fs.unlinkSync(tmpLink); } catch {} - fs.symlinkSync(versionedName, tmpLink); - fs.renameSync(tmpLink, canonicalPath); - - return { canonicalPath, versionedPath, versionedName }; -} - -/** Cleanup old versioned binaries (same as postinstall.js). */ -function cleanupOldVersions(canonicalDir, currentVersionedName) { - const entries = fs.readdirSync(canonicalDir); - const versionedBinaries = entries - .filter(e => e.startsWith('grok-') && !e.includes('.tmp.') && !e.includes('.link.') && e !== currentVersionedName) - .sort(semverSortDescending); - // Keep the most recent old version, remove anything older. - for (const old of versionedBinaries.slice(1)) { - try { fs.unlinkSync(path.join(canonicalDir, old)); } catch {} - } - return versionedBinaries; -} - -/** Bootstrap canonical from vendored (same as bin/grok trampoline). */ -function bootstrapCanonical(vendoredBinPath, version, canonicalDir) { - const canonicalPath = path.join(canonicalDir, 'grok'); - try { - fs.mkdirSync(canonicalDir, { recursive: true }); - const versionedName = `grok-${version}`; - const versionedPath = path.join(canonicalDir, versionedName); - if (!fs.existsSync(versionedPath)) { - const tmpPath = versionedPath + `.tmp.${process.pid}`; - fs.copyFileSync(vendoredBinPath, tmpPath); - fs.chmodSync(tmpPath, 0o755); - fs.renameSync(tmpPath, versionedPath); - } - const tmpLink = canonicalPath + `.link.${process.pid}`; - try { fs.unlinkSync(tmpLink); } catch {} - fs.symlinkSync(versionedName, tmpLink); - fs.renameSync(tmpLink, canonicalPath); - return canonicalPath; - } catch { - return vendoredBinPath; - } -} - -// ═══════════════════════════════════════════════════════════════════════ -// Install + Symlink Tests -// ═══════════════════════════════════════════════════════════════════════ - -console.log('install + symlink tests\n'); - -test('creates versioned binary and symlink on fresh install', () => { - const dir = makeTmpDir(); - try { - const vendored = path.join(dir, 'vendored-grok'); - fs.writeFileSync(vendored, 'binary-content-v1'); - - const binDir = path.join(dir, 'bin'); - const result = installVersionedBinary(vendored, '0.1.140', binDir); - - // Versioned file should exist - assert.ok(fs.existsSync(result.versionedPath), 'versioned binary should exist'); - assert.strictEqual(fs.readFileSync(result.versionedPath, 'utf8'), 'binary-content-v1'); - - // Canonical path should be a symlink - const stat = fs.lstatSync(result.canonicalPath); - assert.ok(stat.isSymbolicLink(), 'canonical path should be a symlink'); - - // Symlink should point to the versioned name (relative) - const target = fs.readlinkSync(result.canonicalPath); - assert.strictEqual(target, 'grok-0.1.140'); - - // Reading through the symlink should return the binary content - assert.strictEqual(fs.readFileSync(result.canonicalPath, 'utf8'), 'binary-content-v1'); - } finally { - cleanup(dir); - } -}); - -test('upgrade swaps symlink and preserves old binary', () => { - const dir = makeTmpDir(); - try { - const binDir = path.join(dir, 'bin'); - - // Install v1 - const vendored_v1 = path.join(dir, 'vendored-v1'); - fs.writeFileSync(vendored_v1, 'v1-content'); - installVersionedBinary(vendored_v1, '0.1.140', binDir); - - // Install v2 - const vendored_v2 = path.join(dir, 'vendored-v2'); - fs.writeFileSync(vendored_v2, 'v2-content'); - const result = installVersionedBinary(vendored_v2, '0.1.141', binDir); - - // Symlink now points to v2 - assert.strictEqual(fs.readlinkSync(result.canonicalPath), 'grok-0.1.141'); - assert.strictEqual(fs.readFileSync(result.canonicalPath, 'utf8'), 'v2-content'); - - // Old v1 binary MUST still exist on disk (this is the key safety property) - const oldBinary = path.join(binDir, 'grok-0.1.140'); - assert.ok(fs.existsSync(oldBinary), 'old versioned binary must not be deleted'); - assert.strictEqual(fs.readFileSync(oldBinary, 'utf8'), 'v1-content'); - } finally { - cleanup(dir); - } -}); - -test('idempotent: reinstalling same version does not re-copy', () => { - const dir = makeTmpDir(); - try { - const binDir = path.join(dir, 'bin'); - - const vendored = path.join(dir, 'vendored'); - fs.writeFileSync(vendored, 'original'); - installVersionedBinary(vendored, '0.1.140', binDir); - - // Modify vendored source (simulate npm replacing it) - fs.writeFileSync(vendored, 'replaced-by-npm'); - - // Re-run postinstall with same version - installVersionedBinary(vendored, '0.1.140', binDir); - - // Versioned binary should NOT have been replaced (existsSync guard) - const versionedPath = path.join(binDir, 'grok-0.1.140'); - assert.strictEqual(fs.readFileSync(versionedPath, 'utf8'), 'original'); - } finally { - cleanup(dir); - } -}); - -test('symlink swap is atomic (no intermediate missing state)', () => { - const dir = makeTmpDir(); - try { - const binDir = path.join(dir, 'bin'); - const canonicalPath = path.join(binDir, 'grok'); - - const vendored = path.join(dir, 'vendored'); - fs.writeFileSync(vendored, 'v1'); - installVersionedBinary(vendored, '0.1.140', binDir); - assert.ok(fs.existsSync(canonicalPath), 'should exist after first install'); - - // Upgrade - fs.writeFileSync(vendored, 'v2'); - installVersionedBinary(vendored, '0.1.141', binDir); - assert.ok(fs.existsSync(canonicalPath), 'should exist after upgrade'); - - // No temp files left behind - const entries = fs.readdirSync(binDir); - const tempFiles = entries.filter(e => e.includes('.tmp.') || e.includes('.link.')); - assert.strictEqual(tempFiles.length, 0, `temp files should be cleaned up, found: ${tempFiles}`); - } finally { - cleanup(dir); - } -}); - -test('handles upgrade from old-style regular file to versioned symlink', () => { - const dir = makeTmpDir(); - try { - const binDir = path.join(dir, 'bin'); - const canonicalPath = path.join(binDir, 'grok'); - fs.mkdirSync(binDir, { recursive: true }); - - // Simulate old installation: grok is a regular file - fs.writeFileSync(canonicalPath, 'old-style-binary'); - assert.ok(!fs.lstatSync(canonicalPath).isSymbolicLink(), 'should be regular file initially'); - - // Run new-style install - const vendored = path.join(dir, 'vendored'); - fs.writeFileSync(vendored, 'v2-content'); - installVersionedBinary(vendored, '0.1.141', binDir); - - // Should now be a symlink - assert.ok(fs.lstatSync(canonicalPath).isSymbolicLink(), 'should be symlink after install'); - assert.strictEqual(fs.readFileSync(canonicalPath, 'utf8'), 'v2-content'); - } finally { - cleanup(dir); - } -}); - -test('handles broken symlink (target deleted externally)', () => { - const dir = makeTmpDir(); - try { - const binDir = path.join(dir, 'bin'); - fs.mkdirSync(binDir, { recursive: true }); - - // Create a broken symlink (points to a file that doesn't exist) - const canonicalPath = path.join(binDir, 'grok'); - fs.symlinkSync('grok-0.1.99', canonicalPath); - assert.ok(!fs.existsSync(canonicalPath), 'broken symlink should not "exist"'); - - // Install should work and fix the broken symlink - const vendored = path.join(dir, 'vendored'); - fs.writeFileSync(vendored, 'fixed-content'); - const result = installVersionedBinary(vendored, '0.1.141', binDir); - - assert.ok(fs.existsSync(result.canonicalPath), 'symlink should now resolve'); - assert.strictEqual(fs.readFileSync(result.canonicalPath, 'utf8'), 'fixed-content'); - } finally { - cleanup(dir); - } -}); - -test('three sequential upgrades: v1 -> v2 -> v3 all coexist', () => { - const dir = makeTmpDir(); - try { - const binDir = path.join(dir, 'bin'); - const vendored = path.join(dir, 'vendored'); - - fs.writeFileSync(vendored, 'content-v1'); - installVersionedBinary(vendored, '0.1.1', binDir); - - fs.writeFileSync(vendored, 'content-v2'); - installVersionedBinary(vendored, '0.1.2', binDir); - - fs.writeFileSync(vendored, 'content-v3'); - installVersionedBinary(vendored, '0.1.3', binDir); - - // Symlink points to latest - assert.strictEqual(fs.readlinkSync(path.join(binDir, 'grok')), 'grok-0.1.3'); - - // All three versioned binaries still exist (no cleanup yet) - assert.ok(fs.existsSync(path.join(binDir, 'grok-0.1.1'))); - assert.ok(fs.existsSync(path.join(binDir, 'grok-0.1.2'))); - assert.ok(fs.existsSync(path.join(binDir, 'grok-0.1.3'))); - } finally { - cleanup(dir); - } -}); - -test('file permissions are preserved (0o755)', () => { - const dir = makeTmpDir(); - try { - const binDir = path.join(dir, 'bin'); - const vendored = path.join(dir, 'vendored'); - fs.writeFileSync(vendored, 'binary'); - - const result = installVersionedBinary(vendored, '0.1.140', binDir); - - const mode = fs.statSync(result.versionedPath).mode & 0o777; - assert.strictEqual(mode, 0o755, `expected 0755, got ${mode.toString(8)}`); - } finally { - cleanup(dir); - } -}); - -// ═══════════════════════════════════════════════════════════════════════ -// Cleanup / Semver Sort Tests -// ═══════════════════════════════════════════════════════════════════════ - -console.log('\ncleanup + semver sort tests\n'); - -test('cleanup keeps N-1 version and removes older ones', () => { - const dir = makeTmpDir(); - try { - const binDir = path.join(dir, 'bin'); - fs.mkdirSync(binDir, { recursive: true }); - - // Create three old versioned binaries - fs.writeFileSync(path.join(binDir, 'grok-0.1.138'), 'v138'); - fs.writeFileSync(path.join(binDir, 'grok-0.1.139'), 'v139'); - fs.writeFileSync(path.join(binDir, 'grok-0.1.140'), 'v140'); - // grok-0.1.141 is the current version (excluded from cleanup) - fs.writeFileSync(path.join(binDir, 'grok-0.1.141'), 'v141'); - - cleanupOldVersions(binDir, 'grok-0.1.141'); - - assert.ok(fs.existsSync(path.join(binDir, 'grok-0.1.141')), 'current should exist'); - assert.ok(fs.existsSync(path.join(binDir, 'grok-0.1.140')), 'N-1 should be kept'); - assert.ok(!fs.existsSync(path.join(binDir, 'grok-0.1.139')), 'N-2 should be removed'); - assert.ok(!fs.existsSync(path.join(binDir, 'grok-0.1.138')), 'N-3 should be removed'); - } finally { - cleanup(dir); - } -}); - -test('cleanup with only one old version keeps it', () => { - const dir = makeTmpDir(); - try { - const binDir = path.join(dir, 'bin'); - fs.mkdirSync(binDir, { recursive: true }); - - fs.writeFileSync(path.join(binDir, 'grok-0.1.140'), 'v140'); - fs.writeFileSync(path.join(binDir, 'grok-0.1.141'), 'v141'); - - cleanupOldVersions(binDir, 'grok-0.1.141'); - - assert.ok(fs.existsSync(path.join(binDir, 'grok-0.1.140')), 'single old version should be kept'); - assert.ok(fs.existsSync(path.join(binDir, 'grok-0.1.141')), 'current should exist'); - } finally { - cleanup(dir); - } -}); - -test('cleanup with no old versions is a no-op', () => { - const dir = makeTmpDir(); - try { - const binDir = path.join(dir, 'bin'); - fs.mkdirSync(binDir, { recursive: true }); - - // Only the current version exists - fs.writeFileSync(path.join(binDir, 'grok-0.1.141'), 'v141'); - - cleanupOldVersions(binDir, 'grok-0.1.141'); - - assert.ok(fs.existsSync(path.join(binDir, 'grok-0.1.141')), 'current should still exist'); - const entries = fs.readdirSync(binDir).filter(e => e.startsWith('grok-')); - assert.strictEqual(entries.length, 1, 'should only have current version'); - } finally { - cleanup(dir); - } -}); - -test('cleanup ignores .tmp. and .link. files', () => { - const dir = makeTmpDir(); - try { - const binDir = path.join(dir, 'bin'); - fs.mkdirSync(binDir, { recursive: true }); - - fs.writeFileSync(path.join(binDir, 'grok-0.1.141'), 'current'); - // Leftover temp files from a crashed install - fs.writeFileSync(path.join(binDir, 'grok-0.1.140.tmp.12345'), 'crashed-tmp'); - fs.writeFileSync(path.join(binDir, 'grok.link.12345'), 'crashed-link'); - - cleanupOldVersions(binDir, 'grok-0.1.141'); - - // Temp files should not be touched by cleanup (they're filtered out) - assert.ok(fs.existsSync(path.join(binDir, 'grok-0.1.140.tmp.12345')), 'tmp file should not be touched'); - assert.ok(fs.existsSync(path.join(binDir, 'grok.link.12345')), 'link file should not be touched'); - } finally { - cleanup(dir); - } -}); - -test('semver sort: 0.1.9 vs 0.1.10 (digit boundary)', () => { - // Regression test: lexical sort puts '0.1.9' after '0.1.10' because '9' > '1' - const dir = makeTmpDir(); - try { - const binDir = path.join(dir, 'bin'); - fs.mkdirSync(binDir, { recursive: true }); - - fs.writeFileSync(path.join(binDir, 'grok-0.1.8'), 'v8'); - fs.writeFileSync(path.join(binDir, 'grok-0.1.9'), 'v9'); - fs.writeFileSync(path.join(binDir, 'grok-0.1.10'), 'v10'); - fs.writeFileSync(path.join(binDir, 'grok-0.1.11'), 'v11'); - - cleanupOldVersions(binDir, 'grok-0.1.11'); - - assert.ok(fs.existsSync(path.join(binDir, 'grok-0.1.11')), 'current should exist'); - assert.ok(fs.existsSync(path.join(binDir, 'grok-0.1.10')), '0.1.10 should be kept (N-1)'); - assert.ok(!fs.existsSync(path.join(binDir, 'grok-0.1.9')), '0.1.9 should be removed'); - assert.ok(!fs.existsSync(path.join(binDir, 'grok-0.1.8')), '0.1.8 should be removed'); - } finally { - cleanup(dir); - } -}); - -test('semver sort: major version boundary (0.x vs 1.x)', () => { - const dir = makeTmpDir(); - try { - const binDir = path.join(dir, 'bin'); - fs.mkdirSync(binDir, { recursive: true }); - - fs.writeFileSync(path.join(binDir, 'grok-0.9.99'), 'old'); - fs.writeFileSync(path.join(binDir, 'grok-1.0.0'), 'v1'); - fs.writeFileSync(path.join(binDir, 'grok-1.0.1'), 'current'); - - cleanupOldVersions(binDir, 'grok-1.0.1'); - - assert.ok(fs.existsSync(path.join(binDir, 'grok-1.0.0')), '1.0.0 should be kept (N-1)'); - assert.ok(!fs.existsSync(path.join(binDir, 'grok-0.9.99')), '0.9.99 should be removed'); - } finally { - cleanup(dir); - } -}); - -test('semver sort: minor version boundary (0.1.x vs 0.2.x)', () => { - const dir = makeTmpDir(); - try { - const binDir = path.join(dir, 'bin'); - fs.mkdirSync(binDir, { recursive: true }); - - fs.writeFileSync(path.join(binDir, 'grok-0.1.999'), 'old'); - fs.writeFileSync(path.join(binDir, 'grok-0.2.0'), 'v2'); - fs.writeFileSync(path.join(binDir, 'grok-0.2.1'), 'current'); - - cleanupOldVersions(binDir, 'grok-0.2.1'); - - assert.ok(fs.existsSync(path.join(binDir, 'grok-0.2.0')), '0.2.0 should be kept (N-1)'); - assert.ok(!fs.existsSync(path.join(binDir, 'grok-0.1.999')), '0.1.999 should be removed'); - } finally { - cleanup(dir); - } -}); - -test('semverSortDescending: unit test comparator directly', () => { - const input = ['grok-0.1.9', 'grok-0.1.10', 'grok-0.1.2', 'grok-1.0.0', 'grok-0.2.0']; - const sorted = [...input].sort(semverSortDescending); - assert.deepStrictEqual(sorted, [ - 'grok-1.0.0', - 'grok-0.2.0', - 'grok-0.1.10', - 'grok-0.1.9', - 'grok-0.1.2', - ]); -}); - -// ═══════════════════════════════════════════════════════════════════════ -// Bootstrap (trampoline) Tests -// ═══════════════════════════════════════════════════════════════════════ - -console.log('\nbootstrap (trampoline) tests\n'); - -test('bootstrapCanonical creates versioned binary from vendored', () => { - const dir = makeTmpDir(); - try { - const binDir = path.join(dir, 'bin'); - const vendored = path.join(dir, 'vendored-grok'); - fs.writeFileSync(vendored, 'vendored-content'); - - const result = bootstrapCanonical(vendored, '0.1.140', binDir); - - assert.strictEqual(result, path.join(binDir, 'grok')); - assert.ok(fs.existsSync(path.join(binDir, 'grok-0.1.140')), 'versioned binary should exist'); - assert.ok(fs.lstatSync(result).isSymbolicLink(), 'canonical should be symlink'); - assert.strictEqual(fs.readFileSync(result, 'utf8'), 'vendored-content'); - } finally { - cleanup(dir); - } -}); - -test('bootstrapCanonical is idempotent', () => { - const dir = makeTmpDir(); - try { - const binDir = path.join(dir, 'bin'); - const vendored = path.join(dir, 'vendored-grok'); - fs.writeFileSync(vendored, 'original-content'); - - bootstrapCanonical(vendored, '0.1.140', binDir); - - // Change vendored content (simulating npm update) - fs.writeFileSync(vendored, 'npm-replaced-content'); - - // Second bootstrap should not overwrite existing versioned binary - const result = bootstrapCanonical(vendored, '0.1.140', binDir); - - assert.strictEqual( - fs.readFileSync(path.join(binDir, 'grok-0.1.140'), 'utf8'), - 'original-content', - 'should keep original, not npm-replaced version' - ); - } finally { - cleanup(dir); - } -}); - -test('bootstrapCanonical returns vendored path on failure', () => { - // If the canonical dir can't be created (e.g. permission denied), - // bootstrap should gracefully fall back to the vendored binary. - const dir = makeTmpDir(); - try { - const vendored = path.join(dir, 'vendored'); - fs.writeFileSync(vendored, 'fallback'); - - // Create a regular file where the dir should be — mkdirSync will fail. - const blockerFile = path.join(dir, 'blocked'); - fs.writeFileSync(blockerFile, 'I am a file, not a directory'); - const impossibleDir = path.join(blockerFile, 'subdir'); - - const result = bootstrapCanonical(vendored, '0.1.140', impossibleDir); - - assert.strictEqual(result, vendored, 'should fall back to vendored path'); - } finally { - cleanup(dir); - } -}); - -test('bootstrapCanonical works when canonical already exists (different version)', () => { - const dir = makeTmpDir(); - try { - const binDir = path.join(dir, 'bin'); - - // Install v1 via postinstall - const vendored1 = path.join(dir, 'vendored-v1'); - fs.writeFileSync(vendored1, 'v1'); - installVersionedBinary(vendored1, '0.1.140', binDir); - - // Bootstrap with v2 (simulates trampoline running a newer vendored binary) - const vendored2 = path.join(dir, 'vendored-v2'); - fs.writeFileSync(vendored2, 'v2'); - const result = bootstrapCanonical(vendored2, '0.1.141', binDir); - - assert.strictEqual(result, path.join(binDir, 'grok')); - // Symlink should now point to v2 - assert.strictEqual(fs.readlinkSync(result), 'grok-0.1.141'); - // v1 should still exist - assert.ok(fs.existsSync(path.join(binDir, 'grok-0.1.140')), 'old version should still exist'); - } finally { - cleanup(dir); - } -}); - -// ═══════════════════════════════════════════════════════════════════════ -// End-to-end Scenario Tests -// ═══════════════════════════════════════════════════════════════════════ - -console.log('\nend-to-end scenario tests\n'); - -test('full lifecycle: install, upgrade, cleanup', () => { - const dir = makeTmpDir(); - try { - const binDir = path.join(dir, 'bin'); - const vendored = path.join(dir, 'vendored'); - - // v1: fresh install - fs.writeFileSync(vendored, 'v1'); - installVersionedBinary(vendored, '0.1.140', binDir); - - // v2: upgrade - fs.writeFileSync(vendored, 'v2'); - installVersionedBinary(vendored, '0.1.141', binDir); - - // v3: another upgrade - fs.writeFileSync(vendored, 'v3'); - installVersionedBinary(vendored, '0.1.142', binDir); - cleanupOldVersions(binDir, 'grok-0.1.142'); - - // Current (v3) + N-1 (v2) should exist; v1 removed - assert.ok(fs.existsSync(path.join(binDir, 'grok-0.1.142')), 'v3 should exist'); - assert.ok(fs.existsSync(path.join(binDir, 'grok-0.1.141')), 'v2 should be kept (N-1)'); - assert.ok(!fs.existsSync(path.join(binDir, 'grok-0.1.140')), 'v1 should be removed'); - - // Canonical symlink points to v3 - assert.strictEqual(fs.readlinkSync(path.join(binDir, 'grok')), 'grok-0.1.142'); - assert.strictEqual(fs.readFileSync(path.join(binDir, 'grok'), 'utf8'), 'v3'); - } finally { - cleanup(dir); - } -}); - -test('downgrade: installing older version than current', () => { - const dir = makeTmpDir(); - try { - const binDir = path.join(dir, 'bin'); - const vendored = path.join(dir, 'vendored'); - - // Install v2 first - fs.writeFileSync(vendored, 'v2'); - installVersionedBinary(vendored, '0.1.141', binDir); - - // Downgrade to v1 - fs.writeFileSync(vendored, 'v1'); - installVersionedBinary(vendored, '0.1.140', binDir); - - // Symlink should now point to v1 - assert.strictEqual(fs.readlinkSync(path.join(binDir, 'grok')), 'grok-0.1.140'); - assert.strictEqual(fs.readFileSync(path.join(binDir, 'grok'), 'utf8'), 'v1'); - - // v2 should still exist (never delete old binaries during install) - assert.ok(fs.existsSync(path.join(binDir, 'grok-0.1.141')), 'v2 should still exist'); - } finally { - cleanup(dir); - } -}); - -test('non-grok files in bin dir are not touched by cleanup', () => { - const dir = makeTmpDir(); - try { - const binDir = path.join(dir, 'bin'); - fs.mkdirSync(binDir, { recursive: true }); - - // Non-grok files - fs.writeFileSync(path.join(binDir, 'other-tool'), 'should-stay'); - fs.writeFileSync(path.join(binDir, 'README.md'), 'should-stay'); - - // Grok versions - fs.writeFileSync(path.join(binDir, 'grok-0.1.138'), 'old1'); - fs.writeFileSync(path.join(binDir, 'grok-0.1.139'), 'old2'); - fs.writeFileSync(path.join(binDir, 'grok-0.1.140'), 'current'); - - cleanupOldVersions(binDir, 'grok-0.1.140'); - - assert.ok(fs.existsSync(path.join(binDir, 'other-tool')), 'non-grok file should not be touched'); - assert.ok(fs.existsSync(path.join(binDir, 'README.md')), 'non-grok file should not be touched'); - } finally { - cleanup(dir); - } -}); - -// ═══════════════════════════════════════════════════════════════════════ -// grok vs grok-pager Isolation Tests -// ═══════════════════════════════════════════════════════════════════════ - -console.log('\ngrok vs grok-pager isolation tests\n'); - -/** - * Cleanup for a named binary (mirrors postinstall.js cleanupOldVersions). - * Uses prefix + leading digit to avoid grok-* matching grok-pager-*. - */ -function cleanupOldVersionsNamed(canonicalDir, binName, version) { - const prefix = `${binName}-`; - const currentVersioned = `${binName}-${version}`; - const entries = fs.readdirSync(canonicalDir); - const versionedBinaries = entries - .filter(e => { - if (!e.startsWith(prefix)) return false; - if (e.includes('.tmp.') || e.includes('.link.')) return false; - if (e === currentVersioned) return false; - const suffix = e.slice(prefix.length); - return /^\d/.test(suffix); - }) - .sort((a, b) => { - const pa = a.slice(prefix.length).split('.').map(Number); - const pb = b.slice(prefix.length).split('.').map(Number); - for (let i = 0; i < 3; i++) { - if ((pa[i] || 0) !== (pb[i] || 0)) return (pb[i] || 0) - (pa[i] || 0); - } - return 0; - }); - for (const old of versionedBinaries.slice(1)) { - try { fs.unlinkSync(path.join(canonicalDir, old)); } catch {} - } - return versionedBinaries; -} - -/** Install a named binary (mirrors postinstall.js installBinary). */ -function installNamedBinary(vendoredBinPath, binName, version, canonicalDir) { - fs.mkdirSync(canonicalDir, { recursive: true }); - const versionedName = `${binName}-${version}`; - const versionedPath = path.join(canonicalDir, versionedName); - const canonicalPath = path.join(canonicalDir, binName); - - if (!fs.existsSync(versionedPath)) { - const tmpPath = versionedPath + `.tmp.${process.pid}`; - try { - fs.copyFileSync(vendoredBinPath, tmpPath); - fs.chmodSync(tmpPath, 0o755); - fs.renameSync(tmpPath, versionedPath); - } finally { - try { fs.unlinkSync(tmpPath); } catch {} - } - } - - const tmpLink = canonicalPath + `.link.${process.pid}`; - try { fs.unlinkSync(tmpLink); } catch {} - fs.symlinkSync(versionedName, tmpLink); - fs.renameSync(tmpLink, canonicalPath); - - return { canonicalPath, versionedPath, versionedName }; -} - -test('installing both grok and grok-pager creates independent symlinks', () => { - const dir = makeTmpDir(); - try { - const binDir = path.join(dir, 'bin'); - const vendored = path.join(dir, 'vendored'); - fs.writeFileSync(vendored, 'grok-binary'); - const vendoredPager = path.join(dir, 'vendored-pager'); - fs.writeFileSync(vendoredPager, 'pager-binary'); - - installNamedBinary(vendored, 'grok', '0.1.141', binDir); - installNamedBinary(vendoredPager, 'grok-pager', '0.1.141', binDir); - - // Both symlinks exist and point to correct targets - assert.strictEqual(fs.readlinkSync(path.join(binDir, 'grok')), 'grok-0.1.141'); - assert.strictEqual(fs.readlinkSync(path.join(binDir, 'grok-pager')), 'grok-pager-0.1.141'); - - // Both versioned files exist with correct content - assert.strictEqual(fs.readFileSync(path.join(binDir, 'grok-0.1.141'), 'utf8'), 'grok-binary'); - assert.strictEqual(fs.readFileSync(path.join(binDir, 'grok-pager-0.1.141'), 'utf8'), 'pager-binary'); - } finally { - cleanup(dir); - } -}); - -test('cleanup of grok-* does not remove grok-pager-*', () => { - const dir = makeTmpDir(); - try { - const binDir = path.join(dir, 'bin'); - fs.mkdirSync(binDir, { recursive: true }); - - // Old grok versions - fs.writeFileSync(path.join(binDir, 'grok-0.1.138'), 'old-grok-1'); - fs.writeFileSync(path.join(binDir, 'grok-0.1.139'), 'old-grok-2'); - fs.writeFileSync(path.join(binDir, 'grok-0.1.140'), 'old-grok-3'); - // Current grok - fs.writeFileSync(path.join(binDir, 'grok-0.1.141'), 'current-grok'); - - // grok-pager versions (should not be touched) - fs.writeFileSync(path.join(binDir, 'grok-pager-0.1.138'), 'old-pager-1'); - fs.writeFileSync(path.join(binDir, 'grok-pager-0.1.139'), 'old-pager-2'); - fs.writeFileSync(path.join(binDir, 'grok-pager-0.1.141'), 'current-pager'); - - cleanupOldVersionsNamed(binDir, 'grok', '0.1.141'); - - // grok cleanup: current + N-1 kept, older removed - assert.ok(fs.existsSync(path.join(binDir, 'grok-0.1.141')), 'current grok should exist'); - assert.ok(fs.existsSync(path.join(binDir, 'grok-0.1.140')), 'N-1 grok should be kept'); - assert.ok(!fs.existsSync(path.join(binDir, 'grok-0.1.139')), 'N-2 grok should be removed'); - assert.ok(!fs.existsSync(path.join(binDir, 'grok-0.1.138')), 'N-3 grok should be removed'); - - // ALL grok-pager versions must be untouched - assert.ok(fs.existsSync(path.join(binDir, 'grok-pager-0.1.138')), 'grok-pager-0.1.138 must survive grok cleanup'); - assert.ok(fs.existsSync(path.join(binDir, 'grok-pager-0.1.139')), 'grok-pager-0.1.139 must survive grok cleanup'); - assert.ok(fs.existsSync(path.join(binDir, 'grok-pager-0.1.141')), 'grok-pager-0.1.141 must survive grok cleanup'); - } finally { - cleanup(dir); - } -}); - -test('cleanup of grok-pager-* does not remove grok-*', () => { - const dir = makeTmpDir(); - try { - const binDir = path.join(dir, 'bin'); - fs.mkdirSync(binDir, { recursive: true }); - - // grok versions (should not be touched) - fs.writeFileSync(path.join(binDir, 'grok-0.1.138'), 'old-grok-1'); - fs.writeFileSync(path.join(binDir, 'grok-0.1.139'), 'old-grok-2'); - fs.writeFileSync(path.join(binDir, 'grok-0.1.141'), 'current-grok'); - - // Old grok-pager versions - fs.writeFileSync(path.join(binDir, 'grok-pager-0.1.138'), 'old-pager-1'); - fs.writeFileSync(path.join(binDir, 'grok-pager-0.1.139'), 'old-pager-2'); - fs.writeFileSync(path.join(binDir, 'grok-pager-0.1.140'), 'old-pager-3'); - // Current pager - fs.writeFileSync(path.join(binDir, 'grok-pager-0.1.141'), 'current-pager'); - - cleanupOldVersionsNamed(binDir, 'grok-pager', '0.1.141'); - - // grok-pager cleanup: current + N-1 kept, older removed - assert.ok(fs.existsSync(path.join(binDir, 'grok-pager-0.1.141')), 'current pager should exist'); - assert.ok(fs.existsSync(path.join(binDir, 'grok-pager-0.1.140')), 'N-1 pager should be kept'); - assert.ok(!fs.existsSync(path.join(binDir, 'grok-pager-0.1.139')), 'N-2 pager should be removed'); - assert.ok(!fs.existsSync(path.join(binDir, 'grok-pager-0.1.138')), 'N-3 pager should be removed'); - - // ALL grok versions must be untouched - assert.ok(fs.existsSync(path.join(binDir, 'grok-0.1.138')), 'grok-0.1.138 must survive pager cleanup'); - assert.ok(fs.existsSync(path.join(binDir, 'grok-0.1.139')), 'grok-0.1.139 must survive pager cleanup'); - assert.ok(fs.existsSync(path.join(binDir, 'grok-0.1.141')), 'grok-0.1.141 must survive pager cleanup'); - } finally { - cleanup(dir); - } -}); - -test('full dual-binary lifecycle: install, upgrade, cleanup both', () => { - const dir = makeTmpDir(); - try { - const binDir = path.join(dir, 'bin'); - const vendored = path.join(dir, 'vendored'); - const vendoredPager = path.join(dir, 'vendored-pager'); - - // v1 - fs.writeFileSync(vendored, 'grok-v1'); - fs.writeFileSync(vendoredPager, 'pager-v1'); - installNamedBinary(vendored, 'grok', '0.1.140', binDir); - installNamedBinary(vendoredPager, 'grok-pager', '0.1.140', binDir); - - // v2 - fs.writeFileSync(vendored, 'grok-v2'); - fs.writeFileSync(vendoredPager, 'pager-v2'); - installNamedBinary(vendored, 'grok', '0.1.141', binDir); - installNamedBinary(vendoredPager, 'grok-pager', '0.1.141', binDir); - - // v3 - fs.writeFileSync(vendored, 'grok-v3'); - fs.writeFileSync(vendoredPager, 'pager-v3'); - installNamedBinary(vendored, 'grok', '0.1.142', binDir); - installNamedBinary(vendoredPager, 'grok-pager', '0.1.142', binDir); - - // Cleanup both independently - cleanupOldVersionsNamed(binDir, 'grok', '0.1.142'); - cleanupOldVersionsNamed(binDir, 'grok-pager', '0.1.142'); - - // Current + N-1 for each - assert.ok(fs.existsSync(path.join(binDir, 'grok-0.1.142'))); - assert.ok(fs.existsSync(path.join(binDir, 'grok-0.1.141'))); - assert.ok(!fs.existsSync(path.join(binDir, 'grok-0.1.140'))); - - assert.ok(fs.existsSync(path.join(binDir, 'grok-pager-0.1.142'))); - assert.ok(fs.existsSync(path.join(binDir, 'grok-pager-0.1.141'))); - assert.ok(!fs.existsSync(path.join(binDir, 'grok-pager-0.1.140'))); - - // Symlinks correct - assert.strictEqual(fs.readlinkSync(path.join(binDir, 'grok')), 'grok-0.1.142'); - assert.strictEqual(fs.readlinkSync(path.join(binDir, 'grok-pager')), 'grok-pager-0.1.142'); - } finally { - cleanup(dir); - } -}); - -// ═══════════════════════════════════════════════════════════════════════ -// macOS-only Pager Platform Split Tests -// ═══════════════════════════════════════════════════════════════════════ - -console.log('\nmacOS-only pager platform split tests\n'); - -test('grok installs normally regardless of platform key', () => { - const dir = makeTmpDir(); - try { - const binDir = path.join(dir, 'bin'); - const vendored = path.join(dir, 'vendored-grok'); - fs.writeFileSync(vendored, 'grok-binary'); - - for (const platform of ['darwin-arm64', 'linux-x64', 'linux-arm64']) { - const result = installNamedBinary(vendored, 'grok', '0.1.150', binDir); - assert.ok(fs.existsSync(result.versionedPath), `grok should install for ${platform}`); - assert.strictEqual(fs.readlinkSync(result.canonicalPath), 'grok-0.1.150'); - } - } finally { - cleanup(dir); - } -}); - -test('grok-pager installs when vendored binary exists (darwin-arm64 path)', () => { - const dir = makeTmpDir(); - try { - const binDir = path.join(dir, 'bin'); - const vendoredPager = path.join(dir, 'vendored-pager'); - fs.writeFileSync(vendoredPager, 'pager-binary'); - - const result = installNamedBinary(vendoredPager, 'grok-pager', '0.1.150', binDir); - assert.ok(fs.existsSync(result.versionedPath), 'pager versioned binary should exist'); - assert.strictEqual(fs.readlinkSync(result.canonicalPath), 'grok-pager-0.1.150'); - assert.strictEqual(fs.readFileSync(result.canonicalPath, 'utf8'), 'pager-binary'); - } finally { - cleanup(dir); - } -}); - -test('Linux pager vendor files are not required for grok install', () => { - const dir = makeTmpDir(); - try { - const binDir = path.join(dir, 'bin'); - const vendorBase = path.join(dir, 'vendor'); - - // Only darwin-arm64 pager exists (mirrors npm tarball) - fs.mkdirSync(path.join(vendorBase, 'darwin-arm64'), { recursive: true }); - fs.writeFileSync(path.join(vendorBase, 'darwin-arm64', 'grok-pager'), 'mac-pager'); - - // Linux pager vendor dirs exist but without pager binaries - fs.mkdirSync(path.join(vendorBase, 'linux-x64'), { recursive: true }); - fs.mkdirSync(path.join(vendorBase, 'linux-arm64'), { recursive: true }); - - // Verify no Linux pager binaries - assert.ok(!fs.existsSync(path.join(vendorBase, 'linux-x64', 'grok-pager'))); - assert.ok(!fs.existsSync(path.join(vendorBase, 'linux-arm64', 'grok-pager'))); - - // grok install should succeed independently - const grokVendored = path.join(dir, 'vendored-grok'); - fs.writeFileSync(grokVendored, 'grok-linux'); - const result = installNamedBinary(grokVendored, 'grok', '0.1.150', binDir); - assert.ok(fs.existsSync(result.versionedPath), 'grok should install without Linux pager'); - } finally { - cleanup(dir); - } -}); - -test('skipping pager install on Linux does not affect grok cleanup', () => { - const dir = makeTmpDir(); - try { - const binDir = path.join(dir, 'bin'); - const vendored = path.join(dir, 'vendored'); - - // Install grok across two versions - fs.writeFileSync(vendored, 'grok-v1'); - installNamedBinary(vendored, 'grok', '0.1.149', binDir); - fs.writeFileSync(vendored, 'grok-v2'); - installNamedBinary(vendored, 'grok', '0.1.150', binDir); - - // Simulate Linux: only run grok cleanup, skip pager entirely - cleanupOldVersionsNamed(binDir, 'grok', '0.1.150'); - - assert.ok(fs.existsSync(path.join(binDir, 'grok-0.1.150')), 'current grok should exist'); - assert.ok(fs.existsSync(path.join(binDir, 'grok-0.1.149')), 'N-1 grok should be kept'); - assert.strictEqual(fs.readlinkSync(path.join(binDir, 'grok')), 'grok-0.1.150'); - - // No pager files should exist at all - const entries = fs.readdirSync(binDir); - const pagerEntries = entries.filter(e => e.includes('pager')); - assert.strictEqual(pagerEntries.length, 0, 'no pager artifacts on Linux'); - } finally { - cleanup(dir); - } -}); - -test('canonical pager from non-npm install is preserved on Linux', () => { - const dir = makeTmpDir(); - try { - const binDir = path.join(dir, 'bin'); - fs.mkdirSync(binDir, { recursive: true }); - - // Simulate pager installed by install-grok.sh (not npm) - const pagerVersioned = path.join(binDir, 'grok-pager-0.1.150'); - fs.writeFileSync(pagerVersioned, 'installer-pager-binary'); - fs.chmodSync(pagerVersioned, 0o755); - const pagerCanonical = path.join(binDir, 'grok-pager'); - fs.symlinkSync('grok-pager-0.1.150', pagerCanonical); - - // Run grok-only install + cleanup (simulating Linux postinstall) - const vendored = path.join(dir, 'vendored'); - fs.writeFileSync(vendored, 'grok-binary'); - installNamedBinary(vendored, 'grok', '0.1.150', binDir); - cleanupOldVersionsNamed(binDir, 'grok', '0.1.150'); - - // Pager installed by other means must be untouched - assert.ok(fs.existsSync(pagerCanonical), 'canonical pager should survive'); - assert.ok(fs.existsSync(pagerVersioned), 'versioned pager should survive'); - assert.strictEqual(fs.readlinkSync(pagerCanonical), 'grok-pager-0.1.150'); - } finally { - cleanup(dir); - } -}); - -// ─── Summary ─────────────────────────────────────────────────────────── - -console.log(`\n${passed} passed, ${failed} failed`); -process.exit(failed > 0 ? 1 : 0); diff --git a/crates/codegen/kigi-tui/scripts/install-enterprise.ps1 b/crates/codegen/kigi-tui/scripts/install-enterprise.ps1 deleted file mode 100644 index 0fa1374..0000000 --- a/crates/codegen/kigi-tui/scripts/install-enterprise.ps1 +++ /dev/null @@ -1,334 +0,0 @@ -# -# Grok CLI installer (enterprise channel) for PowerShell — https://x.ai/cli/enterprise-install.ps1 -# -# Standalone installer for the enterprise channel. Intentionally a full copy of -# the install logic so changes to the stable installer cannot break enterprise. -# -# Auth: KIGI_DEPLOYMENT_KEY env var (takes precedence) or ~/.grok/auth.json from `grok login`. -# Env: KIGI_BIN_DIR, KIGI_PROXY_URL -# -# Usage: -# irm https://x.ai/cli/enterprise-install.ps1 | iex # latest enterprise -# & ([scriptblock]::Create((irm https://x.ai/cli/enterprise-install.ps1))) -Version 0.1.42 # specific version -# $env:KIGI_VERSION="0.1.42"; irm https://x.ai/cli/enterprise-install.ps1 | iex # specific version (alt) -# $env:KIGI_DEPLOYMENT_KEY=""; irm https://x.ai/cli/enterprise-install.ps1 | iex -# - -param( - [Parameter(Position = 0)] - [string]$Version -) - -$ErrorActionPreference = 'Stop' - -# PS 5.1 defaults to TLS 1.0; GCS requires TLS 1.2. -[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12 - -# PS 5.1's Invoke-WebRequest progress bar is extremely slow; disable it. -$ProgressPreference = 'SilentlyContinue' - -# Accept version from environment variable (useful with irm | iex). -if (-not $Version -and $env:KIGI_VERSION) { - $Version = $env:KIGI_VERSION -} - -# This script is Windows-only. PS 5.1 has no Platform property and only runs on Windows. -if ($PSVersionTable.Platform -and $PSVersionTable.Platform -ne 'Win32NT') { - Write-Error "This installer is for Windows. On macOS/Linux, use: curl -fsSL https://x.ai/cli/enterprise-install.sh | bash" - exit 1 -} - -$GrokDir = Join-Path $env:USERPROFILE '.grok' - -# --- Helpers --- - -function Download-String([string]$Url) { - try { - $response = Invoke-WebRequest -Uri $Url -UseBasicParsing - return $response.Content - } catch { - return $null - } -} - -function Download-File([string]$Url, [string]$OutFile) { - # TODO: parallel byte-range download (matches install-enterprise.sh download_file_parallel). - # Skipped for now: requires Start-ThreadJob / RunspacePool for true parallelism on PS 5.1 - # and HEAD + Range request orchestration. Single-connection HttpWebRequest below remains. - # Stream via HttpWebRequest — faster than Invoke-WebRequest on PS 5.1 and supports progress. - $request = [System.Net.HttpWebRequest]::Create($Url) - $request.Timeout = 300000 # 5 min - $request.AutomaticDecompression = [System.Net.DecompressionMethods]::GZip -bor [System.Net.DecompressionMethods]::Deflate - $response = $request.GetResponse() - $totalBytes = $response.ContentLength - $stream = $response.GetResponseStream() - $fileStream = [System.IO.File]::Create($OutFile) - $buffer = New-Object byte[] 65536 - $totalRead = 0 - $lastPercent = -1 - $lastMb = -1 - - try { - while (($read = $stream.Read($buffer, 0, $buffer.Length)) -gt 0) { - $fileStream.Write($buffer, 0, $read) - $totalRead += $read - $mb = [math]::Round($totalRead / 1MB, 1) - if ($totalBytes -gt 0) { - $percent = [math]::Min(100, [math]::Floor(($totalRead / $totalBytes) * 100)) - if ($percent -ne $lastPercent) { - $totalMb = [math]::Round($totalBytes / 1MB, 1) - Write-Host "`r Downloading... ${mb} MB / ${totalMb} MB (${percent}%)" -NoNewline - $lastPercent = $percent - } - } elseif ($mb -ne $lastMb) { - Write-Host "`r Downloading... ${mb} MB" -NoNewline - $lastMb = $mb - } - } - Write-Host '' - } finally { - $fileStream.Close() - $stream.Close() - $response.Close() - } -} - -function Read-GrokToken([string]$Scope) { - $authFile = Join-Path $GrokDir 'auth.json' - if (-not (Test-Path $authFile)) { return $null } - try { - $auth = Get-Content -Raw $authFile | ConvertFrom-Json - $entry = $auth.$Scope - if ($entry -and $entry.key) { return $entry.key } - } catch {} - return $null -} - -# --- Validate version --- - -if ($Version -and $Version -notmatch '^\d+\.\d+\.\d+(-\S+)?$') { - Write-Error "Invalid version format: $Version (expected X.Y.Z or X.Y.Z-suffix)" - exit 1 -} - -# --- Resolve auth --- - -$OidcScope = 'https://auth.x.ai::b1a00492-073a-47ea-816f-4c329264a828' -$LegacyScope = 'https://accounts.x.ai/sign-in' -$AuthSource = '' - -if ($env:KIGI_DEPLOYMENT_KEY) { - $AuthSource = 'deployment key' - Write-Host 'Auth: using deployment key.' -ForegroundColor DarkGray -} else { - $oidcToken = Read-GrokToken $OidcScope - $legacyToken = Read-GrokToken $LegacyScope - if ($oidcToken) { - $AuthSource = 'auth.json (oidc)' - Write-Host 'Auth: using OIDC token from ~/.grok/auth.json.' -ForegroundColor DarkGray - } elseif ($legacyToken) { - $AuthSource = 'auth.json (legacy)' - Write-Host 'Auth: using legacy token from ~/.grok/auth.json.' -ForegroundColor DarkGray - } -} - -# --- Detect architecture --- - -$arch = switch ($env:PROCESSOR_ARCHITECTURE) { - 'AMD64' { 'x86_64' } - 'x86' { 'x86_64' } # 32-bit PS on 64-bit Windows - 'ARM64' { 'aarch64' } - default { $null } -} - -if (-not $arch) { - Write-Error "Unsupported architecture: $env:PROCESSOR_ARCHITECTURE" - exit 1 -} - -$platform = "windows-$arch" - -# --- Resolve version --- - -$BaseUrlPrimary = 'https://x.ai/cli' -$BaseUrlFallback = 'https://storage.googleapis.com/grok-build-public-artifacts/cli' -$DownloadDir = Join-Path $GrokDir 'downloads' -$BinDir = if ($env:KIGI_BIN_DIR) { $env:KIGI_BIN_DIR } else { Join-Path $GrokDir 'bin' } - -New-Item -ItemType Directory -Path $DownloadDir -Force | Out-Null -New-Item -ItemType Directory -Path $BinDir -Force | Out-Null - -$Channel = 'enterprise' - -# Pick a working BaseUrl: try Cloudflare-fronted x.ai first, fall back to -# direct GCS if it's unreachable. The probe doubles as the channel-pointer -# fetch when no -Version was passed, so the happy path costs zero extra requests. -if (-not $Version) { Write-Host "Fetching latest $Channel version..." -ForegroundColor DarkGray } -$probeResult = Download-String "$BaseUrlPrimary/$Channel" -if ($probeResult) { - $BaseUrl = $BaseUrlPrimary -} else { - Write-Host "Note: $BaseUrlPrimary unreachable, falling back to direct GCS." -ForegroundColor Yellow - $BaseUrl = $BaseUrlFallback - $probeResult = Download-String "$BaseUrl/$Channel" -} - -if ($Version) { - $resolvedVersion = $Version -} elseif ($probeResult) { - $resolvedVersion = $probeResult.Trim() -} else { - Write-Error "Failed to fetch latest version from $BaseUrlPrimary/$Channel and $BaseUrlFallback/$Channel" - exit 1 -} - -if ($AuthSource) { - Write-Host "Installing Grok $resolvedVersion ($platform, $AuthSource)..." -ForegroundColor Cyan -} else { - Write-Host "Installing Grok $resolvedVersion ($platform)..." -ForegroundColor Cyan -} - -# --- Download binary --- - -$binaryPath = Join-Path $DownloadDir "grok-$platform.exe" -$artifactBase = "$BaseUrl/grok-$resolvedVersion-$platform" - -$downloaded = $false -foreach ($url in @("$artifactBase.exe", $artifactBase)) { - try { - Download-File $url $binaryPath - $downloaded = $true - break - } catch { - continue - } -} - -if (-not $downloaded) { - if (Test-Path $binaryPath) { Remove-Item $binaryPath -Force } - Write-Error "Binary download failed from $artifactBase.exe and $artifactBase" - exit 1 -} - -# --- Install binary (locked-file safe) --- - -foreach ($binName in @('grok.exe', 'agent.exe')) { - $dest = Join-Path $BinDir $binName - $old = "$dest.old" - - if (Test-Path $old) { Remove-Item $old -Force -ErrorAction SilentlyContinue } - - try { - Copy-Item -Path $binaryPath -Destination $dest -Force - } catch { - try { - if (Test-Path $dest) { Rename-Item $dest $old -Force -ErrorAction SilentlyContinue } - Copy-Item -Path $binaryPath -Destination $dest -Force - } catch { - if (Test-Path $old) { Rename-Item $old $dest -Force -ErrorAction SilentlyContinue } - Write-Error "Failed to install $binName" - exit 1 - } - } -} - -Write-Host " Installed to $BinDir\grok.exe and $BinDir\agent.exe." -ForegroundColor DarkGray - -# --- Generate completions (best-effort) --- - -$completionsDir = Join-Path (Join-Path $GrokDir 'completions') 'powershell' -try { - New-Item -ItemType Directory -Path $completionsDir -Force | Out-Null - & (Join-Path $BinDir 'grok.exe') completions powershell 2>$null | - Set-Content (Join-Path $completionsDir 'grok.ps1') -ErrorAction SilentlyContinue -} catch {} - -# --- Persist installer config --- - -$ConfigFile = Join-Path $GrokDir 'config.toml' -$cliLines = @('installer = "internal"', 'channel = "enterprise"') - -if (-not (Test-Path $ConfigFile)) { - New-Item -ItemType Directory -Path (Split-Path $ConfigFile) -Force | Out-Null - $content = "[cli]`r`n" + ($cliLines -join "`r`n") + "`r`n" - [System.IO.File]::WriteAllText($ConfigFile, $content, [System.Text.Encoding]::UTF8) -} elseif ((Get-Content -Raw $ConfigFile) -match '(?m)^\[cli\]') { - # Section-aware: only replace installer/channel under [cli], not other sections. - $existingLines = Get-Content $ConfigFile - $output = [System.Collections.ArrayList]::new() - $inCli = $false - - foreach ($line in $existingLines) { - if ($line -match '^\[cli\]\s*(#.*)?$') { - [void]$output.Add($line) - foreach ($cl in $cliLines) { [void]$output.Add($cl) } - $inCli = $true - continue - } - if ($line -match '^\[.+\]\s*(#.*)?$') { - $inCli = $false - } - if ($inCli -and $line -match '^\s*(installer|channel)\s*=') { - continue - } - [void]$output.Add($line) - } - [System.IO.File]::WriteAllLines($ConfigFile, [string[]]$output.ToArray(), [System.Text.Encoding]::UTF8) -} else { - Add-Content -Path $ConfigFile -Value "`r`n[cli]`r`n$($cliLines -join "`r`n")`r`n" -} - -# --- Fetch deployment config (deployment key only) --- - -if ($env:KIGI_DEPLOYMENT_KEY) { - $ProxyUrl = if ($env:KIGI_PROXY_URL) { $env:KIGI_PROXY_URL } else { 'https://cli-chat-proxy.grok.com/v1' } - Write-Host ' Fetching deployment config...' -ForegroundColor DarkGray - try { - $headers = @{ 'Authorization' = "Bearer $($env:KIGI_DEPLOYMENT_KEY)" } - $deployResponse = Invoke-RestMethod -Uri "$ProxyUrl/deployment/config" -Headers $headers -UseBasicParsing - } catch { - Write-Host " Warning: failed to fetch deployment config from $ProxyUrl/deployment/config" -ForegroundColor Yellow - $deployResponse = $null - } - - if ($deployResponse) { - $managedConfig = $deployResponse.managed_config - $requirements = $deployResponse.requirements - - $managedConfigPath = Join-Path $GrokDir 'managed_config.toml' - $requirementsPath = Join-Path $GrokDir 'requirements.toml' - - if ($managedConfig -and $managedConfig -ne 'null') { - [System.IO.File]::WriteAllText($managedConfigPath, $managedConfig, [System.Text.Encoding]::UTF8) - Write-Host ' Managed config applied.' -ForegroundColor DarkGray - } else { - if (Test-Path $managedConfigPath) { Remove-Item $managedConfigPath -Force } - } - - if ($requirements -and $requirements -ne 'null') { - [System.IO.File]::WriteAllText($requirementsPath, $requirements, [System.Text.Encoding]::UTF8) - Write-Host ' Requirements applied.' -ForegroundColor DarkGray - } else { - if (Test-Path $requirementsPath) { Remove-Item $requirementsPath -Force } - } - } -} - -Write-Host "Grok $resolvedVersion installed to $BinDir\grok.exe" -ForegroundColor Green - -# --- Ensure grok is on PATH --- - -$userPath = [Environment]::GetEnvironmentVariable('Path', 'User') -$pathEntries = if ($userPath) { $userPath -split ';' | Where-Object { $_ -ne '' } } else { @() } -if ($pathEntries -notcontains $BinDir) { - $newPath = (@($BinDir) + $pathEntries) -join ';' - [Environment]::SetEnvironmentVariable('Path', $newPath, 'User') - Write-Host " Added $BinDir to your User PATH." -ForegroundColor DarkGray - # Update current session so grok works immediately. - if ($env:Path -notlike "*$BinDir*") { - $env:Path = "$BinDir;$env:Path" - } -} - -Write-Host '' -Write-Host "Run 'grok' or 'agent' to get started!" -ForegroundColor Cyan diff --git a/crates/codegen/kigi-tui/scripts/install-enterprise.sh b/crates/codegen/kigi-tui/scripts/install-enterprise.sh deleted file mode 100755 index bb350dc..0000000 --- a/crates/codegen/kigi-tui/scripts/install-enterprise.sh +++ /dev/null @@ -1,430 +0,0 @@ -#!/bin/bash -# -# Grok CLI installer (enterprise channel) — https://x.ai/cli/enterprise-install.sh -# -# Standalone installer for the enterprise channel. This is intentionally a full -# copy of the install logic (not a wrapper around install.sh) so that changes to -# the stable installer cannot accidentally break enterprise deployments. -# -# Auth: KIGI_DEPLOYMENT_KEY (takes precedence) or ~/.grok/auth.json from `grok login`. -# Env: KIGI_BIN_DIR, KIGI_PROXY_URL -# -# Usage: -# curl -fsSL https://x.ai/cli/enterprise-install.sh | bash # latest enterprise -# curl -fsSL https://x.ai/cli/enterprise-install.sh | bash -s 0.1.42 # specific version -# KIGI_DEPLOYMENT_KEY= bash <(curl -fsSL https://x.ai/cli/enterprise-install.sh) -# -# Windows: run under Git for Windows / MSYS2 Bash (same curl | bash flow); WSL -# uses the Linux binary. - -set -e - -TARGET="$1" - -if [[ -n "$TARGET" ]] && [[ ! "$TARGET" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-[A-Za-z0-9._]+)?$ ]]; then - echo "Invalid version format: $TARGET (expected X.Y.Z or X.Y.Z-suffix)" >&2 - exit 1 -fi - -DOWNLOADER="" -if command -v curl >/dev/null 2>&1; then - DOWNLOADER="curl" -elif command -v wget >/dev/null 2>&1; then - DOWNLOADER="wget" -else - echo "Either curl or wget is required but neither is installed" >&2 - exit 1 -fi - -download_file() { - local url="$1" output="$2" - if [ "$DOWNLOADER" = "curl" ]; then - if [ -n "$output" ]; then - curl -fsSL -o "$output" "$url" - else - curl -fsSL "$url" - fi - else - if [ -n "$output" ]; then - wget -q -O "$output" "$url" - else - wget -q -O - "$url" - fi - fi -} - -# Parallel byte-range download. Falls back to single-connection download_file -# whenever HEAD lacks Content-Length, the file is small (<16 MiB), curl is -# unavailable, or any chunk fetch / concat fails. -download_file_parallel() { - local url="$1" output="$2" - if [ "$DOWNLOADER" != "curl" ]; then - download_file "$url" "$output" - return - fi - local size - size=$(curl -fsSL --head "$url" 2>/dev/null | awk -F'[: \r\n]+' 'tolower($1)=="content-length"{print $2; exit}') - if [ -z "$size" ] || ! [ "$size" -ge 16777216 ] 2>/dev/null; then - download_file "$url" "$output" - return - fi - local n=8 - local chunk_size=$(( (size + n - 1) / n )) - local tmpdir - tmpdir=$(mktemp -d 2>/dev/null) || { download_file "$url" "$output"; return; } - local pids=() i start end - for i in $(seq 0 $((n - 1))); do - start=$((i * chunk_size)) - end=$((start + chunk_size - 1)) - [ $end -ge $size ] && end=$((size - 1)) - curl -fsSL -r "${start}-${end}" -o "${tmpdir}/$(printf 'chunk.%03d' "$i")" "$url" & - pids+=($!) - done - local all_ok=true pid - for pid in "${pids[@]}"; do - wait "$pid" || all_ok=false - done - if [ "$all_ok" = true ] && cat "${tmpdir}"/chunk.* > "$output" 2>/dev/null; then - rm -rf "$tmpdir" - return 0 - fi - rm -rf "$tmpdir" - download_file "$url" "$output" -} - -# Return 0 if a HEAD request for the URL gets HTTP 404. -is_not_found() { - local url="$1" code - if [ "$DOWNLOADER" = "curl" ]; then - code=$(curl -o /dev/null -sSL -w '%{http_code}' --head "$url" 2>/dev/null) || true - else - code=$(wget --server-response --spider "$url" 2>&1 | awk '/HTTP\//{print $2}' | tail -1) || true - fi - [ "$code" = "404" ] -} - -# JSON field extractor — extract a top-level string value using sed. -json_get() { - local json="$1" field="$2" - # Extract value (handling \" inside strings), then unescape JSON sequences. - printf '%s' "$json" | sed -n -E 's/.*"'"$field"'"[[:space:]]*:[[:space:]]*"(([^"\\]|\\.)*)".*/\1/p' | head -1 \ - | sed -e 's/\\"/"/g' -e 's/\\n/\'$'\n''/g' -e 's/\\t/\'$'\t''/g' -e 's/\\\\/\\/g' -} - -# Read a token from ~/.grok/auth.json for the given scope key. -# Format: {"scope_url": {"key": "token"}, ...} -read_grok_token() { - local auth_file="$HOME/.grok/auth.json" - local scope="$1" - [ -f "$auth_file" ] || return 1 - # Flatten to one line then extract: find the scope, then the "key" value after it - tr -d '\n' < "$auth_file" | sed -n 's|.*"'"$scope"'"[[:space:]]*:[[:space:]]*{[^}]*"key"[[:space:]]*:[[:space:]]*"\([^"]*\)".*|\1|p' | head -1 -} - -# Resolve auth: KIGI_DEPLOYMENT_KEY > OIDC token > legacy token -OIDC_SCOPE="https://auth.x.ai::b1a00492-073a-47ea-816f-4c329264a828" -LEGACY_SCOPE="https://accounts.x.ai/sign-in" -AUTH_SOURCE="" - -if [ -n "$KIGI_DEPLOYMENT_KEY" ]; then - AUTH_SOURCE="deployment key" - echo "Auth: using deployment key." >&2 -else - OIDC_TOKEN=$(read_grok_token "$OIDC_SCOPE" 2>/dev/null) || true - LEGACY_TOKEN=$(read_grok_token "$LEGACY_SCOPE" 2>/dev/null) || true - if [ -n "$OIDC_TOKEN" ]; then - AUTH_SOURCE="auth.json (oidc)" - echo "Auth: using OIDC token from ~/.grok/auth.json." >&2 - elif [ -n "$LEGACY_TOKEN" ]; then - AUTH_SOURCE="auth.json (legacy)" - echo "Auth: using legacy token from ~/.grok/auth.json." >&2 - fi -fi - -case "$(uname -s)" in - Darwin) os="macos" ;; - Linux) os="linux" ;; - # Git for Windows / MSYS2 / Cygwin host — native Windows builds - MINGW* | MSYS* | CYGWIN*) os="windows" ;; - *) echo "Unsupported OS: $(uname -s)" >&2; exit 1 ;; -esac - -case "$(uname -m)" in - x86_64|amd64|AMD64) arch="x86_64" ;; - arm64|aarch64|ARM64) arch="aarch64" ;; - *) echo "Unsupported architecture: $(uname -m)" >&2; exit 1 ;; -esac - -BASE_URL_PRIMARY="https://x.ai/cli" -BASE_URL_FALLBACK="https://storage.googleapis.com/grok-build-public-artifacts/cli" -DOWNLOAD_DIR="$HOME/.grok/downloads" -BIN_DIR="${KIGI_BIN_DIR:-$HOME/.grok/bin}" -mkdir -p "$DOWNLOAD_DIR" "$BIN_DIR" - -platform="${os}-${arch}" -CHANNEL="enterprise" - -# Pick a working BASE_URL: try Cloudflare-fronted x.ai first, fall back to -# direct GCS if it's unreachable. The probe doubles as the channel-pointer -# fetch when no explicit TARGET was passed, so the happy path costs zero -# extra HTTP requests. -if [ -z "$TARGET" ]; then echo "Fetching latest ${CHANNEL} version..." >&2; fi -probe_result=$(download_file "${BASE_URL_PRIMARY}/${CHANNEL}" 2>/dev/null) || true -if [ -n "$probe_result" ]; then - BASE_URL="$BASE_URL_PRIMARY" -else - echo "Note: ${BASE_URL_PRIMARY} unreachable, falling back to direct GCS." >&2 - BASE_URL="$BASE_URL_FALLBACK" - probe_result=$(download_file "${BASE_URL}/${CHANNEL}" 2>/dev/null) || true -fi - -if [ -n "$TARGET" ]; then - version="$TARGET" -else - version=$(printf '%s' "$probe_result" | tr -d '\r' | head -n1 | tr -d '[:space:]') - if [ -z "$version" ]; then - echo "Error: failed to fetch latest version from ${BASE_URL_PRIMARY}/${CHANNEL} and ${BASE_URL_FALLBACK}/${CHANNEL}" >&2 - exit 1 - fi -fi - -if [[ ! "$version" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-[A-Za-z0-9._]+)?$ ]]; then - echo "Invalid version format: $version (expected X.Y.Z or X.Y.Z-suffix)" >&2 - exit 1 -fi - -if [ -n "$AUTH_SOURCE" ]; then - echo "Installing Grok $version ($platform, $AUTH_SOURCE)..." >&2 -else - echo "Installing Grok $version ($platform)..." >&2 -fi - -binary_path="$DOWNLOAD_DIR/grok-$platform" -artifact_base="${BASE_URL}/grok-${version}-${platform}" - -if [ "$os" = "windows" ]; then - binary_path="${binary_path}.exe" -fi - -echo " Downloading grok ${version}..." >&2 -if [ "$os" = "windows" ]; then - if ! download_file_parallel "${artifact_base}.exe" "$binary_path"; then - if ! download_file_parallel "$artifact_base" "$binary_path"; then - rm -f "$binary_path" - if is_not_found "${artifact_base}.exe"; then - echo "Error: Grok is not yet available for your system ($platform)." >&2 - else - echo "Error: binary download failed (${artifact_base}.exe and ${artifact_base})" >&2 - fi - exit 1 - fi - fi -elif ! download_file_parallel "$artifact_base" "$binary_path"; then - rm -f "$binary_path" - if is_not_found "$artifact_base"; then - echo "Error: Grok is not yet available for your system ($platform)." >&2 - else - echo "Error: binary download failed from ${artifact_base}" >&2 - fi - exit 1 -fi - -if [ "$os" = "windows" ]; then - # Symlinks require Developer Mode on Windows; copy instead. - # If the exe is locked by a running process, rename it aside then retry. - for bin_name in grok.exe agent.exe; do - rm -f "$BIN_DIR/$bin_name.old" 2>/dev/null || true # stale backup from prior update - if ! cp -f "$binary_path" "$BIN_DIR/$bin_name" 2>/dev/null; then - mv -f "$BIN_DIR/$bin_name" "$BIN_DIR/$bin_name.old" 2>/dev/null || true - if ! cp -f "$binary_path" "$BIN_DIR/$bin_name" 2>/dev/null; then - # Rollback: restore the old binary so the install isn't broken. - mv -f "$BIN_DIR/$bin_name.old" "$BIN_DIR/$bin_name" 2>/dev/null || true - echo "Error: failed to install $bin_name" >&2 - exit 1 - fi - fi - done - echo " Binary installed to $BIN_DIR/grok.exe and $BIN_DIR/agent.exe." >&2 -else - chmod +x "$binary_path" - ln -sf "$binary_path" "$BIN_DIR/grok" - ln -sf "$binary_path" "$BIN_DIR/agent" - echo " Binary linked to $BIN_DIR/grok and $BIN_DIR/agent." >&2 -fi - -# Generate shell completions (best-effort) -mkdir -p "$HOME/.grok/completions/bash" "$HOME/.grok/completions/zsh" -"$BIN_DIR/grok" completions bash > "$HOME/.grok/completions/bash/grok.bash" 2>/dev/null || true -"$BIN_DIR/grok" completions zsh > "$HOME/.grok/completions/zsh/_grok" 2>/dev/null || true -# Fish: write to the auto-loaded completions dir so it works immediately -if mkdir -p "$HOME/.config/fish/completions" 2>/dev/null; then - "$BIN_DIR/grok" completions fish > "$HOME/.config/fish/completions/grok.fish" 2>/dev/null || true -fi - -# Persist installer source and channel to config -CONFIG_FILE="$HOME/.grok/config.toml" -CLI_BLOCK="installer = \"internal\"\nchannel = \"enterprise\"" -if [ ! -f "$CONFIG_FILE" ]; then - printf '[cli]\n%b\n' "$CLI_BLOCK" > "$CONFIG_FILE" -elif grep -q '^\[cli\]' "$CONFIG_FILE"; then - tmp="$CONFIG_FILE.tmp.$$" - awk -v block="$CLI_BLOCK" ' - /^\[cli\][[:space:]]*(#.*)?$/ { print; printf "%s\n", block; in_cli=1; next } - /^\[.*\][[:space:]]*(#.*)?$/ { in_cli=0 } - in_cli && /^[[:space:]]*(installer|channel)[[:space:]]*=/ { next } - { print } - ' "$CONFIG_FILE" > "$tmp" && mv "$tmp" "$CONFIG_FILE" -else - printf '\n[cli]\n%b\n' "$CLI_BLOCK" >> "$CONFIG_FILE" -fi - -# Fetch managed_config.toml + requirements.toml from server (deployment key only). -if [ -n "$KIGI_DEPLOYMENT_KEY" ]; then - PROXY_URL="${KIGI_PROXY_URL:-https://cli-chat-proxy.grok.com/v1}" - echo " Fetching deployment config..." >&2 - DEPLOY_RESPONSE="" - AUTH_HEADER_FILE=$(mktemp 2>/dev/null) || AUTH_HEADER_FILE="" - if [ -n "$AUTH_HEADER_FILE" ]; then - chmod 600 "$AUTH_HEADER_FILE" 2>/dev/null || true - printf 'Authorization: Bearer %s\n' "$KIGI_DEPLOYMENT_KEY" > "$AUTH_HEADER_FILE" - DEPLOY_RESPONSE=$(curl -sS -f \ - -H "@${AUTH_HEADER_FILE}" \ - "${PROXY_URL}/deployment/config" 2>/dev/null) || DEPLOY_RESPONSE="" - : > "$AUTH_HEADER_FILE" 2>/dev/null || true - rm -f "$AUTH_HEADER_FILE" - fi - if [ -z "$DEPLOY_RESPONSE" ]; then - echo " Warning: failed to fetch deployment config from ${PROXY_URL}/deployment/config" >&2 - fi - if [ -n "$DEPLOY_RESPONSE" ]; then - MANAGED_CONFIG=$(json_get "$DEPLOY_RESPONSE" "managed_config") - REQUIREMENTS=$(json_get "$DEPLOY_RESPONSE" "requirements") - if [ -n "$MANAGED_CONFIG" ] && [ "$MANAGED_CONFIG" != "null" ]; then - printf '%s\n' "$MANAGED_CONFIG" > "$HOME/.grok/managed_config.toml" - echo " Managed config applied." >&2 - else - rm -f "$HOME/.grok/managed_config.toml" - fi - if [ -n "$REQUIREMENTS" ] && [ "$REQUIREMENTS" != "null" ]; then - printf '%s\n' "$REQUIREMENTS" > "$HOME/.grok/requirements.toml" - echo " Requirements applied." >&2 - else - rm -f "$HOME/.grok/requirements.toml" - fi - fi -fi - -if [ "$os" = "windows" ]; then - echo "Grok $version installed to $BIN_DIR/grok.exe" >&2 -else - echo "Grok $version installed to $BIN_DIR/grok" >&2 -fi - -# --- Ensure grok is on PATH --- - -path_has_dir() { - case ":$PATH:" in *":$1:"*) return 0 ;; *) return 1 ;; esac -} - -# Try to symlink into a directory already on PATH so grok works immediately -# without restarting the shell. Candidate dirs in preference order. -SYMLINK_CREATED="" -if [ "$os" != "windows" ] && ! path_has_dir "$BIN_DIR"; then - for candidate in "$HOME/.local/bin" "/usr/local/bin"; do - if path_has_dir "$candidate" && [ -d "$candidate" ] && [ -w "$candidate" ]; then - ln -sf "$BIN_DIR/grok" "$candidate/grok" - ln -sf "$BIN_DIR/agent" "$candidate/agent" - SYMLINK_CREATED="$candidate" - echo " Symlinked $candidate/grok -> $BIN_DIR/grok" >&2 - echo " Symlinked $candidate/agent -> $BIN_DIR/agent" >&2 - break - fi - done -fi - -# Also update shell config so ~/.grok/bin is on PATH for future sessions -user_shell="$(basename "${SHELL:-}")" -config_file="" - -case "$user_shell" in - bash) config_file="$HOME/.bashrc" ;; - zsh) config_file="$HOME/.zshrc" ;; - fish) config_file="$HOME/.config/fish/config.fish" ;; -esac - -if [ -n "$config_file" ]; then - mkdir -p "$(dirname "$config_file")" - - # Resolve symlinks so tmp+mv rewrites the stow/dotfiles target, not the link. - if [ -e "$config_file" ] || [ -L "$config_file" ]; then - _cf="$config_file" - _depth=0 - while [ -L "$_cf" ] && [ "$_depth" -lt 40 ]; do - _link="$(readlink "$_cf")" || break - case "$_link" in - /*) _cf="$_link" ;; - *) _cf="$(cd "$(dirname "$_cf")" && pwd -P)/$_link" ;; - esac - _depth=$((_depth + 1)) - done - # Still a symlink (cycle/cap): leave original path so we never rewrite the link. - if [ ! -L "$_cf" ]; then - config_file="$(cd "$(dirname "$_cf")" && pwd -P)/$(basename "$_cf")" - fi - unset _cf _link _depth - fi - - # Build the new installer block - if [ "$user_shell" = "fish" ]; then - new_block='# >>> grok installer >>> -fish_add_path $HOME/.grok/bin -# <<< grok installer <<<' - elif [ "$user_shell" = "zsh" ]; then - new_block='# >>> grok installer >>> -export PATH="$HOME/.grok/bin:$PATH" -fpath=(~/.grok/completions/zsh $fpath) -autoload -Uz compinit && compinit -C -# <<< grok installer <<<' - else - new_block='# >>> grok installer >>> -export PATH="$HOME/.grok/bin:$PATH" -[[ -r "$HOME/.grok/completions/bash/grok.bash" ]] && source "$HOME/.grok/completions/bash/grok.bash" -# <<< grok installer <<<' - fi - - if grep -qs "grok installer" "$config_file" 2>/dev/null; then - # Replace existing block in-place (strip old >>> to <<< lines, insert new) - tmp="$config_file.tmp.$$" - awk ' - /# >>> grok installer >>>/ { skip=1; next } - /# <<< grok installer << "$tmp" && mv "$tmp" "$config_file" - else - [ -f "$config_file" ] && cp "$config_file" "$config_file.bak.$(date +%s)" - - # macOS bash: ensure bash_profile sources bashrc - if [ "$user_shell" = "bash" ] && [ "$(uname -s)" = "Darwin" ]; then - if [ -f "$HOME/.bash_profile" ] && ! grep -qs "source ~/.bashrc" "$HOME/.bash_profile"; then - printf '\n[[ -r ~/.bashrc ]] && source ~/.bashrc\n' >> "$HOME/.bash_profile" - fi - fi - fi - - printf '\n%s\n' "$new_block" >> "$config_file" - echo " Updated $BIN_DIR in PATH in $config_file." >&2 -fi - -echo "" >&2 -if path_has_dir "$BIN_DIR" || [ -n "$SYMLINK_CREATED" ]; then - echo "Run 'grok' or 'agent' to get started!" >&2 -elif [ -n "$config_file" ]; then - echo "Restart your terminal, then run 'grok' or 'agent' to get started!" >&2 -else - echo "Add $BIN_DIR to your PATH, then run 'grok' or 'agent' to get started:" >&2 - echo ' export PATH="$HOME/.grok/bin:$PATH"' >&2 -fi - -if [ "$os" = "windows" ]; then - echo "To use grok from cmd.exe or PowerShell, add %USERPROFILE%\\.grok\\bin to your PATH." >&2 -fi diff --git a/crates/codegen/kigi-tui/scripts/install.ps1 b/crates/codegen/kigi-tui/scripts/install.ps1 deleted file mode 100644 index 7ce45c4..0000000 --- a/crates/codegen/kigi-tui/scripts/install.ps1 +++ /dev/null @@ -1,334 +0,0 @@ -# -# Grok CLI installer for PowerShell — https://x.ai/cli/install.ps1 -# -# Auth: KIGI_DEPLOYMENT_KEY env var (takes precedence) or ~/.grok/auth.json from `grok login`. -# Env: KIGI_CHANNEL (stable|alpha|enterprise, default: stable), KIGI_BIN_DIR, KIGI_PROXY_URL -# -# Usage: -# irm https://x.ai/cli/install.ps1 | iex # latest stable -# & ([scriptblock]::Create((irm https://x.ai/cli/install.ps1))) -Version 0.1.42 # specific version -# $env:KIGI_VERSION="0.1.42"; irm https://x.ai/cli/install.ps1 | iex # specific version (alt) -# $env:KIGI_DEPLOYMENT_KEY=""; irm https://x.ai/cli/install.ps1 | iex -# - -param( - [Parameter(Position = 0)] - [string]$Version -) - -$ErrorActionPreference = 'Stop' - -# PS 5.1 defaults to TLS 1.0; GCS requires TLS 1.2. -[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12 - -# PS 5.1's Invoke-WebRequest progress bar is extremely slow; disable it. -$ProgressPreference = 'SilentlyContinue' - -# Accept version from environment variable (useful with irm | iex). -if (-not $Version -and $env:KIGI_VERSION) { - $Version = $env:KIGI_VERSION -} - -# This script is Windows-only. PS 5.1 has no Platform property and only runs on Windows. -if ($PSVersionTable.Platform -and $PSVersionTable.Platform -ne 'Win32NT') { - Write-Error "This installer is for Windows. On macOS/Linux, use: curl -fsSL https://x.ai/cli/install.sh | bash" - exit 1 -} - -$GrokDir = Join-Path $env:USERPROFILE '.grok' - -# --- Helpers --- - -function Download-String([string]$Url) { - try { - $response = Invoke-WebRequest -Uri $Url -UseBasicParsing - return $response.Content - } catch { - return $null - } -} - -function Download-File([string]$Url, [string]$OutFile) { - # TODO: parallel byte-range download (matches install.sh download_file_parallel). - # Skipped for now: requires Start-ThreadJob / RunspacePool for true parallelism on PS 5.1 - # and HEAD + Range request orchestration. Single-connection HttpWebRequest below remains. - # Stream via HttpWebRequest — faster than Invoke-WebRequest on PS 5.1 and supports progress. - $request = [System.Net.HttpWebRequest]::Create($Url) - $request.Timeout = 300000 # 5 min - $request.AutomaticDecompression = [System.Net.DecompressionMethods]::GZip -bor [System.Net.DecompressionMethods]::Deflate - $response = $request.GetResponse() - $totalBytes = $response.ContentLength - $stream = $response.GetResponseStream() - $fileStream = [System.IO.File]::Create($OutFile) - $buffer = New-Object byte[] 65536 - $totalRead = 0 - $lastPercent = -1 - $lastMb = -1 - - try { - while (($read = $stream.Read($buffer, 0, $buffer.Length)) -gt 0) { - $fileStream.Write($buffer, 0, $read) - $totalRead += $read - $mb = [math]::Round($totalRead / 1MB, 1) - if ($totalBytes -gt 0) { - $percent = [math]::Min(100, [math]::Floor(($totalRead / $totalBytes) * 100)) - if ($percent -ne $lastPercent) { - $totalMb = [math]::Round($totalBytes / 1MB, 1) - Write-Host "`r Downloading... ${mb} MB / ${totalMb} MB (${percent}%)" -NoNewline - $lastPercent = $percent - } - } elseif ($mb -ne $lastMb) { - Write-Host "`r Downloading... ${mb} MB" -NoNewline - $lastMb = $mb - } - } - Write-Host '' - } finally { - $fileStream.Close() - $stream.Close() - $response.Close() - } -} - -function Read-GrokToken([string]$Scope) { - $authFile = Join-Path $GrokDir 'auth.json' - if (-not (Test-Path $authFile)) { return $null } - try { - $auth = Get-Content -Raw $authFile | ConvertFrom-Json - $entry = $auth.$Scope - if ($entry -and $entry.key) { return $entry.key } - } catch {} - return $null -} - -# --- Validate version --- - -if ($Version -and $Version -notmatch '^\d+\.\d+\.\d+(-\S+)?$') { - Write-Error "Invalid version format: $Version (expected X.Y.Z or X.Y.Z-suffix)" - exit 1 -} - -# --- Resolve auth --- - -$OidcScope = 'https://auth.x.ai::b1a00492-073a-47ea-816f-4c329264a828' -$LegacyScope = 'https://accounts.x.ai/sign-in' -$AuthSource = '' - -if ($env:KIGI_DEPLOYMENT_KEY) { - $AuthSource = 'deployment key' - Write-Host 'Auth: using deployment key.' -ForegroundColor DarkGray -} else { - $oidcToken = Read-GrokToken $OidcScope - $legacyToken = Read-GrokToken $LegacyScope - if ($oidcToken) { - $AuthSource = 'auth.json (oidc)' - Write-Host 'Auth: using OIDC token from ~/.grok/auth.json.' -ForegroundColor DarkGray - } elseif ($legacyToken) { - $AuthSource = 'auth.json (legacy)' - Write-Host 'Auth: using legacy token from ~/.grok/auth.json.' -ForegroundColor DarkGray - } -} - -# --- Detect architecture --- - -$arch = switch ($env:PROCESSOR_ARCHITECTURE) { - 'AMD64' { 'x86_64' } - 'x86' { 'x86_64' } # 32-bit PS on 64-bit Windows - 'ARM64' { 'aarch64' } - default { $null } -} - -if (-not $arch) { - Write-Error "Unsupported architecture: $env:PROCESSOR_ARCHITECTURE" - exit 1 -} - -$platform = "windows-$arch" - -# --- Resolve version and channel --- - -$BaseUrlPrimary = 'https://x.ai/cli' -$BaseUrlFallback = 'https://storage.googleapis.com/grok-build-public-artifacts/cli' -$DownloadDir = Join-Path $GrokDir 'downloads' -$BinDir = if ($env:KIGI_BIN_DIR) { $env:KIGI_BIN_DIR } else { Join-Path $GrokDir 'bin' } - -New-Item -ItemType Directory -Path $DownloadDir -Force | Out-Null -New-Item -ItemType Directory -Path $BinDir -Force | Out-Null - -$Channel = if ($env:KIGI_CHANNEL) { $env:KIGI_CHANNEL } else { 'stable' } - -# Pick a working BaseUrl: try Cloudflare-fronted x.ai first, fall back to -# direct GCS if it's unreachable. The probe doubles as the channel-pointer -# fetch when no -Version was passed, so the happy path costs zero extra requests. -if (-not $Version) { Write-Host "Fetching latest $Channel version..." -ForegroundColor DarkGray } -$probeResult = Download-String "$BaseUrlPrimary/$Channel" -if ($probeResult) { - $BaseUrl = $BaseUrlPrimary -} else { - Write-Host "Note: $BaseUrlPrimary unreachable, falling back to direct GCS." -ForegroundColor Yellow - $BaseUrl = $BaseUrlFallback - $probeResult = Download-String "$BaseUrl/$Channel" -} - -if ($Version) { - $resolvedVersion = $Version -} elseif ($probeResult) { - $resolvedVersion = $probeResult.Trim() -} else { - Write-Error "Failed to fetch latest version from $BaseUrlPrimary/$Channel and $BaseUrlFallback/$Channel" - exit 1 -} - -if ($AuthSource) { - Write-Host "Installing Grok $resolvedVersion ($platform, $AuthSource)..." -ForegroundColor Cyan -} else { - Write-Host "Installing Grok $resolvedVersion ($platform)..." -ForegroundColor Cyan -} - -# --- Download binary --- - -$binaryPath = Join-Path $DownloadDir "grok-$platform.exe" -$artifactBase = "$BaseUrl/grok-$resolvedVersion-$platform" - -$downloaded = $false -foreach ($url in @("$artifactBase.exe", $artifactBase)) { - try { - Download-File $url $binaryPath - $downloaded = $true - break - } catch { - continue - } -} - -if (-not $downloaded) { - if (Test-Path $binaryPath) { Remove-Item $binaryPath -Force } - Write-Error "Binary download failed from $artifactBase.exe and $artifactBase" - exit 1 -} - -# --- Install binary (locked-file safe) --- - -foreach ($binName in @('grok.exe', 'agent.exe')) { - $dest = Join-Path $BinDir $binName - $old = "$dest.old" - - if (Test-Path $old) { Remove-Item $old -Force -ErrorAction SilentlyContinue } - - try { - Copy-Item -Path $binaryPath -Destination $dest -Force - } catch { - try { - if (Test-Path $dest) { Rename-Item $dest $old -Force -ErrorAction SilentlyContinue } - Copy-Item -Path $binaryPath -Destination $dest -Force - } catch { - if (Test-Path $old) { Rename-Item $old $dest -Force -ErrorAction SilentlyContinue } - Write-Error "Failed to install $binName" - exit 1 - } - } -} - -Write-Host " Installed to $BinDir\grok.exe and $BinDir\agent.exe." -ForegroundColor DarkGray - -# --- Generate completions (best-effort) --- - -$completionsDir = Join-Path (Join-Path $GrokDir 'completions') 'powershell' -try { - New-Item -ItemType Directory -Path $completionsDir -Force | Out-Null - & (Join-Path $BinDir 'grok.exe') completions powershell 2>$null | - Set-Content (Join-Path $completionsDir 'grok.ps1') -ErrorAction SilentlyContinue -} catch {} - -# --- Persist installer config --- - -$ConfigFile = Join-Path $GrokDir 'config.toml' -$cliLines = @('installer = "internal"') -if ($Channel -ne 'stable') { - $cliLines += "channel = `"$Channel`"" -} - -if (-not (Test-Path $ConfigFile)) { - New-Item -ItemType Directory -Path (Split-Path $ConfigFile) -Force | Out-Null - $content = "[cli]`r`n" + ($cliLines -join "`r`n") + "`r`n" - [System.IO.File]::WriteAllText($ConfigFile, $content, [System.Text.Encoding]::UTF8) -} elseif ((Get-Content -Raw $ConfigFile) -match '(?m)^\[cli\]') { - # Section-aware: only replace installer/channel under [cli], not other sections. - $existingLines = Get-Content $ConfigFile - $output = [System.Collections.ArrayList]::new() - $inCli = $false - - foreach ($line in $existingLines) { - if ($line -match '^\[cli\]\s*(#.*)?$') { - [void]$output.Add($line) - foreach ($cl in $cliLines) { [void]$output.Add($cl) } - $inCli = $true - continue - } - if ($line -match '^\[.+\]\s*(#.*)?$') { - $inCli = $false - } - if ($inCli -and $line -match '^\s*(installer|channel)\s*=') { - continue - } - [void]$output.Add($line) - } - [System.IO.File]::WriteAllLines($ConfigFile, [string[]]$output.ToArray(), [System.Text.Encoding]::UTF8) -} else { - Add-Content -Path $ConfigFile -Value "`r`n[cli]`r`n$($cliLines -join "`r`n")`r`n" -} - -# --- Fetch deployment config (deployment key only) --- - -if ($env:KIGI_DEPLOYMENT_KEY) { - $ProxyUrl = if ($env:KIGI_PROXY_URL) { $env:KIGI_PROXY_URL } else { 'https://cli-chat-proxy.grok.com/v1' } - Write-Host ' Fetching deployment config...' -ForegroundColor DarkGray - try { - $headers = @{ 'Authorization' = "Bearer $($env:KIGI_DEPLOYMENT_KEY)" } - $deployResponse = Invoke-RestMethod -Uri "$ProxyUrl/deployment/config" -Headers $headers -UseBasicParsing - } catch { - Write-Host " Warning: failed to fetch deployment config from $ProxyUrl/deployment/config" -ForegroundColor Yellow - $deployResponse = $null - } - - if ($deployResponse) { - $managedConfig = $deployResponse.managed_config - $requirements = $deployResponse.requirements - - $managedConfigPath = Join-Path $GrokDir 'managed_config.toml' - $requirementsPath = Join-Path $GrokDir 'requirements.toml' - - if ($managedConfig -and $managedConfig -ne 'null') { - [System.IO.File]::WriteAllText($managedConfigPath, $managedConfig, [System.Text.Encoding]::UTF8) - Write-Host ' Managed config applied.' -ForegroundColor DarkGray - } else { - if (Test-Path $managedConfigPath) { Remove-Item $managedConfigPath -Force } - } - - if ($requirements -and $requirements -ne 'null') { - [System.IO.File]::WriteAllText($requirementsPath, $requirements, [System.Text.Encoding]::UTF8) - Write-Host ' Requirements applied.' -ForegroundColor DarkGray - } else { - if (Test-Path $requirementsPath) { Remove-Item $requirementsPath -Force } - } - } -} - -Write-Host "Grok $resolvedVersion installed to $BinDir\grok.exe" -ForegroundColor Green - -# --- Ensure grok is on PATH --- - -$userPath = [Environment]::GetEnvironmentVariable('Path', 'User') -$pathEntries = if ($userPath) { $userPath -split ';' | Where-Object { $_ -ne '' } } else { @() } -if ($pathEntries -notcontains $BinDir) { - $newPath = (@($BinDir) + $pathEntries) -join ';' - [Environment]::SetEnvironmentVariable('Path', $newPath, 'User') - Write-Host " Added $BinDir to your User PATH." -ForegroundColor DarkGray - # Update current session so grok works immediately. - if ($env:Path -notlike "*$BinDir*") { - $env:Path = "$BinDir;$env:Path" - } -} - -Write-Host '' -Write-Host "Run 'grok' or 'agent' to get started!" -ForegroundColor Cyan diff --git a/crates/codegen/kigi-tui/scripts/install.sh b/crates/codegen/kigi-tui/scripts/install.sh deleted file mode 100755 index 0cc935a..0000000 --- a/crates/codegen/kigi-tui/scripts/install.sh +++ /dev/null @@ -1,447 +0,0 @@ -#!/bin/bash -# -# Grok CLI installer — https://x.ai/cli/install.sh -# -# Auth: KIGI_DEPLOYMENT_KEY (takes precedence) or ~/.grok/auth.json from `grok login`. -# Env: KIGI_CHANNEL (stable|alpha|enterprise, default: stable), KIGI_BIN_DIR, KIGI_PROXY_URL -# -# Usage: -# curl -fsSL https://x.ai/cli/install.sh | bash # latest stable -# curl -fsSL https://x.ai/cli/install.sh | bash -s 0.1.42 # specific version -# KIGI_DEPLOYMENT_KEY= bash <(curl -fsSL https://x.ai/cli/install.sh) -# -# Windows: run under Git for Windows / MSYS2 Bash (same curl | bash flow); WSL -# uses the Linux binary. - -set -e - -TARGET="$1" - -if [[ -n "$TARGET" ]] && [[ ! "$TARGET" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-[A-Za-z0-9._]+)?$ ]]; then - echo "Invalid version format: $TARGET (expected X.Y.Z or X.Y.Z-suffix)" >&2 - exit 1 -fi - -DOWNLOADER="" -if command -v curl >/dev/null 2>&1; then - DOWNLOADER="curl" -elif command -v wget >/dev/null 2>&1; then - DOWNLOADER="wget" -else - echo "Either curl or wget is required but neither is installed" >&2 - exit 1 -fi - -download_file() { - local url="$1" output="$2" - if [ "$DOWNLOADER" = "curl" ]; then - if [ -n "$output" ]; then - curl -fsSL -o "$output" "$url" - else - curl -fsSL "$url" - fi - else - if [ -n "$output" ]; then - wget -q -O "$output" "$url" - else - wget -q -O - "$url" - fi - fi -} - -# Parallel byte-range download. Falls back to single-connection download_file -# whenever HEAD lacks Content-Length, the file is small (<16 MiB), curl is -# unavailable, or any chunk fetch / concat fails. -download_file_parallel() { - local url="$1" output="$2" - if [ "$DOWNLOADER" != "curl" ]; then - download_file "$url" "$output" - return - fi - local size - size=$(curl -fsSL --head "$url" 2>/dev/null | awk -F'[: \r\n]+' 'tolower($1)=="content-length"{print $2; exit}') - if [ -z "$size" ] || ! [ "$size" -ge 16777216 ] 2>/dev/null; then - download_file "$url" "$output" - return - fi - local n=8 - local chunk_size=$(( (size + n - 1) / n )) - local tmpdir - tmpdir=$(mktemp -d 2>/dev/null) || { download_file "$url" "$output"; return; } - local pids=() i start end - for i in $(seq 0 $((n - 1))); do - start=$((i * chunk_size)) - end=$((start + chunk_size - 1)) - [ $end -ge $size ] && end=$((size - 1)) - curl -fsSL -r "${start}-${end}" -o "${tmpdir}/$(printf 'chunk.%03d' "$i")" "$url" & - pids+=($!) - done - local all_ok=true pid - for pid in "${pids[@]}"; do - wait "$pid" || all_ok=false - done - if [ "$all_ok" = true ] && cat "${tmpdir}"/chunk.* > "$output" 2>/dev/null; then - rm -rf "$tmpdir" - return 0 - fi - rm -rf "$tmpdir" - download_file "$url" "$output" -} - -# Return 0 if a HEAD request for the URL gets HTTP 404. -is_not_found() { - local url="$1" code - if [ "$DOWNLOADER" = "curl" ]; then - code=$(curl -o /dev/null -sSL -w '%{http_code}' --head "$url" 2>/dev/null) || true - else - code=$(wget --server-response --spider "$url" 2>&1 | awk '/HTTP\//{print $2}' | tail -1) || true - fi - [ "$code" = "404" ] -} - -# JSON field extractor — extract a top-level string value using sed. -json_get() { - local json="$1" field="$2" - # Extract value (handling \" inside strings), then unescape JSON sequences. - printf '%s' "$json" | sed -n -E 's/.*"'"$field"'"[[:space:]]*:[[:space:]]*"(([^"\\]|\\.)*)".*/\1/p' | head -1 \ - | sed -e 's/\\"/"/g' -e 's/\\n/\'$'\n''/g' -e 's/\\t/\'$'\t''/g' -e 's/\\\\/\\/g' -} - -# Read a token from ~/.grok/auth.json for the given scope key. -# Format: {"scope_url": {"key": "token"}, ...} -read_grok_token() { - local auth_file="$HOME/.grok/auth.json" - local scope="$1" - [ -f "$auth_file" ] || return 1 - # Flatten to one line then extract: find the scope, then the "key" value after it - tr -d '\n' < "$auth_file" | sed -n 's|.*"'"$scope"'"[[:space:]]*:[[:space:]]*{[^}]*"key"[[:space:]]*:[[:space:]]*"\([^"]*\)".*|\1|p' | head -1 -} - -# Resolve auth: KIGI_DEPLOYMENT_KEY > OIDC token > legacy token -OIDC_SCOPE="https://auth.x.ai::b1a00492-073a-47ea-816f-4c329264a828" -LEGACY_SCOPE="https://accounts.x.ai/sign-in" -AUTH_SOURCE="" - -if [ -n "$KIGI_DEPLOYMENT_KEY" ]; then - AUTH_SOURCE="deployment key" - echo "Auth: using deployment key." >&2 -else - OIDC_TOKEN=$(read_grok_token "$OIDC_SCOPE" 2>/dev/null) || true - LEGACY_TOKEN=$(read_grok_token "$LEGACY_SCOPE" 2>/dev/null) || true - if [ -n "$OIDC_TOKEN" ]; then - AUTH_SOURCE="auth.json (oidc)" - echo "Auth: using OIDC token from ~/.grok/auth.json." >&2 - elif [ -n "$LEGACY_TOKEN" ]; then - AUTH_SOURCE="auth.json (legacy)" - echo "Auth: using legacy token from ~/.grok/auth.json." >&2 - fi -fi - -case "$(uname -s)" in - Darwin) os="macos" ;; - Linux) os="linux" ;; - # Git for Windows / MSYS2 / Cygwin host — native Windows builds - MINGW* | MSYS* | CYGWIN*) os="windows" ;; - *) echo "Unsupported OS: $(uname -s)" >&2; exit 1 ;; -esac - -case "$(uname -m)" in - x86_64|amd64|AMD64) arch="x86_64" ;; - arm64|aarch64|ARM64) arch="aarch64" ;; - *) echo "Unsupported architecture: $(uname -m)" >&2; exit 1 ;; -esac - -BASE_URL_PRIMARY="https://x.ai/cli" -BASE_URL_FALLBACK="https://storage.googleapis.com/grok-build-public-artifacts/cli" -DOWNLOAD_DIR="$HOME/.grok/downloads" -BIN_DIR="${KIGI_BIN_DIR:-$HOME/.grok/bin}" -mkdir -p "$DOWNLOAD_DIR" "$BIN_DIR" - -platform="${os}-${arch}" -CHANNEL="${KIGI_CHANNEL:-stable}" - -# Pick a working BASE_URL: try Cloudflare-fronted x.ai first, fall back to -# direct GCS if it's unreachable. The probe doubles as the channel-pointer -# fetch when no explicit TARGET was passed, so the happy path costs zero -# extra HTTP requests. -if [ -z "$TARGET" ]; then echo "Fetching latest ${CHANNEL} version..." >&2; fi -probe_result=$(download_file "${BASE_URL_PRIMARY}/${CHANNEL}" 2>/dev/null) || true -if [ -n "$probe_result" ]; then - BASE_URL="$BASE_URL_PRIMARY" -else - echo "Note: ${BASE_URL_PRIMARY} unreachable, falling back to direct GCS." >&2 - BASE_URL="$BASE_URL_FALLBACK" - probe_result=$(download_file "${BASE_URL}/${CHANNEL}" 2>/dev/null) || true -fi - -if [ -n "$TARGET" ]; then - version="$TARGET" -else - version=$(printf '%s' "$probe_result" | tr -d '\r' | head -n1 | tr -d '[:space:]') - if [ -z "$version" ]; then - echo "Error: failed to fetch latest version from ${BASE_URL_PRIMARY}/${CHANNEL} and ${BASE_URL_FALLBACK}/${CHANNEL}" >&2 - exit 1 - fi -fi - -if [[ ! "$version" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-[A-Za-z0-9._]+)?$ ]]; then - echo "Invalid version format: $version (expected X.Y.Z or X.Y.Z-suffix)" >&2 - exit 1 -fi - -if [ -n "$AUTH_SOURCE" ]; then - echo "Installing Grok $version ($platform, $AUTH_SOURCE)..." >&2 -else - echo "Installing Grok $version ($platform)..." >&2 -fi - -binary_path="$DOWNLOAD_DIR/grok-$platform" -artifact_base="${BASE_URL}/grok-${version}-${platform}" - -if [ "$os" = "windows" ]; then - binary_path="${binary_path}.exe" -fi - -binary_tmp="${binary_path}.tmp.$$" -rm -f "$binary_tmp" 2>/dev/null || true - -echo " Downloading grok ${version}..." >&2 -if [ "$os" = "windows" ]; then - if ! download_file_parallel "${artifact_base}.exe" "$binary_tmp"; then - if ! download_file_parallel "$artifact_base" "$binary_tmp"; then - rm -f "$binary_tmp" - if is_not_found "${artifact_base}.exe"; then - echo "Error: Grok is not yet available for your system ($platform)." >&2 - else - echo "Error: binary download failed (${artifact_base}.exe and ${artifact_base})" >&2 - fi - exit 1 - fi - fi -elif ! download_file_parallel "$artifact_base" "$binary_tmp"; then - rm -f "$binary_tmp" - if is_not_found "$artifact_base"; then - echo "Error: Grok is not yet available for your system ($platform)." >&2 - else - echo "Error: binary download failed from ${artifact_base}" >&2 - fi - exit 1 -fi - -if [ "$os" = "windows" ]; then - mv -f "$binary_tmp" "$binary_path" - # Symlinks require Developer Mode on Windows; copy instead. - # If the exe is locked by a running process, rename it aside then retry. - for bin_name in grok.exe agent.exe; do - rm -f "$BIN_DIR/$bin_name.old" 2>/dev/null || true # stale backup from prior update - if ! cp -f "$binary_path" "$BIN_DIR/$bin_name" 2>/dev/null; then - mv -f "$BIN_DIR/$bin_name" "$BIN_DIR/$bin_name.old" 2>/dev/null || true - if ! cp -f "$binary_path" "$BIN_DIR/$bin_name" 2>/dev/null; then - # Rollback: restore the old binary so the install isn't broken. - mv -f "$BIN_DIR/$bin_name.old" "$BIN_DIR/$bin_name" 2>/dev/null || true - echo "Error: failed to install $bin_name" >&2 - exit 1 - fi - fi - done - echo " Binary installed to $BIN_DIR/grok.exe and $BIN_DIR/agent.exe." >&2 -else - chmod +x "$binary_tmp" - if ! "$binary_tmp" --version /dev/null 2>&1; then - echo "Error: downloaded grok failed to run; keeping the existing install." >&2 - rm -f "$binary_tmp" - exit 1 - fi - mv -f "$binary_tmp" "$binary_path" - # Use relative symlinks when BIN_DIR and DOWNLOAD_DIR share a parent - # (default layout: ~/.grok/bin and ~/.grok/downloads are siblings). - # Relative symlinks survive Docker bind-mounts with a different $HOME. - if [ "$(dirname "$BIN_DIR")" = "$(dirname "$DOWNLOAD_DIR")" ]; then - link_target="../$(basename "$DOWNLOAD_DIR")/$(basename "$binary_path")" - else - link_target="$binary_path" - fi - ln -sf "$link_target" "$BIN_DIR/grok" - ln -sf "$link_target" "$BIN_DIR/agent" - echo " Binary linked to $BIN_DIR/grok and $BIN_DIR/agent." >&2 -fi - -# Generate shell completions (best-effort) -mkdir -p "$HOME/.grok/completions/bash" "$HOME/.grok/completions/zsh" -"$BIN_DIR/grok" completions bash > "$HOME/.grok/completions/bash/grok.bash" 2>/dev/null || true -"$BIN_DIR/grok" completions zsh > "$HOME/.grok/completions/zsh/_grok" 2>/dev/null || true -# Fish: write to the auto-loaded completions dir so it works immediately -if mkdir -p "$HOME/.config/fish/completions" 2>/dev/null; then - "$BIN_DIR/grok" completions fish > "$HOME/.config/fish/completions/grok.fish" 2>/dev/null || true -fi - -# Persist installer source and channel to config -CONFIG_FILE="$HOME/.grok/config.toml" -CLI_BLOCK="installer = \"internal\"" -if [ "$CHANNEL" != "stable" ]; then - CLI_BLOCK="${CLI_BLOCK}\nchannel = \"${CHANNEL}\"" -fi -if [ ! -f "$CONFIG_FILE" ]; then - printf '[cli]\n%b\n' "$CLI_BLOCK" > "$CONFIG_FILE" -elif grep -q '^\[cli\]' "$CONFIG_FILE"; then - tmp="$CONFIG_FILE.tmp.$$" - awk -v block="$CLI_BLOCK" ' - /^\[cli\][[:space:]]*(#.*)?$/ { print; printf "%s\n", block; in_cli=1; next } - /^\[.*\][[:space:]]*(#.*)?$/ { in_cli=0 } - in_cli && /^[[:space:]]*(installer|channel)[[:space:]]*=/ { next } - { print } - ' "$CONFIG_FILE" > "$tmp" && mv "$tmp" "$CONFIG_FILE" -else - printf '\n[cli]\n%b\n' "$CLI_BLOCK" >> "$CONFIG_FILE" -fi - -# Fetch managed_config.toml + requirements.toml from server (deployment key only). -if [ -n "$KIGI_DEPLOYMENT_KEY" ]; then - PROXY_URL="${KIGI_PROXY_URL:-https://cli-chat-proxy.grok.com/v1}" - echo " Fetching deployment config..." >&2 - DEPLOY_RESPONSE="" - AUTH_HEADER_FILE=$(mktemp 2>/dev/null) || AUTH_HEADER_FILE="" - if [ -n "$AUTH_HEADER_FILE" ]; then - chmod 600 "$AUTH_HEADER_FILE" 2>/dev/null || true - printf 'Authorization: Bearer %s\n' "$KIGI_DEPLOYMENT_KEY" > "$AUTH_HEADER_FILE" - DEPLOY_RESPONSE=$(curl -sS -f \ - -H "@${AUTH_HEADER_FILE}" \ - "${PROXY_URL}/deployment/config" 2>/dev/null) || DEPLOY_RESPONSE="" - : > "$AUTH_HEADER_FILE" 2>/dev/null || true - rm -f "$AUTH_HEADER_FILE" - fi - if [ -z "$DEPLOY_RESPONSE" ]; then - echo " Warning: failed to fetch deployment config from ${PROXY_URL}/deployment/config" >&2 - fi - if [ -n "$DEPLOY_RESPONSE" ]; then - MANAGED_CONFIG=$(json_get "$DEPLOY_RESPONSE" "managed_config") - REQUIREMENTS=$(json_get "$DEPLOY_RESPONSE" "requirements") - if [ -n "$MANAGED_CONFIG" ] && [ "$MANAGED_CONFIG" != "null" ]; then - printf '%s\n' "$MANAGED_CONFIG" > "$HOME/.grok/managed_config.toml" - echo " Managed config applied." >&2 - else - rm -f "$HOME/.grok/managed_config.toml" - fi - if [ -n "$REQUIREMENTS" ] && [ "$REQUIREMENTS" != "null" ]; then - printf '%s\n' "$REQUIREMENTS" > "$HOME/.grok/requirements.toml" - echo " Requirements applied." >&2 - else - rm -f "$HOME/.grok/requirements.toml" - fi - fi -fi - -if [ "$os" = "windows" ]; then - echo "Grok $version installed to $BIN_DIR/grok.exe" >&2 -else - echo "Grok $version installed to $BIN_DIR/grok" >&2 -fi - -# --- Ensure grok is on PATH --- - -path_has_dir() { - case ":$PATH:" in *":$1:"*) return 0 ;; *) return 1 ;; esac -} - -# Try to symlink into a directory already on PATH so grok works immediately -# without restarting the shell. Candidate dirs in preference order. -SYMLINK_CREATED="" -if [ "$os" != "windows" ] && ! path_has_dir "$BIN_DIR"; then - for candidate in "$HOME/.local/bin" "/usr/local/bin"; do - if path_has_dir "$candidate" && [ -d "$candidate" ] && [ -w "$candidate" ]; then - ln -sf "$BIN_DIR/grok" "$candidate/grok" - ln -sf "$BIN_DIR/agent" "$candidate/agent" - SYMLINK_CREATED="$candidate" - echo " Symlinked $candidate/grok -> $BIN_DIR/grok" >&2 - echo " Symlinked $candidate/agent -> $BIN_DIR/agent" >&2 - break - fi - done -fi - -# Also update shell config so ~/.grok/bin is on PATH for future sessions -user_shell="$(basename "${SHELL:-}")" -config_file="" - -case "$user_shell" in - bash) config_file="$HOME/.bashrc" ;; - zsh) config_file="$HOME/.zshrc" ;; - fish) config_file="$HOME/.config/fish/config.fish" ;; -esac - -if [ -n "$config_file" ]; then - mkdir -p "$(dirname "$config_file")" - - # Resolve symlinks so tmp+mv rewrites the stow/dotfiles target, not the link. - if [ -e "$config_file" ] || [ -L "$config_file" ]; then - _cf="$config_file" - _depth=0 - while [ -L "$_cf" ] && [ "$_depth" -lt 40 ]; do - _link="$(readlink "$_cf")" || break - case "$_link" in - /*) _cf="$_link" ;; - *) _cf="$(cd "$(dirname "$_cf")" && pwd -P)/$_link" ;; - esac - _depth=$((_depth + 1)) - done - # Still a symlink (cycle/cap): leave original path so we never rewrite the link. - if [ ! -L "$_cf" ]; then - config_file="$(cd "$(dirname "$_cf")" && pwd -P)/$(basename "$_cf")" - fi - unset _cf _link _depth - fi - - # Build the new installer block - if [ "$user_shell" = "fish" ]; then - new_block='# >>> grok installer >>> -fish_add_path $HOME/.grok/bin -# <<< grok installer <<<' - elif [ "$user_shell" = "zsh" ]; then - new_block='# >>> grok installer >>> -export PATH="$HOME/.grok/bin:$PATH" -fpath=(~/.grok/completions/zsh $fpath) -autoload -Uz compinit && compinit -C -# <<< grok installer <<<' - else - new_block='# >>> grok installer >>> -export PATH="$HOME/.grok/bin:$PATH" -[[ -r "$HOME/.grok/completions/bash/grok.bash" ]] && source "$HOME/.grok/completions/bash/grok.bash" -# <<< grok installer <<<' - fi - - if grep -qs "grok installer" "$config_file" 2>/dev/null; then - # Replace existing block in-place (strip old >>> to <<< lines, insert new) - tmp="$config_file.tmp.$$" - awk ' - /# >>> grok installer >>>/ { skip=1; next } - /# <<< grok installer << "$tmp" && mv "$tmp" "$config_file" - else - [ -f "$config_file" ] && cp "$config_file" "$config_file.bak.$(date +%s)" - - # macOS bash: ensure bash_profile sources bashrc - if [ "$user_shell" = "bash" ] && [ "$(uname -s)" = "Darwin" ]; then - if [ -f "$HOME/.bash_profile" ] && ! grep -qs "source ~/.bashrc" "$HOME/.bash_profile"; then - printf '\n[[ -r ~/.bashrc ]] && source ~/.bashrc\n' >> "$HOME/.bash_profile" - fi - fi - fi - - printf '\n%s\n' "$new_block" >> "$config_file" - echo " Updated $BIN_DIR in PATH in $config_file." >&2 -fi - -echo "" >&2 -if path_has_dir "$BIN_DIR" || [ -n "$SYMLINK_CREATED" ]; then - echo "Run 'grok' or 'agent' to get started!" >&2 -elif [ -n "$config_file" ]; then - echo "Restart your terminal, then run 'grok' or 'agent' to get started!" >&2 -else - echo "Add $BIN_DIR to your PATH, then run 'grok' or 'agent' to get started:" >&2 - echo ' export PATH="$HOME/.grok/bin:$PATH"' >&2 -fi - -if [ "$os" = "windows" ]; then - echo "To use grok from cmd.exe or PowerShell, add %USERPROFILE%\\.grok\\bin to your PATH." >&2 -fi diff --git a/crates/codegen/kigi-update/Cargo.toml b/crates/codegen/kigi-update/Cargo.toml index 200d98c..b2c57ab 100644 --- a/crates/codegen/kigi-update/Cargo.toml +++ b/crates/codegen/kigi-update/Cargo.toml @@ -12,6 +12,7 @@ reqwest = { workspace = true } semver = { workspace = true } serde = { workspace = true, features = ["derive"] } serde_json = { workspace = true } +sha2 = { workspace = true } thiserror = { workspace = true } time = { workspace = true, features = ["serde"] } tokio = { workspace = true, features = ["fs", "process", "io-util", "macros", "time"] } @@ -21,10 +22,20 @@ kigi-env = { workspace = true } kigi-tools = { workspace = true } kigi-version = { workspace = true } +# Release archives: tar.gz on Unix, zip on Windows (PRD F8). +[target.'cfg(not(windows))'.dependencies] +flate2 = { workspace = true } +tar = { workspace = true } + +[target.'cfg(windows)'.dependencies] +zip = { workspace = true } + [dev-dependencies] +flate2 = { workspace = true } semver = { workspace = true } serde_json = { workspace = true } serial_test = { workspace = true } +tar = { workspace = true } tempfile = { workspace = true } time = { workspace = true, features = ["serde"] } tokio = { workspace = true, features = ["fs", "macros", "rt-multi-thread", "test-util"] } diff --git a/crates/codegen/kigi-update/src/auto_update.rs b/crates/codegen/kigi-update/src/auto_update.rs index 58606a1..b91b9d2 100644 --- a/crates/codegen/kigi-update/src/auto_update.rs +++ b/crates/codegen/kigi-update/src/auto_update.rs @@ -1,6 +1,7 @@ use anyhow::{Context, Result}; use std::io::{self, Write}; -use std::process::{Command, Stdio}; +use std::path::{Path, PathBuf}; +use std::process::Stdio; use std::time::Duration; #[cfg(unix)] @@ -11,8 +12,8 @@ use indicatif::{ProgressBar, ProgressStyle}; use tokio::io::AsyncWriteExt; use crate::version::{ - UpdateConfig, fetch_latest_version, get_installed_grok_version, get_latest_version, - is_version_cache_fresh, try_fetch_stable_pointer, write_version_cache, + Release, UpdateConfig, fetch_latest_version, get_installed_kigi_version, get_latest_version, + is_version_cache_fresh, try_fetch_stable_version, write_version_cache, }; use kigi_shell::util::config; use kigi_shell::util::kigi_home::{kigi_application, kigi_home}; @@ -25,23 +26,23 @@ pub enum UpdateRunMode { const PROMPT_UPDATE_NOW: &str = "Update now? [Y/n/d]"; const MSG_AUTO_UPDATE_BACKGROUND: &str = "Auto-update running in background."; -const MSG_RUN_UPDATE_MANUAL: &str = "Run `grok update` to get the latest version."; -/// Manual-install one-liner for this platform's bootstrap installer. +const MSG_RUN_UPDATE_MANUAL: &str = "Run `kigi update` to get the latest version."; + +/// Manual-install one-liner for this platform's bootstrap installer +/// (install.sh / install.ps1 hosted at the repo root, PRD F8). fn manual_install_cmd() -> &'static str { if cfg!(windows) { - "irm https://x.ai/cli/install.ps1 | iex" + "irm https://raw.githubusercontent.com/ZacharyZhang-NY/Kigi-CLI/main/install.ps1 | iex" } else { - "curl -fsSL https://x.ai/cli/install.sh | bash" + "curl -fsSL https://raw.githubusercontent.com/ZacharyZhang-NY/Kigi-CLI/main/install.sh | sh" } } -/// Build a reinstall hint for a known installer type. -fn reinstall_hint(installer: &str) -> String { - match installer { - "npm" => "Please reinstall via npm:\n npm i -g @xai-official/grok".to_string(), - "gh-release" => "Please reinstall via GitHub Releases:\n gh release download --repo xai-org-shared/grok-build --pattern 'grok-*' --output grok && chmod +x grok".to_string(), - _ => format!("Please reinstall via:\n {}", manual_install_cmd()), - } +/// Build a reinstall hint for a known installer type. Every installer is +/// "internal" (GitHub Releases) today; the parameter survives so the hint +/// stays correct if another backend ever returns. +fn reinstall_hint(_installer: &str) -> String { + format!("Please reinstall via:\n {}", manual_install_cmd()) } #[derive(Debug, serde::Serialize)] @@ -65,10 +66,7 @@ pub fn print_update_status(status: &UpdateStatus, json: bool) -> anyhow::Result< } if let Some(error) = status.error.as_deref() { - println!( - "Grok Build - v{} [{}]", - status.current_version, status.channel - ); + println!("Kigi - v{} [{}]", status.current_version, status.channel); println!("Update check failed: {error}"); return Ok(()); } @@ -78,35 +76,35 @@ pub fn print_update_status(status: &UpdateStatus, json: bool) -> anyhow::Result< if status.update_available { if let Some(latest_version) = status.latest_version.as_deref() { println!( - "A new version of Grok Build is available: {} -> {}{}", + "A new version of Kigi is available: {} -> {}{}", status.current_version, latest_version, channel_label ); } else { - println!("A new version of Grok Build is available."); + println!("A new version of Kigi is available."); } return Ok(()); } if let Some(latest_version) = status.latest_version.as_deref() { println!( - "Grok Build - v{} (latest: {}){}", + "Kigi - v{} (latest: {}){}", status.current_version, latest_version, channel_label ); return Ok(()); } - println!("Grok Build - v{}{}", status.current_version, channel_label); + println!("Kigi - v{}{}", status.current_version, channel_label); Ok(()) } pub async fn check_update_status(update_config: &UpdateConfig) -> UpdateStatus { let installer = get_installer().await.map(|value| value.to_string()); - let current_version = get_installed_grok_version(); + let current_version = get_installed_kigi_version(); let current_config = config::load_config().await; let auto_update = current_config.cli.auto_update; let channel = update_config.channel.clone(); - let Some(ref inst) = installer else { + let Some(ref _inst) = installer else { return UpdateStatus { current_version, latest_version: None, @@ -118,7 +116,7 @@ pub async fn check_update_status(update_config: &UpdateConfig) -> UpdateStatus { }; }; - match get_latest_version(inst, update_config).await { + match get_latest_version(update_config).await { Ok(latest_version) => { let mut error = None; // --check reports upgrades only; a rolled-back pointer isn't a "new version" to advertise here (auto-update converges separately). @@ -169,13 +167,13 @@ pub async fn check_update_status(update_config: &UpdateConfig) -> UpdateStatus { } /// Installer + version the leader/background path should converge to: an -/// upgrade OR an authoritative-installer rollback. `None` means stay put. Gates -/// on the installer (via `installer_allows_downgrade`) so npm is never -/// downgraded — the decision depends on the installer, never the caller. +/// upgrade OR an authoritative-installer rollback. `None` means stay put. +/// Gates on the installer (via `installer_allows_downgrade`) so the decision +/// depends on the installer, never the caller. pub async fn auto_update_target(update_config: &UpdateConfig) -> Option<(&'static str, String)> { let installer = get_installer().await?; - let current = get_installed_grok_version(); - let latest = fetch_latest_version(installer, update_config).await.ok()?; + let current = get_installed_kigi_version(); + let latest = fetch_latest_version(update_config).await.ok()?; needs_update( ¤t, &latest, @@ -197,23 +195,20 @@ pub struct EnsureLatestOutcome { pub relaunch_needed: bool, } -/// One leader auto-update pass: converge the on-disk install to the channel -/// pointer (downloading **only** when the disk is actually behind it), then +/// One leader auto-update pass: converge the on-disk install to the latest +/// release (downloading **only** when the disk is actually behind it), then /// report whether the running process should relaunch onto the on-disk binary. /// /// Unlike [`run_update`] this never uses the compiled-in version for the /// download decision — a binary already installed by another process (TUI -/// background download, explicit `grok update`) is reused as-is. This both +/// background download, explicit `kigi update`) is reused as-is. This both /// removes the duplicate download in leader mode and stops the pre-fix /// hourly re-download while a busy leader keeps deferring its relaunch. /// /// When the disk version is unknowable ([`disk_version_for_installer`]: -/// npm-managed installs, Windows copy-based installs, dev builds), this -/// degrades to the pre-fix behavior — download when the *running* process is -/// stale, relaunch only after a download this pass actually installed -/// something. Note the Windows consequence: the hourly busy-leader -/// re-download is NOT fixed there; only the symlink layout can prove the -/// disk is current without exec'ing the binary. +/// Windows copy-based installs, dev builds), this degrades to the pre-fix +/// behavior — download when the *running* process is stale, relaunch only +/// after a download this pass actually installed something. pub async fn ensure_latest_on_disk(update_config: &UpdateConfig) -> Result { let mut outcome = EnsureLatestOutcome { installed: None, @@ -223,10 +218,10 @@ pub async fn ensure_latest_on_disk(update_config: &UpdateConfig) -> Result Result Result Option { match installer { - "internal" | "gh-release" => crate::version::installed_on_disk_version(), + "internal" => crate::version::installed_on_disk_version(), _ => None, } } @@ -273,43 +262,32 @@ fn disk_version_for_installer(installer: &str) -> Option { fn env_installer() -> Option<&'static str> { if let Ok(v) = std::env::var("KIGI_INSTALLER") { return match v.to_ascii_lowercase().as_str() { - "npm" => Some("npm"), "internal" => Some("internal"), - "gh-release" | "gh" => Some("gh-release"), _ => None, }; } - if std::env::var_os("KIGI_MANAGED_BY_NPM").is_some() { - return Some("npm"); - } if std::env::var_os("KIGI_MANAGED_BY_INTERNAL").is_some() { return Some("internal"); } - if std::env::var_os("npm_config_user_agent").is_some() { - return Some("npm"); - } None } +/// Resolve the active installer backend. Every supported install path +/// (install.sh, install.ps1, self-update) is "internal" — binaries from this +/// repo's GitHub Releases (PRD F8: no PyPI/npm packages). pub async fn get_installer() -> Option<&'static str> { if let Some(i) = env_installer() { return Some(i); } - let cfg = config::load_config().await; - match cfg.cli.installer.as_deref() { - Some("npm") => Some("npm"), - Some("gh-release") => Some("gh-release"), - _ => Some("internal"), - } + // Any persisted installer value maps to the single supported backend. + let _ = config::load_config().await.cli.installer; + Some("internal") } fn needs_update(current: &str, target: &str, channel: &str, allow_downgrade: bool) -> Option { let current = semver::Version::parse(current).ok()?; let target = semver::Version::parse(target).ok()?; match channel { - // NOTE: With the 0.2.X versioning scheme, all versions are plain - // semver (no pre-release suffix). The pre-release checks in this - // match are dead code but kept as a safety net. "stable" | "enterprise" => { if !target.pre.is_empty() { tracing::warn!( @@ -333,37 +311,30 @@ fn needs_update(current: &str, target: &str, channel: &str, allow_downgrade: boo }) } -/// Returns `true` for installer backends whose version source is authoritative -/// (managed by xAI directly), meaning a pointer rollback is intentional and -/// should trigger a client downgrade. Returns `false` for backends like npm -/// where stale corporate registries/proxies can return arbitrarily old versions. -/// -/// Users who installed via `install.sh` are classified as `"internal"` by -/// `get_installer()`, so they also get rollback support. +/// Returns `true` for installer backends whose version source is +/// authoritative (this repo's GitHub Releases), meaning a release rollback +/// (deleted/yanked latest) is intentional and should trigger a client +/// downgrade. Unknown backends never downgrade. fn installer_allows_downgrade(installer: &str) -> bool { - match installer { - "internal" | "gh-release" => true, - "npm" => false, - _ => false, - } + installer == "internal" } /// Result of a background update availability check. #[derive(Debug, Clone)] pub struct UpdateAvailable { - /// The latest version string (e.g. "0.1.200"). + /// The latest version string (e.g. "0.1.2"). pub latest_version: String, } /// Outcome of [`check_update_background`]. pub struct BackgroundUpdateCheck { - /// `Some` when the *running* binary is older than the channel pointer — + /// `Some` when the *running* binary is older than the latest release — /// drives the in-TUI restart hint regardless of who downloads the binary. pub update: Option, - /// Handle to the background `grok update` child, `Some` only when a + /// Handle to the background `kigi update` child, `Some` only when a /// download was actually started (the on-disk install was behind the - /// pointer). The TUI parks this and `wait()`s on it at quit-for-update - /// time instead of spawning a second downloader. + /// latest release). The TUI parks this and `wait()`s on it at + /// quit-for-update time instead of spawning a second downloader. pub download: Option, } @@ -379,12 +350,12 @@ impl BackgroundUpdateCheck { /// Check for available updates without blocking the TUI startup. /// /// Sets [`BackgroundUpdateCheck::update`] when the running binary is older -/// than the channel pointer. If `auto_update` is enabled **and the on-disk -/// install is also behind the pointer**, kicks off a non-blocking download -/// (spawns `grok update` as a detached child process) so the new binary is -/// ready when the user quits and relaunches. When another process (an earlier -/// TUI, the leader's hourly checker) already put the target version on disk, -/// no download is started — only the restart hint is surfaced. +/// than the latest release. If `auto_update` is enabled **and the on-disk +/// install is also behind it**, kicks off a non-blocking download (spawns +/// `kigi update` as a detached child process) so the new binary is ready +/// when the user quits and relaunches. When another process (an earlier TUI, +/// the leader's hourly checker) already put the target version on disk, no +/// download is started — only the restart hint is surfaced. pub async fn check_update_background(update_config: &UpdateConfig) -> BackgroundUpdateCheck { let Some(installer) = get_installer().await else { return BackgroundUpdateCheck::none(); @@ -399,8 +370,8 @@ pub async fn check_update_background(update_config: &UpdateConfig) -> Background return BackgroundUpdateCheck::none(); } - let current_version = get_installed_grok_version(); - let latest_version = match fetch_latest_version(installer, update_config).await { + let current_version = get_installed_kigi_version(); + let latest_version = match fetch_latest_version(update_config).await { Ok(v) => v, Err(_) => return BackgroundUpdateCheck::none(), }; @@ -414,17 +385,15 @@ pub async fn check_update_background(update_config: &UpdateConfig) -> Background ) .unwrap_or(false) { - let stable_ptr = try_fetch_stable_pointer().await; + let stable_ptr = try_fetch_stable_version().await; write_version_cache(&latest_version, stable_ptr.as_deref()).await; return BackgroundUpdateCheck::none(); } - // Only download when the on-disk install is behind the pointer; the - // running process being stale (checked above) just means "show the - // restart hint". The quit-for-update path's `grok update` child resolves - // to "Already up to date" against the same disk state. Gated on the - // installer maintaining the managed symlink — for npm a leftover symlink - // would wrongly suppress the download (see `disk_version_for_installer`). + // Only download when the on-disk install is behind the latest release; + // the running process being stale (checked above) just means "show the + // restart hint". The quit-for-update path's `kigi update` child resolves + // to "Already up to date" against the same disk state. let disk_needs_download = match disk_version_for_installer(installer) { Some(disk) => needs_update( &disk, @@ -497,13 +466,13 @@ pub async fn run_update_if_available( tracing::warn!("Failed to save auto-update setting: {}", e); } - let current_version = get_installed_grok_version(); + let current_version = get_installed_kigi_version(); // installer is guaranteed Some by the guard at the top of this function. let inst = installer.unwrap(); // Fetch without writing version.json — we only cache after confirming the // update is not needed or after a successful blocking install. This prevents // a failed background download from suppressing retries for the TTL window. - let latest_version = match fetch_latest_version(inst, update_config).await { + let latest_version = match fetch_latest_version(update_config).await { Ok(v) => v, Err(_) => return Ok(false), }; @@ -515,7 +484,7 @@ pub async fn run_update_if_available( ) .unwrap_or(false) { - let stable_ptr = try_fetch_stable_pointer().await; + let stable_ptr = try_fetch_stable_version().await; write_version_cache(&latest_version, stable_ptr.as_deref()).await; return Ok(false); } @@ -523,7 +492,7 @@ pub async fn run_update_if_available( let channel_label = format!(" [{}]", update_config.channel); if auto_update { eprintln!( - "A new version of Grok Build is available: {} -> {}{}", + "A new version of Kigi is available: {} -> {}{}", current_version, latest_version, channel_label ); if interactive { @@ -551,7 +520,7 @@ pub async fn run_update_if_available( return Ok(false); } eprintln!( - "A new version of Grok Build is available: {} -> {}{}", + "A new version of Kigi is available: {} -> {}{}", current_version, latest_version, channel_label ); if interactive { @@ -586,7 +555,7 @@ pub async fn run_update_if_available( Ok(false) } -/// Launch "grok update" in blocking or non-blocking mode. +/// Launch "kigi update" in blocking or non-blocking mode. /// /// In `NonBlocking` mode the spawned child's handle is returned so the caller /// can later `wait()` on the in-flight download (e.g. the TUI's @@ -617,7 +586,7 @@ async fn run_update_subcommand(run_mode: UpdateRunMode) -> Result Result Result { +/// Prefer `~/.kigi/bin/kigi` which always points to the latest version. +fn resolve_restart_exe() -> Result { let canonical = kigi_application(); if canonical.exists() { return Ok(canonical); @@ -647,16 +616,16 @@ fn resolve_restart_exe() -> Result { Ok(std::env::current_exe()?) } -/// Restart grok with the original command-line arguments to pick up the update. -pub fn restart_grok() -> Result<()> { +/// Restart kigi with the original command-line arguments to pick up the update. +pub fn restart_kigi() -> Result<()> { let exe = resolve_restart_exe()?; - let mut cmd = Command::new(exe); + let mut cmd = std::process::Command::new(exe); for arg in std::env::args_os().skip(1) { cmd.arg(arg); } cmd.env_clear(); cmd.envs(std::env::vars_os().filter(|(k, _)| k != "KIGI_AUTO_UPDATE")); - eprintln!("Restarting Grok..."); + eprintln!("Restarting Kigi..."); // Use exec on Unix to replace the current process, avoiding stdio issues // when the parent exits. On Windows, fall back to spawn + exit. @@ -688,15 +657,7 @@ pub async fn run_install_script( target: Option<&str>, update_config: &UpdateConfig, ) -> Result<()> { - let result = match installer { - "npm" => install_npm( - target, - &update_config.channel, - update_config.npm_registry.as_deref(), - ), - "gh-release" => install_gh_release(target).await, - _ => install_internal(target, update_config).await, - }; + let result = install_internal(target, update_config).await; if result.is_ok() { remove_stale_models_cache().await; } @@ -709,7 +670,8 @@ pub async fn run_install_script( }) } -/// Detect the current platform (os, arch) for binary downloads. +/// Detect the current platform (os, arch) for versioned on-disk binary names +/// (`kigi---`). pub(crate) fn detect_platform() -> Result<(&'static str, &'static str)> { let os = if cfg!(target_os = "macos") { "macos" @@ -730,6 +692,38 @@ pub(crate) fn detect_platform() -> Result<(&'static str, &'static str)> { Ok((os, arch)) } +/// Rust target triple for this build — the key that maps a platform to its +/// release-asset name. Must stay in lockstep with the five targets built by +/// `.github/workflows/release.yml` and the tables in install.sh/install.ps1. +pub(crate) fn target_triple() -> Result<&'static str> { + let triple = if cfg!(all(target_os = "macos", target_arch = "aarch64")) { + "aarch64-apple-darwin" + } else if cfg!(all(target_os = "macos", target_arch = "x86_64")) { + "x86_64-apple-darwin" + } else if cfg!(all(target_os = "linux", target_arch = "aarch64")) { + "aarch64-unknown-linux-gnu" + } else if cfg!(all(target_os = "linux", target_arch = "x86_64")) { + "x86_64-unknown-linux-gnu" + } else if cfg!(all(target_os = "windows", target_arch = "x86_64")) { + "x86_64-pc-windows-msvc" + } else { + anyhow::bail!("no released kigi artifact for this platform") + }; + Ok(triple) +} + +/// Release archives are tar.gz everywhere except Windows (zip). +pub(crate) const ARCHIVE_EXT: &str = if cfg!(windows) { "zip" } else { "tar.gz" }; + +/// Release-asset archive name for `version` on this platform: +/// `kigi--.{tar.gz|zip}` (PRD F8). +pub(crate) fn release_asset_name(version: &str) -> Result { + Ok(format!("kigi-{version}-{}.{ARCHIVE_EXT}", target_triple()?)) +} + +/// Name of the checksum manifest asset attached to every release. +pub(crate) const SHA256SUMS_ASSET: &str = "SHA256SUMS"; + /// Age past which a leftover `.tmp` download file (or a freshly-renamed /// versioned binary) is considered abandoned (crashed/killed updater) and /// safe for `cleanup_old_downloads` to sweep. Generous compared to the @@ -740,29 +734,27 @@ pub(crate) fn detect_platform() -> Result<(&'static str, &'static str)> { const STALE_TMP_AGE: Duration = Duration::from_secs(60 * 60); /// Total timeout for a CLI artifact download request (including body). -/// Previously 5 minutes, which was too tight on slow links and caused the -/// transfer to abort and restart from zero repeatedly. const DOWNLOAD_REQUEST_TIMEOUT: Duration = Duration::from_secs(20 * 60); /// Unique temp path for an in-flight download of `dest`. /// /// Appends `.{pid}-{seq}.tmp` to the FULL file name instead of using /// `Path::with_extension`, which treats everything after the last dot of the -/// versioned name as the extension (`grok-0.1.181-linux-x86_64` → -/// `grok-0.1.tmp`) and therefore collides for every `0.1.x` version. The PID +/// versioned name as the extension (`kigi-0.1.1-linux-x86_64` → +/// `kigi-0.1.tmp`) and therefore collides for every `0.1.x` version. The PID /// plus a per-process counter makes the name unique per download attempt — /// across processes (two updaters racing in the same instant, the accepted /// lock-free residual race) and within one process — so no racer can ever /// rename another's half-written temp file into place. Leftovers older than /// [`STALE_TMP_AGE`] are swept by `cleanup_old_downloads`. -fn tmp_download_path(dest: &std::path::Path) -> std::path::PathBuf { +fn tmp_download_path(dest: &Path) -> PathBuf { unique_temp_sibling(dest, "tmp") } /// Unique temp path `.{pid}-{seq}.{ext}`, appended to the full name so a -/// versioned base like `grok-0.1.181` doesn't collide via `with_extension`. +/// versioned base like `kigi-0.1.1` doesn't collide via `with_extension`. /// PID + per-process counter keep racing updaters from clobbering each other. -fn unique_temp_sibling(base: &std::path::Path, ext: &str) -> std::path::PathBuf { +fn unique_temp_sibling(base: &Path, ext: &str) -> PathBuf { use std::sync::atomic::{AtomicU64, Ordering}; static SEQ: AtomicU64 = AtomicU64::new(0); let mut name = base @@ -779,7 +771,7 @@ fn unique_temp_sibling(base: &std::path::Path, ext: &str) -> std::path::PathBuf /// Set `+x` on the temp file before renaming onto `dest`, so a concurrent /// same-version installer never execs `dest` while it is still 0644. -async fn publish_downloaded_artifact(tmp: &std::path::Path, dest: &std::path::Path) -> Result<()> { +async fn publish_downloaded_artifact(tmp: &Path, dest: &Path) -> Result<()> { #[cfg(unix)] { use std::os::unix::fs::PermissionsExt; @@ -798,18 +790,21 @@ fn parallel_chunk_count(size: u64) -> u64 { (size_mb / 16).clamp(1, 8) } +/// HTTP client for release-asset downloads. GitHub requires a `User-Agent` +/// on every request; asset downloads follow redirects to the CDN. +fn asset_client() -> Result { + Ok(reqwest::Client::builder() + .user_agent(concat!("kigi/", env!("CARGO_PKG_VERSION"))) + .timeout(DOWNLOAD_REQUEST_TIMEOUT) + .build()?) +} + /// Try a parallel byte-range download to `dest`. Returns Err if the server /// doesn't advertise a Content-Length, the file is too small to be worth /// splitting, the range request is rejected, or any chunk transfer fails. /// The caller is expected to fall back to a single-connection download on Err. -async fn try_parallel_download( - url: &str, - dest: &std::path::Path, - with_progress: bool, -) -> Result<()> { - let client = reqwest::Client::builder() - .timeout(DOWNLOAD_REQUEST_TIMEOUT) - .build()?; +async fn try_parallel_download(url: &str, dest: &Path, with_progress: bool) -> Result<()> { + let client = asset_client()?; let head = client.head(url).send().await?; if !head.status().is_success() { @@ -894,7 +889,7 @@ async fn try_parallel_download( async fn download_range( client: &reqwest::Client, url: &str, - dest: &std::path::Path, + dest: &Path, start: u64, end: u64, progress: Option<&ProgressBar>, @@ -935,7 +930,7 @@ async fn download_range( /// with bytes downloaded, total size, and ETA. Otherwise a spinner with a byte /// counter is used as a fallback. #[doc(hidden)] -pub async fn download_with_progress(url: &str, dest: &std::path::Path) -> Result<()> { +pub async fn download_with_progress(url: &str, dest: &Path) -> Result<()> { // Try parallel byte-range first. Falls through to single-connection on any // failure (HEAD missing Content-Length, ranges rejected, partial-fetch error). match try_parallel_download(url, dest, true).await { @@ -945,9 +940,7 @@ pub async fn download_with_progress(url: &str, dest: &std::path::Path) -> Result } } - let client = reqwest::Client::builder() - .timeout(DOWNLOAD_REQUEST_TIMEOUT) - .build()?; + let client = asset_client()?; let resp = client.get(url).send().await?; if !resp.status().is_success() { @@ -997,7 +990,7 @@ pub async fn download_with_progress(url: &str, dest: &std::path::Path) -> Result /// Download a file silently (no progress bar). #[doc(hidden)] -pub async fn download_silent(url: &str, dest: &std::path::Path) -> Result<()> { +pub async fn download_silent(url: &str, dest: &Path) -> Result<()> { match try_parallel_download(url, dest, false).await { Ok(()) => return Ok(()), Err(e) => { @@ -1005,9 +998,7 @@ pub async fn download_silent(url: &str, dest: &std::path::Path) -> Result<()> { } } - let client = reqwest::Client::builder() - .timeout(DOWNLOAD_REQUEST_TIMEOUT) - .build()?; + let client = asset_client()?; let resp = client.get(url).send().await?; if !resp.status().is_success() { @@ -1029,6 +1020,110 @@ pub async fn download_silent(url: &str, dest: &std::path::Path) -> Result<()> { Ok(()) } +/// Fetch a small text asset (the SHA256SUMS manifest) into memory. +async fn fetch_asset_text(url: &str) -> Result { + let client = asset_client()?; + let resp = client.get(url).send().await?; + if !resp.status().is_success() { + anyhow::bail!("Download failed: HTTP {} for {}", resp.status(), url); + } + Ok(resp.text().await?) +} + +/// Hex-encoded SHA-256 of a file, computed off the async runtime. +async fn sha256_hex_of_file(path: &Path) -> Result { + let path = path.to_owned(); + tokio::task::spawn_blocking(move || -> Result { + use sha2::{Digest, Sha256}; + let mut f = std::fs::File::open(&path)?; + let mut hasher = Sha256::new(); + std::io::copy(&mut f, &mut hasher)?; + Ok(format!("{:x}", hasher.finalize())) + }) + .await + .map_err(|e| anyhow::anyhow!("sha256 task panicked: {e}"))? +} + +/// Look up the expected SHA-256 for `asset_name` in a `sha256sum`-format +/// manifest (`` per line; a leading `*` on the name +/// marks binary mode and is ignored). +fn expected_sha256_for(sums: &str, asset_name: &str) -> Result { + for line in sums.lines() { + let line = line.trim(); + if line.is_empty() { + continue; + } + let Some((hash, name)) = line.split_once(char::is_whitespace) else { + continue; + }; + if name.trim().trim_start_matches('*') != asset_name { + continue; + } + let hash = hash.trim(); + if hash.len() == 64 && hash.bytes().all(|b| b.is_ascii_hexdigit()) { + return Ok(hash.to_ascii_lowercase()); + } + anyhow::bail!("malformed SHA256SUMS entry for {asset_name}: '{line}'"); + } + anyhow::bail!("SHA256SUMS has no entry for {asset_name}") +} + +/// Extract the single `kigi` binary from a release archive to `dest_tmp` +/// (caller publishes it with the usual chmod+rename). Archives are tar.gz on +/// Unix and zip on Windows, containing `kigi(.exe)` plus license files. +async fn extract_kigi_binary(archive: &Path, dest_tmp: &Path) -> Result<()> { + let archive = archive.to_owned(); + let dest_tmp = dest_tmp.to_owned(); + tokio::task::spawn_blocking(move || extract_kigi_binary_blocking(&archive, &dest_tmp)) + .await + .map_err(|e| anyhow::anyhow!("archive extraction task panicked: {e}"))? +} + +#[cfg(not(windows))] +fn extract_kigi_binary_blocking(archive: &Path, dest_tmp: &Path) -> Result<()> { + let f = std::fs::File::open(archive)?; + let gz = flate2::read::GzDecoder::new(f); + let mut ar = tar::Archive::new(gz); + for entry in ar.entries()? { + let mut entry = entry?; + let is_kigi = entry + .path()? + .file_name() + .and_then(|n| n.to_str()) + .is_some_and(|n| n == "kigi"); + if is_kigi { + let mut out = std::fs::File::create(dest_tmp)?; + std::io::copy(&mut entry, &mut out)?; + return Ok(()); + } + } + anyhow::bail!("archive {} contains no 'kigi' binary", archive.display()) +} + +#[cfg(windows)] +fn extract_kigi_binary_blocking(archive: &Path, dest_tmp: &Path) -> Result<()> { + let f = std::fs::File::open(archive)?; + let mut zip = zip::ZipArchive::new(f)?; + for i in 0..zip.len() { + let mut entry = zip.by_index(i)?; + let base_name = entry + .name() + .rsplit(['/', '\\']) + .next() + .unwrap_or_default() + .to_string(); + if base_name.eq_ignore_ascii_case("kigi.exe") { + let mut out = std::fs::File::create(dest_tmp)?; + std::io::copy(&mut entry, &mut out)?; + return Ok(()); + } + } + anyhow::bail!( + "archive {} contains no 'kigi.exe' binary", + archive.display() + ) +} + /// Delete `~/.kigi/models_cache.json` after a successful update. /// /// The cache embeds the binary version and will be treated as a miss by the @@ -1043,99 +1138,49 @@ async fn remove_stale_models_cache() { } } -/// Remove the stale `grok-pager` symlink/binary from `~/.kigi/bin/` left by -/// older installations that shipped a separate pager binary. -async fn remove_stale_pager(bin_dir: &std::path::Path) { - let name = if cfg!(windows) { - "grok-pager.exe" - } else { - "grok-pager" - }; - let link = bin_dir.join(name); - if link.exists() || link.is_symlink() { - let _ = tokio::fs::remove_file(&link).await; - } -} - -/// Fetch a CLI object from GCS. On Windows the public bucket may use a `.exe` -/// suffix; try that first, then the extensionless name used on macOS/Linux. -async fn download_cli_artifact_from_gcs( - gcs_base_url: &str, - object_name: &str, - dest: &std::path::Path, - with_progress: bool, -) -> Result<()> { - let base = gcs_base_url.trim_end_matches('/'); - #[cfg(windows)] - { - let with_exe = format!("{}/{}.exe", base, object_name); - let r = if with_progress { - download_with_progress(&with_exe, dest).await +/// Remove stale grok-era links/binaries from `~/.kigi/bin/` left by +/// installations that predate the Kigi distribution rewrite (`grok`, +/// `agent`, `grok-pager`). `kigi` is the single managed entry point now. +async fn remove_legacy_links(bin_dir: &Path) { + for base in ["grok", "agent", "grok-pager"] { + let name = if cfg!(windows) { + format!("{base}.exe") } else { - download_silent(&with_exe, dest).await + base.to_string() }; - match r { - Ok(()) => return Ok(()), - Err(e) => tracing::debug!("{with_exe} not found, trying extensionless: {e}"), + let link = bin_dir.join(name); + if link.exists() || link.is_symlink() { + let _ = tokio::fs::remove_file(&link).await; } } - let url = format!("{}/{}", base, object_name); - if with_progress { - download_with_progress(&url, dest).await - } else { - download_silent(&url, dest).await - } } async fn install_internal(target: Option<&str>, update_config: &UpdateConfig) -> Result<()> { - install_internal_from_bases(target, update_config, crate::version::CLI_BASE_URLS).await + install_internal_from_base(target, update_config, &crate::version::update_base_url()).await } -/// Try the base-dependent install phase ([`download_verified_from_base`]: -/// version resolution, download, smoke test) against each base URL in turn, -/// falling through to the next on any failure. Used to keep installs working -/// when the primary CDN endpoint (Cloudflare) is unreachable but the fallback -/// (direct GCS) still resolves. -/// -/// Download-phase side effects (download dir creation, binary fetch) are -/// idempotent, so retrying with a different base after a partial failure is -/// safe. Local activation ([`activate_verified_download`]: link swap, -/// cleanup, config persist) runs once after the first successful download — -/// its failures are not base-dependent, so they abort the install instead of -/// triggering a pointless re-download from the next base. +/// Test-visible entry point: same as [`install_internal`] but resolves +/// releases from `base_url` (a GitHub-Releases-shaped API) instead of +/// [`kigi_env::update_base_url`]. Persists installer config and writes to +/// `~/.kigi/bin/`, so callers must isolate `KIGI_SHARE_DIR`. #[doc(hidden)] -pub async fn install_internal_from_bases( +pub async fn install_internal_from_base( target: Option<&str>, update_config: &UpdateConfig, - bases: &[&str], + base_url: &str, ) -> Result<()> { - let mut last_err: Option = None; - for (i, base) in bases.iter().enumerate() { - match download_verified_from_base(target, update_config, base).await { - Ok(download) => return activate_verified_download(&download).await, - Err(e) => { - if i + 1 < bases.len() { - tracing::warn!( - "install via {} failed ({:#}); trying next base URL", - base, - e - ); - } - last_err = Some(e); - } - } - } - Err(last_err.unwrap_or_else(|| anyhow::anyhow!("no CLI base URLs to try"))) + let download = download_verified_from_base(target, update_config, base_url).await?; + activate_verified_download(&download).await } -const SMOKE_TEST_TIMEOUT: std::time::Duration = std::time::Duration::from_secs(10); +const SMOKE_TEST_TIMEOUT: Duration = Duration::from_secs(10); -async fn smoke_test_binary(binary_path: &std::path::Path) -> bool { +async fn smoke_test_binary(binary_path: &Path) -> bool { let mut cmd = tokio::process::Command::new(binary_path); cmd.arg("--version") - .stdin(std::process::Stdio::null()) - .stdout(std::process::Stdio::null()) - .stderr(std::process::Stdio::null()); + .stdin(Stdio::null()) + .stdout(Stdio::null()) + .stderr(Stdio::null()); kigi_tools::util::detach_command(&mut cmd); match tokio::time::timeout(SMOKE_TEST_TIMEOUT, cmd.status()).await { Ok(Ok(status)) => status.success(), @@ -1143,64 +1188,89 @@ async fn smoke_test_binary(binary_path: &std::path::Path) -> bool { } } -/// Test-only entry point: same as [`install_internal`] but reads from -/// `gcs_base_url` instead of the hardcoded GCS bucket. Persists installer -/// config and writes to `~/.kigi/bin/`, so callers must isolate -/// `KIGI_SHARE_DIR`. -#[doc(hidden)] -pub async fn install_internal_from_base( - target: Option<&str>, - update_config: &UpdateConfig, - gcs_base_url: &str, -) -> Result<()> { - let download = download_verified_from_base(target, update_config, gcs_base_url).await?; - activate_verified_download(&download).await -} - -/// A downloaded and smoke-tested binary in `~/.kigi/downloads/`, not yet -/// activated as the managed `grok`/`agent`. +/// A downloaded, checksum-verified, and smoke-tested binary in +/// `~/.kigi/downloads/`, not yet activated as the managed `kigi`. struct VerifiedDownload { version: String, - binary_path: std::path::PathBuf, + binary_path: PathBuf, } -/// Base-dependent install phase: resolve the version (per base when no -/// target is pinned), download the binary, and smoke-test it. Failures here -/// are worth retrying against another base URL. +/// Resolve the release to install: pinned version → `GET {base}/tags/v{v}`; +/// otherwise the channel's latest. +async fn resolve_release(target: Option<&str>, channel: &str, base_url: &str) -> Result { + match target { + Some(v) => { + semver::Version::parse(v) + .map_err(|_| anyhow::anyhow!("invalid version format: '{}'", v))?; + crate::version::fetch_release_for_version_from_base(v, base_url).await + } + None => crate::version::fetch_latest_release_from_base(channel, base_url).await, + } +} + +/// Download phase: resolve the release, download the platform archive, +/// verify its SHA-256 against the release's SHA256SUMS manifest, extract the +/// `kigi` binary, and smoke-test it. Nothing is activated yet. async fn download_verified_from_base( target: Option<&str>, update_config: &UpdateConfig, - gcs_base_url: &str, + base_url: &str, ) -> Result { let (os, arch) = detect_platform()?; let platform = format!("{}-{}", os, arch); - let version = match target { - Some(v) => { - semver::Version::parse(v) - .map_err(|_| anyhow::anyhow!("invalid version format: '{}'", v))?; - v.to_string() - } - None => { - crate::version::fetch_gcs_version_from_base(&update_config.channel, gcs_base_url) - .await? - } - }; + let release = resolve_release(target, &update_config.channel, base_url).await?; + let version = release.version()?; + + let asset_name = release_asset_name(&version)?; + let archive_asset = release.asset(&asset_name)?; + let sums_asset = release.asset(SHA256SUMS_ASSET)?; + + // Fetch the checksum manifest FIRST: if it's missing or unreadable we + // fail before spending bandwidth on the archive. + let sums = fetch_asset_text(&sums_asset.browser_download_url).await?; + let expected = expected_sha256_for(&sums, &asset_name)?; let kigi_home = kigi_home(); let download_dir = kigi_home.join("downloads"); tokio::fs::create_dir_all(&download_dir).await?; - let binary_name = format!("grok-{}-{}", version, platform); + let archive_path = download_dir.join(&asset_name); + let binary_name = format!("kigi-{}-{}", version, platform); let binary_path = download_dir.join(&binary_name); - eprintln!(" Downloading grok v{} ({})...", version, platform); + eprintln!(" Downloading kigi v{} ({})...", version, target_triple()?); - // Published already +x (see `publish_downloaded_artifact`). - download_cli_artifact_from_gcs(gcs_base_url, &binary_name, &binary_path, true).await?; + download_with_progress(&archive_asset.browser_download_url, &archive_path).await?; + + // Checksum gate: a corrupt or tampered archive is deleted and never + // extracted, let alone activated. + let actual = sha256_hex_of_file(&archive_path).await?; + if actual != expected { + let _ = tokio::fs::remove_file(&archive_path).await; + anyhow::bail!( + "SHA256 mismatch for {asset_name}: expected {expected}, got {actual}.\n\ + Your current version is unchanged." + ); + } + + // Extract to a unique temp sibling, then publish (chmod +x, atomic + // rename) so a concurrent same-version installer never sees a partial + // or non-executable binary at the final path. + let extract_tmp = unique_temp_sibling(&binary_path, "tmp"); + if let Err(e) = extract_kigi_binary(&archive_path, &extract_tmp).await { + let _ = tokio::fs::remove_file(&extract_tmp).await; + let _ = tokio::fs::remove_file(&archive_path).await; + return Err(e); + } + publish_downloaded_artifact(&extract_tmp, &binary_path).await?; + + // The archive has served its purpose; the versioned binary is what + // `cleanup_old_downloads` retention manages. + let _ = tokio::fs::remove_file(&archive_path).await; // Smoke-test: run the binary before activating it. A truncated or - // corrupt download is caught here and never becomes the active grok. + // corrupt extraction is caught here and never becomes the active kigi. if !smoke_test_binary(&binary_path).await { let _ = tokio::fs::remove_file(&binary_path).await; // No prefix: run_install_script's wrap adds "Auto-update failed:". @@ -1218,25 +1288,23 @@ async fn download_verified_from_base( }) } -/// Local activation phase: swap the managed bin links to the downloaded -/// binary and finish bookkeeping. Nothing here depends on which base URL -/// served the download, so callers must not retry another base on failure. +/// Local activation phase: swap the managed `~/.kigi/bin/kigi` link to the +/// downloaded binary and finish bookkeeping. async fn activate_verified_download(download: &VerifiedDownload) -> Result<()> { let kigi_home = kigi_home(); let download_dir = kigi_home.join("downloads"); let bin_dir = kigi_home.join("bin"); tokio::fs::create_dir_all(&bin_dir).await?; - // Atomic swap of ~/.kigi/bin/{kigi,grok,agent} -> downloaded binary. - let link_path = swap_managed_bin_links(&download.binary_path, &bin_dir).await?; + // Atomic swap of ~/.kigi/bin/kigi -> downloaded binary. + let link_path = swap_managed_bin_link(&download.binary_path, &bin_dir).await?; - remove_stale_pager(&bin_dir).await; + remove_legacy_links(&bin_dir).await; eprintln!(); // Clean up old versioned binaries (keeps current + 1 previous). - cleanup_old_downloads(&download_dir, "grok", &download.version).await; - cleanup_old_downloads(&download_dir, "grok-pager", &download.version).await; + cleanup_old_downloads(&download_dir, "kigi", &download.version).await; // Persist installer to config.toml so future runs auto-detect internal. let _ = config::update_config(|st| { @@ -1257,16 +1325,16 @@ async fn activate_verified_download(download: &VerifiedDownload) -> Result<()> { /// supported shell and writes the output to the standard completion paths. /// Failures are silently ignored — completions are a nice-to-have, not a /// requirement for a successful update. -async fn regenerate_completions(binary: &std::path::Path, kigi_home: &std::path::Path) { +async fn regenerate_completions(binary: &Path, kigi_home: &Path) { // Derive $HOME independently — kigi_home may be overridden via KIGI_SHARE_DIR // env var, so kigi_home.parent() isn't necessarily the user's home dir. #[allow(deprecated)] let user_home = std::env::home_dir().unwrap_or_default(); - let completions: &[(&str, std::path::PathBuf)] = &[ - ("bash", kigi_home.join("completions/bash/grok.bash")), - ("zsh", kigi_home.join("completions/zsh/_grok")), - ("fish", user_home.join(".config/fish/completions/grok.fish")), + let completions: &[(&str, PathBuf)] = &[ + ("bash", kigi_home.join("completions/bash/kigi.bash")), + ("zsh", kigi_home.join("completions/zsh/_kigi")), + ("fish", user_home.join(".config/fish/completions/kigi.fish")), ]; for (shell, dest) in completions { @@ -1275,9 +1343,9 @@ async fn regenerate_completions(binary: &std::path::Path, kigi_home: &std::path: } let mut cmd = tokio::process::Command::new(binary); cmd.args(["completions", shell]) - .stdin(std::process::Stdio::null()) - .stdout(std::process::Stdio::piped()) - .stderr(std::process::Stdio::null()); + .stdin(Stdio::null()) + .stdout(Stdio::piped()) + .stderr(Stdio::null()); kigi_tools::util::detach_command(&mut cmd); let Ok(output) = cmd.output().await else { continue; @@ -1290,9 +1358,9 @@ async fn regenerate_completions(binary: &std::path::Path, kigi_home: &std::path: /// Compute a relative symlink target from `link` to `target`. /// -/// When both paths share a grandparent (e.g. `~/.kigi/bin/grok` and -/// `~/.kigi/downloads/grok-0.1.203-linux-x86_64`), returns a relative path -/// like `../downloads/grok-0.1.203-linux-x86_64`. When they share the same +/// When both paths share a grandparent (e.g. `~/.kigi/bin/kigi` and +/// `~/.kigi/downloads/kigi-0.1.2-linux-x86_64`), returns a relative path +/// like `../downloads/kigi-0.1.2-linux-x86_64`. When they share the same /// parent directory, returns just the filename. Falls back to the absolute /// `target` path for any other layout. /// @@ -1300,265 +1368,57 @@ async fn regenerate_completions(binary: &std::path::Path, kigi_home: &std::path: /// into a container with a different `$HOME` (and thus a different absolute /// prefix). #[cfg(unix)] -fn relative_symlink_target(target: &std::path::Path, link: &std::path::Path) -> std::path::PathBuf { +fn relative_symlink_target(target: &Path, link: &Path) -> PathBuf { let (Some(target_parent), Some(link_parent)) = (target.parent(), link.parent()) else { return target.to_path_buf(); }; - // Same directory — just the filename (e.g. grok-latest -> grok-0.1.203-…) + // Same directory — just the filename (e.g. kigi-latest -> kigi-0.1.2-…) if target_parent == link_parent && let Some(name) = target.file_name() { - return std::path::PathBuf::from(name); + return PathBuf::from(name); } - // Sibling directories — ../target_dir/filename (e.g. bin/grok -> ../downloads/grok-…) + // Sibling directories — ../target_dir/filename (e.g. bin/kigi -> ../downloads/kigi-…) if let (Some(tp), Some(lp)) = (target_parent.parent(), link_parent.parent()) && tp == lp && let (Some(dir_name), Some(file_name)) = (target_parent.file_name(), target.file_name()) { - return std::path::Path::new("..").join(dir_name).join(file_name); + return Path::new("..").join(dir_name).join(file_name); } target.to_path_buf() } -/// Swap `~/.kigi/bin/{kigi,grok,agent}` to point at `binary_path`. Returns the -/// `grok` link path (for [`regenerate_completions`]). -/// -/// `grok` and `agent` are first-class entry points that the bootstrap -/// installers (`install.sh`, `install.ps1`, `install-enterprise.sh`) -/// maintain in lockstep, and so must the updater — otherwise `grok update` -/// leaves `agent` pinned at the previous version. +/// Swap `~/.kigi/bin/kigi` to point at `binary_path`. Returns the link path +/// (for [`regenerate_completions`]). /// /// Unix: atomic symlink swap with relative target (survives Docker -/// bind-mounts of `~/.kigi/`). Windows: [`windows_replace_exe`]. -/// -/// **All-or-nothing.** Each link's prior state is captured (Unix: prior -/// symlink target; Windows: `.rollback.bak`; or `Absent` marker via -/// `symlink_metadata`) before the swap, and any earlier successful swaps -/// are rolled back if a later one fails — including *removing* a link that -/// didn't exist before. Restore failures go to `tracing::warn!`; the swap -/// error itself propagates unwrapped so the caller's `reinstall_hint` wrap -/// stays the user-visible message. -async fn swap_managed_bin_links( - binary_path: &std::path::Path, - bin_dir: &std::path::Path, -) -> Result { - // `kigi` is the canonical managed link (what `kigi_application()` and the - // disk-version probe read); `grok` is kept as a legacy compat link until - // the M3 distribution rewrite retires it. +/// bind-mounts of `~/.kigi/`); a failed swap leaves the prior link intact. +/// Windows: [`windows_replace_exe`], which restores the prior binary itself +/// when the replacement copy fails. +async fn swap_managed_bin_link(binary_path: &Path, bin_dir: &Path) -> Result { let kigi_name = if cfg!(windows) { "kigi.exe" } else { "kigi" }; - let grok_name = if cfg!(windows) { "grok.exe" } else { "grok" }; - let agent_name = if cfg!(windows) { "agent.exe" } else { "agent" }; - let kigi_link = bin_dir.join(kigi_name); - let grok_link = bin_dir.join(grok_name); - let agent_link = bin_dir.join(agent_name); - let link_paths: [std::path::PathBuf; 3] = [kigi_link.clone(), grok_link, agent_link]; + let link_path = bin_dir.join(kigi_name); - // Capture every link up-front so a 2nd-link capture failure can't - // strand the 1st mid-swap. - let mut captured: Vec = Vec::with_capacity(link_paths.len()); - for path in &link_paths { - match LinkRollback::capture(path).await { - Ok(rb) => captured.push(rb), - Err(e) => { - // Nothing swapped yet; drop any Windows .rollback.bak files. - for prior in &captured { - prior.cleanup().await; - } - return Err(e) - .with_context(|| format!("capturing rollback state for {}", path.display())); - } - } - } - - let mut completed: Vec<&LinkRollback> = Vec::with_capacity(captured.len()); - for (i, (link_path, rollback)) in link_paths.iter().zip(captured.iter()).enumerate() { - #[cfg(unix)] - let swap_result = { - let rel_target = relative_symlink_target(binary_path, link_path); - atomic_symlink_swap(&rel_target, link_path).await - }; - #[cfg(windows)] - let swap_result = windows_replace_exe(binary_path, link_path).await; - #[cfg(not(any(unix, windows)))] - let swap_result: Result<()> = { - // No managed bin layout on this target; no-op. - let _ = (binary_path, link_path); - Ok(()) - }; - - match swap_result { - Ok(()) => completed.push(rollback), - Err(e) => { - // Restore each successful swap in reverse. On restore - // failure keep the .rollback.bak as a recovery artifact - // (Windows only) and warn!; the swap error propagates so - // `reinstall_hint` is the user-visible message. - for prior in completed.iter().rev() { - if let Err(restore_err) = prior.restore().await { - let backup_note = prior.backup_path().map_or(String::new(), |p| { - format!(" (prior binary preserved at {})", p.display()) - }); - tracing::warn!( - "failed to roll back managed bin link {}: {restore_err:#}{backup_note}", - prior.link_path().display(), - ); - continue; - } - prior.cleanup().await; - } - // Failed swap had no active state to restore; drop its backup. - rollback.cleanup().await; - // Drop backups for never-attempted later captures (Windows orphans). - for later in &captured[i + 1..] { - later.cleanup().await; - } - return Err(e); - } - } - } - - for cap in &captured { - cap.cleanup().await; - } - Ok(kigi_link) -} - -/// Snapshot of a managed-bin link's prior state for rollback in -/// [`swap_managed_bin_links`]. `Absent` vs `Present` is discriminated up -/// front via `symlink_metadata` so capture errors never get misread as -/// "link was absent". -enum LinkRollback { - /// Link was absent before the swap; rollback removes the one we created. - Absent { link_path: std::path::PathBuf }, - /// Link existed before the swap; rollback restores its prior contents. - Present { - link_path: std::path::PathBuf, - /// Unix: prior symlink target (relative or absolute). - #[cfg(unix)] - prior_target: std::path::PathBuf, - /// Windows: `.rollback.bak` copy of the previous binary. - #[cfg(windows)] - backup_path: std::path::PathBuf, - }, -} - -impl LinkRollback { - async fn capture(link_path: &std::path::Path) -> Result { - let lp = link_path.to_path_buf(); - - // `symlink_metadata` (lstat) handles valid symlinks, broken - // symlinks, and regular files alike. Any IO error other than - // NotFound aborts the swap before mutation. - match tokio::fs::symlink_metadata(&lp).await { - Ok(_) => {} - Err(e) if e.kind() == std::io::ErrorKind::NotFound => { - return Ok(LinkRollback::Absent { link_path: lp }); - } - Err(e) => { - return Err(e).with_context(|| format!("stat {} before swap", lp.display())); - } - } - - #[cfg(unix)] - { - let prior_target = tokio::fs::read_link(&lp) - .await - .with_context(|| format!("reading prior symlink target {}", lp.display()))?; - Ok(LinkRollback::Present { - link_path: lp, - prior_target, - }) - } - #[cfg(windows)] - { - // Per-process+sequence backup name via `unique_temp_sibling` - // so concurrent updaters can't clobber each other's backups. - let backup_path = unique_temp_sibling(&lp, "rollback.bak"); - tokio::fs::copy(&lp, &backup_path).await.with_context(|| { - format!( - "backing up {} to {} before swap", - lp.display(), - backup_path.display(), - ) - })?; - Ok(LinkRollback::Present { - link_path: lp, - backup_path, - }) - } - } - - fn link_path(&self) -> &std::path::Path { - match self { - LinkRollback::Absent { link_path } => link_path, - LinkRollback::Present { link_path, .. } => link_path, - } - } - - /// Path to the on-disk backup (Windows only — Unix is in-memory). - #[cfg(windows)] - fn backup_path(&self) -> Option<&std::path::Path> { - match self { - LinkRollback::Present { backup_path, .. } => Some(backup_path), - LinkRollback::Absent { .. } => None, - } - } #[cfg(unix)] - fn backup_path(&self) -> Option<&std::path::Path> { - None + { + let rel_target = relative_symlink_target(binary_path, &link_path); + atomic_symlink_swap(&rel_target, &link_path) + .await + .with_context(|| format!("swapping managed bin link {}", link_path.display()))?; + } + #[cfg(windows)] + { + windows_replace_exe(binary_path, &link_path) + .await + .with_context(|| format!("replacing managed binary {}", link_path.display()))?; + } + #[cfg(not(any(unix, windows)))] + { + // No managed bin layout on this target; no-op. + let _ = binary_path; } - async fn restore(&self) -> Result<()> { - match self { - LinkRollback::Absent { link_path } => { - // Remove the link we created. NotFound (someone else - // cleaned up) is fine; anything else is a real failure. - match tokio::fs::remove_file(link_path).await { - Ok(()) => Ok(()), - Err(e) if e.kind() == std::io::ErrorKind::NotFound => Ok(()), - Err(e) => Err(e).with_context(|| { - format!("removing rolled-back link {}", link_path.display()) - }), - } - } - #[cfg(unix)] - LinkRollback::Present { - link_path, - prior_target, - } => atomic_symlink_swap(prior_target, link_path) - .await - .with_context(|| { - format!("restoring prior symlink target for {}", link_path.display()) - }), - #[cfg(windows)] - LinkRollback::Present { - link_path, - backup_path, - } => { - // Route through `windows_replace_exe` so rollback inherits - // the same ERROR_SHARING_VIOLATION rename-aside fallback - // as the forward path. - windows_replace_exe(backup_path, link_path) - .await - .with_context(|| { - format!( - "restoring {} from {}", - link_path.display(), - backup_path.display() - ) - }) - } - } - } - - async fn cleanup(&self) { - #[cfg(windows)] - if let LinkRollback::Present { backup_path, .. } = self { - let _ = tokio::fs::remove_file(backup_path).await; - } - #[cfg(unix)] - let _ = self; // no on-disk backup on Unix - } + Ok(link_path) } /// Atomically swap a symlink to point to a new target. @@ -1570,7 +1430,7 @@ impl LinkRollback { /// running process has mmap'd causes SIGKILL because the kernel can no longer /// verify the code signature of the executable pages. #[cfg(unix)] -async fn atomic_symlink_swap(target: &std::path::Path, link_path: &std::path::Path) -> Result<()> { +async fn atomic_symlink_swap(target: &Path, link_path: &Path) -> Result<()> { // Per-racer temp name: a shared one makes remove_file → symlink racy // (EEXIST, or ENOENT when another racer renames the link away). sweep_stale_tmp_links(link_path, STALE_TMP_AGE).await; @@ -1585,7 +1445,7 @@ async fn atomic_symlink_swap(target: &std::path::Path, link_path: &std::path::Pa /// symlink and rename. Only those older than `max_age` are removed, so a /// concurrent racer's in-flight link is never deleted out from under it. #[cfg(unix)] -async fn sweep_stale_tmp_links(link_path: &std::path::Path, max_age: Duration) { +async fn sweep_stale_tmp_links(link_path: &Path, max_age: Duration) { let (Some(dir), Some(name)) = ( link_path.parent(), link_path.file_name().and_then(|n| n.to_str()), @@ -1632,7 +1492,7 @@ async fn sweep_stale_tmp_links(link_path: &std::path::Path, max_age: Duration) { /// swept best-effort at the start of each cycle; still-locked ones survive /// until a later update runs after those processes exit. #[cfg(windows)] -async fn windows_replace_exe(src: &std::path::Path, dest: &std::path::Path) -> Result<()> { +async fn windows_replace_exe(src: &Path, dest: &Path) -> Result<()> { let file_name = dest .file_name() .ok_or_else(|| anyhow::anyhow!("destination has no filename: {}", dest.display()))? @@ -1690,7 +1550,7 @@ async fn windows_replace_exe(src: &std::path::Path, dest: &std::path::Path) -> R rename_result.map_err(|e| { anyhow::anyhow!( "cannot rename locked executable {}: {e}\n\ - Close all running grok sessions and retry.", + Close all running kigi sessions and retry.", dest.display(), ) })?; @@ -1708,8 +1568,8 @@ async fn windows_replace_exe(src: &std::path::Path, dest: &std::path::Path) -> R /// `.old.{pid}-{seq}.old` asides accumulated by prior update cycles. /// Locked ones (still-running images) survive and are collected by a later /// update once those processes exit. The `.old` prefix keeps the sweep -/// away from `` itself, other executables' leftovers, and the -/// `.rollback.bak` / `.tmp` sibling shapes. +/// away from `` itself, other executables' leftovers, and the `.tmp` +/// sibling shapes. /// /// Unlike `sweep_stale_tmp_links` there is deliberately no `max_age` gate: /// rename preserves mtime, so a racer's seconds-old aside already looks @@ -1718,7 +1578,7 @@ async fn windows_replace_exe(src: &std::path::Path, dest: &std::path::Path) -> R /// rollback source while both racers converge on the same dest) is the /// accepted lock-free residual race (see `tmp_download_path`). #[cfg(windows)] -async fn sweep_old_exe_backups(old: &std::path::Path) { +async fn sweep_old_exe_backups(old: &Path) { let _ = tokio::fs::remove_file(old).await; let (Some(dir), Some(old_name)) = (old.parent(), old.file_name().and_then(|n| n.to_str())) else { @@ -1741,21 +1601,21 @@ async fn sweep_old_exe_backups(old: &std::path::Path) { /// Best-effort cleanup of old versioned binaries for a given binary name. /// -/// Mirrors the npm `cleanupOldVersions()` policy: keeps the current version -/// plus one previous version (in case a process is still running the old binary -/// and hasn't fully loaded all pages yet — deleting it on macOS causes SIGKILL -/// because the kernel can no longer verify the code signature). +/// Keeps the current version plus one previous version (in case a process is +/// still running the old binary and hasn't fully loaded all pages yet — +/// deleting it on macOS causes SIGKILL because the kernel can no longer +/// verify the code signature). /// -/// `bin_prefix` is the binary name prefix, e.g. `"grok"` or `"grok-pager"`. -/// Files must match `{bin_prefix}-{digit}*` to be considered versioned binaries -/// (this avoids `grok-*` matching `grok-pager-*` or `grok-latest`). +/// `bin_prefix` is the binary name prefix, e.g. `"kigi"`. Files must match +/// `{bin_prefix}-{digit}*` to be considered versioned binaries (this avoids +/// `kigi-*` matching `kigi-latest` or differently-suffixed siblings). /// /// Temporary/partial files (containing `.tmp`) are deleted only once they /// are **stale** (mtime older than [`STALE_TMP_AGE`]). A fresh `.tmp` may be /// a concurrent updater's in-flight download — the same-instant race the /// lock-free design accepts — and deleting it out from under that updater /// would make its atomic rename fail. -async fn cleanup_old_downloads(dir: &std::path::Path, bin_prefix: &str, current_version: &str) { +async fn cleanup_old_downloads(dir: &Path, bin_prefix: &str, current_version: &str) { let prefix = format!("{}-", bin_prefix); let current_semver = match semver::Version::parse(current_version) { Ok(v) => v, @@ -1806,21 +1666,21 @@ async fn cleanup_old_downloads(dir: &std::path::Path, bin_prefix: &str, current_ } continue; } - // Skip symlinks (e.g. grok-latest). + // Skip symlinks (e.g. kigi-latest). if let Ok(ft) = entry.file_type().await && ft.is_symlink() { continue; } // The suffix after the prefix must start with a digit to be a versioned - // binary (avoids `grok-latest`, `grok-pager-*` when prefix is `grok`). + // binary (avoids `kigi-latest` and other non-versioned siblings). let suffix = &name[prefix.len()..]; if !suffix.starts_with(|c: char| c.is_ascii_digit()) { continue; } // Extract the version portion via the shared parser (handles the - // internal `grok-0.1.150-macos-aarch64`, pre-release, and npm - // `grok-0.1.150` layouts — see `version_from_versioned_binary_name`). + // managed `kigi-0.1.0-macos-aarch64`, pre-release, and bare + // `kigi-0.1.0` layouts — see `version_from_versioned_binary_name`). let Some(ver_str) = crate::version::version_from_versioned_binary_name(&name, bin_prefix) else { continue; @@ -1838,7 +1698,6 @@ async fn cleanup_old_downloads(dir: &std::path::Path, bin_prefix: &str, current_ versioned.sort_by(|a, b| b.0.cmp(&a.0)); // Keep the most recent old version (index 0), delete the rest (index 1+). - // This matches the npm policy: current + 1 previous. for (_, name) in versioned.iter().skip(1) { let path = dir.join(name); // Same freshness guard as the `.tmp` sweep: a versioned binary @@ -1861,285 +1720,6 @@ async fn cleanup_old_downloads(dir: &std::path::Path, bin_prefix: &str, current_ } } -/// Download a single asset from a GitHub release via `gh release download`. -async fn gh_release_download(tag: &str, pattern: &str, dest: &std::path::Path) -> Result<()> { - let pb = ProgressBar::new_spinner(); - pb.set_style( - ProgressStyle::default_spinner() - .template(" {spinner:.cyan} Downloading from GitHub Releases...") - .unwrap(), - ); - pb.enable_steady_tick(Duration::from_millis(100)); - - let mut cmd = tokio::process::Command::new("gh"); - cmd.args([ - "release", - "download", - tag, - "--repo", - crate::version::GH_RELEASE_REPO, - "--pattern", - pattern, - "--output", - &dest.to_string_lossy(), - "--clobber", - ]) - .stdin(Stdio::null()) - .stdout(Stdio::null()) - .stderr(Stdio::piped()); - kigi_tools::util::detach_command(&mut cmd); - cmd.envs(kigi_tools::util::pager_env()); - let output = cmd.output().await?; - - pb.finish_and_clear(); - - if !output.status.success() { - let stderr = String::from_utf8_lossy(&output.stderr); - anyhow::bail!( - "gh release download failed for {} tag {} from {}: {}", - pattern, - tag, - crate::version::GH_RELEASE_REPO, - stderr.trim() - ); - } - Ok(()) -} - -/// Download and install grok from GitHub Releases (xai-org-shared/grok-build). -/// -/// Uses `gh release download` to fetch the binary matching the current platform. -/// This works anywhere the `gh` CLI is authenticated, without needing npm or -/// internal network access. -async fn install_gh_release(target: Option<&str>) -> Result<()> { - let (os, arch) = detect_platform()?; - let platform = format!("{}-{}", os, arch); - - let version = match target { - Some(v) => v.to_string(), - None => crate::version::fetch_gh_release_version("stable").await?, - }; - - let kigi_home = kigi_home(); - let download_dir = kigi_home.join("downloads"); - let bin_dir = kigi_home.join("bin"); - tokio::fs::create_dir_all(&download_dir).await?; - tokio::fs::create_dir_all(&bin_dir).await?; - - let binary_name = format!("grok-{}-{}", version, platform); - let binary_path = download_dir.join(&binary_name); - let tag = format!("v{}", version); - - eprintln!( - " Downloading grok v{} ({}) from GitHub Releases...", - version, platform - ); - - gh_release_download(&tag, &binary_name, &binary_path).await?; - - // chmod +x - #[cfg(unix)] - { - use std::os::unix::fs::PermissionsExt; - tokio::fs::set_permissions(&binary_path, std::fs::Permissions::from_mode(0o755)).await?; - } - - // Atomic swap of ~/.kigi/bin/{kigi,grok,agent} -> downloaded binary. - swap_managed_bin_links(&binary_path, &bin_dir).await?; - - // Update grok-latest -> versioned binary so any existing symlinks that route - // through it (e.g. /usr/local/bin/grok -> ~/.kigi/downloads/grok-latest) - // resolve to the newly installed version. - #[cfg(unix)] - { - let latest_path = download_dir.join("grok-latest"); - let rel_target = relative_symlink_target(&binary_path, &latest_path); - if let Err(e) = atomic_symlink_swap(&rel_target, &latest_path).await { - tracing::warn!("Failed to update grok-latest symlink: {e}"); - } - } - - // Also update /usr/local/bin/{grok,agent} if either points directly into - // ~/.kigi/downloads/ (legacy layout — skips the grok-latest indirection). - // Permission errors ignored. - #[cfg(unix)] - for name in ["grok", "agent"] { - let system_link = std::path::PathBuf::from(format!("/usr/local/bin/{name}")); - if let Ok(existing_target) = tokio::fs::read_link(&system_link).await { - let target_str = existing_target.to_string_lossy(); - if target_str.contains(".kigi/downloads/") && !target_str.ends_with("grok-latest") { - // Try to update; ignore permission errors - let _ = atomic_symlink_swap(&binary_path, &system_link).await; - } - } - } - - remove_stale_pager(&bin_dir).await; - - eprintln!(); - - // Clean up old versioned binaries (keeps current + 1 previous). - cleanup_old_downloads(&download_dir, "grok", &version).await; - cleanup_old_downloads(&download_dir, "grok-pager", &version).await; - - // Persist installer to config.toml so future runs auto-detect gh-release. - let _ = config::update_config(|st| { - st.cli.installer = Some("gh-release".to_string()); - }) - .await; - - Ok(()) -} - -/// Creates a temporary .npmrc file with the NPM token if present. -/// Returns the path to the created file, or None if no token was set. -fn create_temp_npmrc(npm_registry: Option<&str>) -> Result> { - if let Ok(token) = std::env::var("NPM_TOKEN") { - let token = token.trim(); - if !token.is_empty() { - let dir = std::env::temp_dir(); - let npmrc_path = dir.join(format!(".npmrc-{}-install", std::process::id())); - let registry_host = npm_registry - .and_then(|r| reqwest::Url::parse(r).ok()) - .map(|u| { - let host = u.host_str().unwrap_or("registry.npmjs.org"); - let port_suffix = u.port().map(|p| format!(":{}", p)).unwrap_or_default(); - format!("{}{}{}", host, port_suffix, u.path().trim_end_matches('/')) - }) - .unwrap_or_else(|| "registry.npmjs.org".to_string()); - let npmrc_content = format!("//{}/:_authToken={}\n", registry_host, token); - std::fs::write(&npmrc_path, npmrc_content)?; - #[cfg(unix)] - { - use std::os::unix::fs::PermissionsExt; - std::fs::set_permissions(&npmrc_path, std::fs::Permissions::from_mode(0o600))?; - } - return Ok(Some(npmrc_path)); - } - } - Ok(None) -} - -/// Check if other grok processes are running (macOS only). -/// -/// On macOS, `npm i -g` replaces the vendored binary in node_modules in-place. -/// Any grok process running from that vendored path will be SIGKILL'd by the -/// kernel because macOS (Apple Silicon in particular) can no longer verify -/// the code signature of the mmap'd executable pages once the backing file -/// inode is unlinked. -/// -/// While our postinstall.js now uses versioned binaries under ~/.kigi/bin/ -/// (so processes launched from there are safe), older installations or npx -/// invocations may still be running the vendored binary directly. -#[cfg(target_os = "macos")] -fn warn_if_other_grok_processes_running() { - let my_pid = std::process::id().to_string(); - let mut cmd = Command::new("pgrep"); - cmd.args(["-f", "grok"]) - .stdin(Stdio::null()) - .stdout(Stdio::piped()) - .stderr(Stdio::null()); - kigi_tools::util::detach_std_command(&mut cmd); - if let Ok(output) = cmd.output() { - let stdout = String::from_utf8_lossy(&output.stdout); - let other_pids: Vec<&str> = stdout - .lines() - .map(|l| l.trim()) - .filter(|pid| !pid.is_empty() && *pid != my_pid) - .collect(); - if !other_pids.is_empty() { - eprintln!( - " ⚠ Warning: {} other grok process(es) detected.", - other_pids.len() - ); - eprintln!(" Processes running from the npm vendored binary path may be"); - eprintln!(" killed by macOS when npm replaces the package files."); - eprintln!(" Consider closing other grok sessions before updating."); - eprintln!(); - } - } -} - -/// Test-only entry point: invokes the private [`install_npm`] for tests -/// that swap in a fake `npm` via PATH. -#[doc(hidden)] -pub fn install_npm_for_test( - target: Option<&str>, - channel: &str, - npm_registry: Option<&str>, -) -> Result<()> { - install_npm(target, channel, npm_registry) -} - -fn install_npm(target: Option<&str>, channel: &str, npm_registry: Option<&str>) -> Result<()> { - // Warn on macOS about potential impact on other running processes. - #[cfg(target_os = "macos")] - warn_if_other_grok_processes_running(); - - let version_arg = match target { - Some(ver) => format!("@xai-official/grok@{ver}"), - None => { - // All current callers resolve the version via get_latest_version - // (which applies max(stable, alpha) for the alpha channel) before - // reaching here. Falling back to a raw dist-tag would bypass that - // logic, so warn loudly if this path is ever hit. - tracing::warn!( - channel, - "install_npm called without a resolved version, falling back to dist-tag" - ); - format!( - "@xai-official/grok@{}", - if channel == "alpha" { - "alpha" - } else { - "latest" - } - ) - } - }; - - let pb = ProgressBar::new_spinner(); - pb.set_style( - ProgressStyle::default_spinner() - .template(" {spinner:.cyan} Installing via npm...") - .unwrap(), - ); - pb.enable_steady_tick(Duration::from_millis(100)); - - let mut cmd = Command::new("npm"); - cmd.args(["i", "-g", &version_arg]); - if let Some(registry) = npm_registry { - cmd.arg(format!("--registry={}", registry)); - } - - // Use a temporary .npmrc to avoid exposing the token in process lists or shell history. - let temp_npmrc = create_temp_npmrc(npm_registry)?; - if let Some(ref npmrc_path) = temp_npmrc { - cmd.arg(format!("--userconfig={}", npmrc_path.display())); - } - - cmd.stdin(Stdio::null()) - .stdout(Stdio::null()) - // inherit, not piped — same rationale as run_update_subcommand. - .stderr(Stdio::inherit()); - kigi_tools::util::detach_std_command(&mut cmd); - let status = cmd.status()?; - - if let Some(path) = temp_npmrc - && let Err(e) = std::fs::remove_file(&path) - { - tracing::warn!("Failed to remove temp .npmrc file: {}", e); - } - - pb.finish_and_clear(); - - if !status.success() { - anyhow::bail!("npm install failed. Please try again."); - } - eprintln!(); - Ok(()) -} - pub async fn apply_channel_switch(channel_switch: Option<&str>, update_config: &mut UpdateConfig) { if let Some(ch) = channel_switch && update_config.channel != ch @@ -2153,7 +1733,7 @@ pub async fn apply_channel_switch(channel_switch: Option<&str>, update_config: & } } -/// Run the `grok update` command. Returns `Ok(Some(version))` when the target +/// Run the `kigi update` command. Returns `Ok(Some(version))` when the target /// version is present on disk afterwards — either installed by this call or /// found already installed (e.g. by a concurrent background download); returns /// `Ok(None)` when there is no installer or no applicable target. Callers use @@ -2185,7 +1765,7 @@ pub async fn run_update( .await; } - let current_version = get_installed_grok_version(); + let current_version = get_installed_kigi_version(); // When --version is given, skip the latest-version check and install directly if let Some(version) = pinned_version { @@ -2193,7 +1773,7 @@ pub async fn run_update( anyhow::bail!("{e}"); } eprintln!( - "Installing Grok {} (current: {})...", + "Installing Kigi {} (current: {})...", version, current_version ); eprintln!(); @@ -2218,7 +1798,7 @@ pub async fn run_update( .unwrap(), ); pb.enable_steady_tick(Duration::from_millis(100)); - let latest_version = fetch_latest_version(installer, update_config).await?; + let latest_version = fetch_latest_version(update_config).await?; pb.finish_and_clear(); let install_target = match crate::minimum_version::apply_floor(&latest_version) { @@ -2236,9 +1816,7 @@ pub async fn run_update( // What's on disk wins over this process's compiled-in version: a // concurrent or earlier updater (TUI background download, leader hourly // checker) may already have installed the target, in which case there is - // nothing to download. Gated on the installer maintaining the managed - // symlink — for npm a leftover symlink would lie (see - // `disk_version_for_installer`). + // nothing to download. let effective_current = disk_version_for_installer(installer).unwrap_or_else(|| current_version.clone()); @@ -2258,7 +1836,7 @@ pub async fn run_update( if channel_switch.is_some() && effective_current != install_target { // Fall through to install } else { - let stable_ptr = try_fetch_stable_pointer().await; + let stable_ptr = try_fetch_stable_version().await; write_version_cache(&install_target, stable_ptr.as_deref()).await; eprintln!("Already up to date ({}).", effective_current); // Retry if a prior sync failed. @@ -2304,24 +1882,24 @@ pub async fn run_update( .unwrap_or(true) { eprintln!( - "Forcing reinstall of Grok {} (already up to date)", + "Forcing reinstall of Kigi {} (already up to date)", effective_current ); &effective_current } else { - eprintln!("Updating Grok {} → {}", effective_current, install_target); + eprintln!("Updating Kigi {} → {}", effective_current, install_target); &install_target }; eprintln!(); run_install_script(installer, Some(target_version), update_config).await?; - // Fetch the stable pointer now so the new binary has it immediately + // Fetch the stable version now so the new binary has it immediately // for channel_label() display, rather than waiting for the next // TTL-gated update check (~30 min). - let stable_ptr = try_fetch_stable_pointer().await; + let stable_ptr = try_fetch_stable_version().await; write_version_cache(target_version, stable_ptr.as_deref()).await; refresh_deployment_config().await; - eprintln!(" ✓ grok v{} installed successfully!", target_version); + eprintln!(" ✓ kigi v{} installed successfully!", target_version); if !force && std::env::var_os("KIGI_AUTO_UPDATE").is_none() { eprintln!(" Please restart Kigi."); @@ -2348,11 +1926,11 @@ async fn refresh_deployment_config() { match kigi_shell::managed_config::sync().await { Ok(true) => eprintln!(" Applied managed configuration."), Ok(false) => tracing::debug!("no managed configuration to apply"), - // Auth issues aren't actionable mid-update: quiet here, loud on `grok setup`. + // Auth issues aren't actionable mid-update: quiet here, loud on `kigi setup`. Err(e) if e.is_auth_rejection() => tracing::debug!("managed config not applied: {e}"), Err(e) if e.is_retryable() => { tracing::debug!("managed config refresh failed: {e}"); - eprintln!(" Couldn't apply managed configuration. Run `grok setup` to retry."); + eprintln!(" Couldn't apply managed configuration. Run `kigi setup` to retry."); } Err(e) => eprintln!(" Couldn't apply managed configuration. {e}"), } @@ -2364,12 +1942,12 @@ mod tests { #[test] fn test_tmp_download_path_is_unique_per_version_and_per_attempt() { - // The old `with_extension("tmp")` collapsed every 0.1.x versioned - // name onto a single `grok-0.1.tmp`; the helper must keep distinct + // `with_extension("tmp")` would collapse every 0.1.x versioned name + // onto a single `kigi-0.1.tmp`; the helper must keep distinct // versions distinct AND make repeated attempts (same process, e.g. // concurrent tokio tasks) unique. - let dest_181 = std::path::Path::new("/home/u/.kigi/downloads/grok-0.1.181-linux-x86_64"); - let dest_182 = std::path::Path::new("/home/u/.kigi/downloads/grok-0.1.182-linux-x86_64"); + let dest_181 = Path::new("/home/u/.kigi/downloads/kigi-0.1.181-linux-x86_64"); + let dest_182 = Path::new("/home/u/.kigi/downloads/kigi-0.1.182-linux-x86_64"); let a = tmp_download_path(dest_181); let b = tmp_download_path(dest_182); @@ -2383,7 +1961,7 @@ mod tests { let name = a.file_name().unwrap().to_string_lossy().to_string(); assert!( - name.starts_with("grok-0.1.181-linux-x86_64."), + name.starts_with("kigi-0.1.181-linux-x86_64."), "full versioned name must be preserved: {name}" ); assert!( @@ -2392,63 +1970,166 @@ mod tests { ); assert_eq!( a.parent(), - std::path::Path::new("/home/u/.kigi/downloads").into(), + Path::new("/home/u/.kigi/downloads").into(), "temp file must stay in the destination directory for atomic rename" ); } + // ────────────────────────────────────────────────────────────────────── + // needs_update — channel/upgrade/downgrade semantics + // ────────────────────────────────────────────────────────────────────── + #[test] - fn test_needs_update_same_version() { - assert_eq!( - needs_update("0.1.141", "0.1.141", "stable", false), - Some(false) - ); + fn test_needs_update_matrix() { + // (current, target, channel, allow_downgrade, expected) + let cases: &[(&str, &str, &str, bool, Option)] = &[ + // Same version: never an update, regardless of allow_downgrade. + ("0.1.141", "0.1.141", "stable", false, Some(false)), + ("0.2.5", "0.2.5", "stable", true, Some(false)), + ("0.2.5", "0.2.5", "alpha", true, Some(false)), + // Plain upgrades. + ("0.1.140", "0.1.141", "stable", false, Some(true)), + ("0.2.5", "0.2.7", "stable", true, Some(true)), + ("0.2.5", "0.2.7", "alpha", false, Some(true)), + ("0.1.140", "0.1.999", "stable", false, Some(true)), + ("0.1.999", "0.2.0", "stable", false, Some(true)), + ("99.99.99", "100.0.0", "stable", false, Some(true)), + ("0.0.0", "0.0.1", "stable", false, Some(true)), + // Downgrades: only when the installer allows them. + ("0.1.141", "0.1.140", "stable", false, Some(false)), + ("0.2.7", "0.2.5", "stable", true, Some(true)), + ("0.2.7", "0.2.5", "alpha", true, Some(true)), + ("0.1.207", "0.1.206", "enterprise", true, Some(true)), + ("2.0.0", "1.99.99", "stable", true, Some(true)), + ("2.0.0", "1.99.99", "stable", false, Some(false)), + // Pre-release targets rejected on stable/enterprise, even for + // rollbacks. + ("0.1.139", "0.1.140-alpha.1", "stable", false, Some(false)), + ("0.2.7", "0.2.5-alpha.1", "stable", true, Some(false)), + ("0.2.7", "0.2.5-alpha.1", "enterprise", true, Some(false)), + ( + "0.1.150-alpha.1", + "0.1.151-alpha.1", + "stable", + false, + Some(false), + ), + // Pre-release CURRENT on stable/enterprise: force-install a + // release even if semver-lower, independent of allow_downgrade. + ("0.1.149-alpha.1", "0.1.148", "stable", false, Some(true)), + ("0.1.149-alpha.1", "0.1.148", "stable", true, Some(true)), + ( + "0.1.206-alpha.3", + "0.1.206", + "enterprise", + false, + Some(true), + ), + // Alpha channel follows raw semver. + ("0.1.140-alpha.8", "0.1.140", "alpha", false, Some(true)), + ( + "0.1.148-alpha.1", + "0.1.148-alpha.3", + "alpha", + false, + Some(true), + ), + ( + "0.1.148-alpha.3", + "0.1.148-alpha.2", + "alpha", + false, + Some(false), + ), + ( + "0.1.148-alpha.3", + "0.1.148-alpha.2", + "alpha", + true, + Some(true), + ), + ("0.1.150-alpha.99", "0.1.150", "alpha", false, Some(true)), + ( + "0.1.150-alpha.5", + "0.1.150-beta.1", + "alpha", + false, + Some(true), + ), + ("0.1.140", "0.1.139-alpha.5", "alpha", false, Some(false)), + // Enterprise behaves like stable for upgrades. + ("0.1.205", "0.1.206", "enterprise", false, Some(true)), + ("0.1.207", "0.1.206", "enterprise", false, Some(false)), + ( + "0.1.205", + "0.1.206-alpha.1", + "enterprise", + false, + Some(false), + ), + // Parse failures and unknown channels → None. + ("not-a-version", "0.1.141", "stable", false, None), + ("0.1.141", "garbage", "stable", false, None), + ("garbage", "0.1.141", "alpha", false, None), + ("", "0.1.141", "stable", false, None), + ("0.1.141", "", "stable", false, None), + (" 0.1.141", "0.1.142", "stable", false, None), + ("0.1", "0.1.141", "stable", false, None), + ("0.1.140", "0.1.141", "beta", false, None), + ("0.1.140", "0.1.141", "beta", true, None), + ("0.1.140", "0.1.141", "STABLE", false, None), + ("0.1.140", "0.1.141", "Stable", false, None), + ("0.1.140", "0.1.141", "", false, None), + ]; + for (current, target, channel, allow_downgrade, expected) in cases { + assert_eq!( + needs_update(current, target, channel, *allow_downgrade), + *expected, + "needs_update({current:?}, {target:?}, {channel:?}, {allow_downgrade})" + ); + } } #[test] - fn test_needs_update_invalid_versions() { + fn test_needs_update_with_build_metadata_uses_semver_crate_ordering() { + // SUBTLE: per the semver SPEC, build metadata (after `+`) MUST be + // ignored when determining version precedence. However the `semver` + // crate's `PartialOrd` impl compares build metadata lexicographically + // for differing values. So `0.1.141+xyz > 0.1.141+abc` returns true + // here even though spec-wise they are equal. + // + // This means the release pipeline MUST NOT publish multiple builds of + // the same version differing only in build metadata, or auto-update + // will bounce users between them. The test locks in the surprising + // behavior so it can't change silently. assert_eq!( - needs_update("not-a-version", "0.1.141", "stable", false), - None + needs_update("0.1.141+abc", "0.1.141+xyz", "stable", false), + Some(true), + "semver crate orders by build metadata lexicographically (contra spec)" ); - assert_eq!(needs_update("0.1.141", "garbage", "stable", false), None); - } - - #[test] - fn test_needs_update_unknown_channel() { - assert_eq!(needs_update("0.1.140", "0.1.141", "beta", false), None); - } - - #[test] - fn test_needs_update_enterprise_channel_behaves_like_stable() { - // Enterprise uses the same conservative pre-release rules as stable. - // Same version: no update. assert_eq!( - needs_update("0.1.206", "0.1.206", "enterprise", false), - Some(false) - ); - // Newer stable: update. - assert_eq!( - needs_update("0.1.205", "0.1.206", "enterprise", false), - Some(true) - ); - // Older stable: no downgrade (allow_downgrade=false). - assert_eq!( - needs_update("0.1.207", "0.1.206", "enterprise", false), - Some(false) - ); - // Pre-release candidate rejected on enterprise channel. - assert_eq!( - needs_update("0.1.205", "0.1.206-alpha.1", "enterprise", false), - Some(false) - ); - // Current pre-release on enterprise forces upgrade (even to equal base). - assert_eq!( - needs_update("0.1.206-alpha.3", "0.1.206", "enterprise", false), + needs_update("0.1.141", "0.1.141+abc", "stable", false), Some(true) ); } + // ────────────────────────────────────────────────────────────────────── + // installer_allows_downgrade + // ────────────────────────────────────────────────────────────────────── + + #[test] + fn test_installer_allows_downgrade_internal_only() { + assert!(installer_allows_downgrade("internal")); + assert!(!installer_allows_downgrade("unknown")); + assert!(!installer_allows_downgrade("")); + assert!(!installer_allows_downgrade("npm")); + assert!(!installer_allows_downgrade("homebrew")); + } + + // ────────────────────────────────────────────────────────────────────── + // atomic_symlink_swap + // ────────────────────────────────────────────────────────────────────── + #[cfg(unix)] #[tokio::test] async fn test_atomic_symlink_swap_creates_new_symlink() { @@ -2456,7 +2137,7 @@ mod tests { let target = dir.path().join("binary-v1"); std::fs::write(&target, "v1").unwrap(); - let link = dir.path().join("grok"); + let link = dir.path().join("kigi"); // No existing symlink — should create one. atomic_symlink_swap(&target, &link).await.unwrap(); @@ -2467,30 +2148,7 @@ mod tests { #[cfg(unix)] #[tokio::test] - async fn test_atomic_symlink_swap_replaces_existing() { - let dir = tempfile::tempdir().unwrap(); - - let target_v1 = dir.path().join("binary-v1"); - std::fs::write(&target_v1, "v1").unwrap(); - let target_v2 = dir.path().join("binary-v2"); - std::fs::write(&target_v2, "v2").unwrap(); - - let link = dir.path().join("grok"); - // Set up initial symlink to v1. - std::os::unix::fs::symlink(&target_v1, &link).unwrap(); - assert_eq!(std::fs::read_to_string(&link).unwrap(), "v1"); - - // Swap to v2. - atomic_symlink_swap(&target_v2, &link).await.unwrap(); - - assert!(link.is_symlink()); - assert_eq!(std::fs::read_link(&link).unwrap(), target_v2); - assert_eq!(std::fs::read_to_string(&link).unwrap(), "v2"); - } - - #[cfg(unix)] - #[tokio::test] - async fn test_atomic_symlink_swap_preserves_old_target() { + async fn test_atomic_symlink_swap_replaces_existing_and_preserves_old_target() { let dir = tempfile::tempdir().unwrap(); let target_v1 = dir.path().join("binary-v1"); @@ -2498,12 +2156,16 @@ mod tests { let target_v2 = dir.path().join("binary-v2"); std::fs::write(&target_v2, "v2-content").unwrap(); - let link = dir.path().join("grok"); + let link = dir.path().join("kigi"); std::os::unix::fs::symlink(&target_v1, &link).unwrap(); + assert_eq!(std::fs::read_to_string(&link).unwrap(), "v1-content"); - // Swap to v2. atomic_symlink_swap(&target_v2, &link).await.unwrap(); + assert!(link.is_symlink()); + assert_eq!(std::fs::read_link(&link).unwrap(), target_v2); + assert_eq!(std::fs::read_to_string(&link).unwrap(), "v2-content"); + // The old target file must still exist on disk — this is the key // property that prevents SIGKILL on macOS. Running processes that // have binary-v1 mmap'd can continue to page-fault from it. @@ -2511,31 +2173,6 @@ mod tests { assert_eq!(std::fs::read_to_string(&target_v1).unwrap(), "v1-content"); } - #[cfg(unix)] - #[tokio::test] - async fn test_atomic_symlink_swap_no_intermediate_missing_state() { - // Verify that the link path always exists (is never absent) during - // the swap. We can't truly test atomicity without threads, but we - // can at least verify the path exists before and after. - let dir = tempfile::tempdir().unwrap(); - - let target_v1 = dir.path().join("binary-v1"); - std::fs::write(&target_v1, "v1").unwrap(); - let target_v2 = dir.path().join("binary-v2"); - std::fs::write(&target_v2, "v2").unwrap(); - - let link = dir.path().join("grok"); - std::os::unix::fs::symlink(&target_v1, &link).unwrap(); - assert!(link.exists(), "link should exist before swap"); - - atomic_symlink_swap(&target_v2, &link).await.unwrap(); - assert!(link.exists(), "link should exist after swap"); - - // No tmp-link file should be left behind. - let tmp_link = link.with_extension("tmp-link"); - assert!(!tmp_link.exists(), "temp link should be cleaned up"); - } - #[cfg(unix)] #[tokio::test] async fn test_atomic_symlink_swap_replaces_regular_file() { @@ -2546,8 +2183,8 @@ mod tests { let target = dir.path().join("binary-v2"); std::fs::write(&target, "v2").unwrap(); - let link = dir.path().join("grok"); - // Simulate an old installation where grok is a regular file. + let link = dir.path().join("kigi"); + // Simulate an old installation where kigi is a regular file. std::fs::write(&link, "old-binary").unwrap(); atomic_symlink_swap(&target, &link).await.unwrap(); @@ -2568,7 +2205,7 @@ mod tests { let target_v2 = dir.path().join("binary-v2"); std::fs::write(&target_v2, "v2").unwrap(); - let link = dir.path().join("grok"); + let link = dir.path().join("kigi"); std::os::unix::fs::symlink(&target_v1, &link).unwrap(); std::os::unix::fs::symlink(&target_v1, link.with_extension("tmp-link")).unwrap(); @@ -2583,24 +2220,24 @@ mod tests { let dir = tempfile::tempdir().unwrap(); let target = dir.path().join("binary-v1"); std::fs::write(&target, "v1").unwrap(); - let link = dir.path().join("grok"); + let link = dir.path().join("kigi"); std::os::unix::fs::symlink(&target, &link).unwrap(); // Old- and new-style leftover temp links. - let leftover_old = dir.path().join("grok.tmp-link"); - let leftover_new = dir.path().join("grok.123-0.tmp-link"); + let leftover_old = dir.path().join("kigi.tmp-link"); + let leftover_new = dir.path().join("kigi.123-0.tmp-link"); std::os::unix::fs::symlink(&target, &leftover_old).unwrap(); std::os::unix::fs::symlink(&target, &leftover_new).unwrap(); // max_age = ZERO: every leftover is stale and removed; the active - // `grok` link (no `.tmp-link` suffix) is untouched. + // `kigi` link (no `.tmp-link` suffix) is untouched. sweep_stale_tmp_links(&link, Duration::ZERO).await; assert!(!leftover_old.exists() && !leftover_new.exists()); assert!(link.is_symlink(), "active link must be preserved"); // A fresh leftover under a real max_age is preserved — it could be a // concurrent racer's in-flight link. - let fresh = dir.path().join("grok.999-9.tmp-link"); + let fresh = dir.path().join("kigi.999-9.tmp-link"); std::os::unix::fs::symlink(&target, &fresh).unwrap(); sweep_stale_tmp_links(&link, Duration::from_secs(3600)).await; assert!(fresh.exists(), "fresh tmp-link must be preserved"); @@ -2611,7 +2248,7 @@ mod tests { async fn test_atomic_symlink_swap_multiple_sequential_swaps() { // Simulate v1 -> v2 -> v3 -> v4 sequential swaps. let dir = tempfile::tempdir().unwrap(); - let link = dir.path().join("grok"); + let link = dir.path().join("kigi"); for i in 1..=4 { let target = dir.path().join(format!("binary-v{}", i)); @@ -2636,134 +2273,6 @@ mod tests { assert!(!tmp_link.exists(), "no temp link should remain"); } - #[cfg(unix)] - #[tokio::test] - async fn test_atomic_symlink_swap_with_absolute_target() { - // atomic_symlink_swap stores whatever path is given — if absolute, - // readlink returns the absolute path. - let dir = tempfile::tempdir().unwrap(); - - let binary = dir.path().join("grok-0.1.141"); - std::fs::write(&binary, "v141").unwrap(); - - let link = dir.path().join("grok"); - atomic_symlink_swap(&binary, &link).await.unwrap(); - - assert!(link.is_symlink()); - // readlink returns the absolute path we passed. - assert_eq!(std::fs::read_link(&link).unwrap(), binary); - assert_eq!(std::fs::read_to_string(&link).unwrap(), "v141"); - } - - #[cfg(unix)] - #[tokio::test] - async fn test_atomic_symlink_swap_with_relative_target() { - // When given a relative path, the symlink stores a relative target. - let dir = tempfile::tempdir().unwrap(); - let downloads = dir.path().join("downloads"); - let bin = dir.path().join("bin"); - std::fs::create_dir_all(&downloads).unwrap(); - std::fs::create_dir_all(&bin).unwrap(); - - std::fs::write(downloads.join("grok-0.1.203"), "v203").unwrap(); - - let rel_target = std::path::Path::new("../downloads/grok-0.1.203"); - let link = bin.join("grok"); - atomic_symlink_swap(rel_target, &link).await.unwrap(); - - assert!(link.is_symlink()); - assert_eq!( - std::fs::read_link(&link).unwrap(), - std::path::PathBuf::from("../downloads/grok-0.1.203") - ); - assert_eq!(std::fs::read_to_string(&link).unwrap(), "v203"); - } - - #[cfg(unix)] - #[test] - fn test_relative_symlink_target_sibling_dirs() { - // bin/grok -> ../downloads/grok-0.1.203 - let target = std::path::Path::new("/home/alice/.kigi/downloads/grok-0.1.203"); - let link = std::path::Path::new("/home/alice/.kigi/bin/grok"); - let result = relative_symlink_target(target, link); - assert_eq!( - result, - std::path::PathBuf::from("../downloads/grok-0.1.203") - ); - } - - #[cfg(unix)] - #[test] - fn test_relative_symlink_target_same_dir() { - // downloads/grok-latest -> grok-0.1.203 (same directory) - let target = std::path::Path::new("/home/alice/.kigi/downloads/grok-0.1.203"); - let link = std::path::Path::new("/home/alice/.kigi/downloads/grok-latest"); - let result = relative_symlink_target(target, link); - assert_eq!(result, std::path::PathBuf::from("grok-0.1.203")); - } - - #[cfg(unix)] - #[test] - fn test_relative_symlink_target_cross_tree_stays_absolute() { - // /usr/local/bin/grok -> /home/alice/.kigi/downloads/grok-0.1.203 - // Different grandparents — should stay absolute. - let target = std::path::Path::new("/home/alice/.kigi/downloads/grok-0.1.203"); - let link = std::path::Path::new("/usr/local/bin/grok"); - let result = relative_symlink_target(target, link); - assert_eq!( - result, - std::path::PathBuf::from("/home/alice/.kigi/downloads/grok-0.1.203") - ); - } - - #[cfg(unix)] - #[tokio::test] - async fn test_relative_symlink_survives_directory_move() { - // Simulates Docker bind-mount: create ~/.kigi/ layout at path A, - // then move it to path B and verify the symlink still resolves. - let dir = tempfile::tempdir().unwrap(); - - // Create alice's layout - let alice = dir.path().join("alice").join(".kigi"); - let alice_downloads = alice.join("downloads"); - let alice_bin = alice.join("bin"); - std::fs::create_dir_all(&alice_downloads).unwrap(); - std::fs::create_dir_all(&alice_bin).unwrap(); - std::fs::write(alice_downloads.join("grok-0.1.203"), "binary-content").unwrap(); - - // Create a relative symlink (what the fix produces) - let rel_target = std::path::Path::new("../downloads/grok-0.1.203"); - let link = alice_bin.join("grok"); - atomic_symlink_swap(rel_target, &link).await.unwrap(); - - // Verify it works at the original location - assert_eq!(std::fs::read_to_string(&link).unwrap(), "binary-content"); - - // "Bind-mount" to bob: copy the entire .kigi tree - let bob_home = dir.path().join("bob"); - std::fs::create_dir_all(&bob_home).unwrap(); - let bob = bob_home.join(".kigi"); - let copy_status = std::process::Command::new("cp") - .args(["-a", alice.to_str().unwrap(), bob.to_str().unwrap()]) - .status() - .unwrap(); - assert!(copy_status.success()); - - // Verify the symlink resolves at bob's path too - let bob_link = bob.join("bin").join("grok"); - assert!(bob_link.is_symlink()); - assert_eq!( - std::fs::read_link(&bob_link).unwrap(), - std::path::PathBuf::from("../downloads/grok-0.1.203"), - "symlink target should be relative" - ); - assert_eq!( - std::fs::read_to_string(&bob_link).unwrap(), - "binary-content", - "relative symlink should resolve at the new path" - ); - } - #[cfg(unix)] #[tokio::test] async fn test_atomic_symlink_swap_broken_symlink_target() { @@ -2771,7 +2280,7 @@ mod tests { // the swap should still succeed. let dir = tempfile::tempdir().unwrap(); - let link = dir.path().join("grok"); + let link = dir.path().join("kigi"); // Create a broken symlink — points to a file that doesn't exist. std::os::unix::fs::symlink(dir.path().join("deleted-binary"), &link).unwrap(); assert!(link.is_symlink()); @@ -2788,160 +2297,82 @@ mod tests { assert_eq!(std::fs::read_to_string(&link).unwrap(), "v2"); } + #[cfg(unix)] #[test] - fn test_needs_update_prerelease_to_stable_forces_install() { - // Inadmissible current (pre-release on stable channel) → install even - // if the candidate is semver-lower. + fn test_relative_symlink_target_layouts() { + // bin/kigi -> ../downloads/kigi-0.1.2 (sibling directories) + let target = Path::new("/home/alice/.kigi/downloads/kigi-0.1.2"); + let link = Path::new("/home/alice/.kigi/bin/kigi"); assert_eq!( - needs_update("0.1.149-alpha.1", "0.1.148", "stable", false), - Some(true) + relative_symlink_target(target, link), + PathBuf::from("../downloads/kigi-0.1.2") ); + + // downloads/kigi-latest -> kigi-0.1.2 (same directory) + let link = Path::new("/home/alice/.kigi/downloads/kigi-latest"); assert_eq!( - needs_update("0.1.148-alpha.3", "0.1.148", "stable", false), - Some(true) + relative_symlink_target(target, link), + PathBuf::from("kigi-0.1.2") ); - } - #[test] - fn test_needs_update_stable_to_alpha_no_install_when_candidate_equal() { - // Server returns max(stable, alpha) for alpha channel. When the user's - // stable version already IS the candidate, no install needed. + // /usr/local/bin/kigi -> absolute (different grandparents) + let link = Path::new("/usr/local/bin/kigi"); assert_eq!( - needs_update("0.1.148", "0.1.148", "alpha", false), - Some(false) - ); - } - - #[test] - fn test_needs_update_stable_channel_never_gets_prerelease() { - assert_eq!( - needs_update("0.1.139", "0.1.140-alpha.1", "stable", false), - Some(false) - ); - assert_eq!( - needs_update("0.1.0", "0.1.1-beta.1", "stable", false), - Some(false) - ); - } - - #[test] - fn test_needs_update_valid_current_only_upgrades() { - // Admissible current on the target channel → pure semver (allow_downgrade=false). - assert_eq!( - needs_update("0.1.140", "0.1.141", "stable", false), - Some(true) - ); - assert_eq!( - needs_update("0.1.141", "0.1.140", "stable", false), - Some(false) - ); - assert_eq!( - needs_update("0.1.140-alpha.8", "0.1.140", "alpha", false), - Some(true) - ); - assert_eq!( - needs_update("0.1.140", "0.1.139-alpha.5", "alpha", false), - Some(false) - ); - // Alpha → newer alpha: upgrade. - assert_eq!( - needs_update("0.1.148-alpha.1", "0.1.148-alpha.3", "alpha", false), - Some(true) - ); - // Alpha → older alpha: no downgrade (allow_downgrade=false). - assert_eq!( - needs_update("0.1.148-alpha.3", "0.1.148-alpha.2", "alpha", false), - Some(false) - ); - } - - #[test] - fn test_needs_update_large_version_numbers() { - // Ensure no overflow on realistic version numbers - assert_eq!( - needs_update("0.1.140", "0.1.999", "stable", false), - Some(true) - ); - assert_eq!( - needs_update("0.1.999", "0.2.0", "stable", false), - Some(true) - ); - assert_eq!( - needs_update("99.99.99", "100.0.0", "stable", false), - Some(true) + relative_symlink_target(target, link), + PathBuf::from("/home/alice/.kigi/downloads/kigi-0.1.2") ); } + #[cfg(unix)] #[tokio::test] - async fn test_cleanup_old_downloads_keeps_current_plus_one() { + async fn test_relative_symlink_survives_directory_move() { + // Simulates Docker bind-mount: create ~/.kigi/ layout at path A, + // then copy it to path B and verify the symlink still resolves. let dir = tempfile::tempdir().unwrap(); - let d = dir.path(); - // Simulate 5 old grok binaries in downloads dir. - for v in ["0.1.140", "0.1.141", "0.1.142", "0.1.143", "0.1.144"] { - std::fs::write(d.join(format!("grok-{}-macos-aarch64", v)), v).unwrap(); - } - // Current version. - std::fs::write(d.join("grok-0.1.145-macos-aarch64"), "current").unwrap(); + let alice = dir.path().join("alice").join(".kigi"); + let alice_downloads = alice.join("downloads"); + let alice_bin = alice.join("bin"); + std::fs::create_dir_all(&alice_downloads).unwrap(); + std::fs::create_dir_all(&alice_bin).unwrap(); + std::fs::write(alice_downloads.join("kigi-0.1.2"), "binary-content").unwrap(); - make_all_stale(d); + let rel_target = Path::new("../downloads/kigi-0.1.2"); + let link = alice_bin.join("kigi"); + atomic_symlink_swap(rel_target, &link).await.unwrap(); + assert_eq!(std::fs::read_to_string(&link).unwrap(), "binary-content"); - cleanup_old_downloads(d, "grok", "0.1.145").await; + // "Bind-mount" to bob: copy the entire .kigi tree. + let bob_home = dir.path().join("bob"); + std::fs::create_dir_all(&bob_home).unwrap(); + let bob = bob_home.join(".kigi"); + let copy_status = std::process::Command::new("cp") + .args(["-a", alice.to_str().unwrap(), bob.to_str().unwrap()]) + .status() + .unwrap(); + assert!(copy_status.success()); - // Current must survive. - assert!(d.join("grok-0.1.145-macos-aarch64").exists(), "current"); - // Newest old version (0.1.144) must survive. - assert!(d.join("grok-0.1.144-macos-aarch64").exists(), "N-1"); - // Everything else should be deleted. - assert!( - !d.join("grok-0.1.143-macos-aarch64").exists(), - "0.1.143 should be deleted" + let bob_link = bob.join("bin").join("kigi"); + assert!(bob_link.is_symlink()); + assert_eq!( + std::fs::read_link(&bob_link).unwrap(), + PathBuf::from("../downloads/kigi-0.1.2"), + "symlink target should be relative" ); - assert!( - !d.join("grok-0.1.142-macos-aarch64").exists(), - "0.1.142 should be deleted" - ); - assert!( - !d.join("grok-0.1.141-macos-aarch64").exists(), - "0.1.141 should be deleted" - ); - assert!( - !d.join("grok-0.1.140-macos-aarch64").exists(), - "0.1.140 should be deleted" + assert_eq!( + std::fs::read_to_string(&bob_link).unwrap(), + "binary-content", + "relative symlink should resolve at the new path" ); } - #[tokio::test] - async fn test_cleanup_old_downloads_does_not_touch_other_binaries() { - let dir = tempfile::tempdir().unwrap(); - let d = dir.path(); - - // grok and grok-pager should not interfere with each other. - std::fs::write(d.join("grok-0.1.140-macos-aarch64"), "old-grok").unwrap(); - std::fs::write(d.join("grok-0.1.141-macos-aarch64"), "current-grok").unwrap(); - std::fs::write(d.join("grok-pager-0.1.140-macos-aarch64"), "old-pager").unwrap(); - std::fs::write(d.join("grok-pager-0.1.141-macos-aarch64"), "current-pager").unwrap(); - - // Cleanup only grok — pager files must be untouched. - make_all_stale(d); - - cleanup_old_downloads(d, "grok", "0.1.141").await; - - assert!(d.join("grok-0.1.141-macos-aarch64").exists()); - assert!(d.join("grok-0.1.140-macos-aarch64").exists()); // only old, kept as N-1 - assert!( - d.join("grok-pager-0.1.140-macos-aarch64").exists(), - "pager untouched" - ); - assert!( - d.join("grok-pager-0.1.141-macos-aarch64").exists(), - "pager untouched" - ); - } + // ────────────────────────────────────────────────────────────────────── + // cleanup_old_downloads + // ────────────────────────────────────────────────────────────────────── /// Backdate a file's mtime past [`STALE_TMP_AGE`] so cleanup treats it /// as an abandoned download / genuinely old binary. - fn make_stale(path: &std::path::Path) { + fn make_stale(path: &Path) { let old = std::time::SystemTime::now() - (STALE_TMP_AGE + Duration::from_secs(60)); let f = std::fs::File::options().write(true).open(path).unwrap(); f.set_times(std::fs::FileTimes::new().set_modified(old)) @@ -2952,7 +2383,7 @@ mod tests { /// freshly-written binary or temp file (it may belong to a concurrent /// in-flight install), so retention-policy tests must age their fixtures /// to look like real leftovers from previous releases. - fn make_all_stale(dir: &std::path::Path) { + fn make_all_stale(dir: &Path) { for entry in std::fs::read_dir(dir).unwrap() { let p = entry.unwrap().path(); if p.is_file() { @@ -2961,31 +2392,55 @@ mod tests { } } + #[tokio::test] + async fn test_cleanup_old_downloads_keeps_current_plus_one() { + let dir = tempfile::tempdir().unwrap(); + let d = dir.path(); + + for v in ["0.1.140", "0.1.141", "0.1.142", "0.1.143", "0.1.144"] { + std::fs::write(d.join(format!("kigi-{}-macos-aarch64", v)), v).unwrap(); + } + std::fs::write(d.join("kigi-0.1.145-macos-aarch64"), "current").unwrap(); + + make_all_stale(d); + + cleanup_old_downloads(d, "kigi", "0.1.145").await; + + assert!(d.join("kigi-0.1.145-macos-aarch64").exists(), "current"); + assert!(d.join("kigi-0.1.144-macos-aarch64").exists(), "N-1"); + for v in ["0.1.140", "0.1.141", "0.1.142", "0.1.143"] { + assert!( + !d.join(format!("kigi-{}-macos-aarch64", v)).exists(), + "{v} should be deleted" + ); + } + } + #[tokio::test] async fn test_cleanup_old_downloads_removes_stale_tmp_keeps_fresh_tmp() { let dir = tempfile::tempdir().unwrap(); let d = dir.path(); // Stale tmp: abandoned by a crashed updater — swept. - std::fs::write(d.join("grok-0.1.140-macos-aarch64.tmp"), "partial").unwrap(); - make_stale(&d.join("grok-0.1.140-macos-aarch64.tmp")); + std::fs::write(d.join("kigi-0.1.140-macos-aarch64.tmp"), "partial").unwrap(); + make_stale(&d.join("kigi-0.1.140-macos-aarch64.tmp")); // Fresh tmp: a concurrent updater's in-flight download — kept, or // its atomic rename would fail with ENOENT. - std::fs::write(d.join("grok-0.1.142-macos-aarch64.77-0.tmp"), "inflight").unwrap(); - std::fs::write(d.join("grok-0.1.141-macos-aarch64"), "current").unwrap(); + std::fs::write(d.join("kigi-0.1.142-macos-aarch64.77-0.tmp"), "inflight").unwrap(); + std::fs::write(d.join("kigi-0.1.141-macos-aarch64"), "current").unwrap(); - cleanup_old_downloads(d, "grok", "0.1.141").await; + cleanup_old_downloads(d, "kigi", "0.1.141").await; assert!( - !d.join("grok-0.1.140-macos-aarch64.tmp").exists(), + !d.join("kigi-0.1.140-macos-aarch64.tmp").exists(), "stale tmp cleaned up" ); assert!( - d.join("grok-0.1.142-macos-aarch64.77-0.tmp").exists(), + d.join("kigi-0.1.142-macos-aarch64.77-0.tmp").exists(), "fresh in-flight tmp must NOT be swept" ); assert!( - d.join("grok-0.1.141-macos-aarch64").exists(), + d.join("kigi-0.1.141-macos-aarch64").exists(), "current kept" ); } @@ -2999,26 +2454,25 @@ mod tests { let dir = tempfile::tempdir().unwrap(); let d = dir.path(); - // Three old versions + current: policy would delete .138 and .139. for v in ["0.1.138", "0.1.139", "0.1.140"] { - std::fs::write(d.join(format!("grok-{v}-macos-aarch64")), v).unwrap(); + std::fs::write(d.join(format!("kigi-{v}-macos-aarch64")), v).unwrap(); } - std::fs::write(d.join("grok-0.1.141-macos-aarch64"), "current").unwrap(); + std::fs::write(d.join("kigi-0.1.141-macos-aarch64"), "current").unwrap(); make_all_stale(d); // .138 is re-written NOW — simulating a racer that just renamed its // download into place (e.g. a rollback install racing an upgrade). - std::fs::write(d.join("grok-0.1.138-macos-aarch64"), "in-flight").unwrap(); + std::fs::write(d.join("kigi-0.1.138-macos-aarch64"), "in-flight").unwrap(); - cleanup_old_downloads(d, "grok", "0.1.141").await; + cleanup_old_downloads(d, "kigi", "0.1.141").await; - assert!(d.join("grok-0.1.141-macos-aarch64").exists(), "current"); - assert!(d.join("grok-0.1.140-macos-aarch64").exists(), "N-1 kept"); + assert!(d.join("kigi-0.1.141-macos-aarch64").exists(), "current"); + assert!(d.join("kigi-0.1.140-macos-aarch64").exists(), "N-1 kept"); assert!( - d.join("grok-0.1.138-macos-aarch64").exists(), + d.join("kigi-0.1.138-macos-aarch64").exists(), "fresh just-renamed binary must NOT be deleted" ); assert!( - !d.join("grok-0.1.139-macos-aarch64").exists(), + !d.join("kigi-0.1.139-macos-aarch64").exists(), "genuinely old binary still swept" ); } @@ -3029,244 +2483,340 @@ mod tests { let dir = tempfile::tempdir().unwrap(); let d = dir.path(); - // grok-latest is a symlink — must be skipped. - let target = d.join("grok-0.1.141-macos-aarch64"); + // kigi-latest is a symlink — must be skipped. + let target = d.join("kigi-0.1.141-macos-aarch64"); std::fs::write(&target, "current").unwrap(); - std::os::unix::fs::symlink(&target, d.join("grok-latest")).unwrap(); + std::os::unix::fs::symlink(&target, d.join("kigi-latest")).unwrap(); make_all_stale(d); - cleanup_old_downloads(d, "grok", "0.1.141").await; + cleanup_old_downloads(d, "kigi", "0.1.141").await; assert!( - d.join("grok-latest").exists(), + d.join("kigi-latest").exists(), "symlink must not be deleted" ); assert!(target.exists(), "current must not be deleted"); } - #[tokio::test] - async fn test_cleanup_old_downloads_empty_dir() { - let dir = tempfile::tempdir().unwrap(); - // Should not panic or error on empty directory. - make_all_stale(dir.path()); - - cleanup_old_downloads(dir.path(), "grok", "0.1.141").await; - } - #[tokio::test] async fn test_cleanup_old_downloads_version_prefix_collision() { - // Regression test: version "0.1.14" must not protect "0.1.140", "0.1.141", etc. + // Regression: version "0.1.14" must not protect "0.1.140", "0.1.141". let dir = tempfile::tempdir().unwrap(); let d = dir.path(); - std::fs::write(d.join("grok-0.1.14-macos-aarch64"), "current").unwrap(); - std::fs::write(d.join("grok-0.1.140-macos-aarch64"), "old-140").unwrap(); - std::fs::write(d.join("grok-0.1.141-macos-aarch64"), "old-141").unwrap(); - std::fs::write(d.join("grok-0.1.13-macos-aarch64"), "old-13").unwrap(); + std::fs::write(d.join("kigi-0.1.14-macos-aarch64"), "current").unwrap(); + std::fs::write(d.join("kigi-0.1.140-macos-aarch64"), "old-140").unwrap(); + std::fs::write(d.join("kigi-0.1.141-macos-aarch64"), "old-141").unwrap(); + std::fs::write(d.join("kigi-0.1.13-macos-aarch64"), "old-13").unwrap(); make_all_stale(d); - cleanup_old_downloads(d, "grok", "0.1.14").await; + cleanup_old_downloads(d, "kigi", "0.1.14").await; - // Current must survive. + assert!(d.join("kigi-0.1.14-macos-aarch64").exists(), "current"); assert!( - d.join("grok-0.1.14-macos-aarch64").exists(), - "current 0.1.14" - ); - // Newest old version (0.1.141) must survive as N-1. - assert!( - d.join("grok-0.1.141-macos-aarch64").exists(), + d.join("kigi-0.1.141-macos-aarch64").exists(), "N-1 is 0.1.141" ); - // 0.1.140 and 0.1.13 should be deleted. - assert!( - !d.join("grok-0.1.140-macos-aarch64").exists(), - "0.1.140 should be deleted" - ); - assert!( - !d.join("grok-0.1.13-macos-aarch64").exists(), - "0.1.13 should be deleted" - ); + assert!(!d.join("kigi-0.1.140-macos-aarch64").exists()); + assert!(!d.join("kigi-0.1.13-macos-aarch64").exists()); } #[tokio::test] - async fn test_cleanup_old_downloads_pager_multi_version() { - // Verify cleanup works for grok-pager with multiple old versions. + async fn test_cleanup_old_downloads_alpha_and_mixed_versions() { + // Pre-release names parse whole, and semver ordering decides N-1. let dir = tempfile::tempdir().unwrap(); let d = dir.path(); - for v in ["0.1.148", "0.1.149", "0.1.150"] { - std::fs::write(d.join(format!("grok-pager-{}-linux-x64", v)), v).unwrap(); - } - std::fs::write(d.join("grok-pager-0.1.151-linux-x64"), "current").unwrap(); + std::fs::write(d.join("kigi-0.1.148-macos-aarch64"), "stable-148").unwrap(); + std::fs::write(d.join("kigi-0.1.149-alpha.1-macos-aarch64"), "alpha-149").unwrap(); + std::fs::write(d.join("kigi-0.1.149-macos-aarch64"), "stable-149").unwrap(); + std::fs::write(d.join("kigi-0.1.150-macos-aarch64"), "current").unwrap(); make_all_stale(d); - cleanup_old_downloads(d, "grok-pager", "0.1.151").await; + cleanup_old_downloads(d, "kigi", "0.1.150").await; - assert!(d.join("grok-pager-0.1.151-linux-x64").exists(), "current"); - assert!(d.join("grok-pager-0.1.150-linux-x64").exists(), "N-1 kept"); - assert!( - !d.join("grok-pager-0.1.149-linux-x64").exists(), - "0.1.149 deleted" - ); - assert!( - !d.join("grok-pager-0.1.148-linux-x64").exists(), - "0.1.148 deleted" - ); - } - - #[tokio::test] - async fn test_cleanup_old_downloads_npm_layout() { - // npm layout: files are just `grok-{version}` (no platform suffix). - let dir = tempfile::tempdir().unwrap(); - let d = dir.path(); - - for v in ["0.1.138", "0.1.139", "0.1.140"] { - std::fs::write(d.join(format!("grok-{}", v)), v).unwrap(); - } - std::fs::write(d.join("grok-0.1.141"), "current").unwrap(); - - make_all_stale(d); - - cleanup_old_downloads(d, "grok", "0.1.141").await; - - assert!(d.join("grok-0.1.141").exists(), "current"); - assert!(d.join("grok-0.1.140").exists(), "N-1 kept"); - assert!(!d.join("grok-0.1.139").exists(), "0.1.139 deleted"); - assert!(!d.join("grok-0.1.138").exists(), "0.1.138 deleted"); - } - - #[tokio::test] - async fn test_cleanup_old_downloads_alpha_versions() { - // Alpha version filenames include pre-release tags: - // grok-0.1.150-alpha.1-macos-aarch64 - let dir = tempfile::tempdir().unwrap(); - let d = dir.path(); - - std::fs::write(d.join("grok-0.1.148-alpha.1-macos-aarch64"), "alpha-148-1").unwrap(); - std::fs::write(d.join("grok-0.1.148-alpha.2-macos-aarch64"), "alpha-148-2").unwrap(); - std::fs::write(d.join("grok-0.1.149-alpha.1-macos-aarch64"), "alpha-149-1").unwrap(); - // Current version is the newest alpha. - std::fs::write(d.join("grok-0.1.150-alpha.1-macos-aarch64"), "current").unwrap(); - - make_all_stale(d); - - cleanup_old_downloads(d, "grok", "0.1.150-alpha.1").await; - - // Current must survive. - assert!( - d.join("grok-0.1.150-alpha.1-macos-aarch64").exists(), - "current alpha" - ); - // Newest old (0.1.149-alpha.1) kept as N-1. - assert!( - d.join("grok-0.1.149-alpha.1-macos-aarch64").exists(), - "N-1 alpha" - ); - // Older alphas deleted. - assert!( - !d.join("grok-0.1.148-alpha.2-macos-aarch64").exists(), - "0.1.148-alpha.2 deleted" - ); - assert!( - !d.join("grok-0.1.148-alpha.1-macos-aarch64").exists(), - "0.1.148-alpha.1 deleted" - ); - } - - #[tokio::test] - async fn test_cleanup_old_downloads_mixed_stable_and_alpha() { - // Mix of stable and alpha binaries in the same directory. - let dir = tempfile::tempdir().unwrap(); - let d = dir.path(); - - std::fs::write(d.join("grok-0.1.148-macos-aarch64"), "stable-148").unwrap(); - std::fs::write(d.join("grok-0.1.149-alpha.1-macos-aarch64"), "alpha-149").unwrap(); - std::fs::write(d.join("grok-0.1.149-macos-aarch64"), "stable-149").unwrap(); - // Current is a stable release. - std::fs::write(d.join("grok-0.1.150-macos-aarch64"), "current").unwrap(); - - make_all_stale(d); - - cleanup_old_downloads(d, "grok", "0.1.150").await; - - // Current must survive. - assert!(d.join("grok-0.1.150-macos-aarch64").exists(), "current"); + assert!(d.join("kigi-0.1.150-macos-aarch64").exists(), "current"); // Newest old is 0.1.149 stable (semver: 0.1.149 > 0.1.149-alpha.1). assert!( - d.join("grok-0.1.149-macos-aarch64").exists(), + d.join("kigi-0.1.149-macos-aarch64").exists(), "N-1 is stable 0.1.149" ); - // The rest should be deleted. + assert!(!d.join("kigi-0.1.149-alpha.1-macos-aarch64").exists()); + assert!(!d.join("kigi-0.1.148-macos-aarch64").exists()); + } + + #[tokio::test] + async fn test_cleanup_old_downloads_ignores_non_versioned_and_unrelated_files() { + let dir = tempfile::tempdir().unwrap(); + let d = dir.path(); + std::fs::write(d.join("kigi-latest"), "alias").unwrap(); + std::fs::write(d.join("kigi-9garbage-macos-aarch64"), "junk").unwrap(); + std::fs::write(d.join("README.md"), "readme").unwrap(); + std::fs::write(d.join("other-tool-0.1.0"), "other").unwrap(); + std::fs::write(d.join("kigi-0.1.140-macos-aarch64"), "v140").unwrap(); + std::fs::write(d.join("kigi-0.1.141-macos-aarch64"), "current").unwrap(); + + make_all_stale(d); + + cleanup_old_downloads(d, "kigi", "0.1.141").await; + + assert!(d.join("kigi-latest").exists()); assert!( - !d.join("grok-0.1.149-alpha.1-macos-aarch64").exists(), - "alpha 0.1.149-alpha.1 deleted" - ); - assert!( - !d.join("grok-0.1.148-macos-aarch64").exists(), - "stable 0.1.148 deleted" + d.join("kigi-9garbage-macos-aarch64").exists(), + "unparseable file must be ignored, not deleted" ); + assert!(d.join("README.md").exists()); + assert!(d.join("other-tool-0.1.0").exists()); + assert!(d.join("kigi-0.1.140-macos-aarch64").exists(), "N-1 kept"); + } + + #[tokio::test] + async fn test_cleanup_old_downloads_invalid_current_version_is_no_op() { + let dir = tempfile::tempdir().unwrap(); + let d = dir.path(); + std::fs::write(d.join("kigi-0.1.140-macos-aarch64"), "v140").unwrap(); + std::fs::write(d.join("kigi-0.1.141-macos-aarch64"), "v141").unwrap(); + + make_all_stale(d); + + cleanup_old_downloads(d, "kigi", "not-a-version").await; + assert!(d.join("kigi-0.1.140-macos-aarch64").exists()); + assert!(d.join("kigi-0.1.141-macos-aarch64").exists()); + } + + #[tokio::test] + async fn test_cleanup_old_downloads_missing_dir_no_panic() { + let dir = tempfile::tempdir().unwrap(); + let missing = dir.path().join("does-not-exist"); + cleanup_old_downloads(&missing, "kigi", "0.1.141").await; + } + + #[tokio::test] + async fn test_cleanup_old_downloads_multiplatform_in_same_dir() { + let dir = tempfile::tempdir().unwrap(); + let d = dir.path(); + // Same version, multiple platforms: both are "current" via the + // version equality check. + std::fs::write(d.join("kigi-0.1.141-macos-aarch64"), "mac").unwrap(); + std::fs::write(d.join("kigi-0.1.141-linux-x86_64"), "linux").unwrap(); + std::fs::write(d.join("kigi-0.1.140-macos-aarch64"), "old-mac").unwrap(); + std::fs::write(d.join("kigi-0.1.139-macos-aarch64"), "older-mac").unwrap(); + + make_all_stale(d); + + cleanup_old_downloads(d, "kigi", "0.1.141").await; + + assert!(d.join("kigi-0.1.141-macos-aarch64").exists()); + assert!(d.join("kigi-0.1.141-linux-x86_64").exists()); + assert!(d.join("kigi-0.1.140-macos-aarch64").exists()); + assert!(!d.join("kigi-0.1.139-macos-aarch64").exists()); } // ────────────────────────────────────────────────────────────────────── - // reinstall_hint + // reinstall_hint / manual_install_cmd // ────────────────────────────────────────────────────────────────────── #[test] - fn test_reinstall_hint_npm_mentions_npm_command() { - let hint = reinstall_hint("npm"); - assert!(hint.contains("npm i -g"), "should suggest npm i -g: {hint}"); - assert!( - hint.contains("@xai-official/grok"), - "should name the package: {hint}" - ); - } - - #[test] - fn test_reinstall_hint_gh_release_mentions_gh_command() { - let hint = reinstall_hint("gh-release"); - assert!( - hint.contains("gh release download"), - "should suggest gh release download: {hint}" - ); - assert!( - hint.contains("xai-org-shared/grok-build"), - "should name the repo: {hint}" - ); - } - - #[test] - fn test_reinstall_hint_internal_mentions_platform_installer() { + fn test_reinstall_hint_points_at_repo_install_script() { let hint = reinstall_hint("internal"); if cfg!(windows) { assert!(hint.contains("irm"), "should suggest irm install: {hint}"); assert!( - hint.contains("install.ps1"), - "should reference install.ps1: {hint}" + hint.contains("ZacharyZhang-NY/Kigi-CLI/main/install.ps1"), + "should reference the repo's install.ps1: {hint}" ); } else { assert!(hint.contains("curl"), "should suggest curl install: {hint}"); assert!( - hint.contains("install.sh"), - "should reference install.sh: {hint}" + hint.contains("ZacharyZhang-NY/Kigi-CLI/main/install.sh"), + "should reference the repo's install.sh: {hint}" ); } + // Unknown installers fall back to the same hint. + assert_eq!(reinstall_hint("homebrew"), hint); + assert_eq!(reinstall_hint(""), hint); + } + + // ────────────────────────────────────────────────────────────────────── + // Asset naming: targets → release asset names + // ────────────────────────────────────────────────────────────────────── + + #[cfg(any(target_os = "macos", target_os = "linux", target_os = "windows"))] + #[cfg(any(target_arch = "x86_64", target_arch = "aarch64"))] + #[test] + fn test_detect_platform_matches_compile_time_cfg() { + let (os, arch) = detect_platform().unwrap(); + if cfg!(target_os = "macos") { + assert_eq!(os, "macos"); + } + if cfg!(target_os = "linux") { + assert_eq!(os, "linux"); + } + if cfg!(target_os = "windows") { + assert_eq!(os, "windows"); + } + if cfg!(target_arch = "x86_64") { + assert_eq!(arch, "x86_64"); + } + if cfg!(target_arch = "aarch64") { + assert_eq!(arch, "aarch64"); + } } + #[cfg(any(target_os = "macos", target_os = "linux", target_os = "windows"))] + #[cfg(any(target_arch = "x86_64", target_arch = "aarch64"))] #[test] - fn test_reinstall_hint_unknown_falls_back_to_internal() { - // Unknown installer falls back to the same hint as "internal". - let unknown = reinstall_hint("homebrew"); - let internal = reinstall_hint("internal"); - assert_eq!(unknown, internal); + fn test_release_asset_name_matches_release_workflow_naming() { + // Must stay in lockstep with .github/workflows/release.yml, which + // publishes kigi--.{tar.gz|zip}. + let triple = target_triple().unwrap(); + assert!( + [ + "aarch64-apple-darwin", + "x86_64-apple-darwin", + "aarch64-unknown-linux-gnu", + "x86_64-unknown-linux-gnu", + "x86_64-pc-windows-msvc", + ] + .contains(&triple), + "triple {triple} is not one of the five released targets" + ); + + let name = release_asset_name("0.1.0").unwrap(); + if cfg!(windows) { + assert_eq!(name, format!("kigi-0.1.0-{triple}.zip")); + } else { + assert_eq!(name, format!("kigi-0.1.0-{triple}.tar.gz")); + } + } + + // ────────────────────────────────────────────────────────────────────── + // SHA256SUMS parsing + // ────────────────────────────────────────────────────────────────────── + + #[test] + fn test_expected_sha256_for_parses_sha256sum_format() { + let sums = "\ +0000000000000000000000000000000000000000000000000000000000000001 kigi-0.1.0-aarch64-apple-darwin.tar.gz +0000000000000000000000000000000000000000000000000000000000000002 kigi-0.1.0-x86_64-unknown-linux-gnu.tar.gz +0000000000000000000000000000000000000000000000000000000000000003 *kigi-0.1.0-x86_64-pc-windows-msvc.zip +"; + assert_eq!( + expected_sha256_for(sums, "kigi-0.1.0-aarch64-apple-darwin.tar.gz").unwrap(), + "0000000000000000000000000000000000000000000000000000000000000001" + ); + assert_eq!( + expected_sha256_for(sums, "kigi-0.1.0-x86_64-unknown-linux-gnu.tar.gz").unwrap(), + "0000000000000000000000000000000000000000000000000000000000000002" + ); + // `*name` binary-mode marker is accepted. + assert_eq!( + expected_sha256_for(sums, "kigi-0.1.0-x86_64-pc-windows-msvc.zip").unwrap(), + "0000000000000000000000000000000000000000000000000000000000000003" + ); + // Uppercase hashes normalize to lowercase. + let upper = "ABCDEF0000000000000000000000000000000000000000000000000000000000 a.tar.gz"; + assert_eq!( + expected_sha256_for(upper, "a.tar.gz").unwrap(), + "abcdef0000000000000000000000000000000000000000000000000000000000" + ); } #[test] - fn test_reinstall_hint_empty_falls_back_to_internal() { - let hint = reinstall_hint(""); - assert_eq!(hint, reinstall_hint("internal")); + fn test_expected_sha256_for_missing_or_malformed_entries_error() { + let sums = + "0000000000000000000000000000000000000000000000000000000000000001 present.tar.gz\n"; + let err = expected_sha256_for(sums, "absent.tar.gz").unwrap_err(); + assert!(format!("{err}").contains("no entry"), "err: {err}"); + + // Truncated hash is malformed, not silently accepted. + let bad = "deadbeef present.tar.gz\n"; + let err = expected_sha256_for(bad, "present.tar.gz").unwrap_err(); + assert!(format!("{err}").contains("malformed"), "err: {err}"); + + // Non-hex hash of the right length is malformed too. + let nonhex = format!("{} present.tar.gz\n", "g".repeat(64)); + let err = expected_sha256_for(&nonhex, "present.tar.gz").unwrap_err(); + assert!(format!("{err}").contains("malformed"), "err: {err}"); + + // Empty manifest. + let err = expected_sha256_for("", "present.tar.gz").unwrap_err(); + assert!(format!("{err}").contains("no entry"), "err: {err}"); + } + + #[tokio::test] + async fn test_sha256_hex_of_file_matches_known_vector() { + // SHA-256("abc") is a NIST test vector. + let dir = tempfile::tempdir().unwrap(); + let p = dir.path().join("abc.txt"); + std::fs::write(&p, b"abc").unwrap(); + assert_eq!( + sha256_hex_of_file(&p).await.unwrap(), + "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad" + ); + } + + // ────────────────────────────────────────────────────────────────────── + // Archive extraction (Unix: tar.gz) + // ────────────────────────────────────────────────────────────────────── + + #[cfg(not(windows))] + fn make_tar_gz(entries: &[(&str, &[u8])]) -> Vec { + let gz = flate2::write::GzEncoder::new(Vec::new(), flate2::Compression::default()); + let mut builder = tar::Builder::new(gz); + for (name, data) in entries { + let mut header = tar::Header::new_gnu(); + header.set_size(data.len() as u64); + header.set_mode(0o755); + header.set_cksum(); + builder.append_data(&mut header, name, *data).unwrap(); + } + builder.into_inner().unwrap().finish().unwrap() + } + + #[cfg(not(windows))] + #[tokio::test] + async fn test_extract_kigi_binary_finds_kigi_entry() { + let dir = tempfile::tempdir().unwrap(); + let archive = dir.path().join("kigi-0.1.0-test.tar.gz"); + std::fs::write( + &archive, + make_tar_gz(&[ + ("LICENSE", b"license text"), + ("kigi", b"#!/bin/sh\nexit 0\n"), + ]), + ) + .unwrap(); + + let out = dir.path().join("kigi-extracted"); + extract_kigi_binary(&archive, &out).await.unwrap(); + assert_eq!(std::fs::read(&out).unwrap(), b"#!/bin/sh\nexit 0\n"); + } + + #[cfg(not(windows))] + #[tokio::test] + async fn test_extract_kigi_binary_missing_entry_errors() { + let dir = tempfile::tempdir().unwrap(); + let archive = dir.path().join("kigi-0.1.0-test.tar.gz"); + std::fs::write(&archive, make_tar_gz(&[("LICENSE", b"license only")])).unwrap(); + + let out = dir.path().join("kigi-extracted"); + let err = extract_kigi_binary(&archive, &out).await.unwrap_err(); + assert!(format!("{err}").contains("no 'kigi' binary"), "err: {err}"); + } + + #[cfg(not(windows))] + #[tokio::test] + async fn test_extract_kigi_binary_garbage_archive_errors() { + let dir = tempfile::tempdir().unwrap(); + let archive = dir.path().join("kigi-0.1.0-test.tar.gz"); + std::fs::write(&archive, b"this is not a gzip stream").unwrap(); + + let out = dir.path().join("kigi-extracted"); + assert!(extract_kigi_binary(&archive, &out).await.is_err()); } // ────────────────────────────────────────────────────────────────────── @@ -3278,7 +2828,7 @@ mod tests { current_version: "0.1.150".to_string(), latest_version: Some("0.1.151".to_string()), update_available: true, - installer: Some("npm".to_string()), + installer: Some("internal".to_string()), channel: "stable".to_string(), auto_update: Some(true), error: None, @@ -3311,7 +2861,7 @@ mod tests { assert_eq!(v["currentVersion"], "0.1.150"); assert_eq!(v["latestVersion"], "0.1.151"); assert_eq!(v["updateAvailable"], true); - assert_eq!(v["installer"], "npm"); + assert_eq!(v["installer"], "internal"); assert_eq!(v["channel"], "stable"); assert_eq!(v["autoUpdate"], true); assert!(v["error"].is_null()); @@ -3342,30 +2892,13 @@ mod tests { current_version: "0.1.150".to_string(), latest_version: None, update_available: false, - installer: Some("npm".to_string()), + installer: Some("internal".to_string()), channel: "stable".to_string(), auto_update: Some(true), - error: Some("npm view failed: ENETUNREACH".to_string()), + error: Some("GitHub API returned HTTP 403".to_string()), }; let v = serde_json::to_value(&s).unwrap(); - assert_eq!(v["error"], "npm view failed: ENETUNREACH"); - } - - #[test] - fn test_update_status_alpha_channel_serialized() { - let s = UpdateStatus { - current_version: "0.1.150-alpha.1".to_string(), - latest_version: Some("0.1.150-alpha.2".to_string()), - update_available: true, - installer: Some("npm".to_string()), - channel: "alpha".to_string(), - auto_update: Some(true), - error: None, - }; - let v = serde_json::to_value(&s).unwrap(); - assert_eq!(v["channel"], "alpha"); - assert_eq!(v["currentVersion"], "0.1.150-alpha.1"); - assert_eq!(v["latestVersion"], "0.1.150-alpha.2"); + assert_eq!(v["error"], "GitHub API returned HTTP 403"); } #[test] @@ -3381,566 +2914,41 @@ mod tests { } // ────────────────────────────────────────────────────────────────────── - // print_update_status — exercise both code paths via JSON serialization - // (the human path writes to stdout/stderr which is hard to capture - // without altering the function signature). + // print_update_status — both code paths must not panic or error. // ────────────────────────────────────────────────────────────────────── #[test] - fn test_print_update_status_json_returns_ok() { - let s = make_status(); - // We can't easily capture stdout, but we can confirm the function - // doesn't panic or return Err on a well-formed status. - print_update_status(&s, true).unwrap(); + fn test_print_update_status_all_shapes_return_ok() { + print_update_status(&make_status(), true).unwrap(); + print_update_status(&make_status(), false).unwrap(); + print_update_status( + &UpdateStatus { + current_version: "0.1.150".to_string(), + latest_version: None, + update_available: false, + installer: None, + channel: "stable".to_string(), + auto_update: None, + error: None, + }, + false, + ) + .unwrap(); + print_update_status( + &UpdateStatus { + current_version: "0.1.150".to_string(), + latest_version: Some("0.1.150".to_string()), + update_available: false, + installer: Some("internal".to_string()), + channel: "stable".to_string(), + auto_update: Some(true), + error: Some("network down".to_string()), + }, + false, + ) + .unwrap(); } - #[test] - fn test_print_update_status_human_returns_ok_when_update_available() { - let s = make_status(); - print_update_status(&s, false).unwrap(); - } - - #[test] - fn test_print_update_status_human_returns_ok_when_no_installer() { - let s = UpdateStatus { - current_version: "0.1.150".to_string(), - latest_version: None, - update_available: false, - installer: None, - channel: "stable".to_string(), - auto_update: None, - error: None, - }; - print_update_status(&s, false).unwrap(); - } - - #[test] - fn test_print_update_status_human_returns_ok_with_error() { - let s = UpdateStatus { - current_version: "0.1.150".to_string(), - latest_version: None, - update_available: false, - installer: Some("npm".to_string()), - channel: "stable".to_string(), - auto_update: Some(true), - error: Some("network down".to_string()), - }; - print_update_status(&s, false).unwrap(); - } - - #[test] - fn test_print_update_status_human_returns_ok_when_up_to_date() { - let s = UpdateStatus { - current_version: "0.1.150".to_string(), - latest_version: Some("0.1.150".to_string()), - update_available: false, - installer: Some("npm".to_string()), - channel: "stable".to_string(), - auto_update: Some(true), - error: None, - }; - print_update_status(&s, false).unwrap(); - } - - // ────────────────────────────────────────────────────────────────────── - // needs_update — additional edge cases - // ────────────────────────────────────────────────────────────────────── - - #[test] - fn test_needs_update_empty_current_returns_none() { - assert_eq!(needs_update("", "0.1.141", "stable", false), None); - } - - #[test] - fn test_needs_update_empty_latest_returns_none() { - assert_eq!(needs_update("0.1.141", "", "stable", false), None); - } - - #[test] - fn test_needs_update_whitespace_returns_none() { - // Leading/trailing whitespace is not stripped — semver::parse rejects. - assert_eq!(needs_update(" 0.1.141", "0.1.142", "stable", false), None); - assert_eq!(needs_update("0.1.141", "0.1.142 ", "stable", false), None); - } - - #[test] - fn test_needs_update_channel_is_case_sensitive() { - // "STABLE", "Stable", "ENTERPRISE" etc. are not recognized — must be exact lowercase. - assert_eq!(needs_update("0.1.140", "0.1.141", "STABLE", false), None); - assert_eq!(needs_update("0.1.140", "0.1.141", "Stable", false), None); - assert_eq!(needs_update("0.1.140", "0.1.141", "ALPHA", false), None); - assert_eq!( - needs_update("0.1.140", "0.1.141", "ENTERPRISE", false), - None - ); - } - - #[test] - fn test_needs_update_unknown_channels_return_none() { - // Unknown channels (not stable/alpha/enterprise) return None. - assert_eq!(needs_update("0.1.140", "0.1.141", "beta", false), None); - assert_eq!(needs_update("0.1.140", "0.1.141", "nightly", false), None); - assert_eq!(needs_update("0.1.140", "0.1.141", "", false), None); - assert_eq!(needs_update("0.1.140", "0.1.141", "rc", false), None); - // Enterprise is explicitly supported (behaves like stable). - assert_eq!( - needs_update("0.1.140", "0.1.141", "enterprise", false), - Some(true) - ); - // Unknown channels return None regardless of allow_downgrade. - assert_eq!(needs_update("0.1.140", "0.1.141", "beta", true), None); - assert_eq!(needs_update("0.1.140", "0.1.141", "", true), None); - } - - #[test] - fn test_needs_update_zero_versions() { - assert_eq!(needs_update("0.0.0", "0.0.1", "stable", false), Some(true)); - assert_eq!(needs_update("0.0.0", "0.0.0", "stable", false), Some(false)); - } - - #[test] - fn test_needs_update_major_version_jump() { - assert_eq!(needs_update("0.9.99", "1.0.0", "stable", false), Some(true)); - assert_eq!( - needs_update("1.99.99", "2.0.0", "stable", false), - Some(true) - ); - // Major downgrade: not an upgrade (allow_downgrade=false). - assert_eq!( - needs_update("2.0.0", "1.99.99", "stable", false), - Some(false) - ); - } - - #[test] - fn test_needs_update_alpha_to_alpha_same_version_not_upgrade() { - assert_eq!( - needs_update("0.1.150-alpha.5", "0.1.150-alpha.5", "alpha", false), - Some(false) - ); - } - - #[test] - fn test_needs_update_alpha_to_beta_same_base_is_upgrade_per_semver() { - // semver: alpha.5 < beta.1 (lexicographic on identifiers per spec) - assert_eq!( - needs_update("0.1.150-alpha.5", "0.1.150-beta.1", "alpha", false), - Some(true) - ); - } - - #[test] - fn test_needs_update_with_build_metadata_uses_semver_crate_ordering() { - // SUBTLE: per the semver SPEC, build metadata (after `+`) MUST be - // ignored when determining version precedence. However the `semver` - // crate's `PartialOrd` impl compares build metadata lexicographically - // for differing values. So `0.1.141+xyz > 0.1.141+abc` returns true - // here even though spec-wise they are equal. - // - // This means CI publishers MUST NOT publish multiple builds of the - // same version differing only in build metadata, or auto-update will - // bounce users between them. Today our pipeline doesn't, so this is - // latent — but the test locks in the surprising behavior so it can't - // change silently. - assert_eq!( - needs_update("0.1.141+abc", "0.1.141+xyz", "stable", false), - Some(true), - "semver crate orders by build metadata lexicographically (contra spec)" - ); - // No build metadata vs with build metadata: semver crate treats - // a version with build > the same version without it. - assert_eq!( - needs_update("0.1.141", "0.1.141+abc", "stable", false), - Some(true) - ); - } - - #[test] - fn test_needs_update_partial_versions_rejected() { - assert_eq!(needs_update("0.1", "0.1.141", "stable", false), None); - assert_eq!(needs_update("0", "0.1.141", "stable", false), None); - assert_eq!(needs_update("0.1.141", "1", "stable", false), None); - } - - #[test] - fn test_needs_update_alpha_channel_with_invalid_versions_returns_none() { - // Same parse-failure behavior on alpha as stable. - assert_eq!(needs_update("garbage", "0.1.141", "alpha", false), None); - assert_eq!(needs_update("0.1.141", "garbage", "alpha", false), None); - } - - #[test] - fn test_needs_update_alpha_channel_treats_release_as_higher_than_prerelease() { - // On alpha channel, a release version is semver-higher than its - // matching pre-release: 0.1.150 > 0.1.150-alpha.99. - assert_eq!( - needs_update("0.1.150-alpha.99", "0.1.150", "alpha", false), - Some(true) - ); - } - - #[test] - fn test_needs_update_stable_does_not_install_when_pre_and_pre() { - // current is pre-release, latest is also pre-release on stable channel: - // latest is rejected as pre-release, so no install. - assert_eq!( - needs_update("0.1.150-alpha.1", "0.1.151-alpha.1", "stable", false), - Some(false) - ); - } - - // ────────────────────────────────────────────────────────────────────── - // needs_update — allow_downgrade=true (rollback support) - // ────────────────────────────────────────────────────────────────────── - - #[test] - fn test_needs_update_downgrade_stable_when_allowed() { - // Rollback scenario: stable pointer moved from 0.2.7 → 0.2.5. - // GCS/internal installer: allow_downgrade=true → triggers update. - assert_eq!(needs_update("0.2.7", "0.2.5", "stable", true), Some(true)); - } - - #[test] - fn test_needs_update_downgrade_stable_blocked_when_disallowed() { - // Same rollback scenario but npm installer: allow_downgrade=false → no update. - assert_eq!(needs_update("0.2.7", "0.2.5", "stable", false), Some(false)); - } - - #[test] - fn test_needs_update_downgrade_alpha_when_allowed() { - // Alpha rollback: pointer moved backward. - assert_eq!(needs_update("0.2.7", "0.2.5", "alpha", true), Some(true)); - // Alpha pre-release downgrade. - assert_eq!( - needs_update("0.1.148-alpha.3", "0.1.148-alpha.2", "alpha", true), - Some(true) - ); - } - - #[test] - fn test_needs_update_downgrade_enterprise_when_allowed() { - assert_eq!( - needs_update("0.1.207", "0.1.206", "enterprise", true), - Some(true) - ); - } - - #[test] - fn test_needs_update_same_version_unaffected_by_allow_downgrade() { - // Same version → no update regardless of allow_downgrade setting. - assert_eq!(needs_update("0.2.5", "0.2.5", "stable", true), Some(false)); - assert_eq!(needs_update("0.2.5", "0.2.5", "stable", false), Some(false)); - assert_eq!(needs_update("0.2.5", "0.2.5", "alpha", true), Some(false)); - } - - #[test] - fn test_needs_update_upgrade_unaffected_by_allow_downgrade() { - // Upgrade works regardless of allow_downgrade setting. - assert_eq!(needs_update("0.2.5", "0.2.7", "stable", true), Some(true)); - assert_eq!(needs_update("0.2.5", "0.2.7", "stable", false), Some(true)); - assert_eq!(needs_update("0.2.5", "0.2.7", "alpha", true), Some(true)); - assert_eq!(needs_update("0.2.5", "0.2.7", "alpha", false), Some(true)); - } - - #[test] - fn test_needs_update_downgrade_major_version_when_allowed() { - // Major version downgrade (e.g. v2 → v1 rollback). - assert_eq!(needs_update("2.0.0", "1.99.99", "stable", true), Some(true)); - } - - #[test] - fn test_needs_update_downgrade_prerelease_still_rejected_on_stable() { - // Even with allow_downgrade=true, pre-release targets are rejected on - // stable/enterprise channels (safety net). - assert_eq!( - needs_update("0.2.7", "0.2.5-alpha.1", "stable", true), - Some(false) - ); - assert_eq!( - needs_update("0.2.7", "0.2.5-alpha.1", "enterprise", true), - Some(false) - ); - } - - #[test] - fn test_needs_update_prerelease_current_forces_install_regardless_of_allow_downgrade() { - // Pre-release current on stable channel → force-install, independent - // of allow_downgrade. - assert_eq!( - needs_update("0.1.149-alpha.1", "0.1.148", "stable", true), - Some(true) - ); - assert_eq!( - needs_update("0.1.149-alpha.1", "0.1.148", "stable", false), - Some(true) - ); - } - - // ────────────────────────────────────────────────────────────────────── - // installer_allows_downgrade - // ────────────────────────────────────────────────────────────────────── - - #[test] - fn test_installer_allows_downgrade_internal() { - assert!(installer_allows_downgrade("internal")); - } - - #[test] - fn test_installer_allows_downgrade_gh_release() { - assert!(installer_allows_downgrade("gh-release")); - } - - #[test] - fn test_installer_allows_downgrade_npm_blocked() { - // npm registries can return stale/misconfigured versions — no downgrade. - assert!(!installer_allows_downgrade("npm")); - } - - #[test] - fn test_installer_allows_downgrade_unknown_blocked() { - assert!(!installer_allows_downgrade("unknown")); - assert!(!installer_allows_downgrade("")); - assert!(!installer_allows_downgrade("homebrew")); - } - - // ────────────────────────────────────────────────────────────────────── - // detect_platform - // ────────────────────────────────────────────────────────────────────── - - #[cfg(any(target_os = "macos", target_os = "linux", target_os = "windows"))] - #[cfg(any(target_arch = "x86_64", target_arch = "aarch64"))] - #[test] - fn test_detect_platform_returns_known_os() { - let (os, arch) = detect_platform().unwrap(); - assert!( - os == "macos" || os == "linux" || os == "windows", - "got os={os}" - ); - assert!(arch == "x86_64" || arch == "aarch64", "got arch={arch}"); - } - - #[cfg(any(target_os = "macos", target_os = "linux", target_os = "windows"))] - #[cfg(any(target_arch = "x86_64", target_arch = "aarch64"))] - #[test] - fn test_detect_platform_matches_compile_time_cfg() { - let (os, arch) = detect_platform().unwrap(); - if cfg!(target_os = "macos") { - assert_eq!(os, "macos"); - } - if cfg!(target_os = "linux") { - assert_eq!(os, "linux"); - } - if cfg!(target_os = "windows") { - assert_eq!(os, "windows"); - } - if cfg!(target_arch = "x86_64") { - assert_eq!(arch, "x86_64"); - } - if cfg!(target_arch = "aarch64") { - assert_eq!(arch, "aarch64"); - } - } - - // ────────────────────────────────────────────────────────────────────── - // cleanup_old_downloads — additional edge cases - // ────────────────────────────────────────────────────────────────────── - - #[tokio::test] - async fn test_cleanup_old_downloads_invalid_current_version_is_no_op() { - let dir = tempfile::tempdir().unwrap(); - let d = dir.path(); - std::fs::write(d.join("grok-0.1.140-macos-aarch64"), "v140").unwrap(); - std::fs::write(d.join("grok-0.1.141-macos-aarch64"), "v141").unwrap(); - - // Invalid version string → cleanup must early-return without deleting. - make_all_stale(d); - - cleanup_old_downloads(d, "grok", "not-a-version").await; - assert!(d.join("grok-0.1.140-macos-aarch64").exists()); - assert!(d.join("grok-0.1.141-macos-aarch64").exists()); - } - - #[tokio::test] - async fn test_cleanup_old_downloads_missing_dir_no_panic() { - let dir = tempfile::tempdir().unwrap(); - let missing = dir.path().join("does-not-exist"); - // Must not panic when the directory doesn't exist. - cleanup_old_downloads(&missing, "grok", "0.1.141").await; - } - - #[tokio::test] - async fn test_cleanup_old_downloads_files_with_non_digit_suffix_skipped() { - let dir = tempfile::tempdir().unwrap(); - let d = dir.path(); - // Files matching prefix but with a non-digit-leading suffix must be - // ignored (e.g. grok-latest, grok-pager-* when prefix is grok). - std::fs::write(d.join("grok-latest"), "alias").unwrap(); - std::fs::write(d.join("grok-pager-0.1.141-macos-aarch64"), "pager").unwrap(); - std::fs::write(d.join("grok-0.1.140-macos-aarch64"), "v140").unwrap(); - std::fs::write(d.join("grok-0.1.141-macos-aarch64"), "current").unwrap(); - - make_all_stale(d); - - cleanup_old_downloads(d, "grok", "0.1.141").await; - - // grok-latest and grok-pager-* must be untouched. - assert!(d.join("grok-latest").exists()); - assert!(d.join("grok-pager-0.1.141-macos-aarch64").exists()); - } - - #[tokio::test] - async fn test_cleanup_old_downloads_unparseable_version_skipped() { - let dir = tempfile::tempdir().unwrap(); - let d = dir.path(); - // Files with prefix + digit but unparseable as semver are ignored - // (not deleted, not counted). - std::fs::write(d.join("grok-9garbage-macos-aarch64"), "junk").unwrap(); - std::fs::write(d.join("grok-0.1.141-macos-aarch64"), "current").unwrap(); - - make_all_stale(d); - - cleanup_old_downloads(d, "grok", "0.1.141").await; - - assert!( - d.join("grok-9garbage-macos-aarch64").exists(), - "unparseable file must be ignored, not deleted" - ); - assert!(d.join("grok-0.1.141-macos-aarch64").exists()); - } - - #[tokio::test] - async fn test_cleanup_old_downloads_only_current_present_no_op() { - let dir = tempfile::tempdir().unwrap(); - let d = dir.path(); - std::fs::write(d.join("grok-0.1.141-macos-aarch64"), "current").unwrap(); - - make_all_stale(d); - - cleanup_old_downloads(d, "grok", "0.1.141").await; - - assert!(d.join("grok-0.1.141-macos-aarch64").exists()); - } - - #[tokio::test] - async fn test_cleanup_old_downloads_only_one_old_keeps_it() { - let dir = tempfile::tempdir().unwrap(); - let d = dir.path(); - std::fs::write(d.join("grok-0.1.140-macos-aarch64"), "v140").unwrap(); - std::fs::write(d.join("grok-0.1.141-macos-aarch64"), "current").unwrap(); - - make_all_stale(d); - - cleanup_old_downloads(d, "grok", "0.1.141").await; - - // Only one old version → keep it as N-1. - assert!(d.join("grok-0.1.140-macos-aarch64").exists(), "N-1 kept"); - assert!(d.join("grok-0.1.141-macos-aarch64").exists(), "current"); - } - - #[tokio::test] - async fn test_cleanup_old_downloads_unrelated_files_untouched() { - let dir = tempfile::tempdir().unwrap(); - let d = dir.path(); - // Files that don't start with the prefix must never be touched. - std::fs::write(d.join("README.md"), "readme").unwrap(); - std::fs::write(d.join("config.toml"), "config").unwrap(); - std::fs::write(d.join("other-tool-0.1.0"), "other").unwrap(); - std::fs::write(d.join("grok-0.1.140-macos-aarch64"), "v140").unwrap(); - std::fs::write(d.join("grok-0.1.141-macos-aarch64"), "current").unwrap(); - - make_all_stale(d); - - cleanup_old_downloads(d, "grok", "0.1.141").await; - - assert!(d.join("README.md").exists()); - assert!(d.join("config.toml").exists()); - assert!(d.join("other-tool-0.1.0").exists()); - } - - #[tokio::test] - async fn test_cleanup_old_downloads_multiplatform_in_same_dir() { - let dir = tempfile::tempdir().unwrap(); - let d = dir.path(); - // Same version, multiple platforms (uncommon, but possible). - // Both should be considered "current" via the version equality check. - std::fs::write(d.join("grok-0.1.141-macos-aarch64"), "mac").unwrap(); - std::fs::write(d.join("grok-0.1.141-linux-x86_64"), "linux").unwrap(); - std::fs::write(d.join("grok-0.1.140-macos-aarch64"), "old-mac").unwrap(); - std::fs::write(d.join("grok-0.1.139-macos-aarch64"), "older-mac").unwrap(); - - make_all_stale(d); - - cleanup_old_downloads(d, "grok", "0.1.141").await; - - // Both platform variants of current must survive. - assert!(d.join("grok-0.1.141-macos-aarch64").exists()); - assert!(d.join("grok-0.1.141-linux-x86_64").exists()); - // N-1 (0.1.140) kept, older deleted. - assert!(d.join("grok-0.1.140-macos-aarch64").exists()); - assert!(!d.join("grok-0.1.139-macos-aarch64").exists()); - } - - #[tokio::test] - async fn test_cleanup_old_downloads_tmp_files_deleted_even_when_unparseable() { - let dir = tempfile::tempdir().unwrap(); - let d = dir.path(); - // Stale tmp files are deleted regardless of version-parseability. - std::fs::write(d.join("grok-junk.tmp"), "partial").unwrap(); - make_stale(&d.join("grok-junk.tmp")); - std::fs::write(d.join("grok-0.1.140-macos-aarch64.tmp"), "partial2").unwrap(); - make_stale(&d.join("grok-0.1.140-macos-aarch64.tmp")); - std::fs::write(d.join("grok-0.1.141-macos-aarch64"), "current").unwrap(); - - make_all_stale(d); - - cleanup_old_downloads(d, "grok", "0.1.141").await; - - assert!(!d.join("grok-junk.tmp").exists(), "junk tmp deleted"); - assert!( - !d.join("grok-0.1.140-macos-aarch64.tmp").exists(), - "versioned tmp deleted" - ); - assert!(d.join("grok-0.1.141-macos-aarch64").exists()); - } - - #[tokio::test] - async fn test_cleanup_old_downloads_three_olds_keeps_only_newest() { - // Regression: keep exactly N-1, not N-2 or older. - let dir = tempfile::tempdir().unwrap(); - let d = dir.path(); - for v in ["0.1.138", "0.1.139", "0.1.140"] { - std::fs::write(d.join(format!("grok-{}-macos-aarch64", v)), v).unwrap(); - } - std::fs::write(d.join("grok-0.1.141-macos-aarch64"), "current").unwrap(); - - make_all_stale(d); - - cleanup_old_downloads(d, "grok", "0.1.141").await; - - assert!(d.join("grok-0.1.141-macos-aarch64").exists(), "current"); - assert!(d.join("grok-0.1.140-macos-aarch64").exists(), "N-1 only"); - assert!(!d.join("grok-0.1.139-macos-aarch64").exists()); - assert!(!d.join("grok-0.1.138-macos-aarch64").exists()); - } - - #[tokio::test] - async fn test_cleanup_old_downloads_darwin_platform_recognized() { - // The `darwin` alias for macOS is in PLATFORM_OS — versions on - // grok-X.Y.Z-darwin-* layouts must split correctly. - let dir = tempfile::tempdir().unwrap(); - let d = dir.path(); - std::fs::write(d.join("grok-0.1.140-darwin-arm64"), "v140").unwrap(); - std::fs::write(d.join("grok-0.1.141-darwin-arm64"), "current").unwrap(); - - make_all_stale(d); - - cleanup_old_downloads(d, "grok", "0.1.141").await; - - assert!(d.join("grok-0.1.141-darwin-arm64").exists(), "current"); - assert!(d.join("grok-0.1.140-darwin-arm64").exists(), "N-1"); - } - - // ────────────────────────────────────────────────────────────────────── // ────────────────────────────────────────────────────────────────────── // UpdateRunMode // ────────────────────────────────────────────────────────────────────── @@ -3972,38 +2980,34 @@ mod tests { ); assert_eq!( MSG_RUN_UPDATE_MANUAL, - "Run `grok update` to get the latest version." + "Run `kigi update` to get the latest version." ); + assert_eq!(SHA256SUMS_ASSET, "SHA256SUMS"); + if cfg!(windows) { + assert_eq!(ARCHIVE_EXT, "zip"); + } else { + assert_eq!(ARCHIVE_EXT, "tar.gz"); + } } // ────────────────────────────────────────────────────────────────────── // env_installer — env-var based, must run serially. // // Resolution order (matches function body): - // 1. KIGI_INSTALLER (npm | internal | gh-release | gh) - // 2. KIGI_MANAGED_BY_NPM → npm - // 3. KIGI_MANAGED_BY_INTERNAL → internal - // 4. npm_config_user_agent → npm - // 5. None + // 1. KIGI_INSTALLER (internal; anything else → None) + // 2. KIGI_MANAGED_BY_INTERNAL → internal + // 3. None // ────────────────────────────────────────────────────────────────────── /// Snapshot every installer-related env var so the test can clear them - /// at start and restore them at end. Without this, a parent shell that - /// sets e.g. `npm_config_user_agent` (which happens whenever you run via - /// `npm run`) silently makes every "no env vars" test misbehave. + /// at start and restore them at end. struct InstallerEnvGuard { prev: Vec<(&'static str, Option)>, } impl InstallerEnvGuard { fn isolate() -> Self { - const VARS: &[&str] = &[ - "KIGI_INSTALLER", - "KIGI_MANAGED_BY_NPM", - "KIGI_MANAGED_BY_INTERNAL", - "npm_config_user_agent", - "NPM_TOKEN", - ]; + const VARS: &[&str] = &["KIGI_INSTALLER", "KIGI_MANAGED_BY_INTERNAL"]; let prev: Vec<_> = VARS.iter().map(|k| (*k, std::env::var_os(k))).collect(); unsafe { for k in VARS { @@ -4034,346 +3038,64 @@ mod tests { assert_eq!(env_installer(), None); } - #[test] - #[serial_test::serial] - fn test_env_installer_explicit_npm() { - let _g = InstallerEnvGuard::isolate(); - unsafe { std::env::set_var("KIGI_INSTALLER", "npm") }; - assert_eq!(env_installer(), Some("npm")); - } - #[test] #[serial_test::serial] fn test_env_installer_explicit_internal() { let _g = InstallerEnvGuard::isolate(); unsafe { std::env::set_var("KIGI_INSTALLER", "internal") }; assert_eq!(env_installer(), Some("internal")); + // Case-insensitive. + unsafe { std::env::set_var("KIGI_INSTALLER", "INTERNAL") }; + assert_eq!(env_installer(), Some("internal")); } #[test] #[serial_test::serial] - fn test_env_installer_explicit_gh_release() { - let _g = InstallerEnvGuard::isolate(); - unsafe { std::env::set_var("KIGI_INSTALLER", "gh-release") }; - assert_eq!(env_installer(), Some("gh-release")); - } - - #[test] - #[serial_test::serial] - fn test_env_installer_explicit_gh_alias() { - // `gh` is shorthand for `gh-release`. - let _g = InstallerEnvGuard::isolate(); - unsafe { std::env::set_var("KIGI_INSTALLER", "gh") }; - assert_eq!(env_installer(), Some("gh-release")); - } - - #[test] - #[serial_test::serial] - fn test_env_installer_explicit_uppercase_normalized() { - let _g = InstallerEnvGuard::isolate(); - unsafe { std::env::set_var("KIGI_INSTALLER", "NPM") }; - assert_eq!(env_installer(), Some("npm")); - - unsafe { std::env::set_var("KIGI_INSTALLER", "Gh-Release") }; - assert_eq!(env_installer(), Some("gh-release")); - } - - #[test] - #[serial_test::serial] - fn test_env_installer_explicit_unknown_value_returns_none() { + fn test_env_installer_unknown_or_empty_returns_none() { // CRITICAL: when the explicit env var is set to something we don't - // recognize, we early-return None. This means we do NOT fall through - // to the other env vars or to config. So `KIGI_INSTALLER=brew` - // disables the env-installer detection entirely. + // recognize, we early-return None and do NOT fall through to the + // other env vars. let _g = InstallerEnvGuard::isolate(); - unsafe { std::env::set_var("KIGI_INSTALLER", "brew") }; - // Even if MANAGED_BY_NPM is also set, the explicit var wins (and rejects). - unsafe { std::env::set_var("KIGI_MANAGED_BY_NPM", "1") }; + unsafe { std::env::set_var("KIGI_INSTALLER", "npm") }; + unsafe { std::env::set_var("KIGI_MANAGED_BY_INTERNAL", "1") }; assert_eq!( env_installer(), None, - "explicit KIGI_INSTALLER=brew must early-return None, not fall through" + "explicit unknown KIGI_INSTALLER must early-return None, not fall through" ); - } - - #[test] - #[serial_test::serial] - fn test_env_installer_explicit_empty_returns_none() { - let _g = InstallerEnvGuard::isolate(); unsafe { std::env::set_var("KIGI_INSTALLER", "") }; assert_eq!(env_installer(), None); } - #[test] - #[serial_test::serial] - fn test_env_installer_managed_by_npm() { - let _g = InstallerEnvGuard::isolate(); - unsafe { std::env::set_var("KIGI_MANAGED_BY_NPM", "1") }; - assert_eq!(env_installer(), Some("npm")); - } - - #[test] - #[serial_test::serial] - fn test_env_installer_managed_by_npm_any_value() { - // The check is `is_some` — any value (including empty) wins. - let _g = InstallerEnvGuard::isolate(); - unsafe { std::env::set_var("KIGI_MANAGED_BY_NPM", "") }; - assert_eq!(env_installer(), Some("npm")); - } - #[test] #[serial_test::serial] fn test_env_installer_managed_by_internal() { let _g = InstallerEnvGuard::isolate(); unsafe { std::env::set_var("KIGI_MANAGED_BY_INTERNAL", "1") }; assert_eq!(env_installer(), Some("internal")); - } - - #[test] - #[serial_test::serial] - fn test_env_installer_npm_config_user_agent_implies_npm() { - // npm sets npm_config_user_agent in the env of any process it spawns. - // The trampoline relies on this fallback when MANAGED_BY_NPM was lost. - let _g = InstallerEnvGuard::isolate(); - unsafe { - std::env::set_var( - "npm_config_user_agent", - "npm/10.2.0 node/v20.11.0 darwin arm64 workspaces/false", - ) - }; - assert_eq!(env_installer(), Some("npm")); - } - - #[test] - #[serial_test::serial] - fn test_env_installer_managed_by_npm_wins_over_npm_config_user_agent() { - // Both set: the order in env_installer is MANAGED_BY_NPM checked first, - // so MANAGED_BY_NPM wins. (Result is the same — both → npm — but the - // resolution path matters for future maintainers.) - let _g = InstallerEnvGuard::isolate(); - unsafe { - std::env::set_var("KIGI_MANAGED_BY_NPM", "1"); - std::env::set_var("npm_config_user_agent", "npm/10"); - } - assert_eq!(env_installer(), Some("npm")); - } - - #[test] - #[serial_test::serial] - fn test_env_installer_explicit_internal_wins_over_npm_managed() { - // KIGI_INSTALLER=internal must override an inherited MANAGED_BY_NPM. - let _g = InstallerEnvGuard::isolate(); - unsafe { - std::env::set_var("KIGI_INSTALLER", "internal"); - std::env::set_var("KIGI_MANAGED_BY_NPM", "1"); - } + // The check is `is_some` — any value (including empty) wins. + unsafe { std::env::set_var("KIGI_MANAGED_BY_INTERNAL", "") }; assert_eq!(env_installer(), Some("internal")); } - // ────────────────────────────────────────────────────────────────────── - // create_temp_npmrc — also env-var based (NPM_TOKEN), must run serially. - // ────────────────────────────────────────────────────────────────────── - - #[test] - #[serial_test::serial] - fn test_create_temp_npmrc_no_token_returns_none() { - let _g = InstallerEnvGuard::isolate(); - let result = create_temp_npmrc(None).unwrap(); - assert!(result.is_none(), "no NPM_TOKEN must yield None"); - } - - #[test] - #[serial_test::serial] - fn test_create_temp_npmrc_empty_token_returns_none() { - // An empty token is not a real token — must not write a file. - let _g = InstallerEnvGuard::isolate(); - unsafe { std::env::set_var("NPM_TOKEN", "") }; - let result = create_temp_npmrc(None).unwrap(); - assert!(result.is_none(), "empty NPM_TOKEN must yield None"); - } - - #[test] - #[serial_test::serial] - fn test_create_temp_npmrc_whitespace_only_token_returns_none() { - // Whitespace-only is treated as empty after trim. - let _g = InstallerEnvGuard::isolate(); - unsafe { std::env::set_var("NPM_TOKEN", " \t\n ") }; - let result = create_temp_npmrc(None).unwrap(); - assert!(result.is_none(), "whitespace NPM_TOKEN must yield None"); - } - - #[test] - #[serial_test::serial] - fn test_create_temp_npmrc_default_registry() { - let _g = InstallerEnvGuard::isolate(); - unsafe { std::env::set_var("NPM_TOKEN", "secret123") }; - let path = create_temp_npmrc(None).unwrap().expect("file written"); - let body = std::fs::read_to_string(&path).unwrap(); - - assert!( - body.contains("registry.npmjs.org"), - "default registry: {body}" - ); - assert!(body.contains("_authToken=secret123"), "token: {body}"); - assert!(body.starts_with("//"), "must be // prefix: {body}"); - assert!(body.ends_with('\n'), "must end with newline: {body}"); - - let _ = std::fs::remove_file(&path); - } - - #[test] - #[serial_test::serial] - fn test_create_temp_npmrc_token_trimmed() { - let _g = InstallerEnvGuard::isolate(); - unsafe { std::env::set_var("NPM_TOKEN", " padded-token ") }; - let path = create_temp_npmrc(None).unwrap().expect("file written"); - let body = std::fs::read_to_string(&path).unwrap(); - assert!( - body.contains("_authToken=padded-token"), - "token must be trimmed: {body}" - ); - assert!( - !body.contains("padded-token "), - "trailing whitespace must be stripped: {body}" - ); - let _ = std::fs::remove_file(&path); - } - - #[test] - #[serial_test::serial] - fn test_create_temp_npmrc_custom_registry_extracts_host_and_path() { - let _g = InstallerEnvGuard::isolate(); - unsafe { std::env::set_var("NPM_TOKEN", "tok") }; - let path = create_temp_npmrc(Some("https://npm.example.com/repository/npm/")) - .unwrap() - .expect("file written"); - let body = std::fs::read_to_string(&path).unwrap(); - - // Host + path must be preserved (trailing slash stripped per impl). - assert!( - body.contains("npm.example.com/repository/npm"), - "registry host+path: {body}" - ); - assert!(body.contains("_authToken=tok")); - - let _ = std::fs::remove_file(&path); - } - - #[test] - #[serial_test::serial] - fn test_create_temp_npmrc_custom_registry_with_port() { - let _g = InstallerEnvGuard::isolate(); - unsafe { std::env::set_var("NPM_TOKEN", "tok") }; - let path = create_temp_npmrc(Some("https://npm.example.com:8443/")) - .unwrap() - .expect("file written"); - let body = std::fs::read_to_string(&path).unwrap(); - assert!( - body.contains("npm.example.com:8443"), - "port must be preserved: {body}" - ); - let _ = std::fs::remove_file(&path); - } - - #[test] - #[serial_test::serial] - fn test_create_temp_npmrc_invalid_registry_url_falls_back_to_default() { - // If the registry string doesn't parse as a URL, fall back to the - // public npm host so the auth token isn't silently lost. - let _g = InstallerEnvGuard::isolate(); - unsafe { std::env::set_var("NPM_TOKEN", "tok") }; - let path = create_temp_npmrc(Some("not a url")) - .unwrap() - .expect("file written"); - let body = std::fs::read_to_string(&path).unwrap(); - assert!( - body.contains("registry.npmjs.org"), - "invalid URL falls back: {body}" - ); - let _ = std::fs::remove_file(&path); - } - - #[cfg(unix)] - #[test] - #[serial_test::serial] - fn test_create_temp_npmrc_file_perms_are_0600() { - // The file contains an auth token — must be readable only by owner. - use std::os::unix::fs::PermissionsExt; - let _g = InstallerEnvGuard::isolate(); - unsafe { std::env::set_var("NPM_TOKEN", "secret") }; - let path = create_temp_npmrc(None).unwrap().expect("file written"); - - let perms = std::fs::metadata(&path).unwrap().permissions(); - let mode = perms.mode() & 0o777; - assert_eq!( - mode, 0o600, - "npmrc must be 0600 to protect the auth token, got {mode:o}" - ); - - let _ = std::fs::remove_file(&path); - } - - #[test] - #[serial_test::serial] - fn test_create_temp_npmrc_unique_path_per_pid() { - // Two parallel installs would clobber each other if the path didn't - // include the PID. Verify the filename includes the current PID. - let _g = InstallerEnvGuard::isolate(); - unsafe { std::env::set_var("NPM_TOKEN", "tok") }; - let path = create_temp_npmrc(None).unwrap().expect("file written"); - let pid = std::process::id().to_string(); - let name = path.file_name().unwrap().to_string_lossy().to_string(); - assert!( - name.contains(&pid), - "filename should include PID: {name} (pid={pid})" - ); - let _ = std::fs::remove_file(&path); - } - // ────────────────────────────────────────────────────────────────────── // windows_replace_exe — runs only on Windows CI // ────────────────────────────────────────────────────────────────────── #[cfg(windows)] #[tokio::test] - async fn test_windows_replace_exe_creates_dest_when_missing() { + async fn test_windows_replace_exe_creates_and_overwrites_dest() { let dir = tempfile::tempdir().unwrap(); let src = dir.path().join("new-binary.exe"); std::fs::write(&src, "new content").unwrap(); - let dest = dir.path().join("grok.exe"); + let dest = dir.path().join("kigi.exe"); windows_replace_exe(&src, &dest).await.unwrap(); - - assert!(dest.exists()); assert_eq!(std::fs::read(&dest).unwrap(), b"new content"); - } - - #[cfg(windows)] - #[tokio::test] - async fn test_windows_replace_exe_overwrites_unlocked_dest() { - let dir = tempfile::tempdir().unwrap(); - let src = dir.path().join("new-binary.exe"); - std::fs::write(&src, "new content").unwrap(); - let dest = dir.path().join("grok.exe"); - std::fs::write(&dest, "old content").unwrap(); + std::fs::write(&src, "newer content").unwrap(); windows_replace_exe(&src, &dest).await.unwrap(); - - assert_eq!(std::fs::read(&dest).unwrap(), b"new content"); - } - - #[cfg(windows)] - #[tokio::test] - async fn test_windows_replace_exe_preserves_binary_bytes() { - let dir = tempfile::tempdir().unwrap(); - let body: Vec = (0u8..=255).cycle().take(4096).collect(); - let src = dir.path().join("binary.exe"); - std::fs::write(&src, &body).unwrap(); - let dest = dir.path().join("grok.exe"); - - windows_replace_exe(&src, &dest).await.unwrap(); - - assert_eq!(std::fs::read(&dest).unwrap(), body); + assert_eq!(std::fs::read(&dest).unwrap(), b"newer content"); } #[cfg(windows)] @@ -4382,9 +3104,9 @@ mod tests { let dir = tempfile::tempdir().unwrap(); let src = dir.path().join("new.exe"); std::fs::write(&src, "new").unwrap(); - let dest = dir.path().join("grok.exe"); + let dest = dir.path().join("kigi.exe"); std::fs::write(&dest, "current").unwrap(); - let old = dir.path().join("grok.exe.old"); + let old = dir.path().join("kigi.exe.old"); std::fs::write(&old, "stale-from-prior-update").unwrap(); windows_replace_exe(&src, &dest).await.unwrap(); @@ -4416,7 +3138,7 @@ mod tests { let dir = tempfile::tempdir().unwrap(); let src = dir.path().join("new.exe"); std::fs::write(&src, "updated binary").unwrap(); - let dest = dir.path().join("grok.exe"); + let dest = dir.path().join("kigi.exe"); std::fs::write(&dest, "running binary").unwrap(); let _lock = std::fs::OpenOptions::new() @@ -4429,7 +3151,7 @@ mod tests { assert_eq!(std::fs::read_to_string(&dest).unwrap(), "updated binary"); - let old = dir.path().join("grok.exe.old"); + let old = dir.path().join("kigi.exe.old"); assert!(old.exists(), ".old must exist after rename fallback"); drop(_lock); assert_eq!(std::fs::read_to_string(&old).unwrap(), "running binary"); @@ -4438,7 +3160,7 @@ mod tests { #[cfg(windows)] #[tokio::test] async fn test_windows_replace_exe_rollback_on_copy_failure() { - // No stale .old: the aside IS grok.exe.old, so this pins the + // No stale .old: the aside IS kigi.exe.old, so this pins the // non-diverted rollback branch (rename .old back onto dest). use std::os::windows::fs::OpenOptionsExt; const FILE_SHARE_READ: u32 = 0x00000001; @@ -4447,7 +3169,7 @@ mod tests { let dir = tempfile::tempdir().unwrap(); let src = dir.path().join("new.exe"); std::fs::write(&src, "updated binary").unwrap(); - let dest = dir.path().join("grok.exe"); + let dest = dir.path().join("kigi.exe"); std::fs::write(&dest, "original").unwrap(); // Dest locked like a running exe: blocks writes but allows rename. @@ -4474,38 +3196,10 @@ mod tests { "original", "rollback must restore the original binary" ); - let old = dir.path().join("grok.exe.old"); + let old = dir.path().join("kigi.exe.old"); assert!(!old.exists(), "rollback must consume the .old aside"); } - #[cfg(windows)] - #[tokio::test] - async fn test_windows_replace_exe_idempotent_same_content() { - let dir = tempfile::tempdir().unwrap(); - let src = dir.path().join("binary.exe"); - std::fs::write(&src, "same content").unwrap(); - let dest = dir.path().join("grok.exe"); - std::fs::write(&dest, "same content").unwrap(); - - windows_replace_exe(&src, &dest).await.unwrap(); - - assert_eq!(std::fs::read_to_string(&dest).unwrap(), "same content"); - } - - #[cfg(windows)] - #[tokio::test] - async fn test_windows_replace_exe_empty_binary() { - let dir = tempfile::tempdir().unwrap(); - let src = dir.path().join("empty.exe"); - std::fs::write(&src, b"").unwrap(); - let dest = dir.path().join("grok.exe"); - std::fs::write(&dest, "non-empty").unwrap(); - - windows_replace_exe(&src, &dest).await.unwrap(); - - assert_eq!(std::fs::metadata(&dest).unwrap().len(), 0); - } - #[cfg(windows)] #[tokio::test] async fn test_windows_replace_exe_locked_stale_old_does_not_block_update() { @@ -4519,9 +3213,9 @@ mod tests { let dir = tempfile::tempdir().unwrap(); let src = dir.path().join("new.exe"); std::fs::write(&src, "updated binary").unwrap(); - let dest = dir.path().join("grok.exe"); + let dest = dir.path().join("kigi.exe"); std::fs::write(&dest, "running binary").unwrap(); - let old = dir.path().join("grok.exe.old"); + let old = dir.path().join("kigi.exe.old"); std::fs::write(&old, "previous binary").unwrap(); // No FILE_SHARE_DELETE: .old cannot be deleted or rename-replaced. @@ -4545,13 +3239,13 @@ mod tests { "previous binary", "locked .old must be left in place" ); - let asides: Vec = std::fs::read_dir(dir.path()) + let asides: Vec = std::fs::read_dir(dir.path()) .unwrap() .filter_map(|e| e.ok().map(|e| e.path())) .filter(|p| { p.file_name() .and_then(|n| n.to_str()) - .is_some_and(|n| n.starts_with("grok.exe.old.") && n.ends_with(".old")) + .is_some_and(|n| n.starts_with("kigi.exe.old.") && n.ends_with(".old")) }) .collect(); assert_eq!( @@ -4565,64 +3259,6 @@ mod tests { ); } - #[cfg(windows)] - #[tokio::test] - async fn test_windows_replace_exe_rollback_restores_from_diverted_aside() { - // Copy failure after a divert must roll dest back from the unique - // aside, not the hardcoded .old (which still holds the locked image). - use std::os::windows::fs::OpenOptionsExt; - const FILE_SHARE_READ: u32 = 0x00000001; - const FILE_SHARE_DELETE: u32 = 0x00000004; - - let dir = tempfile::tempdir().unwrap(); - let src = dir.path().join("new.exe"); - std::fs::write(&src, "updated binary").unwrap(); - let dest = dir.path().join("grok.exe"); - std::fs::write(&dest, "running binary").unwrap(); - let old = dir.path().join("grok.exe.old"); - std::fs::write(&old, "previous binary").unwrap(); - - // No FILE_SHARE_DELETE: .old survives the sweep and forces a divert. - let _old_lock = std::fs::OpenOptions::new() - .read(true) - .share_mode(FILE_SHARE_READ) - .open(&old) - .unwrap(); - // Dest locked like a running exe: blocks writes but allows rename. - let _dest_lock = std::fs::OpenOptions::new() - .read(true) - .share_mode(FILE_SHARE_READ | FILE_SHARE_DELETE) - .open(&dest) - .unwrap(); - // Exclusive src lock: both copies fail with a sharing violation, so - // the rename dance runs and the second copy triggers the rollback. - let _src_lock = std::fs::OpenOptions::new() - .read(true) - .share_mode(0) - .open(&src) - .unwrap(); - - let result = windows_replace_exe(&src, &dest).await; - - assert!(result.is_err()); - assert_eq!( - std::fs::read_to_string(&dest).unwrap(), - "running binary", - "rollback must restore dest from the diverted aside" - ); - assert_eq!(std::fs::read_to_string(&old).unwrap(), "previous binary"); - let leftover_asides = std::fs::read_dir(dir.path()) - .unwrap() - .filter_map(|e| e.ok()) - .filter(|e| { - let name = e.file_name(); - let name = name.to_string_lossy(); - name.starts_with("grok.exe.old.") && name.ends_with(".old") - }) - .count(); - assert_eq!(leftover_asides, 0, "rollback must consume the aside"); - } - #[cfg(windows)] #[tokio::test] async fn test_windows_replace_exe_sweeps_accumulated_asides() { @@ -4632,16 +3268,16 @@ mod tests { let dir = tempfile::tempdir().unwrap(); let src = dir.path().join("new.exe"); std::fs::write(&src, "new").unwrap(); - let dest = dir.path().join("grok.exe"); + let dest = dir.path().join("kigi.exe"); std::fs::write(&dest, "current").unwrap(); - let old = dir.path().join("grok.exe.old"); + let old = dir.path().join("kigi.exe.old"); std::fs::write(&old, "stale").unwrap(); - let aside_a = dir.path().join("grok.exe.old.1234-0.old"); - let aside_b = dir.path().join("grok.exe.old.1234-1.old"); + let aside_a = dir.path().join("kigi.exe.old.1234-0.old"); + let aside_b = dir.path().join("kigi.exe.old.1234-1.old"); std::fs::write(&aside_a, "aside-a").unwrap(); std::fs::write(&aside_b, "aside-b").unwrap(); - let agent_old = dir.path().join("agent.exe.old"); - std::fs::write(&agent_old, "agent-old").unwrap(); + let other_old = dir.path().join("other.exe.old"); + std::fs::write(&other_old, "other-old").unwrap(); windows_replace_exe(&src, &dest).await.unwrap(); @@ -4650,7 +3286,7 @@ mod tests { assert!(!aside_a.exists(), "aside must be swept"); assert!(!aside_b.exists(), "aside must be swept"); assert!( - agent_old.exists(), + other_old.exists(), "other executables' leftovers must be untouched" ); } diff --git a/crates/codegen/kigi-update/src/minimum_version.rs b/crates/codegen/kigi-update/src/minimum_version.rs index 41c4d8a..b8a63e2 100644 --- a/crates/codegen/kigi-update/src/minimum_version.rs +++ b/crates/codegen/kigi-update/src/minimum_version.rs @@ -1,15 +1,15 @@ //! Minimum-version enforcement. //! -//! When `cli.minimum_version` is set in any config layer, Grok refuses to +//! When `cli.minimum_version` is set in any config layer, Kigi refuses to //! start below that floor. With auto-update on, we install -//! `max(latest, minimum)`; otherwise the user is asked to run `grok update`. +//! `max(latest, minimum)`; otherwise the user is asked to run `kigi update`. //! //! Set `KIGI_TEST_VERSION` to manually exercise either path without producing //! a real out-of-date build. use crate::auto_update::{get_installer, run_install_script}; use crate::version::{ - UpdateConfig, fetch_latest_version, get_installed_grok_version, write_version_cache, + UpdateConfig, fetch_latest_version, get_installed_kigi_version, write_version_cache, }; use kigi_shell::util::config; use tracing::{info, warn}; @@ -36,7 +36,7 @@ enum EnforcementOutcome { pub(crate) enum MinimumVersionError { /// `source` chains via `Error::source()`; omitted from `Display`. #[error( - "The minimum version \"{value}\" in your Grok configuration \ + "The minimum version \"{value}\" in your Kigi configuration \ isn't a valid version number. Update `cli.minimum_version` and try again." )] InvalidMinimum { @@ -45,22 +45,22 @@ pub(crate) enum MinimumVersionError { source: semver::Error, }, #[error( - "This version of Grok ({current}) is no longer supported. \ - Run `grok update` to install version {minimum} or later." + "This version of Kigi ({current}) is no longer supported. \ + Run `kigi update` to install version {minimum} or later." )] AutoUpdateDisabled { current: String, minimum: String }, - /// `npm` / `gh` / `internal` GCS — none detected. + /// No installer backend detected. #[error( - "This version of Grok ({current}) is no longer supported. \ - Run `grok update` to install version {minimum} or later." + "This version of Kigi ({current}) is no longer supported. \ + Run `kigi update` to install version {minimum} or later." )] NoInstaller { current: String, minimum: String }, /// `detail` is telemetry-only; omitted from `Display` to avoid stacking /// the installer's own action language. #[error( - "This version of Grok ({current}) is no longer supported, \ + "This version of Kigi ({current}) is no longer supported, \ and the update to version {minimum} didn't complete.\n\n\ - Run `grok update` to try again." + Run `kigi update` to try again." )] UpgradeFailed { current: String, @@ -70,7 +70,7 @@ pub(crate) enum MinimumVersionError { /// Latest release is known but still below the floor (vs `NoReleaseFound`, /// which couldn't probe at all). #[error( - "This version of Grok ({current}) is no longer supported. \ + "This version of Kigi ({current}) is no longer supported. \ Version {minimum} or later is required, but the most recent release is {latest}. \ Contact your administrator." )] @@ -81,15 +81,15 @@ pub(crate) enum MinimumVersionError { }, /// Couldn't probe the registry — likely transient. #[error( - "This version of Grok ({current}) is no longer supported. \ + "This version of Kigi ({current}) is no longer supported. \ Version {minimum} or later is required, but no release was found. \ Check your network connection, or contact your administrator." )] NoReleaseFound { current: String, minimum: String }, - /// `grok update --version X` requested a version below the floor. + /// `kigi update --version X` requested a version below the floor. #[error( - "Cannot install Grok {target}: the configured minimum is {minimum}. \ - Run `grok update` to install the latest allowed version." + "Cannot install Kigi {target}: the configured minimum is {minimum}. \ + Run `kigi update` to install the latest allowed version." )] TargetBelowFloor { target: String, minimum: String }, } @@ -133,7 +133,7 @@ fn evaluate_minimum_version( } /// Refuse an explicit install target below the configured floor. -/// Used by `grok update --version X`. +/// Used by `kigi update --version X`. pub(crate) fn check_install_target(target: &str) -> Result<(), MinimumVersionError> { let floor = resolve_floor_or_error()?; check_install_target_inner(target, floor.as_deref()) @@ -154,7 +154,7 @@ fn check_install_target_inner( } /// `max(target, configured_floor)`; passthrough when no floor is set. -/// Used by `grok update` to keep the install target at or above the pin. +/// Used by `kigi update` to keep the install target at or above the pin. pub(crate) fn apply_floor(target: &str) -> Result { let floor = resolve_floor_or_error()?; apply_floor_inner(target, floor.as_deref()) @@ -193,7 +193,7 @@ async fn enforce_minimum_version( minimum_version: Option<&str>, update_config: &UpdateConfig, ) -> Result { - let current_version = get_installed_grok_version(); + let current_version = get_installed_kigi_version(); let decision = evaluate_minimum_version(¤t_version, minimum_version)?; let MinimumVersionDecision::BelowMinimum { current, minimum } = decision else { info!(current = %current_version, "minimum_version: floor satisfied"); @@ -214,12 +214,12 @@ async fn enforce_minimum_version( return Err(MinimumVersionError::NoInstaller { current, minimum }); }; - let latest = fetch_latest_version(installer, update_config).await.ok(); + let latest = fetch_latest_version(update_config).await.ok(); let target = pick_target_version(latest.as_deref(), &minimum); info!(%current, %target, installer, "minimum_version: installing upgrade"); eprintln!( - "This version of Grok ({current}) is no longer supported. \ + "This version of Kigi ({current}) is no longer supported. \ Updating to {target}…" ); @@ -276,12 +276,12 @@ pub async fn enforce_minimum_version_or_exit(update_config: &UpdateConfig) { match enforce_minimum_version(Some(&min), update_config).await { Ok(EnforcementOutcome::Allowed) => {} Ok(EnforcementOutcome::Upgraded) => { - // TODO: restart_grok uses exec() which carries the same + // TODO: restart_kigi uses exec() which carries the same // SIGABRT risk as the old piped-stderr update path if the // child process ever writes to a broken pipe. For now this // path is rare (only fires when the server pushes a minimum // version bump), so print a relaunch message instead. - eprintln!("Update installed. Run `grok` to start."); + eprintln!("Update installed. Run `kigi` to start."); std::process::exit(0); } Err(e) => { @@ -370,7 +370,7 @@ mod tests { // SAFETY: #[serial] excludes other env-touching tests. unsafe { std::env::set_var("KIGI_TEST_VERSION", "0.1.50") }; let decision = - evaluate_minimum_version(&get_installed_grok_version(), Some("0.1.100")).unwrap(); + evaluate_minimum_version(&get_installed_kigi_version(), Some("0.1.100")).unwrap(); assert!(matches!( decision, MinimumVersionDecision::BelowMinimum { .. } diff --git a/crates/codegen/kigi-update/src/version.rs b/crates/codegen/kigi-update/src/version.rs index a90a70c..f62470d 100644 --- a/crates/codegen/kigi-update/src/version.rs +++ b/crates/codegen/kigi-update/src/version.rs @@ -2,28 +2,19 @@ use std::time::Duration; use anyhow::Result; use serde::Deserialize; -use serde_json::Value; use tokio::fs; -use tokio::process::Command; use kigi_shell::util::kigi_home::kigi_home; const TTL_SECONDS_BEFORE_AUTO_UPDATE: Duration = Duration::from_secs(60 * 30); -const NPM_PACKAGE: &str = "@xai-official/grok"; -pub const GH_RELEASE_REPO: &str = "xai-org-shared/grok-build"; -/// Primary CLI base URL: Cloudflare-fronted x.ai endpoint with edge caching -/// for binaries and origin-respecting no-cache for channel pointers. -pub(crate) const CLI_BASE_URL_PRIMARY: &str = "https://x.ai/cli"; - -/// Fallback CLI base URL: direct GCS, used when the primary is unreachable -/// (Cloudflare outage, regional CF egress issue, DNS hijack, etc.). -pub(crate) const CLI_BASE_URL_FALLBACK: &str = - "https://storage.googleapis.com/grok-build-public-artifacts/cli"; - -/// CLI base URLs in preference order. Callers (channel-pointer fetch, binary -/// download, in-app updater) try each in turn and stop at the first success. -pub(crate) const CLI_BASE_URLS: &[&str] = &[CLI_BASE_URL_PRIMARY, CLI_BASE_URL_FALLBACK]; +/// Release channel: this repo's GitHub Releases (PRD F8). The API base is +/// resolved through [`kigi_env::update_base_url`] — production default +/// `https://api.github.com/repos/ZacharyZhang-NY/Kigi-CLI/releases`, +/// overridable via `KIGI_UPDATE_BASE_URL` for mirrors and tests. +pub(crate) fn update_base_url() -> String { + kigi_env::update_base_url() +} /// Minimal configuration the update system needs from the environment. /// @@ -40,8 +31,6 @@ pub struct UpdateConfig { pub alpha_test_key: Option, /// Release channel: "stable" or "alpha". Loaded from config. pub channel: String, - /// Custom npm registry URL. When set, passed as `--registry=` to npm CLI. - pub npm_registry: Option, } impl UpdateConfig { @@ -52,20 +41,216 @@ impl UpdateConfig { deployment_key: None, alpha_test_key: None, channel: "stable".to_string(), - npm_registry: None, } } } +// ───────────────────────────────────────────────────────────────────────────── +// GitHub Releases API wire shape +// ───────────────────────────────────────────────────────────────────────────── + +/// One downloadable asset attached to a GitHub release. +/// +/// Wire shape per the GitHub REST API +/// (): +/// `GET /repos/{owner}/{repo}/releases/latest` → +/// `{"tag_name":"v0.1.0","assets":[{"name":"...","browser_download_url":"..."}]}`. +/// Unknown fields are ignored. +#[derive(Debug, Clone, Deserialize)] +pub struct ReleaseAsset { + pub name: String, + pub browser_download_url: String, +} + +/// A GitHub release, reduced to the fields the updater consumes. +#[derive(Debug, Clone, Deserialize)] +pub struct Release { + /// Git tag, e.g. `v0.1.0`. [`Release::version`] strips the `v` prefix. + pub tag_name: String, + #[serde(default)] + pub draft: bool, + #[serde(default)] + pub prerelease: bool, + #[serde(default)] + pub assets: Vec, +} + +impl Release { + /// Semver version from `tag_name` (`v0.1.0` → `0.1.0`). Errors on a tag + /// that is not a `v`-prefixed (or bare) semver string. + pub fn version(&self) -> Result { + let v = self.tag_name.strip_prefix('v').unwrap_or(&self.tag_name); + semver::Version::parse(v) + .map_err(|e| anyhow::anyhow!("release tag '{}' is not semver: {e}", self.tag_name))?; + Ok(v.to_string()) + } + + /// Asset with exactly `name`, or an error listing what the release has. + pub fn asset(&self, name: &str) -> Result<&ReleaseAsset> { + self.assets.iter().find(|a| a.name == name).ok_or_else(|| { + anyhow::anyhow!( + "release {} has no asset named '{}' (available: {})", + self.tag_name, + name, + self.assets + .iter() + .map(|a| a.name.as_str()) + .collect::>() + .join(", ") + ) + }) + } +} + +/// Shared HTTP client for GitHub API metadata requests. GitHub rejects +/// requests without a `User-Agent`, so one is always set. +fn github_api_client(timeout: Duration) -> Result { + Ok(reqwest::Client::builder() + .user_agent(concat!("kigi/", env!("CARGO_PKG_VERSION"))) + .timeout(timeout) + .build()?) +} + +/// GET `url` and decode the JSON body as `T`, retrying transient failures +/// (network errors, HTTP 5xx) up to 3 times with 1s/2s/4s backoff. +/// Non-5xx HTTP errors (404 missing release, 403 rate limit) fail fast. +async fn fetch_github_json(url: &str) -> Result { + let client = github_api_client(Duration::from_secs(15))?; + let max_retries: u32 = 3; + let mut last_err: Option = None; + for attempt in 0..=max_retries { + if attempt > 0 { + tokio::time::sleep(Duration::from_secs(1 << (attempt - 1))).await; + } + let resp = match client + .get(url) + .header("Accept", "application/vnd.github+json") + .send() + .await + { + Ok(r) => r, + Err(e) => { + last_err = Some(anyhow::anyhow!( + "GitHub API request failed for {url}: {e:#}" + )); + continue; + } + }; + let status = resp.status(); + if status.is_server_error() { + last_err = Some(anyhow::anyhow!( + "GitHub API returned HTTP {status} for {url}" + )); + continue; + } + if !status.is_success() { + let body = resp.text().await.unwrap_or_default(); + anyhow::bail!( + "GitHub API returned HTTP {} for {}: {}", + status, + url, + body.chars().take(200).collect::().trim() + ); + } + let body = match resp.text().await { + Ok(b) => b, + Err(e) => { + last_err = Some(anyhow::anyhow!( + "GitHub API body read failed for {url}: {e:#}" + )); + continue; + } + }; + return serde_json::from_str(&body) + .map_err(|e| anyhow::anyhow!("GitHub API returned unexpected JSON for {url}: {e}")); + } + Err(last_err.expect("loop ran at least once")) +} + +/// Latest release for `channel` from a GitHub-Releases-shaped API at `base`. +/// +/// - `stable` / `enterprise`: `GET {base}/latest` — GitHub's "latest" already +/// excludes drafts and pre-releases. +/// - `alpha`: `GET {base}?per_page=30` (newest first) and take the semver-max +/// non-draft entry. The list includes both pre-releases and stable +/// releases, so this preserves the max(alpha, stable) channel semantics — +/// alpha users are never stuck behind a newer stable. +pub async fn fetch_latest_release_from_base(channel: &str, base: &str) -> Result { + let base = base.trim_end_matches('/'); + if channel == "alpha" { + let releases: Vec = fetch_github_json(&format!("{base}?per_page=30")).await?; + return releases + .into_iter() + .filter(|r| !r.draft) + .filter_map(|r| { + let v = semver::Version::parse(r.tag_name.strip_prefix('v').unwrap_or(&r.tag_name)) + .ok()?; + Some((v, r)) + }) + .max_by(|a, b| a.0.cmp(&b.0)) + .map(|(_, r)| r) + .ok_or_else(|| anyhow::anyhow!("no releases with semver tags found at {base}")); + } + fetch_github_json(&format!("{base}/latest")).await +} + +/// Release for an exact version (`GET {base}/tags/v{version}`), used by +/// pinned installs (`kigi update --version X`) and rollbacks. +pub async fn fetch_release_for_version_from_base(version: &str, base: &str) -> Result { + let base = base.trim_end_matches('/'); + fetch_github_json(&format!("{base}/tags/v{version}")).await +} + +/// Latest release for `channel` from the production base URL +/// ([`kigi_env::update_base_url`]). +pub(crate) async fn fetch_latest_release(channel: &str) -> Result { + fetch_latest_release_from_base(channel, &update_base_url()).await +} + +/// Fetch the latest version for the configured channel without writing the +/// version cache. Use this when the caller needs to control when the cache is +/// written (e.g. auto-update should only cache after a successful install or +/// when no update is needed). +pub async fn fetch_latest_version(config: &UpdateConfig) -> Result { + fetch_latest_release(&config.channel).await?.version() +} + +/// Fetch the latest version for the configured channel and cache it. +pub async fn get_latest_version(config: &UpdateConfig) -> Result { + let version = fetch_latest_version(config).await?; + let stable_ptr = try_fetch_stable_version().await; + write_version_cache(&version, stable_ptr.as_deref()).await; + Ok(version) +} + +/// Fetch the latest stable version for caching alongside the version, so +/// `channel_label()` can derive `[alpha]` vs `[stable]` without network I/O. +/// +/// Best-effort and capped at 500 ms: the label is cosmetic, never required +/// for correctness. On slow or unreachable networks the timeout fires and we +/// return `None`; the label populates on the next successful TTL check +/// (~30 min). This keeps startup and post-install paths fast. +pub(crate) async fn try_fetch_stable_version() -> Option { + tokio::time::timeout(Duration::from_millis(500), async { + fetch_latest_release("stable").await.ok()?.version().ok() + }) + .await + .unwrap_or(None) +} + +// ───────────────────────────────────────────────────────────────────────────── +// Version cache (~/.kigi/version.json) +// ───────────────────────────────────────────────────────────────────────────── + #[derive(Debug, serde::Serialize, Deserialize)] -struct GrokVersion { +struct VersionCache { version: String, #[serde(default)] stable_version: Option, checked_at: String, } -impl GrokVersion { +impl VersionCache { fn is_fresh(&self, now: time::OffsetDateTime, ttl: Duration) -> bool { if let Ok(dt) = time::OffsetDateTime::parse( &self.checked_at, @@ -93,270 +278,16 @@ impl GrokVersion { } } -/// Return the semver-greater of two version strings. -fn semver_max(a: &str, b: &str) -> Result { - let va = semver::Version::parse(a)?; - let vb = semver::Version::parse(b)?; - Ok(std::cmp::max(va, vb).to_string()) -} - -/// Fetch the latest version from npm registry using `npm view`. -/// For alpha channel, fetches both `@alpha` and `@latest` dist-tags and -/// returns the semver-greater — prevents alpha users getting stuck when a -/// newer stable ships without updating the alpha dist-tag. -async fn fetch_npm_version(channel: &str, npm_registry: Option<&str>) -> Result { - if channel == "alpha" { - let (alpha_v, stable_v) = tokio::try_join!( - fetch_npm_tag("alpha", npm_registry), - fetch_npm_tag("latest", npm_registry), - )?; - return semver_max(&alpha_v, &stable_v); - } - fetch_npm_tag("latest", npm_registry).await -} - -/// Test-only entry point: invokes the private [`fetch_npm_tag`] for tests -/// that swap in a fake `npm` via PATH. -#[doc(hidden)] -pub async fn fetch_npm_tag_for_test(tag: &str, npm_registry: Option<&str>) -> Result { - fetch_npm_tag(tag, npm_registry).await -} - -/// Test-only entry point: invokes the private [`fetch_npm_version`] for tests -/// that swap in a fake `npm` via PATH. -#[doc(hidden)] -pub async fn fetch_npm_version_for_test( - channel: &str, - npm_registry: Option<&str>, -) -> Result { - fetch_npm_version(channel, npm_registry).await -} - -async fn fetch_npm_tag(tag: &str, npm_registry: Option<&str>) -> Result { - let pkg_spec = if tag == "latest" { - NPM_PACKAGE.to_string() - } else { - format!("{}@{}", NPM_PACKAGE, tag) - }; - let mut args = vec!["view", &pkg_spec, "version", "--json"]; - let registry_flag; - if let Some(registry) = npm_registry { - registry_flag = format!("--registry={}", registry); - args.push(®istry_flag); - } - let mut cmd = Command::new("npm"); - cmd.args(&args).stdin(std::process::Stdio::null()); - kigi_tools::util::detach_command(&mut cmd); - cmd.envs(kigi_tools::util::pager_env()); - let output = cmd.output().await?; - - if !output.status.success() { - let stderr = String::from_utf8_lossy(&output.stderr); - anyhow::bail!("npm view @{} failed: {}", tag, stderr.trim()); - } - - let stdout = String::from_utf8(output.stdout)?; - let value: Value = serde_json::from_str(stdout.trim())?; - match value { - Value::String(version) => Ok(version), - Value::Array(values) => values - .iter() - .rev() - .find_map(|entry| entry.as_str().map(|item| item.to_string())) - .ok_or_else(|| anyhow::anyhow!("npm view @{} returned empty version list", tag)), - _ => anyhow::bail!("npm view @{} returned unexpected JSON", tag), - } -} - -/// Fetch the latest version from GitHub Releases using `gh release list`. -/// For alpha channel, fetches both pre-release and stable-only, returns the -/// semver-greater — `gh release list --limit 1` orders by publication date, -/// not semver, so we need both to guarantee correctness. -#[doc(hidden)] -pub async fn fetch_gh_release_version(channel: &str) -> Result { - if channel == "alpha" { - let (with_pre, stable_only) = tokio::try_join!( - fetch_gh_release_latest(false), - fetch_gh_release_latest(true), - )?; - return semver_max(&with_pre, &stable_only); - } - fetch_gh_release_latest(true).await -} - -async fn fetch_gh_release_latest(exclude_pre: bool) -> Result { - let mut args = vec![ - "release", - "list", - "--repo", - GH_RELEASE_REPO, - "--limit", - "1", - "--exclude-drafts", - "--json", - "tagName", - "--jq", - ".[0].tagName", - ]; - if exclude_pre { - args.push("--exclude-pre-releases"); - } - let mut cmd = Command::new("gh"); - cmd.args(&args).stdin(std::process::Stdio::null()); - kigi_tools::util::detach_command(&mut cmd); - cmd.envs(kigi_tools::util::pager_env()); - let output = cmd.output().await?; - - if !output.status.success() { - let stderr = String::from_utf8_lossy(&output.stderr); - anyhow::bail!("gh release list failed: {}", stderr.trim()); - } - - let tag = String::from_utf8(output.stdout)?.trim().to_string(); - // Tags are formatted as "v0.1.141", strip the leading "v" - let version = tag.strip_prefix('v').unwrap_or(&tag).to_string(); - if version.is_empty() { - anyhow::bail!("No releases found in {}", GH_RELEASE_REPO); - } - Ok(version) -} - -/// Fetch the latest version from a public CLI channel pointer. -/// -/// Reads `{base}/{channel}` which contains a plain-text semver string -/// (e.g. `0.1.181`). No auth required — the upstream bucket is public. -/// -/// For the alpha channel, fetches both `alpha` and `stable` pointers and -/// returns the semver-greater, matching the behavior of the npm and -/// gh-release paths. -/// -/// Tries each base URL in [`CLI_BASE_URLS`] in order and stops at the first -/// success. Each individual base also retries up to 3 times with exponential -/// backoff (1s, 2s, 4s) on transient failures before falling through to the -/// next base. -pub(crate) async fn fetch_gcs_version(channel: &str) -> Result { - let mut last_err: Option = None; - for (i, base) in CLI_BASE_URLS.iter().enumerate() { - match fetch_gcs_version_from_base(channel, base).await { - Ok(v) => return Ok(v), - Err(e) => { - if i + 1 < CLI_BASE_URLS.len() { - tracing::warn!( - "channel pointer fetch from {} failed ({:#}); trying next base URL", - base, - e - ); - } - last_err = Some(e); - } - } - } - Err(last_err.unwrap_or_else(|| anyhow::anyhow!("no CLI base URLs configured"))) -} - -/// Test-only entry point: same as [`fetch_gcs_version`] but reads from -/// `base_url` instead of the hardcoded GCS bucket. -#[doc(hidden)] -pub async fn fetch_gcs_version_from_base(channel: &str, base_url: &str) -> Result { - if channel == "alpha" { - let (alpha_v, stable_v) = tokio::try_join!( - fetch_gcs_channel_pointer("alpha", base_url), - fetch_gcs_channel_pointer("stable", base_url), - )?; - return semver_max(&alpha_v, &stable_v); - } - fetch_gcs_channel_pointer(channel, base_url).await -} - -async fn fetch_gcs_channel_pointer(channel: &str, base_url: &str) -> Result { - let url = format!("{}/{}", base_url, channel); - let client = reqwest::Client::builder() - .timeout(Duration::from_secs(15)) - .build()?; - - let max_retries: u32 = 3; - let mut last_err = None; - for attempt in 0..=max_retries { - if attempt > 0 { - tokio::time::sleep(Duration::from_secs(1 << (attempt - 1))).await; - } - let resp = match client.get(&url).send().await { - Ok(r) => r, - Err(e) => { - last_err = Some(anyhow::anyhow!( - "GCS channel pointer fetch failed for {}: {:#}", - url, - e - )); - continue; - } - }; - if !resp.status().is_success() { - let status = resp.status(); - let body = resp.text().await.unwrap_or_default(); - last_err = Some(anyhow::anyhow!( - "GCS channel pointer fetch failed: HTTP {} for {}: {}", - status, - url, - body.chars().take(200).collect::().trim() - )); - continue; - } - match resp.text().await { - Ok(body) => { - let version = body.trim().to_string(); - if version.is_empty() { - last_err = Some(anyhow::anyhow!( - "empty {} channel pointer at {}", - channel, - url - )); - continue; - } - if semver::Version::parse(&version).is_err() { - anyhow::bail!( - "invalid semver in {} channel pointer: '{}'", - channel, - version - ); - } - return Ok(version); - } - Err(e) => { - last_err = Some(anyhow::anyhow!( - "GCS channel pointer body read failed for {}: {:#}", - url, - e - )); - continue; - } - } - } - Err(last_err.unwrap()) -} - -/// Fetch the latest version for the given installer type without writing the -/// version cache. Use this when the caller needs to control when the cache is -/// written (e.g. auto-update should only cache after a successful install or -/// when no update is needed). -pub async fn fetch_latest_version(installer: &str, config: &UpdateConfig) -> Result { - match installer { - "npm" => fetch_npm_version(&config.channel, config.npm_registry.as_deref()).await, - "gh-release" => fetch_gh_release_version(&config.channel).await, - _ => fetch_gcs_version(&config.channel).await, - } -} - /// Write the version cache to disk, recording that `version` was seen at the /// current time. Call after confirming the version is current (no update /// needed) or after a successful install. /// -/// `stable_version` records the current stable channel pointer so that +/// `stable_version` records the current stable release so that /// `channel_label()` can derive `[alpha]` vs `[stable]` without network I/O. pub async fn write_version_cache(version: &str, stable_version: Option<&str>) { let version_path = kigi_home().join("version.json"); let now = time::OffsetDateTime::now_utc(); - let json = GrokVersion::new( + let json = VersionCache::new( version.to_string(), stable_version.map(|s| s.to_string()), now, @@ -384,26 +315,12 @@ pub async fn write_version_cache(version: &str, stable_version: Option<&str>) { } } -/// Fetch the latest version for the given installer type and cache it. -/// -/// Each installer is fully independent — no cross-installer fallback. -/// -/// - `"npm"` — uses `npm view` against the public registry. -/// - `"internal"` — reads the channel pointer from the public GCS bucket. -/// - `"gh-release"` — uses `gh release list` against GitHub Releases. -pub async fn get_latest_version(installer: &str, config: &UpdateConfig) -> Result { - let version = fetch_latest_version(installer, config).await?; - let stable_ptr = try_fetch_stable_pointer().await; - write_version_cache(&version, stable_ptr.as_deref()).await; - Ok(version) -} - /// True if `version.json` exists and is within TTL. pub async fn is_version_cache_fresh() -> bool { let version_path = kigi_home().join("version.json"); let now = time::OffsetDateTime::now_utc(); if let Ok(version_str) = fs::read_to_string(&version_path).await - && let Ok(version) = serde_json::from_str::(&version_str) + && let Ok(version) = serde_json::from_str::(&version_str) && version.is_fresh(now, TTL_SECONDS_BEFORE_AUTO_UPDATE) { return true; @@ -411,14 +328,14 @@ pub async fn is_version_cache_fresh() -> bool { false } -pub use kigi_version::installed as get_installed_grok_version; +pub use kigi_version::installed as get_installed_kigi_version; -/// Version of the managed grok binary currently on disk, read from the -/// `~/.kigi/bin/grok` symlink target (`../downloads/grok--`) +/// Version of the managed kigi binary currently on disk, read from the +/// `~/.kigi/bin/kigi` symlink target (`../downloads/kigi--`) /// without exec'ing anything. /// /// Concurrent updaters (TUI background download, leader hourly checker, -/// explicit `grok update`) decide staleness from this instead of their own +/// explicit `kigi update`) decide staleness from this instead of their own /// compiled-in version, so a binary another process already installed is /// never downloaded a second time. /// @@ -427,11 +344,6 @@ pub use kigi_version::installed as get_installed_grok_version; /// link whose target binary was deleted (e.g. manual `~/.kigi/downloads` /// cleanup) must not report an installed version, or every updater would /// claim "already up to date" forever while no runnable binary exists. -/// NOTE: the symlink existing does not prove the *active installer* -/// maintains it — npm manages its own global install and a leftover symlink -/// from a previous internal install would lie about the npm install's -/// version. Callers must gate on the installer (see -/// `disk_version_for_installer` in `auto_update`). pub fn installed_on_disk_version() -> Option { #[cfg(unix)] { @@ -440,7 +352,7 @@ pub fn installed_on_disk_version() -> Option { // metadata() follows the symlink: Err means the target is gone // (dangling link) and the version it names is not actually on disk. std::fs::metadata(&app).ok()?; - version_from_versioned_binary_name(target.file_name()?.to_str()?, "grok") + version_from_versioned_binary_name(target.file_name()?.to_str()?, "kigi") } #[cfg(not(unix))] { @@ -450,18 +362,23 @@ pub fn installed_on_disk_version() -> Option { /// Extract the `` portion of a versioned binary file name. /// -/// Handles the internal layout (`grok-0.1.150-macos-aarch64`, including -/// pre-releases: `grok-0.1.150-alpha.1-linux-x86_64` → `0.1.150-alpha.1`) -/// and the npm layout without a platform suffix (`grok-0.1.150`, -/// `grok-0.1.150-alpha.1`): everything between the `{bin_prefix}-` prefix -/// and the first platform-OS component is the version, validated as semver -/// so unknown layouts (`grok-latest`, `grok-pager-*` when `bin_prefix` is -/// `grok`) return `None` instead of garbage. +/// Handles the managed layout (`kigi-0.1.0-macos-aarch64`, including +/// pre-releases: `kigi-0.1.0-alpha.1-linux-x86_64` → `0.1.0-alpha.1`) and a +/// bare versioned name without a platform suffix (`kigi-0.1.0`): everything +/// between the `{bin_prefix}-` prefix and the first platform-OS component is +/// the version, validated as semver so unknown layouts (`kigi-latest`) +/// return `None` instead of garbage. /// /// Shared by the disk-version probe above and `cleanup_old_downloads` in /// `auto_update` — keep it the single place that understands this naming. pub(crate) fn version_from_versioned_binary_name(name: &str, bin_prefix: &str) -> Option { const PLATFORM_OS: &[&str] = &["macos", "linux", "darwin", "windows"]; + // Release archives (`kigi--.tar.gz|.zip`) are downloads, not + // binaries — and their triple would otherwise parse as a semver + // pre-release (`0.1.0-aarch64-apple-darwin.tar.gz` is valid semver). + if name.ends_with(".tar.gz") || name.ends_with(".zip") { + return None; + } let suffix = name.strip_prefix(bin_prefix)?.strip_prefix('-')?; let parts: Vec<&str> = suffix.split('-').collect(); let platform_start = parts @@ -473,31 +390,6 @@ pub(crate) fn version_from_versioned_binary_name(name: &str, bin_prefix: &str) - Some(ver_str) } -/// Fetch the stable channel pointer for caching alongside the version. -/// -/// Tries each base URL in [`CLI_BASE_URLS`] and returns the first success. -/// Best-effort: returns `None` on any failure (the caller will simply omit -/// the stable pointer from the cache, and `channel_label()` will return `""` -/// until the next successful fetch). -/// -/// The entire operation is capped at 500 ms. The stable pointer is only used -/// to derive the `[alpha]`/`[stable]` channel label — it is never required -/// for correctness. On slow or unreachable networks the timeout fires and we -/// return `None`; the label will populate on the next successful TTL check -/// (~30 min). This keeps startup and post-install paths fast. -pub(crate) async fn try_fetch_stable_pointer() -> Option { - tokio::time::timeout(Duration::from_millis(500), async { - for base in CLI_BASE_URLS { - if let Ok(v) = fetch_gcs_channel_pointer("stable", base).await { - return Some(v); - } - } - None - }) - .await - .unwrap_or(None) -} - /// Read the cached stable version from `~/.kigi/version.json` (sync, for display). /// /// Returns `None` if the file doesn't exist, can't be parsed, or has no @@ -505,7 +397,7 @@ pub(crate) async fn try_fetch_stable_pointer() -> Option { pub fn cached_stable_version() -> Option { let version_path = kigi_home().join("version.json"); let content = std::fs::read_to_string(&version_path).ok()?; - let gv: GrokVersion = serde_json::from_str(&content).ok()?; + let gv: VersionCache = serde_json::from_str(&content).ok()?; gv.stable_version } @@ -575,7 +467,7 @@ mod tests { fn test_is_fresh_rejects_future_timestamp() { let now = time::OffsetDateTime::now_utc(); let future = now + Duration::from_secs(600); - let v = GrokVersion::new("0.1.200".to_string(), None, future); + let v = VersionCache::new("0.1.200".to_string(), None, future); assert!( !v.is_fresh(now, Duration::from_secs(30)), "Future timestamp must not be considered fresh (clock-skew guard)." @@ -583,41 +475,140 @@ mod tests { } /// Disk-version probe: parsing the version out of the managed install's - /// symlink-target file name (`grok--`). + /// symlink-target file name (`kigi--`). #[test] fn test_version_from_versioned_binary_name() { let cases: &[(&str, Option<&str>)] = &[ - ("grok-0.2.46-darwin-arm64", Some("0.2.46")), - ("grok-0.1.220-linux-x86_64", Some("0.1.220")), - ("grok-0.2.5-windows-x86_64.exe", Some("0.2.5")), + ("kigi-0.2.46-darwin-arm64", Some("0.2.46")), + ("kigi-0.1.220-linux-x86_64", Some("0.1.220")), + ("kigi-0.2.5-windows-x86_64.exe", Some("0.2.5")), // Pre-releases must round-trip whole — truncating to "0.1.220" // would make an alpha install masquerade as the release and // mask alpha → stable updates. - ("grok-0.1.220-alpha.4-linux-x86_64", Some("0.1.220-alpha.4")), - ("grok-0.1.220-alpha.4", Some("0.1.220-alpha.4")), // npm layout - ("grok-pager-0.1.5-darwin-arm64", None), // "pager" is not a version - ("grok-garbage-darwin-arm64", None), // unparseable version - ("grok-0.2.46", Some("0.2.46")), // no platform suffix + ("kigi-0.1.220-alpha.4-linux-x86_64", Some("0.1.220-alpha.4")), + ("kigi-0.1.220-alpha.4", Some("0.1.220-alpha.4")), // no platform suffix + ("kigi-garbage-darwin-arm64", None), // unparseable version + ("kigi-0.2.46", Some("0.2.46")), // no platform suffix ("other-0.2.46-darwin-arm64", None), // wrong prefix - ("grok-latest", None), // symlink alias, not a version - ("grok", None), // bare name + ("kigi-latest", None), // symlink alias, not a version + ("kigi", None), // bare name ("", None), + // Release archives must never parse as versioned binaries, or + // cleanup would treat them as installable versions. + ("kigi-0.1.0-aarch64-apple-darwin.tar.gz", None), + ("kigi-0.1.0-x86_64-pc-windows-msvc.zip", None), ]; for (name, expected) in cases { assert_eq!( - version_from_versioned_binary_name(name, "grok").as_deref(), + version_from_versioned_binary_name(name, "kigi").as_deref(), *expected, "version_from_versioned_binary_name({name:?})" ); } - // bin_prefix discrimination: the pager binary parses under its own - // prefix but not under "grok". + // bin_prefix discrimination: a differently-prefixed binary parses + // under its own prefix but not under "kigi". assert_eq!( - version_from_versioned_binary_name("grok-pager-0.1.5-darwin-arm64", "grok-pager") + version_from_versioned_binary_name("kigi-pager-0.1.5-darwin-arm64", "kigi-pager") .as_deref(), Some("0.1.5") ); + assert_eq!( + version_from_versioned_binary_name("kigi-pager-0.1.5-darwin-arm64", "kigi"), + None, + "\"pager\" is not a version" + ); + } + + // ────────────────────────────────────────────────────────────────────── + // GitHub release JSON — wire-shape invariants + // + // Fixtures mirror the real GitHub REST API response for + // GET /repos/{owner}/{repo}/releases/latest: + // https://docs.github.com/en/rest/releases/releases#get-the-latest-release + // ────────────────────────────────────────────────────────────────────── + + #[test] + fn test_release_json_parses_github_wire_shape() { + let json = r#"{ + "url": "https://api.github.com/repos/ZacharyZhang-NY/Kigi-CLI/releases/1", + "tag_name": "v0.1.0", + "name": "Kigi 0.1.0", + "draft": false, + "prerelease": false, + "assets": [ + { + "name": "kigi-0.1.0-aarch64-apple-darwin.tar.gz", + "browser_download_url": "https://github.com/ZacharyZhang-NY/Kigi-CLI/releases/download/v0.1.0/kigi-0.1.0-aarch64-apple-darwin.tar.gz", + "size": 123, + "content_type": "application/gzip" + }, + { + "name": "SHA256SUMS", + "browser_download_url": "https://github.com/ZacharyZhang-NY/Kigi-CLI/releases/download/v0.1.0/SHA256SUMS" + } + ] + }"#; + let r: Release = serde_json::from_str(json).unwrap(); + assert_eq!(r.tag_name, "v0.1.0"); + assert_eq!(r.version().unwrap(), "0.1.0"); + assert!(!r.draft); + assert!(!r.prerelease); + assert_eq!(r.assets.len(), 2); + let asset = r.asset("kigi-0.1.0-aarch64-apple-darwin.tar.gz").unwrap(); + assert_eq!( + asset.browser_download_url, + "https://github.com/ZacharyZhang-NY/Kigi-CLI/releases/download/v0.1.0/kigi-0.1.0-aarch64-apple-darwin.tar.gz" + ); + assert_eq!( + r.asset("SHA256SUMS").unwrap().name, + "SHA256SUMS", + "checksum asset resolved by exact name" + ); + } + + #[test] + fn test_release_version_accepts_bare_and_v_prefixed_tags() { + let mk = |tag: &str| Release { + tag_name: tag.to_string(), + draft: false, + prerelease: false, + assets: vec![], + }; + assert_eq!(mk("v0.1.0").version().unwrap(), "0.1.0"); + assert_eq!(mk("0.1.0").version().unwrap(), "0.1.0"); + assert_eq!(mk("v0.2.0-alpha.3").version().unwrap(), "0.2.0-alpha.3"); + assert!(mk("release-1").version().is_err()); + assert!(mk("").version().is_err()); + } + + #[test] + fn test_release_missing_asset_error_lists_available() { + let r = Release { + tag_name: "v0.1.0".to_string(), + draft: false, + prerelease: false, + assets: vec![ReleaseAsset { + name: "SHA256SUMS".to_string(), + browser_download_url: "https://example.test/SHA256SUMS".to_string(), + }], + }; + let err = r + .asset("kigi-0.1.0-x86_64-unknown-linux-gnu.tar.gz") + .unwrap_err(); + let msg = format!("{err}"); + assert!(msg.contains("no asset named"), "msg: {msg}"); + assert!(msg.contains("SHA256SUMS"), "must list available: {msg}"); + } + + #[test] + fn test_release_defaults_for_absent_optional_fields() { + // Minimal object: only tag_name. draft/prerelease default false, + // assets default empty (serde(default)). + let r: Release = serde_json::from_str(r#"{"tag_name":"v0.1.0"}"#).unwrap(); + assert!(!r.draft && !r.prerelease && r.assets.is_empty()); + // tag_name is required. + assert!(serde_json::from_str::(r#"{"assets":[]}"#).is_err()); } // ────────────────────────────────────────────────────────────────────── @@ -663,59 +654,22 @@ mod tests { } // ────────────────────────────────────────────────────────────────────── - // semver_max — invariant matrix - // ────────────────────────────────────────────────────────────────────── - - #[test] - fn test_semver_max_matrix() { - // (a, b, expected) - let cases: &[(&str, &str, &str)] = &[ - ("0.1.140", "0.1.140", "0.1.140"), // equal - ("0.1.140", "0.1.141", "0.1.141"), // b higher - ("0.1.141", "0.1.140", "0.1.141"), // a higher - ("0.1.148-alpha.3", "0.1.148", "0.1.148"), // release > pre-release - ("0.1.148", "0.1.148-alpha.3", "0.1.148"), // commutative - ("0.1.148-alpha.1", "0.1.148-alpha.3", "0.1.148-alpha.3"), // pre-release ordering - ("0.1.149-alpha.1", "0.1.148", "0.1.149-alpha.1"), // higher base wins - ("0.0.0", "0.0.1", "0.0.1"), // zero versions - ("0.99.99", "1.0.0", "1.0.0"), // major jump - ]; - - for (a, b, expected) in cases { - assert_eq!( - semver_max(a, b).unwrap(), - *expected, - "semver_max({:?}, {:?})", - a, - b, - ); - } - } - - #[test] - fn test_semver_max_invalid_input_returns_err() { - assert!(semver_max("garbage", "0.1.141").is_err()); - assert!(semver_max("0.1.141", "garbage").is_err()); - assert!(semver_max("foo", "bar").is_err()); - } - - // ────────────────────────────────────────────────────────────────────── - // GrokVersion JSON shape — backward compatibility invariants + // VersionCache JSON shape — backward compatibility invariants // ────────────────────────────────────────────────────────────────────── #[test] fn test_version_json_backward_compat() { // Old format (no stable_version) must parse — serde(default) fills None. let old = r#"{"version":"0.1.180","checked_at":"2026-04-22T10:30:00Z"}"#; - let v: GrokVersion = serde_json::from_str(old).unwrap(); + let v: VersionCache = serde_json::from_str(old).unwrap(); assert_eq!(v.version, "0.1.180"); assert!(v.stable_version.is_none()); // New format with stable_version round-trips correctly. let now = time::OffsetDateTime::now_utc(); - let new = GrokVersion::new("0.2.5".to_string(), Some("0.2.3".to_string()), now); + let new = VersionCache::new("0.2.5".to_string(), Some("0.2.3".to_string()), now); let json = serde_json::to_string(&new).unwrap(); - let parsed: GrokVersion = serde_json::from_str(&json).unwrap(); + let parsed: VersionCache = serde_json::from_str(&json).unwrap(); assert_eq!(parsed.version, "0.2.5"); assert_eq!(parsed.stable_version.as_deref(), Some("0.2.3")); @@ -730,11 +684,11 @@ mod tests { // Unknown fields are ignored (forward-compat). let future = r#"{"version":"0.1.180","checked_at":"2026-04-22T10:30:00Z","future":"ok"}"#; - assert!(serde_json::from_str::(future).is_ok()); + assert!(serde_json::from_str::(future).is_ok()); // Missing required field (checked_at) is rejected. let missing = r#"{"version":"0.1.180"}"#; - assert!(serde_json::from_str::(missing).is_err()); + assert!(serde_json::from_str::(missing).is_err()); } // ────────────────────────────────────────────────────────────────────── @@ -744,7 +698,7 @@ mod tests { #[test] fn test_is_fresh_ttl_boundaries() { let now = time::OffsetDateTime::now_utc(); - let v = GrokVersion::new("0.1.200".to_string(), None, now); + let v = VersionCache::new("0.1.200".to_string(), None, now); // Within TTL → fresh assert!(v.is_fresh(now, Duration::from_secs(60))); @@ -760,7 +714,7 @@ mod tests { assert!(!v.is_fresh(now, Duration::ZERO)); // Malformed timestamp → not fresh - let bad = GrokVersion { + let bad = VersionCache { version: "0.1.200".to_string(), stable_version: None, checked_at: "not-rfc3339".to_string(), diff --git a/crates/codegen/kigi-update/tests/common/artifact_server.rs b/crates/codegen/kigi-update/tests/common/artifact_server.rs index 52b8428..cfbe1e1 100644 --- a/crates/codegen/kigi-update/tests/common/artifact_server.rs +++ b/crates/codegen/kigi-update/tests/common/artifact_server.rs @@ -1,27 +1,44 @@ -//! Controllable raw HTTP/1.1 artifact server shared by the blitz -//! download/install tests and the concurrent-update convergence tests. +//! Controllable raw HTTP/1.1 GitHub-Releases-shaped server shared by the +//! blitz download/install tests and the concurrent-update convergence tests. //! -//! Serves a real executable artifact and can truncate the body, close the -//! connection early, serve a right-length-but-garbage body, or hang -//! mid-transfer — for both the parallel byte-range path and the -//! single-connection path. It also counts body-serving GETs (HEAD probes are -//! excluded) so tests can assert how many downloads actually happened, and -//! supports a "slow" mode that widens the race window so concurrent -//! installers genuinely overlap in flight. +//! Serves the three routes the updater consumes: +//! +//! - `GET /releases/latest` and `GET /releases/tags/v{version}` — release +//! JSON in the real GitHub wire shape +//! (): +//! `{"tag_name":"v0.1.0","assets":[{"name":"...","browser_download_url":"..."}]}` +//! - `GET /dl/{version}/SHA256SUMS` — checksum manifest for the archive +//! - `GET /dl/{version}/kigi-{version}-{triple}.tar.gz` — the archive itself +//! +//! The archive route can serve the real archive, truncate the body, serve a +//! right-length-but-garbage body (defeated by the SHA-256 gate), serve a +//! correctly-checksummed archive whose binary fails to run (defeated by the +//! smoke test), or hang mid-transfer — for both the parallel byte-range path +//! and the single-connection path. It also counts archive-serving GETs (HEAD +//! probes and metadata routes are excluded) so tests can assert how many +//! downloads actually happened, and supports a "slow" mode that widens the +//! race window so concurrent installers genuinely overlap in flight. +use std::collections::HashMap; use std::io::{Read, Write}; use std::net::{TcpListener, TcpStream}; use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering}; use std::sync::{Arc, Mutex}; use std::time::Duration; -/// How the server corrupts (or doesn't) the next download. +use super::{archive_name, make_release_archive, sha256_hex}; + +/// How the server corrupts (or doesn't) the next archive download. #[derive(Clone, Copy, Debug)] pub enum Mode { - /// Serve the real artifact correctly. + /// Serve the real archive correctly. Full, - /// Serve a right-length body that exits non-zero (fails the smoke-test). + /// Serve a right-length body of wrong bytes — SHA256SUMS still lists the + /// GOOD archive's hash, so the checksum gate must reject it. Garbage, + /// Serve a correctly-checksummed archive whose `kigi` binary exits + /// non-zero — only the smoke test can reject it. + BadBinary, /// Advertise the full length but send only `k` bytes then close the socket /// (silent truncation: premature EOF / short range chunk). Truncate(usize), @@ -29,11 +46,41 @@ pub enum Mode { Hang(usize), } +/// Precomputed per-version fixtures. +struct VersionFixture { + /// Real archive: tar.gz containing `kigi` = the good binary body. + good_archive: Arc>, + /// Same-shape archive whose `kigi` exits 1; its hash is served in + /// SHA256SUMS while `Mode::BadBinary` is active. + bad_archive: Arc>, +} + struct ServerState { - body: Arc>, + versions: HashMap, + /// The good binary body used to synthesize fixtures for versions + /// requested but not yet registered. + default_binary: Vec, + latest: String, mode: Mode, } +impl ServerState { + fn fixture(&mut self, version: &str) -> &VersionFixture { + if !self.versions.contains_key(version) { + let good = make_release_archive(&self.default_binary); + let bad = make_release_archive(b"#!/bin/sh\nexit 1\n"); + self.versions.insert( + version.to_string(), + VersionFixture { + good_archive: Arc::new(good), + bad_archive: Arc::new(bad), + }, + ); + } + &self.versions[version] + } +} + pub struct ArtifactServer { addr: std::net::SocketAddr, state: Arc>, @@ -43,12 +90,17 @@ pub struct ArtifactServer { } impl ArtifactServer { - pub fn start(body: Vec) -> Self { + /// Start a server whose release archives contain `binary_body` as the + /// `kigi` binary. `latest` starts as `0.0.0`; set it with + /// [`ArtifactServer::set_latest`] before exercising latest-based flows. + pub fn start(binary_body: Vec) -> Self { let listener = TcpListener::bind("127.0.0.1:0").unwrap(); listener.set_nonblocking(true).unwrap(); let addr = listener.local_addr().unwrap(); let state = Arc::new(Mutex::new(ServerState { - body: Arc::new(body), + versions: HashMap::new(), + default_binary: binary_body, + latest: "0.0.0".to_string(), mode: Mode::Full, })); let shutdown = Arc::new(AtomicBool::new(false)); @@ -86,30 +138,49 @@ impl ArtifactServer { } } - pub fn uri(&self) -> String { - format!("http://{}", self.addr) + /// Base URL to hand the updater (`…/releases`, mirroring the production + /// `https://api.github.com/repos/{owner}/{repo}/releases`). + pub fn base(&self) -> String { + format!("http://{}/releases", self.addr) + } + + /// Version served by `GET /releases/latest`. + pub fn set_latest(&self, version: &str) { + self.state.lock().unwrap().latest = version.to_string(); } pub fn set_mode(&self, mode: Mode) { self.state.lock().unwrap().mode = mode; } - /// Number of body-serving GET requests handled so far (HEAD probes from - /// the parallel-download path are excluded). Tests use this to assert - /// how many downloads actually happened — e.g. that a sequential updater - /// converged onto an already-installed binary without re-downloading. - /// One download may span multiple GETs when the parallel byte-range path - /// splits it, so tests asserting exact counts use a small artifact - /// (single-connection path, 1 GET per download). + /// Length of the (good) archive for `version` — corruption offsets for + /// [`Mode::Truncate`]/[`Mode::Hang`] are positions within this body. + pub fn archive_len(&self, version: &str) -> usize { + self.state + .lock() + .unwrap() + .fixture(version) + .good_archive + .len() + } + + /// Number of archive-serving GET requests handled so far (HEAD probes + /// from the parallel-download path and metadata/SHA256SUMS routes are + /// excluded). Tests use this to assert how many downloads actually + /// happened — e.g. that a sequential updater converged onto an + /// already-installed binary without re-downloading. One download may span + /// multiple GETs when the parallel byte-range path splits it, so tests + /// asserting exact counts use a small artifact (single-connection path, + /// 1 GET per download). pub fn request_count(&self) -> usize { self.gets.load(Ordering::Relaxed) } - /// When enabled, hold each Full/Garbage response open ~500ms before - /// sending the body. This keeps an installer in flight long enough for - /// concurrent installers to genuinely overlap even on a heavily loaded - /// CI host — a too-short hold would let race tests run the installers - /// back-to-back and never exercise the concurrent window. + /// When enabled, hold each archive response open ~500ms before sending + /// the body. This keeps an installer in flight long enough for concurrent + /// installers to genuinely overlap even on a heavily loaded CI host — a + /// too-short hold would let race tests run the installers back-to-back + /// and never exercise the concurrent window. pub fn set_slow(&self, slow: bool) { self.slow.store(slow, Ordering::Relaxed); } @@ -134,6 +205,39 @@ fn parse_range(request: &str) -> Option<(usize, usize)> { None } +/// The request path, without query string. +fn parse_path(request: &str) -> String { + request + .lines() + .next() + .and_then(|l| l.split_whitespace().nth(1)) + .unwrap_or("/") + .split('?') + .next() + .unwrap_or("/") + .to_string() +} + +/// Release JSON for `version` with asset URLs rooted at this server. +fn release_json(addr: &std::net::SocketAddr, version: &str) -> String { + let name = archive_name(version); + format!( + r#"{{"tag_name":"v{version}","draft":false,"prerelease":false,"assets":[{{"name":"{name}","browser_download_url":"http://{addr}/dl/{version}/{name}"}},{{"name":"SHA256SUMS","browser_download_url":"http://{addr}/dl/{version}/SHA256SUMS"}}]}}"# + ) +} + +fn write_simple_response(stream: &mut TcpStream, status: &str, body: &[u8], is_head: bool) { + let head = format!( + "HTTP/1.1 {status}\r\nContent-Length: {}\r\nConnection: close\r\n\r\n", + body.len() + ); + let _ = stream.write_all(head.as_bytes()); + if !is_head { + let _ = stream.write_all(body); + } + let _ = stream.flush(); +} + fn handle_connection( mut stream: TcpStream, state: Arc>, @@ -169,18 +273,74 @@ fn handle_connection( } let request = String::from_utf8_lossy(&buf).to_string(); let is_head = request.starts_with("HEAD"); + let path = parse_path(&request); + let range = parse_range(&request); + let addr = stream.local_addr().unwrap(); + + // ── Metadata routes ───────────────────────────────────────────────────── + if path == "/releases/latest" { + let latest = state.lock().unwrap().latest.clone(); + let body = release_json(&addr, &latest); + write_simple_response(&mut stream, "200 OK", body.as_bytes(), is_head); + return; + } + if let Some(tag) = path.strip_prefix("/releases/tags/v") { + let body = release_json(&addr, tag); + write_simple_response(&mut stream, "200 OK", body.as_bytes(), is_head); + return; + } + + // ── Asset routes: /dl/{version}/{name} ────────────────────────────────── + let Some(rest) = path.strip_prefix("/dl/") else { + write_simple_response(&mut stream, "404 Not Found", b"not found", is_head); + return; + }; + let Some((version, asset)) = rest.split_once('/') else { + write_simple_response(&mut stream, "404 Not Found", b"not found", is_head); + return; + }; + + let (good, bad, mode) = { + let mut st = state.lock().unwrap(); + let mode = st.mode; + let fixture = st.fixture(version); + ( + fixture.good_archive.clone(), + fixture.bad_archive.clone(), + mode, + ) + }; + + if asset == "SHA256SUMS" { + // BadBinary serves the bad archive WITH its correct hash (a release + // whose binary is broken but whose checksums are fine); every other + // mode lists the good archive's hash so in-transit corruption is + // caught by the checksum gate. + let hashed: &[u8] = match mode { + Mode::BadBinary => &bad, + _ => &good, + }; + let body = format!("{} {}\n", sha256_hex(hashed), archive_name(version)); + write_simple_response(&mut stream, "200 OK", body.as_bytes(), is_head); + return; + } + + if asset != archive_name(version) { + write_simple_response(&mut stream, "404 Not Found", b"not found", is_head); + return; + } + + // ── Archive body with corruption modes ────────────────────────────────── // Count only body-serving GETs; the parallel path's HEAD probe is excluded. if !is_head { gets.fetch_add(1, Ordering::Relaxed); } - let range = parse_range(&request); - let (body, mode) = { - let st = state.lock().unwrap(); - (st.body.clone(), st.mode) + let body: &[u8] = match mode { + Mode::BadBinary => &bad, + _ => &good, }; let total = body.len(); - let body: &[u8] = &body; // Determine the byte slice this request is for, plus the length we will // claim in Content-Length. @@ -190,7 +350,7 @@ fn handle_connection( }; let claimed_len = slice_end_excl - slice_start; - // For truncation/hang, `k` is a GLOBAL cutoff across the whole artifact: + // For truncation/hang, `k` is a GLOBAL cutoff across the whole archive: // a slice that reaches past byte `k` is sent short, so the parallel path's // later chunk (or the single-connection body) is the one truncated. let send_end = match mode { @@ -201,9 +361,9 @@ fn handle_connection( // truncated modes it may be shorter than the advertised `claimed_len`. let payload: Vec = match mode { Mode::Garbage => { - let mut bad = b"#!/bin/sh\nexit 1\n".to_vec(); - bad.resize(claimed_len, b'\n'); - bad + let mut bad_bytes = b"not the archive you checksummed".to_vec(); + bad_bytes.resize(claimed_len, b'\n'); + bad_bytes } _ => body[slice_start..send_end].to_vec(), }; @@ -236,7 +396,7 @@ fn handle_connection( } match mode { - Mode::Full | Mode::Garbage => { + Mode::Full | Mode::Garbage | Mode::BadBinary => { // Hold the connection open longer so concurrent installers // genuinely overlap mid-download (see `set_slow`). if slow.load(Ordering::Relaxed) { diff --git a/crates/codegen/kigi-update/tests/common/mod.rs b/crates/codegen/kigi-update/tests/common/mod.rs index 1b58661..0b775a2 100644 --- a/crates/codegen/kigi-update/tests/common/mod.rs +++ b/crates/codegen/kigi-update/tests/common/mod.rs @@ -40,8 +40,7 @@ use std::sync::OnceLock; /// this directory for the lifetime of the process. /// /// Also clears env vars that the auto-update code consults so a parent shell's -/// values can't pollute the baseline (e.g. running tests from `npm run` would -/// otherwise inherit `npm_config_user_agent` and `NPM_TOKEN`). +/// values can't pollute the baseline. pub fn test_home() -> &'static PathBuf { static HOME: OnceLock = OnceLock::new(); HOME.get_or_init(|| { @@ -52,10 +51,9 @@ pub fn test_home() -> &'static PathBuf { unsafe { std::env::set_var("KIGI_SHARE_DIR", &path); std::env::remove_var("KIGI_TEST_VERSION"); - std::env::remove_var("NPM_TOKEN"); std::env::remove_var("KIGI_INSTALLER"); - std::env::remove_var("KIGI_MANAGED_BY_NPM"); std::env::remove_var("KIGI_MANAGED_BY_INTERNAL"); + std::env::remove_var(kigi_env::UPDATE_BASE_URL_ENV); } path }) @@ -74,24 +72,32 @@ pub fn reset_home() { // SAFETY: tests using this helper must be `#[serial]`. unsafe { std::env::remove_var("KIGI_TEST_VERSION"); - std::env::remove_var("NPM_TOKEN"); std::env::remove_var("KIGI_INSTALLER"); + std::env::remove_var(kigi_env::UPDATE_BASE_URL_ENV); } } -/// Override the version reported by `get_installed_grok_version()` for the +/// Override the version reported by `get_installed_kigi_version()` for the /// duration of the test (until [`reset_home`] or process exit). pub fn set_test_version(v: &str) { // SAFETY: tests using this helper must be `#[serial]`. unsafe { std::env::set_var("KIGI_TEST_VERSION", v) }; } +/// Point the production update flows (`check_update_status`, +/// `ensure_latest_on_disk`, `run_update`) at a mock GitHub Releases API. +/// Cleared by [`reset_home`]. +pub fn set_update_base(base: &str) { + // SAFETY: tests using this helper must be `#[serial]`. + unsafe { std::env::set_var(kigi_env::UPDATE_BASE_URL_ENV, base) }; +} + // ───────────────────────────────────────────────────────────────────────────── -// Install-test fixtures (shared by the blitz + convergence suites) +// Install-test fixtures // ───────────────────────────────────────────────────────────────────────────── /// Host `{os}-{arch}` string matching the versioned binary naming scheme -/// (`grok-{version}-{platform}`). +/// (`kigi-{version}-{platform}`). pub fn host_platform() -> String { let os = if cfg!(target_os = "macos") { "macos" @@ -110,6 +116,27 @@ pub fn host_platform() -> String { format!("{os}-{arch}") } +/// Host Rust target triple, matching `auto_update::target_triple()` and the +/// release-asset naming in `.github/workflows/release.yml`. +pub fn host_triple() -> &'static str { + if cfg!(all(target_os = "macos", target_arch = "aarch64")) { + "aarch64-apple-darwin" + } else if cfg!(all(target_os = "macos", target_arch = "x86_64")) { + "x86_64-apple-darwin" + } else if cfg!(all(target_os = "linux", target_arch = "aarch64")) { + "aarch64-unknown-linux-gnu" + } else if cfg!(all(target_os = "linux", target_arch = "x86_64")) { + "x86_64-unknown-linux-gnu" + } else { + panic!("unsupported test platform"); + } +} + +/// Release-archive asset name for `version` on the host platform. +pub fn archive_name(version: &str) -> String { + format!("kigi-{version}-{}.tar.gz", host_triple()) +} + /// Minimal [`kigi_update::UpdateConfig`] for install tests. pub fn make_update_config(channel: &str) -> kigi_update::UpdateConfig { kigi_update::UpdateConfig { @@ -118,7 +145,6 @@ pub fn make_update_config(channel: &str) -> kigi_update::UpdateConfig { deployment_key: None, alpha_test_key: None, channel: channel.to_string(), - npm_registry: None, } } @@ -168,7 +194,113 @@ pub fn backdate_downloads() { } // ───────────────────────────────────────────────────────────────────────────── -// PATH-override fake binary +// GitHub Releases fixtures +// +// Wire shapes mirror the real GitHub REST API +// (https://docs.github.com/en/rest/releases/releases): +// GET /repos/{o}/{r}/releases/latest → release object +// GET /repos/{o}/{r}/releases/tags/{tag} → release object +// GET /repos/{o}/{r}/releases → array of release objects +// Release object: {"tag_name":"v0.1.0","assets":[{"name":"...", +// "browser_download_url":"..."}]} +// ───────────────────────────────────────────────────────────────────────────── + +/// Build a tar.gz archive from `(name, bytes)` entries. +#[cfg(unix)] +pub fn make_tar_gz(entries: &[(&str, &[u8])]) -> Vec { + let gz = flate2::write::GzEncoder::new(Vec::new(), flate2::Compression::default()); + let mut builder = tar::Builder::new(gz); + for (name, data) in entries { + let mut header = tar::Header::new_gnu(); + header.set_size(data.len() as u64); + header.set_mode(0o755); + header.set_cksum(); + builder.append_data(&mut header, name, *data).unwrap(); + } + builder.into_inner().unwrap().finish().unwrap() +} + +/// Release archive containing a single `kigi` entry with `binary` as its body. +#[cfg(unix)] +pub fn make_release_archive(binary: &[u8]) -> Vec { + make_tar_gz(&[("kigi", binary)]) +} + +/// Hex SHA-256 of `bytes` (as written into SHA256SUMS manifests). +pub fn sha256_hex(bytes: &[u8]) -> String { + use sha2::{Digest, Sha256}; + format!("{:x}", Sha256::digest(bytes)) +} + +/// GitHub release JSON for `version`, with asset download URLs rooted at +/// `{server_uri}/dl/v{version}/…`. +pub fn release_json(server_uri: &str, version: &str) -> serde_json::Value { + let name = archive_name(version); + serde_json::json!({ + "tag_name": format!("v{version}"), + "draft": false, + "prerelease": !semver::Version::parse(version).unwrap().pre.is_empty(), + "assets": [ + { + "name": name, + "browser_download_url": format!("{server_uri}/dl/v{version}/{name}"), + }, + { + "name": "SHA256SUMS", + "browser_download_url": format!("{server_uri}/dl/v{version}/SHA256SUMS"), + }, + ], + }) +} + +/// Mount the per-release endpoints for `version` on a wiremock server: +/// `GET /releases/tags/v{version}` plus the archive and SHA256SUMS asset +/// downloads. Callers that need `latest` also call [`mount_latest`]. +/// +/// The base URL to hand the updater is `format!("{}/releases", server.uri())`. +#[cfg(unix)] +pub async fn mount_release(server: &wiremock::MockServer, version: &str, binary: &[u8]) { + use wiremock::matchers::{method, path}; + use wiremock::{Mock, ResponseTemplate}; + + let archive = make_release_archive(binary); + let sums = format!("{} {}\n", sha256_hex(&archive), archive_name(version)); + + Mock::given(method("GET")) + .and(path(format!("/releases/tags/v{version}"))) + .respond_with( + ResponseTemplate::new(200).set_body_json(release_json(&server.uri(), version)), + ) + .mount(server) + .await; + Mock::given(method("GET")) + .and(path(format!("/dl/v{version}/{}", archive_name(version)))) + .respond_with(ResponseTemplate::new(200).set_body_bytes(archive)) + .mount(server) + .await; + Mock::given(method("GET")) + .and(path(format!("/dl/v{version}/SHA256SUMS"))) + .respond_with(ResponseTemplate::new(200).set_body_string(sums)) + .mount(server) + .await; +} + +/// Mount `GET /releases/latest` returning `version`. +pub async fn mount_latest(server: &wiremock::MockServer, version: &str) { + use wiremock::matchers::{method, path}; + use wiremock::{Mock, ResponseTemplate}; + + Mock::given(method("GET")) + .and(path("/releases/latest")) + .respond_with( + ResponseTemplate::new(200).set_body_json(release_json(&server.uri(), version)), + ) + .mount(server) + .await; +} + +// ───────────────────────────────────────────────────────────────────────────── +// PATH-override fake binary (used by the install.sh harness) // ───────────────────────────────────────────────────────────────────────────── /// RAII guard that places a sh-script with name `name` at the head of `PATH`. @@ -215,18 +347,8 @@ impl FakeBinGuard { } } - /// Install a fake `npm` using the standard [`fake_npm_script`] template. - pub fn install_npm() -> Self { - Self::install("npm", fake_npm_script) - } - - /// Install a fake `gh` using the standard [`fake_gh_script`] template. - pub fn install_gh() -> Self { - Self::install("gh", fake_gh_script) - } - - /// The tempdir backing this guard (where canned stdout/stderr/exit files - /// can be written by tests, and where `-args.log` is appended). + /// The tempdir backing this guard (where canned response files can be + /// written by tests, and where `-args.log` is appended). pub fn dir(&self) -> PathBuf { self.tmp.path().to_path_buf() } @@ -239,46 +361,6 @@ impl FakeBinGuard { .map(String::from) .collect() } - - pub fn set_stdout(&self, content: &str) { - std::fs::write(self.dir().join(format!("{}-stdout", self.name)), content).unwrap(); - } - - pub fn set_stderr(&self, content: &str) { - std::fs::write(self.dir().join(format!("{}-stderr", self.name)), content).unwrap(); - } - - pub fn set_alpha_stdout(&self, content: &str) { - std::fs::write( - self.dir().join(format!("{}-alpha-stdout", self.name)), - content, - ) - .unwrap(); - } - - pub fn set_stable_only_stdout(&self, content: &str) { - std::fs::write( - self.dir().join(format!("{}-stable-only-stdout", self.name)), - content, - ) - .unwrap(); - } - - pub fn set_with_pre_stdout(&self, content: &str) { - std::fs::write( - self.dir().join(format!("{}-with-pre-stdout", self.name)), - content, - ) - .unwrap(); - } - - pub fn set_exit_code(&self, code: i32) { - std::fs::write( - self.dir().join(format!("{}-exit", self.name)), - code.to_string(), - ) - .unwrap(); - } } impl Drop for FakeBinGuard { @@ -287,67 +369,3 @@ impl Drop for FakeBinGuard { unsafe { std::env::set_var("PATH", &self.prev_path) }; } } - -/// Single-quote a path for safe substitution into a sh script. -fn single_quote_for_sh(p: &Path) -> String { - let s = p.to_string_lossy(); - // Escape any embedded single quotes (paranoid — tempdir paths shouldn't - // contain them, but defensively quote). - let escaped = s.replace('\'', "'\\''"); - format!("'{escaped}'") -} - -/// sh script body for a fake `npm`. Logs argv to `/npm-args.log` and -/// dispatches stdout based on the first matching argv pattern: -/// -/// - argv contains `@alpha` → cat `/npm-alpha-stdout` -/// - else → cat `/npm-stdout` -/// -/// Always cats `/npm-stderr` to stderr (if exists). Exits with the integer -/// in `/npm-exit` (default 0). -pub fn fake_npm_script(dir: &Path) -> String { - let dq = single_quote_for_sh(dir); - format!( - r#"#!/bin/sh -echo "$@" >> {dq}/npm-args.log -if echo "$@" | grep -q '@alpha'; then - if [ -f {dq}/npm-alpha-stdout ]; then cat {dq}/npm-alpha-stdout; fi -elif [ -f {dq}/npm-stdout ]; then - cat {dq}/npm-stdout -fi -if [ -f {dq}/npm-stderr ]; then cat {dq}/npm-stderr >&2; fi -exit_code=0 -if [ -f {dq}/npm-exit ]; then exit_code=$(cat {dq}/npm-exit); fi -exit "$exit_code" -"# - ) -} - -/// sh script body for a fake `gh`. Logs argv to `/gh-args.log` and -/// dispatches stdout based on `release list` argv: -/// -/// - argv contains `release list --exclude-pre-releases` → `/gh-stable-only-stdout` -/// - argv contains `release list` (no exclude flag) → `/gh-with-pre-stdout` -/// - else → `/gh-stdout` -/// -/// Exits with `/gh-exit` (default 0). -pub fn fake_gh_script(dir: &Path) -> String { - let dq = single_quote_for_sh(dir); - format!( - r#"#!/bin/sh -echo "$@" >> {dq}/gh-args.log -if echo "$@" | grep -q 'release list'; then - if echo "$@" | grep -q '\-\-exclude-pre-releases'; then - if [ -f {dq}/gh-stable-only-stdout ]; then cat {dq}/gh-stable-only-stdout; fi - else - if [ -f {dq}/gh-with-pre-stdout ]; then cat {dq}/gh-with-pre-stdout; fi - fi -elif [ -f {dq}/gh-stdout ]; then - cat {dq}/gh-stdout -fi -exit_code=0 -if [ -f {dq}/gh-exit ]; then exit_code=$(cat {dq}/gh-exit); fi -exit "$exit_code" -"# - ) -} diff --git a/crates/codegen/kigi-update/tests/test_blitz_cancel.rs b/crates/codegen/kigi-update/tests/test_blitz_cancel.rs index 3d1964e..dd86b64 100644 --- a/crates/codegen/kigi-update/tests/test_blitz_cancel.rs +++ b/crates/codegen/kigi-update/tests/test_blitz_cancel.rs @@ -2,17 +2,19 @@ //! truncation / corruption / cancel at every point, and after every iteration //! assert the single invariant that makes the brick impossible: //! -//! > `~/.kigi/bin/grok` resolves to a binary that passes the smoke-test, OR it +//! > `~/.kigi/bin/kigi` resolves to a binary that passes the smoke-test, OR it //! > is still the previous-good binary. It is never a broken/partial binary, //! > and a `.tmp` never masquerades as the active binary. //! //! The invariant is checked by RE-RESOLVING the symlink and RE-RUNNING the //! binary from disk every time — never by re-reading a value the harness set. //! -//! A controllable raw HTTP/1.1 server serves a real executable ("good") -//! artifact and can truncate the body, close the connection early, serve a -//! right-length-but-garbage body, or hang mid-transfer — for both the parallel -//! byte-range path and the single-connection path. +//! A controllable raw HTTP/1.1 GitHub-Releases-shaped server serves release +//! JSON, SHA256SUMS, and the archive, and can truncate the archive body, +//! close the connection early, serve a right-length-but-garbage body (caught +//! by the SHA-256 gate), serve a correctly-checksummed archive whose binary +//! fails to run (caught by the smoke test), or hang mid-transfer — for both +//! the parallel byte-range path and the single-connection path. #![cfg(unix)] @@ -35,38 +37,44 @@ use kigi_update::auto_update::install_internal_from_base; // Artifacts + fixtures // ───────────────────────────────────────────────────────────────────────────── -/// A real executable larger than the 16 MiB parallel threshold (at least 2 -/// chunks), so the parallel byte-range path is exercised. The shell exits on -/// line 2, never reading the newline padding. +/// A real executable whose ARCHIVE clears the 16 MiB parallel threshold (at +/// least 2 chunks), so the parallel byte-range path is exercised. The shell +/// exits on line 2, never reading the padding — which is pseudo-random bytes +/// so gzip cannot compress the archive below the threshold. fn large_good_artifact() -> Vec { let mut v = b"#!/bin/sh\nexit 0\n".to_vec(); - v.resize(33 * 1024 * 1024, b'\n'); + v.reserve(34 * 1024 * 1024); + // xorshift64* keeps the padding incompressible without an RNG dependency. + let mut x: u64 = 0x243F6A8885A308D3; + while v.len() < 34 * 1024 * 1024 { + x ^= x >> 12; + x ^= x << 25; + x ^= x >> 27; + v.extend_from_slice(&x.wrapping_mul(0x2545F4914F6CDD1D).to_le_bytes()); + } v } -/// Seed a previous-good versioned binary + both managed symlinks -/// (`grok` and `agent` — see `swap_managed_bin_links`). Returns the -/// absolute path of the seeded binary. +/// Seed a previous-good versioned binary + the managed `kigi` symlink. +/// Returns the absolute path of the seeded binary. fn seed_previous_good(home: &Path, version: &str, platform: &str) -> PathBuf { let downloads = home.join("downloads"); let bin = home.join("bin"); std::fs::create_dir_all(&downloads).unwrap(); std::fs::create_dir_all(&bin).unwrap(); - let prev = downloads.join(format!("grok-{version}-{platform}")); + let prev = downloads.join(format!("kigi-{version}-{platform}")); std::fs::write(&prev, small_good_artifact()).unwrap(); std::fs::set_permissions(&prev, std::fs::Permissions::from_mode(0o755)).unwrap(); - let rel = format!("../downloads/grok-{version}-{platform}"); - for name in ["grok", "agent"] { - let link = bin.join(name); - let _ = std::fs::remove_file(&link); - std::os::unix::fs::symlink(&rel, &link).unwrap(); - } + let rel = format!("../downloads/kigi-{version}-{platform}"); + let link = bin.join("kigi"); + let _ = std::fs::remove_file(&link); + std::os::unix::fs::symlink(&rel, &link).unwrap(); dunce::canonicalize(&prev).unwrap() } -/// What the active `grok` should resolve to after an install attempt. +/// What the active `kigi` should resolve to after an install attempt. #[derive(Clone, Copy, PartialEq)] enum Expect { /// The new version was installed and activated. @@ -77,34 +85,21 @@ enum Expect { /// THE invariant. Re-resolves the on-disk symlink and RE-EXECUTES the resolved /// binary; never inspects a harness-held value. Guarantees the active managed -/// link is always runnable and is never a `.tmp` or a partial file. Applied -/// to both `grok` and `agent` — `swap_managed_bin_links` moves them together. +/// link is always runnable and is never a `.tmp` or a partial file. fn assert_invariant(home: &Path, prev_good: &Path, new_binary: &Path, expect: Expect) { - for name in ["grok", "agent"] { - assert_link_invariant(home, name, prev_good, new_binary, expect); - } -} - -fn assert_link_invariant( - home: &Path, - name: &str, - prev_good: &Path, - new_binary: &Path, - expect: Expect, -) { - let link = home.join("bin").join(name); - assert!(link.is_symlink(), "{name} must remain a symlink"); + let link = home.join("bin").join("kigi"); + assert!(link.is_symlink(), "kigi must remain a symlink"); // Resolve from disk. canonicalize fails on a dangling link — that alone // would be a brick. let resolved = dunce::canonicalize(&link) - .unwrap_or_else(|e| panic!("active {name} symlink does not resolve: {e}")); + .unwrap_or_else(|e| panic!("active kigi symlink does not resolve: {e}")); // A `.tmp` file must never be the live target. let resolved_name = resolved.file_name().unwrap().to_string_lossy().to_string(); assert!( !resolved_name.contains(".tmp"), - "active {name} must not be a temp file: {resolved_name}" + "active kigi must not be a temp file: {resolved_name}" ); // Re-run the resolved binary from disk: the active link must always run. @@ -118,7 +113,7 @@ fn assert_link_invariant( .unwrap_or(false); assert!( ran_ok, - "active {name} must pass the smoke-test, but {} did not run", + "active kigi must pass the smoke-test, but {} did not run", resolved.display() ); @@ -126,11 +121,11 @@ fn assert_link_invariant( Expect::NewBinary => assert_eq!( resolved, dunce::canonicalize(new_binary).unwrap(), - "expected the newly-installed binary to be active for {name}" + "expected the newly-installed binary to be active" ), Expect::PreviousGood => assert_eq!( resolved, prev_good, - "expected the previous-good binary to stay active for {name} after a rejected install" + "expected the previous-good binary to stay active after a rejected install" ), } } @@ -149,12 +144,12 @@ async fn run_one( let prev_good = seed_previous_good(home, "0.1.100", &platform); let new_binary = home .join("downloads") - .join(format!("grok-{version}-{platform}")); + .join(format!("kigi-{version}-{platform}")); let cfg = make_update_config("stable"); server.set_mode(mode); - let base = server.uri(); + let base = server.base(); let install = install_internal_from_base(Some(version), &cfg, &base); let expect = match (mode, cancel_after) { (Mode::Full, None) => { @@ -180,7 +175,7 @@ async fn run_one( } // ───────────────────────────────────────────────────────────────────────────── -// Deterministic matrix — single-connection path (small artifact) +// Deterministic matrix — single-connection path (small archive) // ───────────────────────────────────────────────────────────────────────────── #[tokio::test(flavor = "multi_thread")] @@ -191,15 +186,20 @@ async fn blitz_single_connection_matrix() { return; } let server = ArtifactServer::start(small_good_artifact()); - let len = small_good_artifact().len(); + let len = server.archive_len("0.1.181"); // Happy path first so we know the symlink CAN move to the new binary. run_one(&server, Mode::Full, "0.1.181", None).await; - // Right-length garbage — caught by the smoke-test (Layer 2). + // Right-length garbage — caught by the SHA-256 gate. run_one(&server, Mode::Garbage, "0.1.181", None).await; - // Premature EOF at several offsets — caught by the length/transport checks. + // Correctly-checksummed archive with a broken binary — caught by the + // smoke test. + run_one(&server, Mode::BadBinary, "0.1.181", None).await; + + // Premature EOF at several offsets — caught by the length/transport + // checks (and the checksum gate as belt-and-suspenders). for k in [0usize, 1, len / 2, len.saturating_sub(1)] { run_one(&server, Mode::Truncate(k), "0.1.181", None).await; } @@ -220,12 +220,12 @@ async fn blitz_single_connection_matrix() { // calls reset_home() at the start of every case, so this checks the happy // path stays reachable — not recovery over a dirty dir. The genuine // recovery-without-reset assertion lives in - // integrity_failure_is_clean_keeps_previous_good_and_emits_telemetry. + // smoke_and_checksum_failures_keep_previous_good_then_recover. run_one(&server, Mode::Full, "0.1.182", None).await; } // ───────────────────────────────────────────────────────────────────────────── -// Deterministic matrix — parallel byte-range path (>= 16 MiB artifact) +// Deterministic matrix — parallel byte-range path (>= 16 MiB archive) // ───────────────────────────────────────────────────────────────────────────── #[tokio::test(flavor = "multi_thread")] @@ -235,22 +235,23 @@ async fn blitz_parallel_path_matrix() { eprintln!("skipping: shell scripts cannot execute in this sandbox"); return; } - let body = large_good_artifact(); - let len = body.len(); - let server = ArtifactServer::start(body); + let server = ArtifactServer::start(large_good_artifact()); + let len = server.archive_len("0.1.181"); + assert!( + len >= 16 * 1024 * 1024, + "archive must clear the parallel threshold (got {len} bytes)" + ); // Happy path through the parallel reassembly. run_one(&server, Mode::Full, "0.1.181", None).await; - // Right-length garbage reassembled from range chunks — smoke-test catches. + // Right-length garbage reassembled from range chunks — checksum catches. run_one(&server, Mode::Garbage, "0.1.181", None).await; // Short chunk inside the range / set_len zero region. With Content-Length // present (the blitz server always sends it), a premature close surfaces as - // a reqwest stream error that rejects the chunk; the download_range - // byte-count check is the belt-and-suspenders for the rarer close-delimited - // (Content-Length-absent) case. The parallel path falls back to single- - // connection, which classifies the same truncation as DownloadIncomplete. + // a reqwest stream error that rejects the chunk; the parallel path falls + // back to single-connection, which hits the same truncation. for k in [0usize, 1024, len / 3, len - 4096] { run_one(&server, Mode::Truncate(k), "0.1.181", None).await; } @@ -269,12 +270,13 @@ async fn blitz_parallel_path_matrix() { } // ───────────────────────────────────────────────────────────────────────────── -// Smoke-test rejects garbage and keeps previous-good +// Checksum + smoke-test rejections keep previous-good, then recover WITHOUT +// a reset in between. // ───────────────────────────────────────────────────────────────────────────── #[tokio::test(flavor = "multi_thread")] #[serial] -async fn smoke_test_rejects_garbage_and_keeps_previous_good() { +async fn smoke_and_checksum_failures_keep_previous_good_then_recover() { if !can_exec_shell_scripts() { eprintln!("skipping: shell scripts cannot execute in this sandbox"); return; @@ -285,23 +287,28 @@ async fn smoke_test_rejects_garbage_and_keeps_previous_good() { let platform = host_platform(); let prev_good = seed_previous_good(home, "0.1.100", &platform); let cfg = make_update_config("stable"); - - server.set_mode(Mode::Garbage); - let base = server.uri(); - let result = install_internal_from_base(Some("0.1.181"), &cfg, &base).await; - assert!(result.is_err(), "garbage artifact must not install"); - + let base = server.base(); let new_binary = home .join("downloads") - .join(format!("grok-0.1.181-{platform}")); + .join(format!("kigi-0.1.181-{platform}")); + + // Checksum failure (garbage body) keeps previous good. + server.set_mode(Mode::Garbage); + let result = install_internal_from_base(Some("0.1.181"), &cfg, &base).await; + assert!(result.is_err(), "garbage archive must not install"); assert_invariant(home, &prev_good, &new_binary, Expect::PreviousGood); - // A subsequent clean serve must succeed. + // Smoke-test failure (valid checksum, broken binary) keeps previous good. + server.set_mode(Mode::BadBinary); + let result = install_internal_from_base(Some("0.1.181"), &cfg, &base).await; + assert!(result.is_err(), "broken binary must not install"); + assert_invariant(home, &prev_good, &new_binary, Expect::PreviousGood); + + // A subsequent clean serve must succeed over the SAME dirty state. server.set_mode(Mode::Full); - let base = server.uri(); install_internal_from_base(Some("0.1.181"), &cfg, &base) .await - .expect("clean serve after a failure should succeed"); + .expect("clean serve after failures should succeed"); assert_invariant(home, &prev_good, &new_binary, Expect::NewBinary); } @@ -328,7 +335,7 @@ impl Rng { async fn fuzz_loop(iterations: usize, seed: u64) { let server = ArtifactServer::start(small_good_artifact()); - let len = small_good_artifact().len(); + let len = server.archive_len("0.1.181"); let mut rng = Rng(seed); for i in 0..iterations { @@ -340,9 +347,10 @@ async fn fuzz_loop(iterations: usize, seed: u64) { run_one(&server, Mode::Full, version, None).await; continue; } - match rng.below(3) { + match rng.below(4) { 0 => run_one(&server, Mode::Garbage, version, None).await, - 1 => { + 1 => run_one(&server, Mode::BadBinary, version, None).await, + 2 => { // k in [0, len): always strictly truncating (k == len would be // a complete transfer). let k = rng.below(len); @@ -381,11 +389,11 @@ async fn blitz_fuzz_bounded() { } /// The "test it a million times, cancelling at every point" stress run. Gated -/// behind `#[ignore]`; invoke via `just blitz-stress` or +/// behind `#[ignore]`; invoke via /// `cargo nextest run -p kigi-update --run-ignored all`. #[tokio::test(flavor = "multi_thread")] #[serial] -#[ignore = "stress: 100k iterations, run via `just blitz-stress`"] +#[ignore = "stress: 100k iterations"] async fn blitz_fuzz_stress() { if !can_exec_shell_scripts() { eprintln!("skipping: shell scripts cannot execute in this sandbox"); diff --git a/crates/codegen/kigi-update/tests/test_check_status_regression.rs b/crates/codegen/kigi-update/tests/test_check_status_regression.rs deleted file mode 100644 index d939ea6..0000000 --- a/crates/codegen/kigi-update/tests/test_check_status_regression.rs +++ /dev/null @@ -1,231 +0,0 @@ -//! End-to-end regression tests for `check_update_status` that lock in the -//! exact JSON shape produced by `grok update --check --json` for the failure -//! modes that real users have hit in the wild. -//! -//! Seen when a user is behind a corporate npm registry mirror: -//! -//! ```text -//! # Mirror returns 403 for the @xai-official scope -//! { "currentVersion": "0.1.181", "latestVersion": null, -//! "updateAvailable": false, "installer": "npm", "channel": "stable", -//! "autoUpdate": true, -//! "error": "npm view @latest failed: npm error code E403 ..." } -//! -//! # npm falls back to the public registry which has a stale 0.1.4 -//! { "currentVersion": "0.1.181", "latestVersion": "0.1.4", -//! "updateAvailable": false, "installer": "npm", "channel": "stable", -//! "autoUpdate": true, "error": null } -//! ``` -//! -//! The first case produces `error != null`, the second produces -//! `error == null` but `updateAvailable == false`. Both result in zero -//! visible change for an interactive user — the in-process auto-update -//! check (`run_update_if_available`) silently swallows the same error and -//! the same "already current" outcome. -//! -//! These tests verify the JSON contract so any refactor to `UpdateStatus`, -//! `check_update_status`, or the npm dispatch path will surface a diff. - -#![cfg(unix)] - -mod common; - -use serial_test::serial; - -use common::{FakeBinGuard, reset_home, set_test_version, test_home}; -use kigi_update::UpdateConfig; -use kigi_update::auto_update::check_update_status; - -/// Set up a fake `npm` on PATH, set `KIGI_INSTALLER=npm` so the auto-update -/// code dispatches to npm without consulting config, and pin the installed -/// version to `0.1.181` (matches the user's report). -fn setup() -> FakeBinGuard { - let _ = test_home(); - reset_home(); - set_test_version("0.1.181"); - // SAFETY: serial_test ensures no race; reset_home will clear this between - // tests. - unsafe { std::env::set_var("KIGI_INSTALLER", "npm") }; - FakeBinGuard::install_npm() -} - -fn make_update_config() -> UpdateConfig { - UpdateConfig { - proxy_base_url: "http://test.invalid/v1".to_string(), - auth_scope: "test".to_string(), - deployment_key: None, - alpha_test_key: None, - channel: "stable".to_string(), - npm_registry: None, - } -} - -// ───────────────────────────────────────────────────────────────────────────── -// Scenario A: corporate registry 403. -// ───────────────────────────────────────────────────────────────────────────── - -#[tokio::test] -#[serial] -async fn check_status_surfaces_npm_403_in_error_field() { - let g = setup(); - - // Mimic a corporate registry-mirror 403 response shape (npm exits non-zero, - // writes the error message to stderr). - g.set_exit_code(1); - g.set_stderr( - "npm error code E403\n\ - npm error 403 403 Forbidden - GET https://registry-mirror.example.invalid/api/npm/js-virtual/@xai-official%2fgrok\n\ - npm error 403 In most cases, you or one of your dependencies are requesting\n\ - npm error 403 a package version that is forbidden by your security policy", - ); - - let cfg = make_update_config(); - let status = check_update_status(&cfg).await; - - assert_eq!(status.current_version, "0.1.181"); - assert_eq!(status.latest_version, None, "no version when fetch fails"); - assert!(!status.update_available, "no update when fetch fails"); - assert_eq!(status.installer.as_deref(), Some("npm")); - assert_eq!(status.channel, "stable"); - let err = status - .error - .as_deref() - .expect("error must be populated when npm fails"); - assert!( - err.contains("npm view") && err.contains("failed"), - "error must say what failed: {err}" - ); - assert!( - err.contains("403") || err.contains("E403") || err.contains("Forbidden"), - "error must include the underlying HTTP detail: {err}" - ); -} - -#[tokio::test] -#[serial] -async fn check_status_npm_403_serializes_to_user_visible_json() { - // Verify the public JSON shape matches what the user saw in their terminal. - let g = setup(); - - g.set_exit_code(1); - g.set_stderr("npm error code E403\nnpm error 403 Forbidden"); - - let cfg = make_update_config(); - let status = check_update_status(&cfg).await; - let json = serde_json::to_value(&status).unwrap(); - - // Lock in every key the user's tooling depends on. - assert_eq!(json["currentVersion"], "0.1.181"); - assert!(json["latestVersion"].is_null()); - assert_eq!(json["updateAvailable"], false); - assert_eq!(json["installer"], "npm"); - assert_eq!(json["channel"], "stable"); - let err = json["error"] - .as_str() - .expect("error key must be a string when fetch fails"); - assert!( - err.contains("E403") || err.contains("403"), - "error must include 403: {err}" - ); -} - -// ───────────────────────────────────────────────────────────────────────────── -// Scenario B: public registry returns stale 0.1.4. -// ───────────────────────────────────────────────────────────────────────────── - -#[tokio::test] -#[serial] -async fn check_status_returns_no_update_when_registry_has_older_version() { - // The public registry returns 0.1.4 (much older than installed 0.1.181). - // `needs_update("0.1.181", "0.1.4", "stable")` returns Some(false), so - // `updateAvailable` is false and `error` is null. From the user's - // perspective: silent no-op, even though their preferred upgrade lane - // (corporate mirror) was unreachable. There's nothing the auto-update - // code can do here without knowing about scoped registries — but we want - // to lock in this exact shape so a future change doesn't accidentally - // present a downgrade as an upgrade. - let g = setup(); - g.set_stdout("\"0.1.4\""); - - let cfg = make_update_config(); - let status = check_update_status(&cfg).await; - - assert_eq!(status.current_version, "0.1.181"); - assert_eq!(status.latest_version.as_deref(), Some("0.1.4")); - assert!( - !status.update_available, - "older latest must NOT be reported as update available" - ); - assert_eq!(status.installer.as_deref(), Some("npm")); - assert!(status.error.is_none(), "no error on successful fetch"); -} - -#[tokio::test] -#[serial] -async fn check_status_stale_version_serializes_to_user_visible_json() { - let g = setup(); - g.set_stdout("\"0.1.4\""); - - let cfg = make_update_config(); - let status = check_update_status(&cfg).await; - let json = serde_json::to_value(&status).unwrap(); - - assert_eq!(json["currentVersion"], "0.1.181"); - assert_eq!(json["latestVersion"], "0.1.4"); - assert_eq!(json["updateAvailable"], false); - assert_eq!(json["installer"], "npm"); - assert_eq!(json["channel"], "stable"); - assert!(json["error"].is_null()); -} - -// ───────────────────────────────────────────────────────────────────────────── -// Sanity: when npm returns a NEWER version, we DO report an update. -// (Anti-regression: the silent-skip paths must only fire on actual no-op -// conditions, not collapse into "always returns no update".) -// ───────────────────────────────────────────────────────────────────────────── - -#[tokio::test] -#[serial] -async fn check_status_reports_update_when_registry_has_newer_version() { - let g = setup(); - g.set_stdout("\"0.1.182\""); - - let cfg = make_update_config(); - let status = check_update_status(&cfg).await; - - assert_eq!(status.current_version, "0.1.181"); - assert_eq!(status.latest_version.as_deref(), Some("0.1.182")); - assert!(status.update_available, "newer version must be reported"); - assert!(status.error.is_none()); -} - -// ───────────────────────────────────────────────────────────────────────────── -// npm rollback safety: npm must NEVER report a downgrade as an update. -// Stale registries / misconfigured Artifactories returning old versions is a -// known failure mode — the auto-updater must ignore them rather than -// downgrading the user. -// ───────────────────────────────────────────────────────────────────────────── - -#[tokio::test] -#[serial] -async fn check_status_npm_never_reports_downgrade_as_update() { - // Verify that the npm path still refuses to report a lower version as - // an available update, even after the allow_downgrade feature was added - // for GCS/internal installers. This is the key safety property. - let g = setup(); - // Simulate a moderate rollback (not a wildly stale version). - g.set_stdout("\"0.1.179\""); - - let cfg = make_update_config(); - let status = check_update_status(&cfg).await; - - assert_eq!(status.current_version, "0.1.181"); - assert_eq!(status.latest_version.as_deref(), Some("0.1.179")); - assert!( - !status.update_available, - "npm must NOT report a downgrade as update available — stale registries \ - would force-downgrade users to ancient versions" - ); - assert_eq!(status.installer.as_deref(), Some("npm")); - assert!(status.error.is_none()); -} diff --git a/crates/codegen/kigi-update/tests/test_downgrade_matrix.rs b/crates/codegen/kigi-update/tests/test_downgrade_matrix.rs deleted file mode 100644 index db71ceb..0000000 --- a/crates/codegen/kigi-update/tests/test_downgrade_matrix.rs +++ /dev/null @@ -1,614 +0,0 @@ -//! Invariant matrix tests for the rollback/downgrade feature. -//! -//! Covers every combination of: -//! - user's current version vs. channel pointer target -//! - installer type (internal, npm, gh-release) -//! - channel (stable, alpha, enterprise) -//! - pointer-flip scenarios (stable bumped after user upgraded, alpha -//! pointer rolled back, etc.) -//! -//! Also includes wiremock-based installation tests that verify the GCS -//! internal installer actually downloads and symlinks an older binary -//! when the stable pointer is rolled back. - -#![cfg(unix)] - -mod common; - -use serial_test::serial; -use wiremock::matchers::{method, path}; -use wiremock::{Mock, MockServer, ResponseTemplate}; - -use common::{FakeBinGuard, reset_home, set_test_version, test_home}; -use kigi_update::UpdateConfig; -use kigi_update::auto_update::{ - auto_update_target, check_update_status, ensure_latest_on_disk, install_internal_from_base, -}; -use kigi_update::version::installed_on_disk_version; - -fn host_platform() -> String { - let os = if cfg!(target_os = "macos") { - "macos" - } else if cfg!(target_os = "linux") { - "linux" - } else { - panic!("unsupported test platform"); - }; - let arch = if cfg!(target_arch = "x86_64") { - "x86_64" - } else if cfg!(target_arch = "aarch64") { - "aarch64" - } else { - panic!("unsupported test arch"); - }; - format!("{os}-{arch}") -} - -fn make_config(channel: &str) -> UpdateConfig { - UpdateConfig { - proxy_base_url: "http://test.invalid/v1".to_string(), - auth_scope: "test".to_string(), - deployment_key: None, - alpha_test_key: None, - channel: channel.to_string(), - npm_registry: None, - } -} - -async fn mount_gcs_with_channels( - stable_version: &str, - alpha_version: Option<&str>, - binary_version: &str, - platform: &str, -) -> MockServer { - let server = MockServer::start().await; - - Mock::given(method("GET")) - .and(path("/stable")) - .respond_with(ResponseTemplate::new(200).set_body_string(stable_version)) - .mount(&server) - .await; - - if let Some(alpha_v) = alpha_version { - Mock::given(method("GET")) - .and(path("/alpha")) - .respond_with(ResponseTemplate::new(200).set_body_string(alpha_v)) - .mount(&server) - .await; - } - - Mock::given(method("GET")) - .and(path(format!("/grok-{binary_version}-{platform}"))) - .respond_with(ResponseTemplate::new(200).set_body_bytes(b"#!/bin/sh\nexit 0\n".to_vec())) - .mount(&server) - .await; - - server -} - -// ───────────────────────────────────────────────────────────────────────────── -// Scenario matrix: GCS internal installer — downgrade via install -// -// Each test simulates a user on version X, with the stable/alpha pointer -// now pointing to version Y. The internal installer should install Y -// regardless of whether Y < X (rollback) or Y > X (upgrade). -// ───────────────────────────────────────────────────────────────────────────── - -#[tokio::test] -#[serial] -async fn internal_install_stable_rollback_0_2_7_to_0_2_5() { - // User was on 0.2.7, stable pointer rolled back to 0.2.5. - let _ = test_home(); - reset_home(); - let platform = host_platform(); - let server = mount_gcs_with_channels("0.2.5", None, "0.2.5", &platform).await; - let cfg = make_config("stable"); - - install_internal_from_base(Some("0.2.5"), &cfg, &server.uri()) - .await - .unwrap(); - - let home = test_home(); - let downloaded = home - .join("downloads") - .join(format!("grok-0.2.5-{platform}")); - assert!(downloaded.exists(), "rolled-back binary must be downloaded"); - - let symlink = home.join("bin").join("grok"); - let target = std::fs::read_link(&symlink).unwrap(); - assert!( - target.to_string_lossy().contains("0.2.5"), - "symlink must point to rolled-back version: {target:?}" - ); -} - -#[tokio::test] -#[serial] -async fn internal_install_stable_upgrade_0_2_5_to_0_2_7() { - // Normal upgrade path: user on 0.2.5, pointer at 0.2.7. - let _ = test_home(); - reset_home(); - let platform = host_platform(); - let server = mount_gcs_with_channels("0.2.7", None, "0.2.7", &platform).await; - let cfg = make_config("stable"); - - install_internal_from_base(Some("0.2.7"), &cfg, &server.uri()) - .await - .unwrap(); - - let symlink = test_home().join("bin").join("grok"); - let target = std::fs::read_link(&symlink).unwrap(); - assert!(target.to_string_lossy().contains("0.2.7")); -} - -#[tokio::test] -#[serial] -async fn internal_install_rollback_then_upgrade_sequence() { - // Simulates: install 0.2.7 → rollback to 0.2.5 → fix ships as 0.2.8. - // All three installs must succeed sequentially. - let _ = test_home(); - reset_home(); - let platform = host_platform(); - - for version in ["0.2.7", "0.2.5", "0.2.8"] { - // Age the previous installs: cleanup deliberately never deletes a - // freshly-written binary (it may be a concurrent racer's just-renamed - // download), so the retention assertions below need the earlier - // installs to look like real leftovers from past releases. - common::backdate_downloads(); - let server = mount_gcs_with_channels(version, None, version, &platform).await; - let cfg = make_config("stable"); - install_internal_from_base(Some(version), &cfg, &server.uri()) - .await - .unwrap(); - } - - let target = std::fs::read_link(test_home().join("bin").join("grok")).unwrap(); - assert!( - target.to_string_lossy().contains("0.2.8"), - "final symlink must point to 0.2.8: {target:?}" - ); - - // Cleanup retains current + highest-semver non-current (N-1 by version, not install order). - let downloads = test_home().join("downloads"); - assert!( - downloads.join(format!("grok-0.2.8-{platform}")).exists(), - "current" - ); - assert!( - downloads.join(format!("grok-0.2.7-{platform}")).exists(), - "N-1 by semver" - ); - assert!( - !downloads.join(format!("grok-0.2.5-{platform}")).exists(), - "lowest cleaned up" - ); -} - -#[tokio::test] -#[serial] -async fn internal_install_alpha_rollback_pointer_resolves_correctly() { - // Alpha user on 0.2.8-alpha.3. Alpha pointer rolled back to 0.2.8-alpha.1, - // stable pointer is 0.2.7. Alpha channel returns max(alpha, stable) = 0.2.8-alpha.1. - let _ = test_home(); - reset_home(); - let platform = host_platform(); - let server = MockServer::start().await; - - Mock::given(method("GET")) - .and(path("/stable")) - .respond_with(ResponseTemplate::new(200).set_body_string("0.2.7")) - .mount(&server) - .await; - Mock::given(method("GET")) - .and(path("/alpha")) - .respond_with(ResponseTemplate::new(200).set_body_string("0.2.8-alpha.1")) - .mount(&server) - .await; - // The resolved version is max(0.2.7, 0.2.8-alpha.1) = 0.2.8-alpha.1. - // Note: semver considers 0.2.8-alpha.1 < 0.2.8 but > 0.2.7. - Mock::given(method("GET")) - .and(path(format!("/grok-0.2.8-alpha.1-{platform}"))) - .respond_with(ResponseTemplate::new(200).set_body_bytes(b"#!/bin/sh\nexit 0\n".to_vec())) - .mount(&server) - .await; - - let cfg = make_config("alpha"); - install_internal_from_base(None, &cfg, &server.uri()) - .await - .unwrap(); - - let downloaded = test_home() - .join("downloads") - .join(format!("grok-0.2.8-alpha.1-{platform}")); - assert!( - downloaded.exists(), - "alpha rollback target must be installed" - ); -} - -#[tokio::test] -#[serial] -async fn internal_install_alpha_user_gets_newer_stable_after_stable_passes_alpha() { - // Alpha user on 0.2.6-alpha.2. Stable ships 0.2.7 (higher than alpha). - // Alpha channel returns max(alpha=0.2.6-alpha.2, stable=0.2.7) = 0.2.7. - let _ = test_home(); - reset_home(); - let platform = host_platform(); - let server = MockServer::start().await; - - Mock::given(method("GET")) - .and(path("/stable")) - .respond_with(ResponseTemplate::new(200).set_body_string("0.2.7")) - .mount(&server) - .await; - Mock::given(method("GET")) - .and(path("/alpha")) - .respond_with(ResponseTemplate::new(200).set_body_string("0.2.6-alpha.2")) - .mount(&server) - .await; - Mock::given(method("GET")) - .and(path(format!("/grok-0.2.7-{platform}"))) - .respond_with(ResponseTemplate::new(200).set_body_bytes(b"#!/bin/sh\nexit 0\n".to_vec())) - .mount(&server) - .await; - - let cfg = make_config("alpha"); - install_internal_from_base(None, &cfg, &server.uri()) - .await - .unwrap(); - - assert!( - test_home() - .join("downloads") - .join(format!("grok-0.2.7-{platform}")) - .exists(), - "alpha user should get the newer stable" - ); -} - -// ───────────────────────────────────────────────────────────────────────────── -// Scenario matrix: check_update_status across installer × version direction -// -// Uses check_update_status end-to-end with fake npm/gh binaries. -// The internal (GCS) path can't be end-to-end tested via check_update_status -// (hardcoded URLs), so its update-detection logic is covered by the -// needs_update unit tests and the install tests above. -// ───────────────────────────────────────────────────────────────────────────── - -fn setup_npm(current_version: &str) -> FakeBinGuard { - let _ = test_home(); - reset_home(); - set_test_version(current_version); - // SAFETY: serial_test ensures no race; reset_home clears this between tests. - unsafe { std::env::set_var("KIGI_INSTALLER", "npm") }; - FakeBinGuard::install_npm() -} - -fn setup_gh(current_version: &str) -> FakeBinGuard { - let _ = test_home(); - reset_home(); - set_test_version(current_version); - // SAFETY: serial_test ensures no race; reset_home clears this between tests. - unsafe { std::env::set_var("KIGI_INSTALLER", "gh-release") }; - FakeBinGuard::install_gh() -} - -// ── npm: never downgrades ── - -#[tokio::test] -#[serial] -async fn npm_upgrade_reports_update() { - let g = setup_npm("0.2.5"); - g.set_stdout("\"0.2.7\""); - - let status = check_update_status(&make_config("stable")).await; - assert!(status.update_available); - assert_eq!(status.latest_version.as_deref(), Some("0.2.7")); -} - -#[tokio::test] -#[serial] -async fn npm_same_version_no_update() { - let g = setup_npm("0.2.7"); - g.set_stdout("\"0.2.7\""); - - let status = check_update_status(&make_config("stable")).await; - assert!(!status.update_available); -} - -#[tokio::test] -#[serial] -async fn npm_rollback_does_not_report_update() { - // Stable pointer rolled back 0.2.7 → 0.2.5. npm user on 0.2.7 must NOT - // see an update — stale registries make this path unsafe. - let g = setup_npm("0.2.7"); - g.set_stdout("\"0.2.5\""); - - let status = check_update_status(&make_config("stable")).await; - assert!( - !status.update_available, - "npm must never report a downgrade: current={} latest={:?}", - status.current_version, status.latest_version - ); -} - -#[tokio::test] -#[serial] -async fn npm_drastically_old_registry_does_not_report_update() { - // Corporate registry returns ancient version. - let g = setup_npm("0.2.7"); - g.set_stdout("\"0.1.4\""); - - let status = check_update_status(&make_config("stable")).await; - assert!(!status.update_available); -} - -// ── gh-release: --check is upgrade-only; rollback handled by auto-install ── - -#[tokio::test] -#[serial] -async fn gh_release_upgrade_reports_update() { - let g = setup_gh("0.2.5"); - g.set_stable_only_stdout("v0.2.7\n"); - - let status = check_update_status(&make_config("stable")).await; - assert!(status.update_available); - assert_eq!(status.latest_version.as_deref(), Some("0.2.7")); -} - -#[tokio::test] -#[serial] -async fn gh_release_rollback_not_advertised_by_check() { - // `update --check` advertises upgrades only; a rollback still converges via - // the auto-install path (covered by the internal_install_* tests), not here. - let g = setup_gh("0.2.7"); - g.set_stable_only_stdout("v0.2.5\n"); - - let status = check_update_status(&make_config("stable")).await; - assert!( - !status.update_available, - "gh-release rollback must not be advertised by --check: current={} latest={:?}", - status.current_version, status.latest_version - ); - assert_eq!(status.latest_version.as_deref(), Some("0.2.5")); -} - -#[tokio::test] -#[serial] -async fn gh_release_same_version_no_update() { - let g = setup_gh("0.2.7"); - g.set_stable_only_stdout("v0.2.7\n"); - - let status = check_update_status(&make_config("stable")).await; - assert!(!status.update_available); -} - -// ───────────────────────────────────────────────────────────────────────────── -// auto_update_target: the leader/background auto-install decision -// -// Unlike the upgrade-only `check_update_status` report, this is the -// downgrade-aware convergence decision. It gates on the installer, so -// authoritative installers (gh-release/internal) follow a rolled-back pointer -// while npm never downgrades. `fetch_latest_version` keeps these hermetic. -// ───────────────────────────────────────────────────────────────────────────── - -#[tokio::test] -#[serial] -async fn auto_update_target_gh_release_rollback_returns_older() { - let g = setup_gh("0.2.26"); - g.set_stable_only_stdout("v0.2.22\n"); - - assert_eq!( - auto_update_target(&make_config("stable")).await, - Some(("gh-release", "0.2.22".to_string())), - "authoritative installer must converge down on a rolled-back pointer" - ); -} - -#[tokio::test] -#[serial] -async fn auto_update_target_gh_release_upgrade_returns_newer() { - let g = setup_gh("0.2.5"); - g.set_stable_only_stdout("v0.2.7\n"); - - assert_eq!( - auto_update_target(&make_config("stable")).await, - Some(("gh-release", "0.2.7".to_string())) - ); -} - -#[tokio::test] -#[serial] -async fn auto_update_target_gh_release_same_version_returns_none() { - let g = setup_gh("0.2.7"); - g.set_stable_only_stdout("v0.2.7\n"); - - assert_eq!(auto_update_target(&make_config("stable")).await, None); -} - -#[tokio::test] -#[serial] -async fn auto_update_target_npm_rollback_returns_none() { - // npm registries can serve stale versions — never downgrade npm installs. - let g = setup_npm("0.2.26"); - g.set_stdout("\"0.2.22\""); - - assert_eq!( - auto_update_target(&make_config("stable")).await, - None, - "npm must never be downgraded even when the registry reports an older version" - ); -} - -// ───────────────────────────────────────────────────────────────────────────── -// Disk-aware convergence: ensure_latest_on_disk + installed_on_disk_version -// -// Concurrent updaters (TUI background download, leader hourly checker, -// explicit `grok update`) must decide staleness from the on-disk install, not -// their own compiled-in version — a binary another process already installed -// is never downloaded a second time, but a stale running process still gets -// the relaunch signal. -// ───────────────────────────────────────────────────────────────────────────── - -/// Lay down a managed-install layout in the test KIGI_SHARE_DIR: -/// `bin/{kigi,grok,agent} -> ../downloads/grok--` (what -/// `install_internal_from_base` produces; `kigi` is the canonical link the -/// disk-version probe reads, `grok` the legacy compat link). -fn fake_managed_install(version: &str) { - let home = test_home(); - let downloads = home.join("downloads"); - let bin = home.join("bin"); - std::fs::create_dir_all(&downloads).unwrap(); - std::fs::create_dir_all(&bin).unwrap(); - let name = format!("grok-{version}-{}", host_platform()); - std::fs::write(downloads.join(&name), b"#!/bin/sh\nexit 0\n").unwrap(); - for link in ["kigi", "grok", "agent"] { - std::os::unix::fs::symlink( - std::path::Path::new("../downloads").join(&name), - bin.join(link), - ) - .unwrap(); - } -} - -#[tokio::test] -#[serial] -async fn installed_on_disk_version_reads_symlink_target() { - let _ = test_home(); - reset_home(); - assert_eq!(installed_on_disk_version(), None, "no install yet"); - - fake_managed_install("0.2.7"); - assert_eq!(installed_on_disk_version().as_deref(), Some("0.2.7")); -} - -#[tokio::test] -#[serial] -async fn ensure_latest_skips_download_when_disk_current_but_still_relaunches() { - // Running 0.2.5, pointer 0.2.7, disk already at 0.2.7 (another process - // downloaded it): no download, but the stale running process must relaunch. - let g = setup_gh("0.2.5"); - g.set_stable_only_stdout("v0.2.7\n"); - fake_managed_install("0.2.7"); - - let outcome = ensure_latest_on_disk(&make_config("stable")).await.unwrap(); - assert_eq!(outcome.installed, None, "must not re-download"); - assert!(outcome.relaunch_needed, "running 0.2.5 < disk 0.2.7"); - assert!( - !g.args_log().iter().any(|l| l.contains("release download")), - "no gh download invocation expected, got: {:?}", - g.args_log() - ); -} - -#[tokio::test] -#[serial] -async fn ensure_latest_noop_when_running_and_disk_current() { - let g = setup_gh("0.2.7"); - g.set_stable_only_stdout("v0.2.7\n"); - fake_managed_install("0.2.7"); - - let outcome = ensure_latest_on_disk(&make_config("stable")).await.unwrap(); - assert_eq!(outcome.installed, None); - assert!(!outcome.relaunch_needed); -} - -#[tokio::test] -#[serial] -async fn ensure_latest_relaunches_onto_rolled_back_disk() { - // Pointer rolled back to 0.2.22 and the disk already converged; a running - // 0.2.26 leader must relaunch onto the older binary (gh-release is an - // authoritative installer → downgrades allowed). - let g = setup_gh("0.2.26"); - g.set_stable_only_stdout("v0.2.22\n"); - fake_managed_install("0.2.22"); - - let outcome = ensure_latest_on_disk(&make_config("stable")).await.unwrap(); - assert_eq!(outcome.installed, None, "disk already at pointer"); - assert!(outcome.relaunch_needed, "downgrade relaunch expected"); -} - -// ───────────────────────────────────────────────────────────────────────────── -// Pointer-flip timing scenarios -// -// These test the race between a user opening grok (which caches the version) -// and a pointer flip happening. The 30-min TTL means the user won't see the -// new pointer until the cache expires, but once it does, the correct behavior -// must kick in. -// ───────────────────────────────────────────────────────────────────────────── - -#[tokio::test] -#[serial] -async fn npm_user_upgraded_then_stable_rolled_back_stays_on_newer() { - // User ran `grok update` and got 0.2.7. Then stable was rolled back to - // 0.2.5. Next check_update_status sees 0.2.5 from npm. npm installer - // must NOT report a downgrade. - let g = setup_npm("0.2.7"); - g.set_stdout("\"0.2.5\""); - - let status = check_update_status(&make_config("stable")).await; - assert!(!status.update_available); - assert_eq!(status.latest_version.as_deref(), Some("0.2.5")); -} - -#[tokio::test] -#[serial] -async fn gh_release_user_ahead_of_pointer_check_reports_no_update() { - // User manually installed 0.2.26 (ahead of the stable pointer 0.2.22); - // `update --check` must not present the older pointer as a new version. - let g = setup_gh("0.2.26"); - g.set_stable_only_stdout("v0.2.22\n"); - - let status = check_update_status(&make_config("stable")).await; - assert!( - !status.update_available, - "ahead-of-pointer must not be advertised as an update: current={} latest={:?}", - status.current_version, status.latest_version - ); - assert_eq!(status.latest_version.as_deref(), Some("0.2.22")); -} - -#[tokio::test] -#[serial] -async fn npm_alpha_user_upgrade_after_stable_surpasses_alpha() { - // Alpha user on 0.2.6-alpha.2. Stable ships 0.2.7. npm returns 0.2.7 - // for the @latest tag. User should upgrade. - let g = setup_npm("0.2.6-alpha.2"); - g.set_stdout("\"0.2.7\""); - - let status = check_update_status(&make_config("stable")).await; - // Pre-release current on stable channel forces install. - assert!( - status.update_available, - "alpha user should upgrade to stable when stable surpasses alpha" - ); -} - -// ───────────────────────────────────────────────────────────────────────────── -// Double-rollback scenario -// ───────────────────────────────────────────────────────────────────────────── - -#[tokio::test] -#[serial] -async fn internal_install_double_rollback() { - // Ship 0.2.7 → rollback to 0.2.5 → rollback further to 0.2.3. - // The installer must handle multiple sequential downgrades. - let _ = test_home(); - reset_home(); - let platform = host_platform(); - - for version in ["0.2.7", "0.2.5", "0.2.3"] { - let server = mount_gcs_with_channels(version, None, version, &platform).await; - let cfg = make_config("stable"); - install_internal_from_base(Some(version), &cfg, &server.uri()) - .await - .unwrap(); - - let target = std::fs::read_link(test_home().join("bin").join("grok")).unwrap(); - assert!( - target.to_string_lossy().contains(version), - "symlink must point to {version} after install: {target:?}" - ); - } -} diff --git a/crates/codegen/kigi-update/tests/test_install_internal.rs b/crates/codegen/kigi-update/tests/test_install_internal.rs index 784acc0..1f2004f 100644 --- a/crates/codegen/kigi-update/tests/test_install_internal.rs +++ b/crates/codegen/kigi-update/tests/test_install_internal.rs @@ -1,10 +1,10 @@ -//! End-to-end tests for `install_internal` — the GCS-bucket installer used -//! when `installer = "internal"` is configured. +//! End-to-end tests for the internal installer — GitHub Releases via a +//! wiremock server shaped like the real API (PRD F8). //! -//! Wires together a wiremock-mocked GCS bucket + an isolated `KIGI_SHARE_DIR` +//! Wires together a mocked `releases/…` API + an isolated `KIGI_SHARE_DIR` //! tempdir so we can verify the full install pipeline: -//! fetch version → download grok binary → chmod → atomic symlink → -//! cleanup_old_downloads → persist installer config. +//! resolve release → download archive → verify SHA-256 → extract → +//! smoke-test → atomic symlink → cleanup_old_downloads → persist config. //! //! The function reads `kigi_home()` (a process-wide `OnceLock`), so all //! tests in this binary share a single `KIGI_SHARE_DIR` and run serially via @@ -18,58 +18,17 @@ use serial_test::serial; use wiremock::matchers::{method, path}; use wiremock::{Mock, MockServer, ResponseTemplate}; -use common::{reset_home, test_home}; -use kigi_update::UpdateConfig; -use kigi_update::auto_update::{install_internal_from_base, install_internal_from_bases}; +use common::{ + archive_name, host_platform, make_release_archive, make_update_config, mount_latest, + mount_release, release_json, reset_home, sha256_hex, small_good_artifact, test_home, +}; +use kigi_update::auto_update::install_internal_from_base; +use kigi_update::version::installed_on_disk_version; -fn host_platform() -> String { - let os = if cfg!(target_os = "macos") { - "macos" - } else if cfg!(target_os = "linux") { - "linux" - } else { - panic!("unsupported test platform"); - }; - let arch = if cfg!(target_arch = "x86_64") { - "x86_64" - } else if cfg!(target_arch = "aarch64") { - "aarch64" - } else { - panic!("unsupported test arch"); - }; - format!("{os}-{arch}") -} - -fn make_config(channel: &str) -> UpdateConfig { - UpdateConfig { - proxy_base_url: "http://test.invalid/v1".to_string(), - auth_scope: "test".to_string(), - deployment_key: None, - alpha_test_key: None, - channel: channel.to_string(), - npm_registry: None, - } -} - -/// Mount GCS endpoints for a given version. Returns the `MockServer`. -async fn mount_gcs(version: &str, platform: &str) -> MockServer { - let server = MockServer::start().await; - - // Channel pointer: stable returns this version. - Mock::given(method("GET")) - .and(path("/stable")) - .respond_with(ResponseTemplate::new(200).set_body_string(version)) - .mount(&server) - .await; - - // Main grok binary download. - Mock::given(method("GET")) - .and(path(format!("/grok-{version}-{platform}"))) - .respond_with(ResponseTemplate::new(200).set_body_bytes(b"#!/bin/sh\nexit 0\n".to_vec())) - .mount(&server) - .await; - - server +/// Base URL for the updater: `{server}/releases`, mirroring the production +/// `https://api.github.com/repos/{owner}/{repo}/releases`. +fn base(server: &MockServer) -> String { + format!("{}/releases", server.uri()) } // ───────────────────────────────────────────────────────────────────────────── @@ -78,224 +37,82 @@ async fn mount_gcs(version: &str, platform: &str) -> MockServer { #[tokio::test] #[serial] -async fn install_internal_pinned_version_writes_binary_and_symlink() { +async fn install_pinned_version_writes_binary_and_symlink() { let _ = test_home(); reset_home(); let platform = host_platform(); - let server = mount_gcs("0.1.181", &platform).await; - let cfg = make_config("stable"); + let server = MockServer::start().await; + mount_release(&server, "0.1.181", &small_good_artifact()).await; + let cfg = make_update_config("stable"); - install_internal_from_base(Some("0.1.181"), &cfg, &server.uri()) + install_internal_from_base(Some("0.1.181"), &cfg, &base(&server)) .await .unwrap(); let home = test_home(); let downloaded = home .join("downloads") - .join(format!("grok-0.1.181-{platform}")); - assert!(downloaded.exists(), "binary downloaded: {downloaded:?}"); - assert_eq!(std::fs::read(&downloaded).unwrap(), b"#!/bin/sh\nexit 0\n"); + .join(format!("kigi-0.1.181-{platform}")); + assert!(downloaded.exists(), "binary extracted: {downloaded:?}"); + assert_eq!(std::fs::read(&downloaded).unwrap(), small_good_artifact()); - let symlink = home.join("bin").join("grok"); - assert!(symlink.is_symlink(), "grok symlink created"); + let symlink = home.join("bin").join("kigi"); + assert!(symlink.is_symlink(), "kigi symlink created"); let target = std::fs::read_link(&symlink).unwrap(); assert_eq!( target.file_name().unwrap(), - format!("grok-0.1.181-{platform}").as_str() + format!("kigi-0.1.181-{platform}").as_str() ); - // `grok` and `agent` move together — see `swap_managed_bin_links`. - let agent_link = home.join("bin").join("agent"); - assert!(agent_link.is_symlink(), "agent symlink created"); - let agent_target = std::fs::read_link(&agent_link).unwrap(); - assert_eq!(agent_target, target, "agent and grok point at same target"); -} - -/// Regression: pre-existing `agent` symlink from a prior install must be -/// swapped to the new version, not left stale (the original bug). -#[tokio::test] -#[serial] -async fn install_internal_updates_stale_agent_symlink_to_new_version() { - let _ = test_home(); - reset_home(); - let platform = host_platform(); - let server = mount_gcs("0.1.181", &platform).await; - let cfg = make_config("stable"); - - // Prior install: both links point at an older versioned binary. - let home = test_home(); - let bin_dir = home.join("bin"); - let download_dir = home.join("downloads"); - std::fs::create_dir_all(&bin_dir).unwrap(); - std::fs::create_dir_all(&download_dir).unwrap(); - let old_binary = download_dir.join(format!("grok-0.1.180-{platform}")); - std::fs::write(&old_binary, b"#!/bin/sh\nexit 0\n").unwrap(); - let rel_old = std::path::Path::new("..") - .join("downloads") - .join(format!("grok-0.1.180-{platform}")); - std::os::unix::fs::symlink(&rel_old, bin_dir.join("grok")).unwrap(); - std::os::unix::fs::symlink(&rel_old, bin_dir.join("agent")).unwrap(); - - install_internal_from_base(Some("0.1.181"), &cfg, &server.uri()) - .await - .unwrap(); - - let agent_link = bin_dir.join("agent"); - let agent_target = std::fs::read_link(&agent_link).unwrap(); - assert_eq!( - agent_target.file_name().unwrap(), - format!("grok-0.1.181-{platform}").as_str(), - "agent symlink must swap to the new version, not stay on old" - ); -} - -/// Rollback regression: if `agent` swap fails after `grok` succeeded, -/// `grok` must roll back to its prior target (all-or-nothing). -#[tokio::test] -#[serial] -async fn install_internal_rolls_back_grok_when_agent_swap_fails() { - let _ = test_home(); - reset_home(); - let platform = host_platform(); - let server = mount_gcs("0.1.181", &platform).await; - let cfg = make_config("stable"); - - let home = test_home(); - let bin_dir = home.join("bin"); - let download_dir = home.join("downloads"); - std::fs::create_dir_all(&bin_dir).unwrap(); - std::fs::create_dir_all(&download_dir).unwrap(); - let old_binary = download_dir.join(format!("grok-0.1.180-{platform}")); - std::fs::write(&old_binary, b"#!/bin/sh\nexit 0\n").unwrap(); - let rel_old = std::path::Path::new("..") - .join("downloads") - .join(format!("grok-0.1.180-{platform}")); - std::os::unix::fs::symlink(&rel_old, bin_dir.join("grok")).unwrap(); - - // Sabotage the agent swap: non-empty directory → rename fails with EISDIR. - let agent_dir = bin_dir.join("agent"); - std::fs::create_dir(&agent_dir).unwrap(); - std::fs::write(agent_dir.join("blocker"), b"x").unwrap(); - - let err = install_internal_from_base(Some("0.1.181"), &cfg, &server.uri()) - .await - .expect_err("agent swap must fail when target is a non-empty dir"); - drop(err); - - // grok must be rolled back to the prior version. - let grok_target = std::fs::read_link(bin_dir.join("grok")).unwrap(); - assert_eq!( - grok_target.file_name().unwrap(), - format!("grok-0.1.180-{platform}").as_str(), - "grok must be rolled back when agent swap fails" - ); -} - -/// Absent-prior rollback regression: fresh install (no prior `grok` / -/// `agent`), sabotaged `agent` swap must *remove* the just-created `grok` -/// link so we don't leave it on the new binary while `agent` is absent. -#[tokio::test] -#[serial] -async fn install_internal_rollback_removes_absent_prior_grok_link() { - let _ = test_home(); - reset_home(); - let platform = host_platform(); - let server = mount_gcs("0.1.181", &platform).await; - let cfg = make_config("stable"); - - let home = test_home(); - let bin_dir = home.join("bin"); - std::fs::create_dir_all(&bin_dir).unwrap(); - - // No prior `grok`. Sabotage `agent` swap: non-empty directory → EISDIR. - let agent_dir = bin_dir.join("agent"); - std::fs::create_dir(&agent_dir).unwrap(); - std::fs::write(agent_dir.join("blocker"), b"x").unwrap(); + // The archive must not linger after extraction. assert!( - !bin_dir.join("grok").exists() && !bin_dir.join("grok").is_symlink(), - "precondition: grok must not exist before install", + !home + .join("downloads") + .join(archive_name("0.1.181")) + .exists(), + "archive should be removed after extraction" ); - let err = install_internal_from_base(Some("0.1.181"), &cfg, &server.uri()) - .await - .expect_err("agent swap must fail when target is a non-empty dir"); - drop(err); - - let grok_path = bin_dir.join("grok"); - assert!( - !grok_path.is_symlink() && !grok_path.exists(), - "grok must be removed on rollback when there was no prior link", - ); + // The disk-version probe reads the new install back. + assert_eq!(installed_on_disk_version().as_deref(), Some("0.1.181")); } #[tokio::test] #[serial] -async fn install_internal_chmods_binary_executable() { +async fn install_chmods_binary_executable() { use std::os::unix::fs::PermissionsExt; let _ = test_home(); reset_home(); let platform = host_platform(); - let server = mount_gcs("0.1.181", &platform).await; - let cfg = make_config("stable"); + let server = MockServer::start().await; + mount_release(&server, "0.1.181", &small_good_artifact()).await; + let cfg = make_update_config("stable"); - install_internal_from_base(Some("0.1.181"), &cfg, &server.uri()) + install_internal_from_base(Some("0.1.181"), &cfg, &base(&server)) .await .unwrap(); - let home = test_home(); - let binary = home + let binary = test_home() .join("downloads") - .join(format!("grok-0.1.181-{platform}")); + .join(format!("kigi-0.1.181-{platform}")); let mode = std::fs::metadata(&binary).unwrap().permissions().mode(); assert!(mode & 0o111 != 0, "binary must be executable, got {mode:o}"); } #[tokio::test] #[serial] -async fn install_internal_cleans_up_stale_pager_symlink() { - // Old installations shipped a separate grok-pager binary. Verify the - // update removes the stale symlink from ~/.kigi/bin/. +async fn install_persists_installer_config() { let _ = test_home(); reset_home(); - let platform = host_platform(); - let server = mount_gcs("0.1.181", &platform).await; - let cfg = make_config("stable"); + let server = MockServer::start().await; + mount_release(&server, "0.1.181", &small_good_artifact()).await; + let cfg = make_update_config("stable"); - let home = test_home(); - let bin_dir = home.join("bin"); - std::fs::create_dir_all(&bin_dir).unwrap(); - let pager_link = bin_dir.join("grok-pager"); - std::os::unix::fs::symlink("/tmp/fake-old-pager", &pager_link).unwrap(); - assert!( - pager_link.is_symlink(), - "precondition: stale symlink exists" - ); - - install_internal_from_base(Some("0.1.181"), &cfg, &server.uri()) + install_internal_from_base(Some("0.1.181"), &cfg, &base(&server)) .await .unwrap(); - assert!( - !pager_link.exists() && !pager_link.is_symlink(), - "stale grok-pager symlink should be removed" - ); -} - -#[tokio::test] -#[serial] -async fn install_internal_persists_installer_config() { - let _ = test_home(); - reset_home(); - let platform = host_platform(); - let server = mount_gcs("0.1.181", &platform).await; - let cfg = make_config("stable"); - - install_internal_from_base(Some("0.1.181"), &cfg, &server.uri()) - .await - .unwrap(); - - let home = test_home(); - let cfg_body = std::fs::read_to_string(home.join("config.toml")).unwrap(); + let cfg_body = std::fs::read_to_string(test_home().join("config.toml")).unwrap(); assert!( cfg_body.contains("installer = \"internal\""), "config should set installer = internal: {cfg_body}" @@ -304,91 +121,132 @@ async fn install_internal_persists_installer_config() { #[tokio::test] #[serial] -async fn install_internal_resolves_version_via_channel_pointer_when_no_target() { +async fn install_resolves_version_via_latest_when_no_target() { let _ = test_home(); reset_home(); let platform = host_platform(); - let server = mount_gcs("0.1.181", &platform).await; - let cfg = make_config("stable"); + let server = MockServer::start().await; + mount_release(&server, "0.1.181", &small_good_artifact()).await; + mount_latest(&server, "0.1.181").await; + let cfg = make_update_config("stable"); - // No pinned version → must fetch /stable pointer to resolve. - install_internal_from_base(None, &cfg, &server.uri()) + // No pinned version → must resolve GET {base}/latest. + install_internal_from_base(None, &cfg, &base(&server)) .await .unwrap(); - let home = test_home(); assert!( - home.join("downloads") - .join(format!("grok-0.1.181-{platform}")) + test_home() + .join("downloads") + .join(format!("kigi-0.1.181-{platform}")) .exists(), - "binary at version from /stable pointer" + "binary at version from /releases/latest" ); } #[tokio::test] #[serial] -async fn install_internal_alpha_channel_resolves_max_of_alpha_and_stable() { +async fn install_alpha_channel_resolves_semver_max_from_release_list() { let _ = test_home(); reset_home(); let platform = host_platform(); let server = MockServer::start().await; - // Stable points to 0.1.181, alpha points to 0.1.180-alpha.5 — stable wins. + // List endpoint (newest-published first) carries a pre-release AND a + // semver-higher stable — the alpha channel must pick the stable (the + // max), never get stuck on the pre-release. + let list = serde_json::json!([ + release_json(&server.uri(), "0.1.180-alpha.5"), + release_json(&server.uri(), "0.1.181"), + ]); Mock::given(method("GET")) - .and(path("/stable")) - .respond_with(ResponseTemplate::new(200).set_body_string("0.1.181")) - .mount(&server) - .await; - Mock::given(method("GET")) - .and(path("/alpha")) - .respond_with(ResponseTemplate::new(200).set_body_string("0.1.180-alpha.5")) - .mount(&server) - .await; - Mock::given(method("GET")) - .and(path(format!("/grok-0.1.181-{platform}"))) - .respond_with(ResponseTemplate::new(200).set_body_bytes(b"#!/bin/sh\nexit 0\n".to_vec())) + .and(path("/releases")) + .respond_with(ResponseTemplate::new(200).set_body_json(list)) .mount(&server) .await; + mount_release(&server, "0.1.181", &small_good_artifact()).await; - let cfg = make_config("alpha"); - install_internal_from_base(None, &cfg, &server.uri()) + let cfg = make_update_config("alpha"); + install_internal_from_base(None, &cfg, &base(&server)) .await .unwrap(); - let home = test_home(); assert!( - home.join("downloads") - .join(format!("grok-0.1.181-{platform}")) + test_home() + .join("downloads") + .join(format!("kigi-0.1.181-{platform}")) .exists() ); } +#[tokio::test] +#[serial] +async fn install_removes_legacy_grok_links() { + // Pre-rewrite installs left grok/agent/grok-pager links in bin/; the + // installer must retire them. + let _ = test_home(); + reset_home(); + let server = MockServer::start().await; + mount_release(&server, "0.1.181", &small_good_artifact()).await; + let cfg = make_update_config("stable"); + + let bin_dir = test_home().join("bin"); + std::fs::create_dir_all(&bin_dir).unwrap(); + for legacy in ["grok", "agent", "grok-pager"] { + std::os::unix::fs::symlink("/tmp/fake-old-target", bin_dir.join(legacy)).unwrap(); + } + + install_internal_from_base(Some("0.1.181"), &cfg, &base(&server)) + .await + .unwrap(); + + for legacy in ["grok", "agent", "grok-pager"] { + let link = bin_dir.join(legacy); + assert!( + !link.exists() && !link.is_symlink(), + "legacy {legacy} link should be removed" + ); + } + assert!(bin_dir.join("kigi").is_symlink(), "kigi link installed"); +} + // ───────────────────────────────────────────────────────────────────────────── // Failure paths // ───────────────────────────────────────────────────────────────────────────── #[tokio::test] #[serial] -async fn install_internal_fails_on_grok_binary_404() { +async fn install_fails_on_archive_404() { let _ = test_home(); reset_home(); - let platform = host_platform(); let server = MockServer::start().await; + // Release JSON + SHA256SUMS exist, but the archive itself 404s. + let archive = make_release_archive(&small_good_artifact()); Mock::given(method("GET")) - .and(path("/stable")) - .respond_with(ResponseTemplate::new(200).set_body_string("0.1.181")) + .and(path("/releases/tags/v0.1.181")) + .respond_with( + ResponseTemplate::new(200).set_body_json(release_json(&server.uri(), "0.1.181")), + ) .mount(&server) .await; - // Main binary returns 404 — must propagate as error. Mock::given(method("GET")) - .and(path(format!("/grok-0.1.181-{platform}"))) + .and(path("/dl/v0.1.181/SHA256SUMS")) + .respond_with(ResponseTemplate::new(200).set_body_string(format!( + "{} {}\n", + sha256_hex(&archive), + archive_name("0.1.181") + ))) + .mount(&server) + .await; + Mock::given(method("GET")) + .and(path(format!("/dl/v0.1.181/{}", archive_name("0.1.181")))) .respond_with(ResponseTemplate::new(404)) .mount(&server) .await; - let cfg = make_config("stable"); - let err = install_internal_from_base(Some("0.1.181"), &cfg, &server.uri()) + let cfg = make_update_config("stable"); + let err = install_internal_from_base(Some("0.1.181"), &cfg, &base(&server)) .await .unwrap_err(); let msg = format!("{err:#}"); @@ -397,61 +255,274 @@ async fn install_internal_fails_on_grok_binary_404() { #[tokio::test] #[serial] -async fn install_internal_rejects_invalid_pinned_version() { +async fn install_fails_on_missing_release() { let _ = test_home(); reset_home(); let server = MockServer::start().await; - let cfg = make_config("stable"); + Mock::given(method("GET")) + .and(path("/releases/tags/v0.9.9")) + .respond_with(ResponseTemplate::new(404).set_body_string(r#"{"message":"Not Found"}"#)) + .mount(&server) + .await; - let err = install_internal_from_base(Some("not-a-version"), &cfg, &server.uri()) + let cfg = make_update_config("stable"); + let err = install_internal_from_base(Some("0.9.9"), &cfg, &base(&server)) + .await + .unwrap_err(); + let msg = format!("{err:#}"); + assert!(msg.contains("404"), "msg: {msg}"); +} + +#[tokio::test] +#[serial] +async fn install_rejects_invalid_pinned_version() { + let _ = test_home(); + reset_home(); + let server = MockServer::start().await; + let cfg = make_update_config("stable"); + + let err = install_internal_from_base(Some("not-a-version"), &cfg, &base(&server)) .await .unwrap_err(); let msg = format!("{err:#}"); assert!(msg.contains("invalid version format"), "msg: {msg}"); } +#[tokio::test] +#[serial] +async fn install_rejects_checksum_mismatch_and_leaves_no_binary() { + let _ = test_home(); + reset_home(); + let platform = host_platform(); + let server = MockServer::start().await; + + // SHA256SUMS lists a hash that does NOT match the served archive. + Mock::given(method("GET")) + .and(path("/releases/tags/v0.1.181")) + .respond_with( + ResponseTemplate::new(200).set_body_json(release_json(&server.uri(), "0.1.181")), + ) + .mount(&server) + .await; + Mock::given(method("GET")) + .and(path("/dl/v0.1.181/SHA256SUMS")) + .respond_with(ResponseTemplate::new(200).set_body_string(format!( + "{} {}\n", + "0".repeat(64), + archive_name("0.1.181") + ))) + .mount(&server) + .await; + Mock::given(method("GET")) + .and(path(format!("/dl/v0.1.181/{}", archive_name("0.1.181")))) + .respond_with( + ResponseTemplate::new(200).set_body_bytes(make_release_archive(&small_good_artifact())), + ) + .mount(&server) + .await; + + let cfg = make_update_config("stable"); + let err = install_internal_from_base(Some("0.1.181"), &cfg, &base(&server)) + .await + .unwrap_err(); + let msg = format!("{err:#}"); + assert!(msg.contains("SHA256 mismatch"), "msg: {msg}"); + + let home = test_home(); + assert!( + !home + .join("downloads") + .join(format!("kigi-0.1.181-{platform}")) + .exists(), + "no binary may be published from a checksum-failed archive" + ); + assert!( + !home + .join("downloads") + .join(archive_name("0.1.181")) + .exists(), + "the rejected archive must be deleted" + ); + assert!( + !home.join("bin").join("kigi").is_symlink(), + "no symlink may be activated" + ); +} + +#[tokio::test] +#[serial] +async fn install_fails_when_sha256sums_asset_missing() { + let _ = test_home(); + reset_home(); + let server = MockServer::start().await; + + // Release JSON without a SHA256SUMS asset — must fail up front, before + // downloading the archive. + let name = archive_name("0.1.181"); + let json = serde_json::json!({ + "tag_name": "v0.1.181", + "draft": false, + "prerelease": false, + "assets": [ + { "name": name, "browser_download_url": format!("{}/dl/v0.1.181/{name}", server.uri()) }, + ], + }); + Mock::given(method("GET")) + .and(path("/releases/tags/v0.1.181")) + .respond_with(ResponseTemplate::new(200).set_body_json(json)) + .mount(&server) + .await; + // The archive endpoint must never be contacted. + Mock::given(method("GET")) + .and(path(format!("/dl/v0.1.181/{name}"))) + .respond_with(ResponseTemplate::new(200)) + .expect(0) + .mount(&server) + .await; + + let cfg = make_update_config("stable"); + let err = install_internal_from_base(Some("0.1.181"), &cfg, &base(&server)) + .await + .unwrap_err(); + let msg = format!("{err:#}"); + assert!(msg.contains("SHA256SUMS"), "msg: {msg}"); +} + +#[tokio::test] +#[serial] +async fn install_smoke_test_rejects_bad_binary_with_valid_checksum() { + let _ = test_home(); + reset_home(); + let platform = host_platform(); + let server = MockServer::start().await; + + // Archive checksums fine but its binary exits 1 — only the smoke test + // can catch this, and it must leave no active install behind. + mount_release(&server, "0.1.181", b"#!/bin/sh\nexit 1\n").await; + + let cfg = make_update_config("stable"); + let err = install_internal_from_base(Some("0.1.181"), &cfg, &base(&server)) + .await + .unwrap_err(); + let msg = format!("{err:#}"); + assert!(msg.contains("failed to run"), "msg: {msg}"); + + let home = test_home(); + assert!( + !home + .join("downloads") + .join(format!("kigi-0.1.181-{platform}")) + .exists(), + "smoke-test-failed binary must be deleted" + ); + assert!( + !home.join("bin").join("kigi").is_symlink(), + "no symlink may be activated" + ); +} + +#[tokio::test] +#[serial] +async fn install_swap_failure_leaves_prior_install_active() { + // Sabotage activation: bin/kigi as a non-empty directory makes the + // symlink rename fail. The download itself lands, but the prior state + // of bin/ must be untouched (nothing half-activated). + let _ = test_home(); + reset_home(); + let server = MockServer::start().await; + mount_release(&server, "0.1.181", &small_good_artifact()).await; + let cfg = make_update_config("stable"); + + let bin_dir = test_home().join("bin"); + let kigi_dir = bin_dir.join("kigi"); + std::fs::create_dir_all(&kigi_dir).unwrap(); + std::fs::write(kigi_dir.join("blocker"), b"x").unwrap(); + + let err = install_internal_from_base(Some("0.1.181"), &cfg, &base(&server)) + .await + .expect_err("swap must fail when the link path is a non-empty dir"); + let msg = format!("{err:#}"); + assert!(msg.contains("swapping managed bin link"), "msg: {msg}"); + + assert!( + kigi_dir.is_dir() && kigi_dir.join("blocker").exists(), + "failed swap must not clobber the existing path" + ); +} + // ───────────────────────────────────────────────────────────────────────────── -// Cleanup integration: install v1, then v2, verify N-1 retention. +// Rollback semantics: pinned installs move DOWN as well as up (the release +// channel is authoritative for the internal installer). // ───────────────────────────────────────────────────────────────────────────── #[tokio::test] #[serial] -async fn install_internal_cleans_up_old_versions_keeping_n_minus_one() { +async fn install_rollback_then_upgrade_sequence() { let _ = test_home(); reset_home(); let platform = host_platform(); + let server = MockServer::start().await; + for v in ["0.2.5", "0.2.7"] { + mount_release(&server, v, &small_good_artifact()).await; + } + let cfg = make_update_config("stable"); + + // Up, back down (rollback), then up again. + for version in ["0.2.7", "0.2.5", "0.2.7"] { + install_internal_from_base(Some(version), &cfg, &base(&server)) + .await + .unwrap(); + let target = std::fs::read_link(test_home().join("bin").join("kigi")).unwrap(); + assert_eq!( + target.file_name().unwrap(), + format!("kigi-{version}-{platform}").as_str(), + "active binary must follow the pinned install" + ); + assert_eq!(installed_on_disk_version().as_deref(), Some(version)); + } +} + +// ───────────────────────────────────────────────────────────────────────────── +// Cleanup integration: install v1..v3, verify N-1 retention. +// ───────────────────────────────────────────────────────────────────────────── + +#[tokio::test] +#[serial] +async fn install_cleans_up_old_versions_keeping_n_minus_one() { + let _ = test_home(); + reset_home(); + let platform = host_platform(); + let server = MockServer::start().await; + for v in ["0.1.179", "0.1.180", "0.1.181"] { + mount_release(&server, v, &small_good_artifact()).await; + } + let cfg = make_update_config("stable"); - // Install v1, v2, v3 sequentially. After v3, only v3 (current) and v2 - // (N-1) should remain on disk; v1 should be deleted. for v in ["0.1.179", "0.1.180", "0.1.181"] { // Age earlier installs: cleanup never deletes freshly-written // binaries (concurrent-racer protection), so retention assertions // need the previous installs to look like old leftovers. common::backdate_downloads(); - let server = mount_gcs(v, &platform).await; - let cfg = make_config("stable"); - install_internal_from_base(Some(v), &cfg, &server.uri()) + install_internal_from_base(Some(v), &cfg, &base(&server)) .await .unwrap(); } - let home = test_home(); - let downloads = home.join("downloads"); + let downloads = test_home().join("downloads"); assert!( - downloads.join(format!("grok-0.1.181-{platform}")).exists(), + downloads.join(format!("kigi-0.1.181-{platform}")).exists(), "current" ); assert!( - downloads.join(format!("grok-0.1.180-{platform}")).exists(), + downloads.join(format!("kigi-0.1.180-{platform}")).exists(), "N-1 retained" ); assert!( - !downloads.join(format!("grok-0.1.179-{platform}")).exists(), + !downloads.join(format!("kigi-0.1.179-{platform}")).exists(), "oldest deleted" ); - // Symlink updated to latest. - let target = std::fs::read_link(home.join("bin").join("grok")).unwrap(); + let target = std::fs::read_link(test_home().join("bin").join("kigi")).unwrap(); assert!( target .file_name() @@ -464,202 +535,48 @@ async fn install_internal_cleans_up_old_versions_keeping_n_minus_one() { #[tokio::test] #[serial] -async fn install_internal_idempotent_for_same_version() { - // Re-installing the same version should not error and should leave the - // binary at the same path with the same content. +async fn install_idempotent_for_same_version() { let _ = test_home(); reset_home(); let platform = host_platform(); - let server = mount_gcs("0.1.181", &platform).await; - let cfg = make_config("stable"); + let server = MockServer::start().await; + mount_release(&server, "0.1.181", &small_good_artifact()).await; + let cfg = make_update_config("stable"); - install_internal_from_base(Some("0.1.181"), &cfg, &server.uri()) + install_internal_from_base(Some("0.1.181"), &cfg, &base(&server)) .await .unwrap(); - let first = std::fs::read( - test_home() - .join("downloads") - .join(format!("grok-0.1.181-{platform}")), - ) - .unwrap(); + let path_installed = test_home() + .join("downloads") + .join(format!("kigi-0.1.181-{platform}")); + let first = std::fs::read(&path_installed).unwrap(); - install_internal_from_base(Some("0.1.181"), &cfg, &server.uri()) + install_internal_from_base(Some("0.1.181"), &cfg, &base(&server)) .await .unwrap(); - let second = std::fs::read( - test_home() - .join("downloads") - .join(format!("grok-0.1.181-{platform}")), - ) - .unwrap(); + let second = std::fs::read(&path_installed).unwrap(); assert_eq!(first, second); - let target = std::fs::read_link(test_home().join("bin").join("grok")).unwrap(); + let target = std::fs::read_link(test_home().join("bin").join("kigi")).unwrap(); assert!(target.to_string_lossy().contains("0.1.181")); } #[tokio::test] #[serial] -async fn install_internal_creates_kigi_home_subdirs_if_missing() { +async fn install_creates_kigi_home_subdirs_if_missing() { let _ = test_home(); reset_home(); - // Explicitly delete bin/ and downloads/ so install must create them. let _ = std::fs::remove_dir_all(test_home().join("bin")); let _ = std::fs::remove_dir_all(test_home().join("downloads")); - let platform = host_platform(); - let server = mount_gcs("0.1.181", &platform).await; - let cfg = make_config("stable"); + let server = MockServer::start().await; + mount_release(&server, "0.1.181", &small_good_artifact()).await; + let cfg = make_update_config("stable"); - install_internal_from_base(Some("0.1.181"), &cfg, &server.uri()) + install_internal_from_base(Some("0.1.181"), &cfg, &base(&server)) .await .unwrap(); assert!(test_home().join("bin").is_dir()); assert!(test_home().join("downloads").is_dir()); } - -// ───────────────────────────────────────────────────────────────────────────── -// Multi-base URL fallback: install_internal_from_bases tries each base in -// preference order, falling through to the next on failure. -// ───────────────────────────────────────────────────────────────────────────── - -#[tokio::test] -#[serial] -async fn install_internal_from_bases_falls_back_to_secondary_when_primary_fails() { - // Primary server returns 500 on every endpoint (CDN outage simulation); - // fallback server serves the install successfully. Result: install - // succeeds via fallback. - let _ = test_home(); - reset_home(); - let platform = host_platform(); - - let primary = MockServer::start().await; - Mock::given(method("GET")) - .respond_with(ResponseTemplate::new(500)) - .mount(&primary) - .await; - - let fallback = mount_gcs("0.1.181", &platform).await; - let cfg = make_config("stable"); - - install_internal_from_bases( - Some("0.1.181"), - &cfg, - &[primary.uri().as_str(), fallback.uri().as_str()], - ) - .await - .unwrap(); - - assert!( - test_home() - .join("downloads") - .join(format!("grok-0.1.181-{platform}")) - .exists(), - "fallback should produce a downloaded binary" - ); -} - -#[tokio::test] -#[serial] -async fn install_internal_from_bases_uses_primary_when_it_works() { - // Both bases work; the install must use the primary (first one) and - // never touch the fallback. Verified by tearing down the fallback - // server immediately after configuration — if the install reached for - // it, the request would fail. - let _ = test_home(); - reset_home(); - let platform = host_platform(); - - let primary = mount_gcs("0.1.181", &platform).await; - let cfg = make_config("stable"); - - install_internal_from_bases( - Some("0.1.181"), - &cfg, - &[primary.uri().as_str(), "http://127.0.0.1:1"], - ) - .await - .unwrap(); - - assert!( - test_home() - .join("downloads") - .join(format!("grok-0.1.181-{platform}")) - .exists() - ); -} - -#[tokio::test] -#[serial] -async fn install_internal_from_bases_propagates_last_error_when_all_fail() { - // Every base returns 500 — the install must fail, surfacing the final - // base's error rather than silently succeeding. - let _ = test_home(); - reset_home(); - - let bad1 = MockServer::start().await; - Mock::given(method("GET")) - .respond_with(ResponseTemplate::new(500)) - .mount(&bad1) - .await; - - let bad2 = MockServer::start().await; - Mock::given(method("GET")) - .respond_with(ResponseTemplate::new(500)) - .mount(&bad2) - .await; - - let cfg = make_config("stable"); - let err = install_internal_from_bases( - Some("0.1.181"), - &cfg, - &[bad1.uri().as_str(), bad2.uri().as_str()], - ) - .await - .unwrap_err(); - let msg = format!("{err:#}"); - assert!(msg.contains("Download failed"), "msg: {msg}"); -} - -/// Regression: a local failure after a successful download (sabotaged -/// `agent` swap) must fail the install immediately — the fallback base must -/// never be contacted for a pointless re-download. -#[tokio::test] -#[serial] -async fn install_internal_from_bases_does_not_redownload_on_local_swap_failure() { - let _ = test_home(); - reset_home(); - let platform = host_platform(); - - let primary = mount_gcs("0.1.181", &platform).await; - let fallback = mount_gcs("0.1.181", &platform).await; - let cfg = make_config("stable"); - - let home = test_home(); - let bin_dir = home.join("bin"); - std::fs::create_dir_all(&bin_dir).unwrap(); - // Sabotage activation: agent as a non-empty dir fails the swap's - // rollback capture (read_link on a directory) before any rename. - let agent_dir = bin_dir.join("agent"); - std::fs::create_dir(&agent_dir).unwrap(); - std::fs::write(agent_dir.join("blocker"), b"x").unwrap(); - - install_internal_from_bases( - Some("0.1.181"), - &cfg, - &[primary.uri().as_str(), fallback.uri().as_str()], - ) - .await - .expect_err("swap failure must fail the install"); - - let fallback_requests = fallback - .received_requests() - .await - .expect("request recording is enabled on MockServer::start()"); - assert!( - fallback_requests.is_empty(), - "local swap failure must not fall through to the next base: {} request(s)", - fallback_requests.len() - ); -} diff --git a/crates/codegen/kigi-update/tests/test_install_sh.rs b/crates/codegen/kigi-update/tests/test_install_sh.rs index cd8daf5..f500b89 100644 --- a/crates/codegen/kigi-update/tests/test_install_sh.rs +++ b/crates/codegen/kigi-update/tests/test_install_sh.rs @@ -1,404 +1,305 @@ -//! Blitz harness for the bash installer (`install.sh`), the second client that -//! can brick a machine. Runs the REAL shipped `install.sh` against a fake -//! `curl` that can serve the good artifact, truncate it, or serve a right-length -//! garbage body, and asserts the same invariant as the Rust blitz: +//! Harness for the bootstrap installer (`install.sh` at the repo root), the +//! second client that can brick a machine. Runs the REAL shipped script +//! against a fake `curl` that serves GitHub-Releases-shaped JSON, the +//! archive, and SHA256SUMS from local fixtures, and asserts: //! -//! > After any install attempt, `$BIN_DIR/grok` resolves to a binary that runs, -//! > OR is still the previous-good binary — never a partial/garbage binary. +//! > After any install attempt, `$KIGI_SHARE_DIR/bin/kigi` resolves to a +//! > binary that runs, OR the install failed cleanly with nothing activated — +//! > never a partial/garbage binary. //! -//! Also covers shell-rc rewrite: stowed/symlinked `~/.bashrc` etc. must survive -//! reinstall without being replaced by a plain file. -//! -//! The installer lives in the sibling `kigi-tui` crate; it is resolved by -//! relative path. If it cannot be found (e.g. a sandbox that does not vendor it) -//! the test skips rather than fail — under the repo's `cargo nextest` workflow -//! the path resolves and the installer is exercised end to end. +//! Each test uses its own tempdir home and passes PATH/KIGI_SHARE_DIR to the +//! child process explicitly, so no process-global state is touched and no +//! `#[serial]` is needed. #![cfg(unix)] +mod common; + use std::os::unix::fs::PermissionsExt; use std::path::{Path, PathBuf}; use std::process::Command; -fn script_path(name: &str) -> Option { - dunce::canonicalize( - Path::new(env!("CARGO_MANIFEST_DIR")).join(format!("../kigi-tui/scripts/{name}")), - ) - .ok() - .filter(|p| p.exists()) -} +use common::{archive_name, host_platform, make_release_archive, sha256_hex, small_good_artifact}; fn install_sh_path() -> Option { - script_path("install.sh") + // crates/codegen/kigi-update → repo root. + dunce::canonicalize(Path::new(env!("CARGO_MANIFEST_DIR")).join("../../../install.sh")) + .ok() + .filter(|p| p.exists()) } -fn host_platform() -> String { - let os = if cfg!(target_os = "macos") { - "macos" - } else { - "linux" - }; - let arch = if cfg!(target_arch = "x86_64") { - "x86_64" - } else { - "aarch64" - }; - format!("{os}-{arch}") +/// GitHub release JSON with download URLs whose suffixes the fake curl +/// dispatches on (the host is irrelevant). +fn release_json(version: &str) -> String { + let name = archive_name(version); + serde_json::json!({ + "tag_name": format!("v{version}"), + "draft": false, + "prerelease": false, + "assets": [ + { "name": name, "browser_download_url": format!("https://example.test/dl/v{version}/{name}") }, + { "name": "SHA256SUMS", "browser_download_url": format!("https://example.test/dl/v{version}/SHA256SUMS") }, + ], + }) + .to_string() } -const GOOD_SCRIPT: &str = "#!/bin/sh\nexit 0\n"; -const INSTALLER_BLOCK_START: &str = "# >>> grok installer >>>"; - -/// Write a fake `curl` that intercepts every download `install.sh` performs. -/// `$FAKE_MODE` (full|truncate|garbage) selects the corruption. -fn write_fake_curl(dir: &Path) { - let body = format!( - r#"#!/bin/bash -mode="${{FAKE_MODE:-full}}" -fullsize={fullsize} -head=0; out=""; want_code=0; url="" -while [ $# -gt 0 ]; do - case "$1" in - --head) head=1 ;; - -o) shift; out="$1" ;; - -w) shift; [ "$1" = '%{{http_code}}' ] && want_code=1 ;; - -*) : ;; - *) url="$1" ;; - esac - shift -done -if [ "$head" = 1 ]; then - if [ "$want_code" = 1 ]; then printf '200'; else printf 'HTTP/1.1 200 OK\r\nContent-Length: %s\r\n\r\n' "$fullsize"; fi - exit 0 -fi -if [ -n "$out" ]; then - case "$mode" in - full) printf '%s' '{good}' > "$out" ;; - truncate) printf '\0\0\0\0' > "$out" ;; - garbage) head -c "$fullsize" /dev/zero | tr '\0' 'X' > "$out" ;; - esac - exit 0 -fi -printf '0.1.181' -exit 0 -"#, - fullsize = GOOD_SCRIPT.len(), - good = GOOD_SCRIPT, - ); - let path = dir.join("curl"); - std::fs::write(&path, body).unwrap(); - std::fs::set_permissions(&path, std::fs::Permissions::from_mode(0o755)).unwrap(); +/// Fixture directory holding the fake curl + canned responses. +struct Fixture { + dir: tempfile::TempDir, + home: tempfile::TempDir, } -/// Seed a valid previous-good binary + symlink in the isolated home. -fn seed_previous_good(home: &Path, platform: &str) -> PathBuf { - let downloads = home.join(".kigi").join("downloads"); - let bin = home.join(".kigi").join("bin"); - std::fs::create_dir_all(&downloads).unwrap(); - std::fs::create_dir_all(&bin).unwrap(); - let prev = downloads.join(format!("grok-{platform}")); - std::fs::write(&prev, GOOD_SCRIPT).unwrap(); - std::fs::set_permissions(&prev, std::fs::Permissions::from_mode(0o755)).unwrap(); - let link = bin.join("grok"); - let _ = std::fs::remove_file(&link); - std::os::unix::fs::symlink(format!("../downloads/grok-{platform}"), &link).unwrap(); - dunce::canonicalize(&prev).unwrap() -} - -/// Re-resolve `$BIN_DIR/grok` from disk and re-run it: the active grok must -/// always execute, and never be a `.tmp`/partial file. -fn assert_active_grok_runs(home: &Path) { - let link = home.join(".kigi").join("bin").join("grok"); - assert!(link.is_symlink(), "grok must remain a symlink"); - let resolved = - dunce::canonicalize(&link).unwrap_or_else(|e| panic!("grok symlink dangles: {e}")); - let name = resolved.file_name().unwrap().to_string_lossy().to_string(); - assert!( - !name.contains(".tmp"), - "active grok must not be a temp file: {name}" - ); - let ok = Command::new(&resolved) - .arg("--version") - .status() - .map(|s| s.success()) - .unwrap_or(false); - assert!(ok, "active grok must run: {}", resolved.display()); -} - -fn run_installer(install_sh: &Path, home: &Path, fakebin: &Path, mode: &str, shell: &str) -> bool { - let path_env = format!("{}:/usr/bin:/bin", fakebin.display()); - let status = Command::new("/bin/bash") - .arg(install_sh) - .arg("0.1.181") - .env_clear() - .env("HOME", home) - .env("PATH", path_env) - .env("SHELL", shell) - .env("KIGI_BIN_DIR", home.join(".kigi").join("bin")) - .env("KIGI_CHANNEL", "stable") - .env("FAKE_MODE", mode) - .status() - .expect("spawn bash install.sh"); - status.success() -} - -fn installer_block_count(body: &str) -> usize { - body.matches(INSTALLER_BLOCK_START).count() -} - -fn assert_single_installer_block(path: &Path, preserved: Option<&str>) { - let body = std::fs::read_to_string(path).unwrap_or_else(|e| { - panic!("read {}: {e}", path.display()); - }); - let n = installer_block_count(&body); - assert_eq!( - n, - 1, - "{} must contain exactly one grok installer block, got {n}:\n{body}", - path.display() - ); - if let Some(marker) = preserved { - assert!( - body.contains(marker), - "{} must keep pre-existing content ({marker:?}):\n{body}", - path.display() - ); - } -} - -#[derive(Clone, Copy)] -enum RcLayout { - Missing, - Plain, - StowAbsolute, - StowRelative, - /// `$root/user/.bashrc` → `../packages/bash/bashrc` (physical relative arm). - StowRelativeDotDot, -} - -struct ShellRcCase { - name: &'static str, - script: &'static str, - shell: &'static str, - rc_name: &'static str, - stow_name: &'static str, - layout: RcLayout, - reinstall: bool, -} - -/// Returns `(installer_home, rc_path, stow_target, expected_link_value)`. -fn setup_rc( - root: &Path, - case: &ShellRcCase, -) -> (PathBuf, PathBuf, Option, Option) { - let marker = "# user shell rc\n"; - match case.layout { - RcLayout::Missing => { - let home = root.to_path_buf(); - (home.clone(), home.join(case.rc_name), None, None) - } - RcLayout::Plain => { - let home = root.to_path_buf(); - let rc_link = home.join(case.rc_name); - std::fs::write(&rc_link, marker).unwrap(); - (home, rc_link, None, None) - } - RcLayout::StowAbsolute | RcLayout::StowRelative => { - let home = root.to_path_buf(); - let stow_dir = home.join("dotfiles"); - std::fs::create_dir_all(&stow_dir).unwrap(); - let target = stow_dir.join(case.stow_name); - std::fs::write(&target, marker).unwrap(); - let link_value = if matches!(case.layout, RcLayout::StowAbsolute) { - target.clone() - } else { - PathBuf::from(format!("dotfiles/{}", case.stow_name)) - }; - let rc_link = home.join(case.rc_name); - std::os::unix::fs::symlink(&link_value, &rc_link).unwrap(); - (home, rc_link, Some(target), Some(link_value)) - } - RcLayout::StowRelativeDotDot => { - // $HOME = root/user; package is a sibling of user (relative needs `..`). - let home = root.join("user"); - std::fs::create_dir_all(&home).unwrap(); - let target = root.join("packages/bash/bashrc"); - std::fs::create_dir_all(target.parent().unwrap()).unwrap(); - std::fs::write(&target, marker).unwrap(); - let link_value = PathBuf::from("../packages/bash/bashrc"); - let rc_link = home.join(case.rc_name); - std::os::unix::fs::symlink(&link_value, &rc_link).unwrap(); - (home, rc_link, Some(target), Some(link_value)) - } - } -} - -fn run_shell_rc_case(case: &ShellRcCase) { - let Some(script) = script_path(case.script) else { - eprintln!( - "skipping {}: {} not found relative to crate", - case.name, case.script - ); - return; - }; - let platform = host_platform(); - let fakedir = tempfile::tempdir().unwrap(); - write_fake_curl(fakedir.path()); - - let root = tempfile::tempdir().unwrap(); - let (home_path, rc_path, stow_target, expected_link) = setup_rc(root.path(), case); - seed_previous_good(&home_path, &platform); - - assert!( - run_installer(&script, &home_path, fakedir.path(), "full", case.shell), - "{}: first install should succeed", - case.name - ); - - if case.reinstall { - assert!( - run_installer(&script, &home_path, fakedir.path(), "full", case.shell), - "{}: reinstall should succeed", - case.name - ); - } - - match case.layout { - RcLayout::Missing | RcLayout::Plain => { - assert!( - rc_path.is_file() && !rc_path.is_symlink(), - "{}: {} must be a regular file", - case.name, - case.rc_name - ); - let preserved = match case.layout { - RcLayout::Plain => Some("# user shell rc"), - _ => None, - }; - assert_single_installer_block(&rc_path, preserved); - } - RcLayout::StowAbsolute | RcLayout::StowRelative | RcLayout::StowRelativeDotDot => { - assert!( - rc_path.is_symlink(), - "{}: {} must remain a symlink after install", - case.name, - case.rc_name - ); - let link = std::fs::read_link(&rc_path).unwrap(); - assert_eq!( - link, - *expected_link.as_ref().unwrap(), - "{}: symlink target must be unchanged", - case.name - ); - let target = stow_target.as_ref().unwrap(); - assert_single_installer_block(target, Some("# user shell rc")); - } - } - - assert_active_grok_runs(&home_path); -} - -#[test] -fn install_sh_blitz_keeps_grok_runnable_under_corruption() { - let Some(install_sh) = install_sh_path() else { - eprintln!("skipping: install.sh not found relative to crate; run under cargo"); - return; - }; - let platform = host_platform(); - let fakedir = tempfile::tempdir().unwrap(); - write_fake_curl(fakedir.path()); - - // Each entry: (mode, should the installer succeed?). Loop a few rounds so a - // re-install over an existing good install is also exercised. - let cases = [ - ("full", true), - ("truncate", false), - ("garbage", false), - ("full", true), - ("truncate", false), - ("garbage", false), - ("full", true), - ]; - - for (mode, expect_ok) in cases { +impl Fixture { + /// `binary` becomes the `kigi` entry of the served archive; `sums_hash` + /// overrides the manifest hash when `Some` (to simulate corruption). + fn new(version: &str, binary: &[u8], sums_hash: Option<&str>) -> Self { + let dir = tempfile::tempdir().unwrap(); let home = tempfile::tempdir().unwrap(); - seed_previous_good(home.path(), &platform); - let ok = run_installer(&install_sh, home.path(), fakedir.path(), mode, "/bin/bash"); - assert_eq!( - ok, expect_ok, - "install.sh mode={mode} exit success mismatch" + let archive = make_release_archive(binary); + let hash = match sums_hash { + Some(h) => h.to_string(), + None => sha256_hex(&archive), + }; + std::fs::write(dir.path().join("release.json"), release_json(version)).unwrap(); + std::fs::write(dir.path().join("archive.tar.gz"), &archive).unwrap(); + std::fs::write( + dir.path().join("SHA256SUMS"), + format!("{hash} {}\n", archive_name(version)), + ) + .unwrap(); + + let d = dir.path().to_string_lossy().replace('\'', "'\\''"); + let curl = format!( + r#"#!/bin/sh +echo "$@" >> '{d}/curl-args.log' +out="" +url="" +prev="" +for a in "$@"; do + if [ "$prev" = "-o" ]; then out="$a"; fi + case "$a" in + -*) ;; + *) url="$a" ;; + esac + prev="$a" +done +serve() {{ + if [ -n "$out" ]; then cat "$1" > "$out"; else cat "$1"; fi +}} +case "$url" in + */SHA256SUMS) serve '{d}/SHA256SUMS' ;; + *.tar.gz) serve '{d}/archive.tar.gz' ;; + */latest|*/tags/v*) serve '{d}/release.json' ;; + *) echo "fake curl: unmatched url: $url" >&2; exit 22 ;; +esac +"# ); + let curl_path = dir.path().join("curl"); + std::fs::write(&curl_path, curl).unwrap(); + std::fs::set_permissions(&curl_path, std::fs::Permissions::from_mode(0o755)).unwrap(); - // The invariant holds regardless of which path was taken: the active - // grok always runs (new good binary on success, previous-good on - // rejection). - assert_active_grok_runs(home.path()); + Self { dir, home } + } + + fn run(&self, args: &[&str]) -> std::process::Output { + let script = install_sh_path().expect("install.sh present at repo root"); + let path = format!( + "{}:{}", + self.dir.path().display(), + std::env::var("PATH").unwrap_or_default() + ); + Command::new("sh") + .arg(&script) + .args(args) + .env("PATH", path) + .env("KIGI_SHARE_DIR", self.home.path()) + .env("HOME", self.home.path()) + .output() + .expect("install.sh must spawn") + } + + fn curl_log(&self) -> String { + std::fs::read_to_string(self.dir.path().join("curl-args.log")).unwrap_or_default() + } + + fn active_kigi(&self) -> PathBuf { + self.home.path().join("bin").join("kigi") } } -/// Shell-rc rewrite matrix: stow absolute/relative/`..`, plain, first-create, enterprise. +fn stderr_of(out: &std::process::Output) -> String { + String::from_utf8_lossy(&out.stderr).to_string() +} + #[test] -fn install_sh_shell_rc_rewrite_matrix() { - let cases = [ - ShellRcCase { - name: "stow absolute bashrc reinstall", - script: "install.sh", - shell: "/bin/bash", - rc_name: ".bashrc", - stow_name: "bashrc", - layout: RcLayout::StowAbsolute, - reinstall: true, - }, - ShellRcCase { - name: "stow relative bashrc reinstall", - script: "install.sh", - shell: "/bin/bash", - rc_name: ".bashrc", - stow_name: "bashrc", - layout: RcLayout::StowRelative, - reinstall: true, - }, - ShellRcCase { - name: "stow relative ../ bashrc reinstall", - script: "install.sh", - shell: "/bin/bash", - rc_name: ".bashrc", - stow_name: "bashrc", - layout: RcLayout::StowRelativeDotDot, - reinstall: true, - }, - ShellRcCase { - name: "plain bashrc reinstall", - script: "install.sh", - shell: "/bin/bash", - rc_name: ".bashrc", - stow_name: "bashrc", - layout: RcLayout::Plain, - reinstall: true, - }, - ShellRcCase { - name: "missing bashrc first install", - script: "install.sh", - shell: "/bin/bash", - rc_name: ".bashrc", - stow_name: "bashrc", - layout: RcLayout::Missing, - reinstall: false, - }, - ShellRcCase { - name: "enterprise stow absolute bashrc reinstall", - script: "install-enterprise.sh", - shell: "/bin/bash", - rc_name: ".bashrc", - stow_name: "bashrc", - layout: RcLayout::StowAbsolute, - reinstall: true, - }, - ]; - - for case in &cases { - run_shell_rc_case(case); +fn install_sh_happy_path_installs_versioned_binary_and_symlink() { + if install_sh_path().is_none() { + eprintln!("skipping: install.sh not found (vendored sandbox)"); + return; } + let fx = Fixture::new("0.1.5", &small_good_artifact(), None); + + let out = fx.run(&[]); + assert!( + out.status.success(), + "install.sh must succeed: stderr={}", + stderr_of(&out) + ); + + // Managed layout: versioned binary + relative symlink, same as the + // self-updater produces. + let versioned = fx + .home + .path() + .join("downloads") + .join(format!("kigi-0.1.5-{}", host_platform())); + assert!(versioned.exists(), "versioned binary installed"); + assert_eq!(std::fs::read(&versioned).unwrap(), small_good_artifact()); + + let link = fx.active_kigi(); + assert!(link.is_symlink(), "bin/kigi is a symlink"); + assert_eq!( + std::fs::read_link(&link).unwrap(), + Path::new("..") + .join("downloads") + .join(format!("kigi-0.1.5-{}", host_platform())), + "symlink must be relative (survives bind-mounted homes)" + ); + + // The active link runs. + let status = Command::new(&link).arg("--version").status().unwrap(); + assert!(status.success(), "installed kigi must run"); + + // Resolved the latest endpoint (no pinned version). + assert!( + fx.curl_log().contains("/latest"), + "must resolve via /latest: {}", + fx.curl_log() + ); +} + +#[test] +fn install_sh_pinned_version_uses_tag_endpoint() { + if install_sh_path().is_none() { + eprintln!("skipping: install.sh not found (vendored sandbox)"); + return; + } + let fx = Fixture::new("0.1.5", &small_good_artifact(), None); + + let out = fx.run(&["--version", "v0.1.5"]); + assert!( + out.status.success(), + "pinned install must succeed: stderr={}", + stderr_of(&out) + ); + assert!( + fx.curl_log().contains("/tags/v0.1.5"), + "must resolve via /tags/v0.1.5: {}", + fx.curl_log() + ); + assert!(fx.active_kigi().is_symlink()); +} + +#[test] +fn install_sh_rejects_checksum_mismatch_and_activates_nothing() { + if install_sh_path().is_none() { + eprintln!("skipping: install.sh not found (vendored sandbox)"); + return; + } + let fx = Fixture::new("0.1.5", &small_good_artifact(), Some(&"0".repeat(64))); + + let out = fx.run(&[]); + assert!( + !out.status.success(), + "checksum mismatch must fail the install" + ); + assert!( + stderr_of(&out).contains("SHA256 mismatch"), + "stderr: {}", + stderr_of(&out) + ); + let link = fx.active_kigi(); + assert!( + !link.exists() && !link.is_symlink(), + "nothing may be activated after a checksum failure" + ); +} + +#[test] +fn install_sh_rejects_invalid_version_argument() { + if install_sh_path().is_none() { + eprintln!("skipping: install.sh not found (vendored sandbox)"); + return; + } + let fx = Fixture::new("0.1.5", &small_good_artifact(), None); + + let out = fx.run(&["--version", "not-a-version"]); + assert!(!out.status.success()); + assert!( + stderr_of(&out).contains("invalid version"), + "stderr: {}", + stderr_of(&out) + ); + assert!( + fx.curl_log().is_empty(), + "invalid arguments must fail before any network access" + ); +} + +#[test] +fn install_sh_fails_when_release_lacks_platform_asset() { + if install_sh_path().is_none() { + eprintln!("skipping: install.sh not found (vendored sandbox)"); + return; + } + let fx = Fixture::new("0.1.5", &small_good_artifact(), None); + // Rewrite release.json without the platform archive asset. + let json = serde_json::json!({ + "tag_name": "v0.1.5", + "assets": [ + { "name": "SHA256SUMS", "browser_download_url": "https://example.test/dl/v0.1.5/SHA256SUMS" }, + ], + }); + std::fs::write(fx.dir.path().join("release.json"), json.to_string()).unwrap(); + + let out = fx.run(&[]); + assert!(!out.status.success()); + assert!( + stderr_of(&out).contains("no asset"), + "stderr: {}", + stderr_of(&out) + ); + let link = fx.active_kigi(); + assert!(!link.exists() && !link.is_symlink()); +} + +#[test] +fn install_sh_fails_when_archive_lacks_kigi_binary() { + if install_sh_path().is_none() { + eprintln!("skipping: install.sh not found (vendored sandbox)"); + return; + } + let fx = Fixture::new("0.1.5", &small_good_artifact(), None); + // Replace the archive with one that has no `kigi` entry; keep the + // manifest consistent so the checksum gate passes and the extraction + // check is what trips. + let archive = common::make_tar_gz(&[("LICENSE", b"license only")]); + std::fs::write( + fx.dir.path().join("SHA256SUMS"), + format!("{} {}\n", sha256_hex(&archive), archive_name("0.1.5")), + ) + .unwrap(); + std::fs::write(fx.dir.path().join("archive.tar.gz"), &archive).unwrap(); + + let out = fx.run(&[]); + assert!(!out.status.success()); + assert!( + stderr_of(&out).contains("does not contain a 'kigi' binary"), + "stderr: {}", + stderr_of(&out) + ); + let link = fx.active_kigi(); + assert!(!link.exists() && !link.is_symlink()); } diff --git a/crates/codegen/kigi-update/tests/test_io.rs b/crates/codegen/kigi-update/tests/test_io.rs index 3009092..e3d368c 100644 --- a/crates/codegen/kigi-update/tests/test_io.rs +++ b/crates/codegen/kigi-update/tests/test_io.rs @@ -1,7 +1,7 @@ //! I/O integration tests for the auto-update crate. //! //! These tests touch global process state — `KIGI_SHARE_DIR` (a `OnceLock` in -//! `kigi-config`), `KIGI_TEST_VERSION`, and `NPM_TOKEN` — so they +//! `kigi-config`), `KIGI_TEST_VERSION` — so they //! must run serially. Once `KIGI_SHARE_DIR` is initialized for a process, it can't //! be changed; we set it from a single shared `OnceLock` and reset the //! contents of the directory between tests. @@ -277,13 +277,13 @@ async fn write_version_cache_idempotent_for_same_version() { } // ───────────────────────────────────────────────────────────────────────────── -// get_installed_grok_version env override +// get_installed_kigi_version env override // // The function honors `KIGI_TEST_VERSION` for testing. We exercise it // via the public re-export only — no private items leaked. // ───────────────────────────────────────────────────────────────────────────── // -// Note: `get_installed_grok_version` is not re-exported from `lib.rs`, but +// Note: `get_installed_kigi_version` is not re-exported from `lib.rs`, but // it's `pub` from `version` module and accessible via `version::`. #[tokio::test] @@ -295,7 +295,7 @@ async fn get_installed_version_uses_env_var_override() { unsafe { std::env::set_var("KIGI_TEST_VERSION", "9.9.9"); } - let v = kigi_update::version::get_installed_grok_version(); + let v = kigi_update::version::get_installed_kigi_version(); assert_eq!(v, "9.9.9"); unsafe { std::env::remove_var("KIGI_TEST_VERSION"); @@ -311,7 +311,7 @@ async fn get_installed_version_falls_back_to_cargo_pkg_version_when_env_unset() unsafe { std::env::remove_var("KIGI_TEST_VERSION"); } - let v = kigi_update::version::get_installed_grok_version(); + let v = kigi_update::version::get_installed_kigi_version(); // The compile-time CARGO_PKG_VERSION must be a parseable semver string. let _: semver::Version = v .parse() @@ -328,13 +328,13 @@ async fn get_installed_version_with_env_var_takes_precedence() { unsafe { std::env::remove_var("KIGI_TEST_VERSION"); } - kigi_update::version::get_installed_grok_version() + kigi_update::version::get_installed_kigi_version() }; unsafe { std::env::set_var("KIGI_TEST_VERSION", "0.0.0-test"); } - let overridden = kigi_update::version::get_installed_grok_version(); + let overridden = kigi_update::version::get_installed_kigi_version(); assert_ne!(real, overridden); assert_eq!(overridden, "0.0.0-test"); @@ -352,7 +352,7 @@ async fn get_installed_version_handles_alpha_prerelease_in_env() { unsafe { std::env::set_var("KIGI_TEST_VERSION", "0.1.200-alpha.5"); } - let v = kigi_update::version::get_installed_grok_version(); + let v = kigi_update::version::get_installed_kigi_version(); assert_eq!(v, "0.1.200-alpha.5"); unsafe { std::env::remove_var("KIGI_TEST_VERSION"); @@ -370,7 +370,7 @@ async fn get_installed_version_does_not_validate_env_var_format() { unsafe { std::env::set_var("KIGI_TEST_VERSION", "not-a-version"); } - let v = kigi_update::version::get_installed_grok_version(); + let v = kigi_update::version::get_installed_kigi_version(); assert_eq!(v, "not-a-version"); unsafe { std::env::remove_var("KIGI_TEST_VERSION"); diff --git a/crates/codegen/kigi-update/tests/test_network.rs b/crates/codegen/kigi-update/tests/test_network.rs index 8471518..b0737b1 100644 --- a/crates/codegen/kigi-update/tests/test_network.rs +++ b/crates/codegen/kigi-update/tests/test_network.rs @@ -4,6 +4,11 @@ //! directly. We don't need `serial_test` here because each `MockServer` binds //! to its own random port and tests don't touch global state. //! +//! Release JSON fixtures mirror the real GitHub REST API +//! (https://docs.github.com/en/rest/releases/releases#get-the-latest-release): +//! `GET /repos/{owner}/{repo}/releases/latest` → +//! `{"tag_name":"v0.1.0","assets":[{"name":"...","browser_download_url":"..."}]}`. +//! //! NOTE on retry timing: the prod retry backoff is 1s + 2s + 4s = 7s //! wall-clock. We can't use `tokio::time::pause()` because reqwest's I/O //! reactor uses the same tokio timer and stalls when time is paused. So @@ -15,299 +20,299 @@ use wiremock::matchers::{method, path}; use wiremock::{Mock, MockServer, Request, Respond, ResponseTemplate}; use kigi_update::auto_update::{download_silent, download_with_progress}; -use kigi_update::version::fetch_gcs_version_from_base; +use kigi_update::version::{fetch_latest_release_from_base, fetch_release_for_version_from_base}; + +fn tag_json(tag: &str) -> serde_json::Value { + serde_json::json!({ "tag_name": tag, "draft": false, "prerelease": false, "assets": [] }) +} // ───────────────────────────────────────────────────────────────────────────── // Happy-path tests (fast, no retries triggered). // ───────────────────────────────────────────────────────────────────────────── #[tokio::test] -async fn gcs_pointer_returns_version_on_success() { +async fn latest_release_returns_version_on_success() { let server = MockServer::start().await; Mock::given(method("GET")) - .and(path("/stable")) - .respond_with(ResponseTemplate::new(200).set_body_string("0.1.181\n")) + .and(path("/latest")) + .respond_with(ResponseTemplate::new(200).set_body_json(tag_json("v0.1.181"))) .expect(1) .mount(&server) .await; - let v = fetch_gcs_version_from_base("stable", &server.uri()) + let release = fetch_latest_release_from_base("stable", &server.uri()) .await .unwrap(); - assert_eq!(v, "0.1.181"); + assert_eq!(release.version().unwrap(), "0.1.181"); } #[tokio::test] -async fn gcs_pointer_trims_whitespace() { +async fn latest_release_accepts_bare_semver_tag() { let server = MockServer::start().await; Mock::given(method("GET")) - .and(path("/stable")) - .respond_with(ResponseTemplate::new(200).set_body_string(" 0.1.181 \r\n ")) + .and(path("/latest")) + .respond_with(ResponseTemplate::new(200).set_body_json(tag_json("0.1.181"))) .mount(&server) .await; - let v = fetch_gcs_version_from_base("stable", &server.uri()) + let release = fetch_latest_release_from_base("stable", &server.uri()) .await .unwrap(); - assert_eq!(v, "0.1.181"); + assert_eq!(release.version().unwrap(), "0.1.181"); } #[tokio::test] -async fn gcs_pointer_rejects_invalid_semver_no_retry() { - // Invalid semver in the channel pointer is a hard error — must NOT - // retry (it's a server data bug, not a transient failure). +async fn latest_release_rejects_non_semver_tag_without_retry() { + // A non-semver tag is a repo data bug, not a transient failure — the + // fetch succeeds in one request and version() reports the bad tag. let server = MockServer::start().await; Mock::given(method("GET")) - .and(path("/stable")) - .respond_with(ResponseTemplate::new(200).set_body_string("not-a-version")) - .expect(1) // exactly one request — no retry on parse failure + .and(path("/latest")) + .respond_with(ResponseTemplate::new(200).set_body_json(tag_json("release-one"))) + .expect(1) .mount(&server) .await; - let err = fetch_gcs_version_from_base("stable", &server.uri()) + let release = fetch_latest_release_from_base("stable", &server.uri()) + .await + .unwrap(); + let err = release.version().unwrap_err(); + assert!(format!("{err}").contains("not semver"), "err: {err}"); +} + +#[tokio::test] +async fn alpha_channel_picks_semver_max_from_release_list() { + // The list is ordered by publication date (newest first) — NOT semver. + // Alpha must take the semver max, so a newer-published pre-release does + // not shadow a semver-higher stable and vice versa. + let server = MockServer::start().await; + let list = serde_json::json!([ + { "tag_name": "v0.1.180-alpha.5", "draft": false, "prerelease": true, "assets": [] }, + { "tag_name": "v0.1.181", "draft": false, "prerelease": false, "assets": [] }, + { "tag_name": "v0.1.179", "draft": false, "prerelease": false, "assets": [] }, + ]); + Mock::given(method("GET")) + .and(path("/")) + .respond_with(ResponseTemplate::new(200).set_body_json(list)) + .expect(1) + .mount(&server) + .await; + + let release = fetch_latest_release_from_base("alpha", &server.uri()) + .await + .unwrap(); + assert_eq!(release.version().unwrap(), "0.1.181"); +} + +#[tokio::test] +async fn alpha_channel_returns_prerelease_when_it_is_max() { + let server = MockServer::start().await; + let list = serde_json::json!([ + { "tag_name": "v0.1.182-alpha.1", "draft": false, "prerelease": true, "assets": [] }, + { "tag_name": "v0.1.181", "draft": false, "prerelease": false, "assets": [] }, + ]); + Mock::given(method("GET")) + .and(path("/")) + .respond_with(ResponseTemplate::new(200).set_body_json(list)) + .mount(&server) + .await; + + let release = fetch_latest_release_from_base("alpha", &server.uri()) + .await + .unwrap(); + assert_eq!(release.version().unwrap(), "0.1.182-alpha.1"); +} + +#[tokio::test] +async fn alpha_channel_skips_drafts_and_non_semver_tags() { + let server = MockServer::start().await; + let list = serde_json::json!([ + { "tag_name": "v9.9.9", "draft": true, "prerelease": false, "assets": [] }, + { "tag_name": "nightly", "draft": false, "prerelease": false, "assets": [] }, + { "tag_name": "v0.1.181", "draft": false, "prerelease": false, "assets": [] }, + ]); + Mock::given(method("GET")) + .and(path("/")) + .respond_with(ResponseTemplate::new(200).set_body_json(list)) + .mount(&server) + .await; + + let release = fetch_latest_release_from_base("alpha", &server.uri()) + .await + .unwrap(); + assert_eq!( + release.version().unwrap(), + "0.1.181", + "drafts and non-semver tags must not win" + ); +} + +#[tokio::test] +async fn alpha_channel_empty_list_is_an_error() { + let server = MockServer::start().await; + Mock::given(method("GET")) + .and(path("/")) + .respond_with(ResponseTemplate::new(200).set_body_json(serde_json::json!([]))) + .mount(&server) + .await; + + let err = fetch_latest_release_from_base("alpha", &server.uri()) .await .unwrap_err(); - let msg = format!("{err:#}"); - assert!(msg.contains("invalid semver"), "msg: {msg}"); + assert!(format!("{err:#}").contains("no releases"), "err: {err:#}"); } #[tokio::test] -async fn gcs_pointer_alpha_channel_returns_max_of_alpha_and_stable_when_stable_higher() { +async fn stable_channel_does_not_fetch_the_release_list() { + // Stable users resolve /latest only; the list endpoint must not be hit. let server = MockServer::start().await; Mock::given(method("GET")) - .and(path("/alpha")) - .respond_with(ResponseTemplate::new(200).set_body_string("0.1.180-alpha.5")) + .and(path("/latest")) + .respond_with(ResponseTemplate::new(200).set_body_json(tag_json("v0.1.181"))) .expect(1) .mount(&server) .await; Mock::given(method("GET")) - .and(path("/stable")) - .respond_with(ResponseTemplate::new(200).set_body_string("0.1.181")) - .expect(1) - .mount(&server) - .await; - - let v = fetch_gcs_version_from_base("alpha", &server.uri()) - .await - .unwrap(); - assert_eq!(v, "0.1.181"); -} - -#[tokio::test] -async fn gcs_pointer_alpha_returns_alpha_when_higher() { - let server = MockServer::start().await; - Mock::given(method("GET")) - .and(path("/alpha")) - .respond_with(ResponseTemplate::new(200).set_body_string("0.1.182-alpha.1")) - .mount(&server) - .await; - Mock::given(method("GET")) - .and(path("/stable")) - .respond_with(ResponseTemplate::new(200).set_body_string("0.1.181")) - .mount(&server) - .await; - - let v = fetch_gcs_version_from_base("alpha", &server.uri()) - .await - .unwrap(); - assert_eq!(v, "0.1.182-alpha.1"); -} - -#[tokio::test] -async fn gcs_pointer_stable_channel_does_not_fetch_alpha() { - // Stable-channel users should not pay the cost of fetching the alpha - // pointer. The mock for /alpha should never be hit. - let server = MockServer::start().await; - Mock::given(method("GET")) - .and(path("/stable")) - .respond_with(ResponseTemplate::new(200).set_body_string("0.1.181")) - .expect(1) - .mount(&server) - .await; - Mock::given(method("GET")) - .and(path("/alpha")) + .and(path("/")) .respond_with(ResponseTemplate::new(500)) .expect(0) .mount(&server) .await; - let v = fetch_gcs_version_from_base("stable", &server.uri()) + let release = fetch_latest_release_from_base("stable", &server.uri()) .await .unwrap(); - assert_eq!(v, "0.1.181"); + assert_eq!(release.version().unwrap(), "0.1.181"); } #[tokio::test] -async fn gcs_pointer_with_long_pre_release_version() { +async fn release_for_version_fetches_tag_endpoint() { let server = MockServer::start().await; Mock::given(method("GET")) - .and(path("/alpha")) - .respond_with(ResponseTemplate::new(200).set_body_string("0.1.190-alpha.42")) - .mount(&server) - .await; - Mock::given(method("GET")) - .and(path("/stable")) - .respond_with(ResponseTemplate::new(200).set_body_string("0.1.189")) + .and(path("/tags/v0.1.150")) + .respond_with(ResponseTemplate::new(200).set_body_json(tag_json("v0.1.150"))) + .expect(1) .mount(&server) .await; - let v = fetch_gcs_version_from_base("alpha", &server.uri()) + let release = fetch_release_for_version_from_base("0.1.150", &server.uri()) .await .unwrap(); - assert_eq!(v, "0.1.190-alpha.42"); + assert_eq!(release.version().unwrap(), "0.1.150"); } #[tokio::test] -async fn gcs_pointer_preserves_path_in_base_url() { - // base_url may include a path component (in practice the prod GCS URL - // does: `/cli`). The function appends `/{channel}`. +async fn base_url_trailing_slash_is_tolerated() { let server = MockServer::start().await; Mock::given(method("GET")) - .and(path("/cli/stable")) - .respond_with(ResponseTemplate::new(200).set_body_string("0.1.181")) + .and(path("/latest")) + .respond_with(ResponseTemplate::new(200).set_body_json(tag_json("v0.1.181"))) .mount(&server) .await; - let base = format!("{}/cli", server.uri()); - let v = fetch_gcs_version_from_base("stable", &base).await.unwrap(); - assert_eq!(v, "0.1.181"); + let base = format!("{}/", server.uri()); + let release = fetch_latest_release_from_base("stable", &base) + .await + .unwrap(); + assert_eq!(release.version().unwrap(), "0.1.181"); } // ───────────────────────────────────────────────────────────────────────────── // Retry behavior — these tests intentionally exercise the 1s+2s+4s backoff, -// so each takes ~7 seconds. They run in parallel. +// so each takes up to ~7 seconds. They run in parallel. // ───────────────────────────────────────────────────────────────────────────── #[tokio::test] -async fn gcs_pointer_retries_on_5xx_then_succeeds() { +async fn latest_release_retries_on_5xx_then_succeeds() { let server = MockServer::start().await; Mock::given(method("GET")) - .and(path("/stable")) + .and(path("/latest")) .respond_with(ResponseTemplate::new(503).set_body_string("backend down")) .up_to_n_times(2) .mount(&server) .await; Mock::given(method("GET")) - .and(path("/stable")) - .respond_with(ResponseTemplate::new(200).set_body_string("0.1.181")) + .and(path("/latest")) + .respond_with(ResponseTemplate::new(200).set_body_json(tag_json("v0.1.181"))) .mount(&server) .await; - let v = fetch_gcs_version_from_base("stable", &server.uri()) + let release = fetch_latest_release_from_base("stable", &server.uri()) .await .unwrap(); - assert_eq!(v, "0.1.181"); + assert_eq!(release.version().unwrap(), "0.1.181"); } #[tokio::test] -async fn gcs_pointer_gives_up_after_max_retries() { +async fn latest_release_gives_up_after_max_retries() { let server = MockServer::start().await; // 4 attempts total: initial + 3 retries. Mock::given(method("GET")) - .and(path("/stable")) + .and(path("/latest")) .respond_with(ResponseTemplate::new(500)) .expect(4) .mount(&server) .await; - let err = fetch_gcs_version_from_base("stable", &server.uri()) + let err = fetch_latest_release_from_base("stable", &server.uri()) .await .unwrap_err(); let msg = format!("{err:#}"); assert!(msg.contains("HTTP 500"), "msg: {msg}"); + assert!(msg.contains("/latest"), "url should be in error: {msg}"); } #[tokio::test] -async fn gcs_pointer_retries_on_empty_body() { +async fn latest_release_404_fails_fast_without_retry() { + // 404 = release/repo missing — a data condition, not transient. Exactly + // one request, and the GitHub error body is surfaced. let server = MockServer::start().await; Mock::given(method("GET")) - .and(path("/stable")) - .respond_with(ResponseTemplate::new(200).set_body_string("")) - .up_to_n_times(2) - .mount(&server) - .await; - Mock::given(method("GET")) - .and(path("/stable")) - .respond_with(ResponseTemplate::new(200).set_body_string("0.1.181")) + .and(path("/latest")) + .respond_with(ResponseTemplate::new(404).set_body_string(r#"{"message":"Not Found"}"#)) + .expect(1) .mount(&server) .await; - let v = fetch_gcs_version_from_base("stable", &server.uri()) - .await - .unwrap(); - assert_eq!(v, "0.1.181"); -} - -#[tokio::test] -async fn gcs_pointer_alpha_propagates_error_from_either_pointer() { - let server = MockServer::start().await; - Mock::given(method("GET")) - .and(path("/alpha")) - .respond_with(ResponseTemplate::new(200).set_body_string("0.1.182-alpha.1")) - .mount(&server) - .await; - Mock::given(method("GET")) - .and(path("/stable")) - .respond_with(ResponseTemplate::new(500)) - .expect(4) - .mount(&server) - .await; - - let err = fetch_gcs_version_from_base("alpha", &server.uri()) - .await - .unwrap_err(); - let msg = format!("{err:#}"); - assert!(msg.contains("HTTP 500"), "msg: {msg}"); -} - -#[tokio::test] -async fn gcs_pointer_4xx_is_retryable_until_exhausted() { - let server = MockServer::start().await; - Mock::given(method("GET")) - .and(path("/stable")) - .respond_with(ResponseTemplate::new(404)) - .expect(4) - .mount(&server) - .await; - - let err = fetch_gcs_version_from_base("stable", &server.uri()) + let err = fetch_latest_release_from_base("stable", &server.uri()) .await .unwrap_err(); let msg = format!("{err:#}"); assert!(msg.contains("HTTP 404"), "msg: {msg}"); + assert!(msg.contains("Not Found"), "msg: {msg}"); } #[tokio::test] -async fn gcs_pointer_includes_url_in_error_message() { +async fn latest_release_malformed_json_fails_without_retry() { let server = MockServer::start().await; Mock::given(method("GET")) - .and(path("/stable")) - .respond_with(ResponseTemplate::new(500)) - .expect(4) + .and(path("/latest")) + .respond_with(ResponseTemplate::new(200).set_body_string("not json")) + .expect(1) .mount(&server) .await; - let err = fetch_gcs_version_from_base("stable", &server.uri()) + let err = fetch_latest_release_from_base("stable", &server.uri()) .await .unwrap_err(); let msg = format!("{err:#}"); - assert!(msg.contains("/stable"), "url should be in error: {msg}"); + assert!(msg.contains("unexpected JSON"), "msg: {msg}"); } #[tokio::test] -async fn gcs_pointer_connection_refused_is_retried_and_returns_error() { +async fn latest_release_connection_refused_is_retried_and_returns_error() { // Bind a TcpListener to claim a port, then drop it so connections refuse. let listener = std::net::TcpListener::bind("127.0.0.1:0").unwrap(); let port = listener.local_addr().unwrap().port(); drop(listener); let url = format!("http://127.0.0.1:{port}"); - let err = fetch_gcs_version_from_base("stable", &url) + let err = fetch_latest_release_from_base("stable", &url) .await .unwrap_err(); let msg = format!("{err:#}").to_lowercase(); assert!( - msg.contains("fetch failed") + msg.contains("request failed") || msg.contains("connection") || msg.contains("error sending request") || msg.contains("refused"), @@ -325,14 +330,14 @@ async fn download_silent_writes_body_to_dest() { let server = MockServer::start().await; let body = b"binary contents \x00\x01\x02".to_vec(); Mock::given(method("GET")) - .and(path("/grok-0.1.181-macos-aarch64")) + .and(path("/kigi-0.1.181-macos-aarch64")) .respond_with(ResponseTemplate::new(200).set_body_bytes(body.clone())) .mount(&server) .await; let tmp = tempfile::tempdir().unwrap(); - let dest = tmp.path().join("grok"); - let url = format!("{}/grok-0.1.181-macos-aarch64", server.uri()); + let dest = tmp.path().join("kigi"); + let url = format!("{}/kigi-0.1.181-macos-aarch64", server.uri()); download_silent(&url, &dest).await.unwrap(); let written = std::fs::read(&dest).unwrap(); @@ -371,7 +376,7 @@ async fn download_silent_atomically_renames_via_tmp_file() { .await; let tmp = tempfile::tempdir().unwrap(); - let dest = tmp.path().join("grok"); + let dest = tmp.path().join("kigi"); download_silent(&format!("{}/bin", server.uri()), &dest) .await .unwrap(); @@ -399,7 +404,7 @@ async fn download_silent_publishes_executable() { .await; let tmp = tempfile::tempdir().unwrap(); - let dest = tmp.path().join("grok-0.1.181-linux-x86_64"); + let dest = tmp.path().join("kigi-0.1.181-linux-x86_64"); download_silent(&format!("{}/bin", server.uri()), &dest) .await .unwrap(); @@ -422,7 +427,7 @@ async fn download_silent_fails_on_4xx() { .await; let tmp = tempfile::tempdir().unwrap(); - let dest = tmp.path().join("grok"); + let dest = tmp.path().join("kigi"); let err = download_silent(&format!("{}/missing", server.uri()), &dest) .await .unwrap_err(); @@ -443,7 +448,7 @@ async fn download_silent_fails_on_5xx() { .await; let tmp = tempfile::tempdir().unwrap(); - let dest = tmp.path().join("grok"); + let dest = tmp.path().join("kigi"); let err = download_silent(&format!("{}/x", server.uri()), &dest) .await .unwrap_err(); @@ -460,7 +465,7 @@ async fn download_silent_overwrites_existing_dest() { .await; let tmp = tempfile::tempdir().unwrap(); - let dest = tmp.path().join("grok"); + let dest = tmp.path().join("kigi"); std::fs::write(&dest, "old content").unwrap(); download_silent(&format!("{}/x", server.uri()), &dest) @@ -481,7 +486,7 @@ async fn download_silent_handles_empty_body() { .await; let tmp = tempfile::tempdir().unwrap(); - let dest = tmp.path().join("grok"); + let dest = tmp.path().join("kigi"); download_silent(&format!("{}/x", server.uri()), &dest) .await .unwrap(); @@ -503,7 +508,7 @@ async fn download_silent_streams_large_body() { .await; let tmp = tempfile::tempdir().unwrap(); - let dest = tmp.path().join("grok"); + let dest = tmp.path().join("kigi"); download_silent(&format!("{}/big", server.uri()), &dest) .await .unwrap(); @@ -524,7 +529,7 @@ async fn download_silent_to_nonexistent_parent_dir_fails() { let tmp = tempfile::tempdir().unwrap(); // Parent directory does NOT exist — should fail at file create. - let dest = tmp.path().join("missing-subdir").join("grok"); + let dest = tmp.path().join("missing-subdir").join("kigi"); let err = download_silent(&format!("{}/x", server.uri()), &dest) .await .unwrap_err(); @@ -547,14 +552,14 @@ async fn download_with_progress_writes_body_with_content_length() { let server = MockServer::start().await; let body = b"binary content".to_vec(); Mock::given(method("GET")) - .and(path("/grok")) + .and(path("/kigi")) .respond_with(ResponseTemplate::new(200).set_body_bytes(body.clone())) .mount(&server) .await; let tmp = tempfile::tempdir().unwrap(); - let dest = tmp.path().join("grok"); - download_with_progress(&format!("{}/grok", server.uri()), &dest) + let dest = tmp.path().join("kigi"); + download_with_progress(&format!("{}/kigi", server.uri()), &dest) .await .unwrap(); @@ -571,7 +576,7 @@ async fn download_with_progress_fails_on_http_error() { .await; let tmp = tempfile::tempdir().unwrap(); - let dest = tmp.path().join("grok"); + let dest = tmp.path().join("kigi"); let err = download_with_progress(&format!("{}/x", server.uri()), &dest) .await .unwrap_err(); @@ -590,7 +595,7 @@ async fn download_with_progress_atomic_rename() { .await; let tmp = tempfile::tempdir().unwrap(); - let dest = tmp.path().join("grok"); + let dest = tmp.path().join("kigi"); download_with_progress(&format!("{}/x", server.uri()), &dest) .await .unwrap(); @@ -663,7 +668,7 @@ async fn download_silent_parallel_path_reassembles_bytes() { .await; let tmp = tempfile::tempdir().unwrap(); - let dest = tmp.path().join("grok-binary"); + let dest = tmp.path().join("kigi-binary"); download_silent(&format!("{}/big", server.uri()), &dest) .await .unwrap(); diff --git a/crates/codegen/kigi-update/tests/test_subprocess.rs b/crates/codegen/kigi-update/tests/test_subprocess.rs deleted file mode 100644 index 32b8753..0000000 --- a/crates/codegen/kigi-update/tests/test_subprocess.rs +++ /dev/null @@ -1,446 +0,0 @@ -//! Subprocess-based integration tests using fake `npm` / `gh` shell scripts -//! placed first on `PATH`. -//! -//! `auto_update::install_npm` and `version::fetch_npm_tag` spawn `npm` by -//! bare name (`Command::new("npm")`). To test them without touching the real -//! npm registry, we install a tempdir-resident shell script named `npm` -//! that logs its args and prints canned stdout, then prepend that tempdir -//! to `PATH` for the duration of the test. -//! -//! Same pattern for `gh` for the `gh-release` installer paths. -//! -//! All tests in this file mutate `PATH` (global), so they're serialized with -//! `#[serial]`. - -#![cfg(unix)] - -mod common; - -use std::time::Duration; - -use serial_test::serial; - -use common::FakeBinGuard; -use kigi_update::auto_update::install_npm_for_test; -use kigi_update::version::{ - fetch_gh_release_version, fetch_npm_tag_for_test, fetch_npm_version_for_test, -}; - -// ───────────────────────────────────────────────────────────────────────────── -// fetch_npm_tag — reads a single dist-tag from `npm view`. -// ───────────────────────────────────────────────────────────────────────────── - -#[tokio::test] -#[serial] -async fn fetch_npm_tag_returns_string_response() { - let g = FakeBinGuard::install_npm(); - g.set_stdout("\"0.1.181\"\n"); - - let v = fetch_npm_tag_for_test("latest", None).await.unwrap(); - assert_eq!(v, "0.1.181"); -} - -#[tokio::test] -#[serial] -async fn fetch_npm_tag_returns_array_response_picks_last() { - // npm view sometimes returns an array of versions for ambiguous specs. - // The implementation picks the LAST one (rev().find_map). - let g = FakeBinGuard::install_npm(); - g.set_stdout(r#"["0.1.179", "0.1.180", "0.1.181"]"#); - - let v = fetch_npm_tag_for_test("latest", None).await.unwrap(); - assert_eq!(v, "0.1.181"); -} - -#[tokio::test] -#[serial] -async fn fetch_npm_tag_passes_pkg_and_tag_to_npm() { - let g = FakeBinGuard::install_npm(); - g.set_stdout("\"0.1.181\""); - - let _ = fetch_npm_tag_for_test("latest", None).await.unwrap(); - let log = g.args_log(); - assert_eq!(log.len(), 1, "exactly one npm invocation"); - let args = &log[0]; - assert!(args.contains("view"), "args: {args}"); - // For "latest" tag, no `@latest` suffix is appended in pkg_spec. - assert!(args.contains("@xai-official/grok"), "args: {args}"); - assert!(!args.contains("@latest"), "args: {args}"); - assert!(args.contains("--json"), "args: {args}"); -} - -#[tokio::test] -#[serial] -async fn fetch_npm_tag_alpha_appends_at_alpha_suffix() { - let g = FakeBinGuard::install_npm(); - g.set_alpha_stdout("\"0.1.181-alpha.1\""); - - let v = fetch_npm_tag_for_test("alpha", None).await.unwrap(); - assert_eq!(v, "0.1.181-alpha.1"); - - let log = g.args_log(); - assert!( - log[0].contains("@xai-official/grok@alpha"), - "args: {}", - log[0] - ); -} - -#[tokio::test] -#[serial] -async fn fetch_npm_tag_passes_registry_flag_when_set() { - let g = FakeBinGuard::install_npm(); - g.set_stdout("\"0.1.181\""); - - let _ = fetch_npm_tag_for_test("latest", Some("https://npm.example.com")) - .await - .unwrap(); - let log = g.args_log(); - assert!( - log[0].contains("--registry=https://npm.example.com"), - "args: {}", - log[0] - ); -} - -#[tokio::test] -#[serial] -async fn fetch_npm_tag_no_registry_flag_when_unset() { - let g = FakeBinGuard::install_npm(); - g.set_stdout("\"0.1.181\""); - - let _ = fetch_npm_tag_for_test("latest", None).await.unwrap(); - let log = g.args_log(); - assert!(!log[0].contains("--registry"), "args: {}", log[0]); -} - -#[tokio::test] -#[serial] -async fn fetch_npm_tag_propagates_npm_failure() { - let g = FakeBinGuard::install_npm(); - g.set_exit_code(1); - - let err = fetch_npm_tag_for_test("latest", None).await.unwrap_err(); - let msg = format!("{err:#}"); - assert!(msg.contains("npm view"), "msg: {msg}"); - assert!(msg.contains("failed"), "msg: {msg}"); -} - -#[tokio::test] -#[serial] -async fn fetch_npm_tag_invalid_json_returns_err() { - let g = FakeBinGuard::install_npm(); - g.set_stdout("not valid json {"); - - let err = fetch_npm_tag_for_test("latest", None).await.unwrap_err(); - // serde_json should error on this. - let msg = format!("{err:#}"); - assert!(!msg.is_empty()); -} - -#[tokio::test] -#[serial] -async fn fetch_npm_tag_unexpected_json_shape_returns_err() { - // npm view can return null, an object, etc. The function expects string - // or array of strings — anything else is an error. - let g = FakeBinGuard::install_npm(); - g.set_stdout("42"); - - let err = fetch_npm_tag_for_test("latest", None).await.unwrap_err(); - let msg = format!("{err:#}"); - assert!(msg.contains("unexpected JSON"), "msg: {msg}"); -} - -#[tokio::test] -#[serial] -async fn fetch_npm_tag_empty_array_returns_err() { - let g = FakeBinGuard::install_npm(); - g.set_stdout("[]"); - - let err = fetch_npm_tag_for_test("latest", None).await.unwrap_err(); - let msg = format!("{err:#}"); - assert!(msg.contains("empty"), "msg: {msg}"); -} - -// ───────────────────────────────────────────────────────────────────────────── -// fetch_npm_version — alpha channel calls both tags and returns the max. -// ───────────────────────────────────────────────────────────────────────────── - -#[tokio::test] -#[serial] -async fn fetch_npm_version_stable_calls_only_latest() { - let g = FakeBinGuard::install_npm(); - g.set_stdout("\"0.1.181\""); - - let v = fetch_npm_version_for_test("stable", None).await.unwrap(); - assert_eq!(v, "0.1.181"); - assert_eq!(g.args_log().len(), 1, "stable should make one call"); -} - -#[tokio::test] -#[serial] -async fn fetch_npm_version_alpha_returns_max_of_alpha_and_latest_when_alpha_higher() { - let g = FakeBinGuard::install_npm(); - g.set_stdout("\"0.1.181\""); // latest tag → stable - g.set_alpha_stdout("\"0.1.182-alpha.1\""); // alpha tag - - let v = fetch_npm_version_for_test("alpha", None).await.unwrap(); - assert_eq!(v, "0.1.182-alpha.1"); - assert_eq!(g.args_log().len(), 2, "alpha should make two calls"); -} - -#[tokio::test] -#[serial] -async fn fetch_npm_version_alpha_returns_stable_when_higher() { - // Common case: stable shipped after a stale alpha tag — must not strand - // alpha users on the older alpha. - let g = FakeBinGuard::install_npm(); - g.set_stdout("\"0.1.182\""); - g.set_alpha_stdout("\"0.1.181-alpha.1\""); - - let v = fetch_npm_version_for_test("alpha", None).await.unwrap(); - assert_eq!(v, "0.1.182"); -} - -// ───────────────────────────────────────────────────────────────────────────── -// install_npm — spawns `npm i -g @pkg@version`. -// ───────────────────────────────────────────────────────────────────────────── - -#[tokio::test] -#[serial] -async fn install_npm_calls_npm_with_version_arg() { - let g = FakeBinGuard::install_npm(); - // No stdout/exit setup → succeeds with empty stdout. - - install_npm_for_test(Some("0.1.181"), "stable", None).unwrap(); - let log = g.args_log(); - assert_eq!(log.len(), 1, "exactly one npm invocation"); - let args = &log[0]; - assert!(args.contains("i -g"), "args: {args}"); - assert!(args.contains("@xai-official/grok@0.1.181"), "args: {args}"); -} - -#[tokio::test] -#[serial] -async fn install_npm_falls_back_to_dist_tag_on_no_target() { - let g = FakeBinGuard::install_npm(); - - install_npm_for_test(None, "stable", None).unwrap(); - let log = g.args_log(); - assert!( - log[0].contains("@xai-official/grok@latest"), - "stable channel uses @latest dist-tag: {}", - log[0] - ); -} - -#[tokio::test] -#[serial] -async fn install_npm_falls_back_to_alpha_dist_tag_on_alpha_channel() { - let g = FakeBinGuard::install_npm(); - - install_npm_for_test(None, "alpha", None).unwrap(); - let log = g.args_log(); - assert!( - log[0].contains("@xai-official/grok@alpha"), - "alpha channel uses @alpha dist-tag: {}", - log[0] - ); -} - -#[tokio::test] -#[serial] -async fn install_npm_passes_registry_flag_when_set() { - let g = FakeBinGuard::install_npm(); - - install_npm_for_test(Some("0.1.181"), "stable", Some("https://npm.example.com")).unwrap(); - let log = g.args_log(); - assert!( - log[0].contains("--registry=https://npm.example.com"), - "args: {}", - log[0] - ); -} - -#[tokio::test] -#[serial] -async fn install_npm_no_registry_flag_when_unset() { - let g = FakeBinGuard::install_npm(); - - install_npm_for_test(Some("0.1.181"), "stable", None).unwrap(); - let log = g.args_log(); - assert!(!log[0].contains("--registry"), "args: {}", log[0]); -} - -#[tokio::test] -#[serial] -async fn install_npm_returns_err_on_npm_failure() { - let g = FakeBinGuard::install_npm(); - g.set_exit_code(1); - - let err = install_npm_for_test(Some("0.1.181"), "stable", None).unwrap_err(); - let msg = format!("{err:#}"); - assert!(msg.contains("npm install failed"), "msg: {msg}"); -} - -#[tokio::test] -#[serial] -async fn install_npm_with_token_passes_userconfig() { - // SAFETY: serial_test ensures no other thread touches NPM_TOKEN. - unsafe { std::env::set_var("NPM_TOKEN", "secrettoken") }; - let g = FakeBinGuard::install_npm(); - - install_npm_for_test(Some("0.1.181"), "stable", None).unwrap(); - let log = g.args_log(); - assert!( - log[0].contains("--userconfig="), - "with NPM_TOKEN, must pass --userconfig: {}", - log[0] - ); - // The userconfig path should be cleaned up afterwards. - let userconfig_arg = log[0] - .split_whitespace() - .find(|a| a.starts_with("--userconfig=")) - .unwrap() - .trim_start_matches("--userconfig="); - assert!( - !std::path::Path::new(userconfig_arg).exists(), - "userconfig file should be cleaned up: {userconfig_arg}" - ); - unsafe { std::env::remove_var("NPM_TOKEN") }; -} - -#[tokio::test] -#[serial] -async fn install_npm_no_token_no_userconfig() { - unsafe { std::env::remove_var("NPM_TOKEN") }; - let g = FakeBinGuard::install_npm(); - - install_npm_for_test(Some("0.1.181"), "stable", None).unwrap(); - let log = g.args_log(); - assert!(!log[0].contains("--userconfig"), "args: {}", log[0]); -} - -// ───────────────────────────────────────────────────────────────────────────── -// fetch_gh_release_version — exercises the `gh release list` shell-out. -// ───────────────────────────────────────────────────────────────────────────── - -#[tokio::test] -#[serial] -async fn fetch_gh_release_stable_returns_tag_stripped() { - let g = FakeBinGuard::install_gh(); - // For stable channel, only the `--exclude-pre-releases` invocation is made. - g.set_stable_only_stdout("v0.1.181\n"); - - let v = fetch_gh_release_version("stable").await.unwrap(); - assert_eq!(v, "0.1.181"); - - let log = g.args_log(); - assert_eq!(log.len(), 1); - assert!( - log[0].contains("--exclude-pre-releases"), - "args: {}", - log[0] - ); -} - -#[tokio::test] -#[serial] -async fn fetch_gh_release_stable_handles_tag_without_v_prefix() { - let g = FakeBinGuard::install_gh(); - g.set_stable_only_stdout("0.1.181"); - - let v = fetch_gh_release_version("stable").await.unwrap(); - assert_eq!(v, "0.1.181"); -} - -#[tokio::test] -#[serial] -async fn fetch_gh_release_alpha_returns_max_of_pre_and_stable() { - // Alpha channel makes two `gh release list` calls (with and without - // --exclude-pre-releases) and returns the semver-max. - let g = FakeBinGuard::install_gh(); - g.set_with_pre_stdout("v0.1.182-alpha.1"); - g.set_stable_only_stdout("v0.1.181"); - - let v = fetch_gh_release_version("alpha").await.unwrap(); - assert_eq!(v, "0.1.182-alpha.1"); - assert_eq!(g.args_log().len(), 2); -} - -#[tokio::test] -#[serial] -async fn fetch_gh_release_alpha_returns_stable_when_higher() { - let g = FakeBinGuard::install_gh(); - g.set_with_pre_stdout("v0.1.180-alpha.5"); - g.set_stable_only_stdout("v0.1.181"); - - let v = fetch_gh_release_version("alpha").await.unwrap(); - assert_eq!(v, "0.1.181"); -} - -#[tokio::test] -#[serial] -async fn fetch_gh_release_propagates_gh_failure() { - let g = FakeBinGuard::install_gh(); - g.set_exit_code(1); - - let err = fetch_gh_release_version("stable").await.unwrap_err(); - let msg = format!("{err:#}"); - assert!(msg.contains("gh release list"), "msg: {msg}"); - assert!(msg.contains("failed"), "msg: {msg}"); -} - -#[tokio::test] -#[serial] -async fn fetch_gh_release_empty_response_returns_err() { - let g = FakeBinGuard::install_gh(); - g.set_stable_only_stdout(""); - - let err = fetch_gh_release_version("stable").await.unwrap_err(); - let msg = format!("{err:#}"); - assert!(msg.contains("No releases found"), "msg: {msg}"); -} - -#[tokio::test] -#[serial] -async fn fetch_gh_release_passes_repo_flag() { - let g = FakeBinGuard::install_gh(); - g.set_stable_only_stdout("v0.1.181"); - - let _ = fetch_gh_release_version("stable").await.unwrap(); - let log = g.args_log(); - assert!(log[0].contains("--repo"), "args: {}", log[0]); - assert!( - log[0].contains("xai-org-shared/grok-build"), - "args: {}", - log[0] - ); -} - -#[tokio::test] -#[serial] -async fn fetch_gh_release_uses_jq_to_extract_tag() { - // The function constructs `gh release list --json tagName --jq '.[0].tagName'` - // — we verify the args include the jq filter so a refactor doesn't accidentally - // drop it. - let g = FakeBinGuard::install_gh(); - g.set_stable_only_stdout("v0.1.181"); - - let _ = fetch_gh_release_version("stable").await.unwrap(); - let log = g.args_log(); - assert!(log[0].contains("--json"), "args: {}", log[0]); - assert!(log[0].contains("--jq"), "args: {}", log[0]); -} - -#[tokio::test] -#[serial] -async fn fetch_gh_release_does_not_hang_on_quick_responses() { - // Sanity: every call should return well under our test timeout. - let g = FakeBinGuard::install_gh(); - g.set_stable_only_stdout("v0.1.181"); - - let res = - tokio::time::timeout(Duration::from_secs(5), fetch_gh_release_version("stable")).await; - assert!(res.is_ok(), "should not hang"); -} diff --git a/crates/codegen/kigi-update/tests/test_concurrent_convergence.rs b/crates/codegen/kigi-update/tests/test_update_flows.rs similarity index 61% rename from crates/codegen/kigi-update/tests/test_concurrent_convergence.rs rename to crates/codegen/kigi-update/tests/test_update_flows.rs index 1c13f6e..e45f31c 100644 --- a/crates/codegen/kigi-update/tests/test_concurrent_convergence.rs +++ b/crates/codegen/kigi-update/tests/test_update_flows.rs @@ -1,32 +1,21 @@ -//! End-to-end tests for the lock-free concurrent-updater convergence model -//! (the "double download" fix): updaters key staleness off the on-disk -//! install, so a binary another process already installed is never -//! downloaded again — and the accepted same-instant residual race is -//! genuinely harmless thanks to per-attempt download temp names. +//! End-to-end tests for the production update flows (`check_update_status`, +//! `ensure_latest_on_disk`, `run_update`, `run_update_if_available`) against +//! a GitHub-Releases-shaped [`common::artifact_server::ArtifactServer`], +//! injected via the `KIGI_UPDATE_BASE_URL` override that +//! `kigi_env::update_base_url()` honors. //! -//! Production has three independent downloader paths that can race around a -//! release: +//! Three invariant families: //! -//! 1. TUI startup: `check_update_background` spawns a detached `grok update` -//! (the Ctrl+U path now adopts this child instead of spawning a second). -//! 2. Explicit `grok update` (incl. the Ctrl+U fallback when there is no -//! live child). -//! 3. Leader mode: the hourly checker runs `ensure_latest_on_disk` -//! in-process. +//! 1. **Convergence**: a binary already on disk (installed by another +//! process) is never downloaded a second time, but stale runners still +//! get the relaunch/report signal. +//! 2. **Status**: `kigi update --check` reports upgrades only, surfaces +//! fetch errors in the `error` field, and never advertises downgrades. +//! 3. **Race integrity**: concurrent installers — even for different +//! versions — never leave a corrupt active binary. //! -//! Two layers are exercised here: -//! -//! - **Convergence** (`ensure_latest_on_disk`, `run_update`): a sequential -//! updater finds the target already on disk and skips the download. The -//! artifact server / fake `gh` count downloads so the skip is asserted, -//! not assumed. -//! - **Race integrity** (`install_internal_from_base` run concurrently): the -//! same-instant race is accepted as rare; these tests pin the property -//! that makes it acceptable — concurrent installs (same or *different* -//! versions) never corrupt the active binary. Before the per-attempt -//! temp-name fix, every `0.1.x` download shared one `grok-0.1.tmp` -//! (`with_extension("tmp")` eats everything after the last dot), so racer -//! A could atomically rename racer B's half-written file into place. +//! Everything here is `#[serial]`: KIGI_SHARE_DIR, KIGI_UPDATE_BASE_URL and +//! KIGI_TEST_VERSION are process-global. #![cfg(unix)] @@ -39,12 +28,35 @@ use serial_test::serial; use common::artifact_server::ArtifactServer; use common::{ - FakeBinGuard, can_exec_shell_scripts, host_platform, make_update_config, reset_home, - set_test_version, small_good_artifact, test_home, + can_exec_shell_scripts, host_platform, make_update_config, reset_home, set_test_version, + set_update_base, small_good_artifact, test_home, +}; +use kigi_update::auto_update::{ + UpdateRunMode, check_update_status, ensure_latest_on_disk, install_internal_from_base, + run_update, run_update_if_available, }; -use kigi_update::auto_update::{ensure_latest_on_disk, install_internal_from_base, run_update}; use kigi_update::version::installed_on_disk_version; +/// Lay down a managed-install layout in the test KIGI_SHARE_DIR: +/// `bin/kigi -> ../downloads/kigi--` (what the installer +/// produces; the canonical link the disk-version probe reads). +fn fake_managed_install(version: &str) { + let home = test_home(); + let downloads = home.join("downloads"); + let bin = home.join("bin"); + std::fs::create_dir_all(&downloads).unwrap(); + std::fs::create_dir_all(&bin).unwrap(); + let name = format!("kigi-{version}-{}", host_platform()); + std::fs::write(downloads.join(&name), small_good_artifact()).unwrap(); + std::fs::set_permissions( + downloads.join(&name), + std::fs::Permissions::from_mode(0o755), + ) + .unwrap(); + let _ = std::fs::remove_file(bin.join("kigi")); + std::os::unix::fs::symlink(Path::new("../downloads").join(&name), bin.join("kigi")).unwrap(); +} + /// Assert the active `~/.kigi/bin/kigi` resolves to the expected versioned /// binary, actually runs, and has exactly the expected content (the content /// check is what catches a cross-racer temp-file corruption). @@ -55,8 +67,8 @@ fn assert_active_binary(home: &Path, version: &str, platform: &str, expected_con .unwrap_or_else(|e| panic!("active kigi symlink does not resolve: {e}")); assert_eq!( resolved.file_name().unwrap().to_string_lossy(), - format!("grok-{version}-{platform}"), - "active grok must be the expected version" + format!("kigi-{version}-{platform}"), + "active kigi must be the expected version" ); assert_eq!( std::fs::read(&resolved).unwrap(), @@ -72,88 +84,20 @@ fn assert_active_binary(home: &Path, version: &str, platform: &str, expected_con .status() .map(|s| s.success()) .unwrap_or(false); - assert!(ran_ok, "active grok must pass the smoke-test"); + assert!(ran_ok, "active kigi must pass the smoke-test"); } -/// Lay down a managed-install layout in the test KIGI_SHARE_DIR: -/// `bin/{kigi,grok,agent} -> ../downloads/grok--` (what -/// `install_internal_from_base` produces; `kigi` is the canonical link the -/// disk-version probe reads, `grok` the legacy compat link). -fn fake_managed_install(version: &str) { - let home = test_home(); - let downloads = home.join("downloads"); - let bin = home.join("bin"); - std::fs::create_dir_all(&downloads).unwrap(); - std::fs::create_dir_all(&bin).unwrap(); - let name = format!("grok-{version}-{}", host_platform()); - std::fs::write(downloads.join(&name), small_good_artifact()).unwrap(); - std::fs::set_permissions( - downloads.join(&name), - std::fs::Permissions::from_mode(0o755), - ) - .unwrap(); - for link in ["kigi", "grok", "agent"] { - std::os::unix::fs::symlink( - std::path::Path::new("../downloads").join(&name), - bin.join(link), - ) - .unwrap(); - } -} - -/// Fake `gh` that logs argv to `/gh-args.log`, answers -/// `release list --exclude-pre-releases` from `/gh-stable-only-stdout`, -/// and for `release download ... --output ` writes a smoke-passing -/// artifact to the output path. -fn fake_gh_serving_releases(dir: &std::path::Path) -> String { - let dq = format!("'{}'", dir.to_string_lossy().replace('\'', "'\\''")); - format!( - r#"#!/bin/sh -echo "$@" >> {dq}/gh-args.log -case "$*" in - *"release list"*) - if [ -f {dq}/gh-stable-only-stdout ]; then cat {dq}/gh-stable-only-stdout; fi - ;; - *"release download"*) - out="" - prev="" - for a in "$@"; do - if [ "$prev" = "--output" ]; then out="$a"; fi - prev="$a" - done - if [ -n "$out" ]; then - printf '#!/bin/sh\nexit 0\n' > "$out" - chmod +x "$out" - fi - ;; -esac -exit 0 -"# - ) -} - -/// Count `release download` invocations in the fake gh's argv log. -fn gh_download_count(g: &FakeBinGuard) -> usize { - g.args_log() - .iter() - .filter(|l| l.contains("release download")) - .count() -} - -fn setup_gh_release(running_version: &str) -> FakeBinGuard { +fn setup(server: &ArtifactServer, latest: &str, running: &str) { let _ = test_home(); reset_home(); - set_test_version(running_version); - // SAFETY: serial_test ensures no race; reset_home clears this between tests. - unsafe { std::env::set_var("KIGI_INSTALLER", "gh-release") }; - FakeBinGuard::install("gh", fake_gh_serving_releases) + server.set_latest(latest); + set_update_base(&server.base()); + set_test_version(running); } // ───────────────────────────────────────────────────────────────────────────── // Convergence: ensure_latest_on_disk downloads once, then every subsequent // pass (the leader's hourly re-entry) converges without re-downloading. -// This is the e2e companion to the decision-level tests in -// test_downgrade_matrix.rs — it asserts on actual download invocations. // ───────────────────────────────────────────────────────────────────────────── #[tokio::test] @@ -163,15 +107,15 @@ async fn ensure_latest_downloads_once_then_converges_without_redownload() { eprintln!("skipping: shell scripts cannot execute in this sandbox"); return; } - let g = setup_gh_release("0.2.5"); - g.set_stable_only_stdout("v0.2.7\n"); + let server = ArtifactServer::start(small_good_artifact()); + setup(&server, "0.2.7", "0.2.5"); let cfg = make_update_config("stable"); // Pass 1: disk is empty → downloads and installs. let first = ensure_latest_on_disk(&cfg).await.unwrap(); assert_eq!(first.installed.as_deref(), Some("0.2.7")); assert!(first.relaunch_needed, "running 0.2.5 < disk 0.2.7"); - assert_eq!(gh_download_count(&g), 1, "first pass downloads"); + assert_eq!(server.request_count(), 1, "first pass downloads"); assert_eq!(installed_on_disk_version().as_deref(), Some("0.2.7")); // Pass 2 (the pre-fix hourly re-download): disk already current → @@ -181,18 +125,12 @@ async fn ensure_latest_downloads_once_then_converges_without_redownload() { assert_eq!(second.installed, None, "second pass must not re-download"); assert!(second.relaunch_needed, "still running 0.2.5 < disk 0.2.7"); assert_eq!( - gh_download_count(&g), + server.request_count(), 1, "hourly re-entry must not download again" ); } -// ───────────────────────────────────────────────────────────────────────────── -// Convergence: explicit `grok update` (the Ctrl+U fallback path) finds the -// binary another process already installed and skips the download — while -// still returning the target version so stale leaders get signalled. -// ───────────────────────────────────────────────────────────────────────────── - #[tokio::test] #[serial] async fn run_update_skips_download_when_disk_already_current() { @@ -200,8 +138,8 @@ async fn run_update_skips_download_when_disk_already_current() { eprintln!("skipping: shell scripts cannot execute in this sandbox"); return; } - let g = setup_gh_release("0.2.5"); - g.set_stable_only_stdout("v0.2.7\n"); + let server = ArtifactServer::start(small_good_artifact()); + setup(&server, "0.2.7", "0.2.5"); // Another process (TUI background download) already installed 0.2.7. fake_managed_install("0.2.7"); let mut cfg = make_update_config("stable"); @@ -215,7 +153,7 @@ async fn run_update_skips_download_when_disk_already_current() { signals stale leaders to relaunch" ); assert_eq!( - gh_download_count(&g), + server.request_count(), 0, "a binary someone else installed must not be downloaded again" ); @@ -228,8 +166,8 @@ async fn run_update_force_still_redownloads_when_disk_current() { eprintln!("skipping: shell scripts cannot execute in this sandbox"); return; } - let g = setup_gh_release("0.2.7"); - g.set_stable_only_stdout("v0.2.7\n"); + let server = ArtifactServer::start(small_good_artifact()); + setup(&server, "0.2.7", "0.2.7"); fake_managed_install("0.2.7"); let mut cfg = make_update_config("stable"); @@ -237,88 +175,41 @@ async fn run_update_force_still_redownloads_when_disk_current() { assert_eq!(result.as_deref(), Some("0.2.7")); assert_eq!( - gh_download_count(&g), + server.request_count(), 1, "--force must bypass the disk-current skip and reinstall" ); } -// ───────────────────────────────────────────────────────────────────────────── -// Installer gating: the disk-version probe must only be trusted for -// installers that actually maintain the managed `~/.kigi/bin/grok` symlink -// (internal, gh-release). For npm, a symlink left over from a previous -// internal install LIES about the npm install's version — and in the worst -// direction (leftover "newer" than the registry) it would silently suppress -// npm updates forever. -// ───────────────────────────────────────────────────────────────────────────── - -fn setup_npm(running_version: &str) -> FakeBinGuard { - let _ = test_home(); - reset_home(); - set_test_version(running_version); - // SAFETY: serial_test ensures no race; reset_home clears this between tests. - unsafe { std::env::set_var("KIGI_INSTALLER", "npm") }; - FakeBinGuard::install_npm() -} - #[tokio::test] #[serial] -async fn npm_update_not_suppressed_by_leftover_newer_internal_symlink() { +async fn run_update_rolls_back_when_latest_moved_backwards() { + // Release rollback: the latest release points BELOW the on-disk install + // (a bad release was deleted). The internal installer is authoritative, + // so run_update must converge the disk down to it. if !can_exec_shell_scripts() { eprintln!("skipping: shell scripts cannot execute in this sandbox"); return; } - let g = setup_npm("0.2.5"); - g.set_stdout("\"0.2.7\"\n"); - // Leftover symlink from a previous internal install, claiming to be - // NEWER than the npm registry. It says nothing about the npm-managed - // global install and must be ignored for npm staleness decisions. - fake_managed_install("0.2.9"); + let server = ArtifactServer::start(small_good_artifact()); + setup(&server, "0.2.5", "0.2.7"); + fake_managed_install("0.2.7"); let mut cfg = make_update_config("stable"); let result = run_update(false, None, None, &mut cfg).await.unwrap(); assert_eq!( result.as_deref(), - Some("0.2.7"), - "npm update must proceed despite the lying leftover symlink" - ); - assert!( - g.args_log().iter().any(|l| l.contains("i -g")), - "npm install must actually run: {:?}", - g.args_log() + Some("0.2.5"), + "rollback target installed" ); + assert_eq!(installed_on_disk_version().as_deref(), Some("0.2.5")); + assert_eq!(server.request_count(), 1); } -#[tokio::test] -#[serial] -async fn ensure_latest_npm_ignores_leftover_internal_symlink() { - if !can_exec_shell_scripts() { - eprintln!("skipping: shell scripts cannot execute in this sandbox"); - return; - } - let g = setup_npm("0.2.5"); - g.set_stdout("\"0.2.7\"\n"); - fake_managed_install("0.2.9"); - let cfg = make_update_config("stable"); - - let outcome = ensure_latest_on_disk(&cfg).await.unwrap(); - - assert_eq!( - outcome.installed.as_deref(), - Some("0.2.7"), - "npm leader pass must install despite the lying leftover symlink" - ); - assert!( - outcome.relaunch_needed, - "running 0.2.5 < freshly installed 0.2.7" - ); - assert!( - g.args_log().iter().any(|l| l.contains("i -g")), - "npm install must actually run: {:?}", - g.args_log() - ); -} +// ───────────────────────────────────────────────────────────────────────────── +// Disk-version probe +// ───────────────────────────────────────────────────────────────────────────── #[tokio::test] #[serial] @@ -349,7 +240,7 @@ async fn disk_probe_rejects_dangling_symlink() { std::fs::remove_file( home.join("downloads") - .join(format!("grok-0.2.7-{platform}")), + .join(format!("kigi-0.2.7-{platform}")), ) .unwrap(); @@ -370,14 +261,14 @@ async fn ensure_latest_repairs_dangling_symlink_by_downloading() { // Dangling symlink + stale running process: the probe returns None, so // the decision falls back to the running version and the download runs, // repairing the install instead of wedging on "already up to date". - let g = setup_gh_release("0.2.5"); - g.set_stable_only_stdout("v0.2.7\n"); + let server = ArtifactServer::start(small_good_artifact()); + setup(&server, "0.2.7", "0.2.5"); let home = test_home(); let platform = host_platform(); fake_managed_install("0.2.7"); std::fs::remove_file( home.join("downloads") - .join(format!("grok-0.2.7-{platform}")), + .join(format!("kigi-0.2.7-{platform}")), ) .unwrap(); let cfg = make_update_config("stable"); @@ -389,7 +280,7 @@ async fn ensure_latest_repairs_dangling_symlink_by_downloading() { Some("0.2.7"), "dangling symlink must be repaired by an actual download" ); - assert_eq!(gh_download_count(&g), 1); + assert_eq!(server.request_count(), 1); assert_eq!( installed_on_disk_version().as_deref(), Some("0.2.7"), @@ -397,19 +288,128 @@ async fn ensure_latest_repairs_dangling_symlink_by_downloading() { ); } +// ───────────────────────────────────────────────────────────────────────────── +// check_update_status (`kigi update --check`) +// ───────────────────────────────────────────────────────────────────────────── + +#[tokio::test] +#[serial] +async fn check_status_reports_update_when_release_is_newer() { + let server = ArtifactServer::start(small_good_artifact()); + setup(&server, "0.2.7", "0.2.5"); + let cfg = make_update_config("stable"); + + let status = check_update_status(&cfg).await; + + assert_eq!(status.current_version, "0.2.5"); + assert_eq!(status.latest_version.as_deref(), Some("0.2.7")); + assert!(status.update_available); + assert_eq!(status.installer.as_deref(), Some("internal")); + assert_eq!(status.error, None); +} + +#[tokio::test] +#[serial] +async fn check_status_never_reports_downgrade_as_update() { + // --check reports upgrades only; a rolled-back release is not advertised + // (auto-update converges separately). + let server = ArtifactServer::start(small_good_artifact()); + setup(&server, "0.2.5", "0.2.7"); + let cfg = make_update_config("stable"); + + let status = check_update_status(&cfg).await; + + assert_eq!(status.latest_version.as_deref(), Some("0.2.5")); + assert!(!status.update_available, "downgrade must not be advertised"); + assert_eq!(status.error, None); +} + +#[tokio::test] +#[serial] +async fn check_status_surfaces_fetch_error_in_error_field() { + // Point the updater at a dead endpoint (bound then dropped port → + // connection refused). The status must carry the error rather than + // pretending "up to date". + let _ = test_home(); + reset_home(); + let listener = std::net::TcpListener::bind("127.0.0.1:0").unwrap(); + let port = listener.local_addr().unwrap().port(); + drop(listener); + set_update_base(&format!("http://127.0.0.1:{port}/releases")); + set_test_version("0.2.5"); + let cfg = make_update_config("stable"); + + let status = check_update_status(&cfg).await; + + assert!(!status.update_available); + assert_eq!(status.latest_version, None); + let err = status.error.as_deref().expect("error must be surfaced"); + assert!(!err.is_empty()); + + // And it serializes into the --json contract. + let v = serde_json::to_value(&status).unwrap(); + assert!(v["error"].is_string()); + assert_eq!(v["updateAvailable"], false); +} + +#[tokio::test] +#[serial] +async fn check_status_unsupported_channel_reports_error() { + let server = ArtifactServer::start(small_good_artifact()); + setup(&server, "0.2.7", "0.2.5"); + let cfg = make_update_config("beta"); + + let status = check_update_status(&cfg).await; + + assert!(!status.update_available); + let err = status.error.as_deref().expect("channel error surfaced"); + assert!( + err.contains("Unsupported release channel 'beta'"), + "err: {err}" + ); +} + +// ───────────────────────────────────────────────────────────────────────────── +// run_update_if_available — the auto-update opt-out gate. +// ───────────────────────────────────────────────────────────────────────────── + +#[tokio::test] +#[serial] +async fn run_update_if_available_respects_auto_update_false() { + // With cli.auto_update = false persisted, the startup check must return + // without ever touching the network (the update base points at a dead + // port — any fetch would error, any download would install). + let _ = test_home(); + reset_home(); + std::fs::write( + test_home().join("config.toml"), + "[cli]\nauto_update = false\n", + ) + .unwrap(); + let listener = std::net::TcpListener::bind("127.0.0.1:0").unwrap(); + let port = listener.local_addr().unwrap().port(); + drop(listener); + set_update_base(&format!("http://127.0.0.1:{port}/releases")); + set_test_version("0.1.0"); + let cfg = make_update_config("stable"); + + let ran = run_update_if_available(UpdateRunMode::Blocking, false, &cfg) + .await + .unwrap(); + assert!(!ran, "auto_update=false must suppress the update entirely"); +} + // ───────────────────────────────────────────────────────────────────────────── // Race integrity: the accepted same-instant race must stay harmless. Two (or // three) installers running concurrently — even for DIFFERENT versions — -// must never leave a corrupt active binary. Pre-fix, all 0.1.x downloads -// shared one `grok-0.1.tmp`, so a concurrent racer could atomically rename a -// half-written file into place. +// must never leave a corrupt active binary. // ───────────────────────────────────────────────────────────────────────────── async fn run_concurrent_installs( server: &ArtifactServer, versions: &[&str], ) -> Vec> { - let base = server.uri(); + let base = server.base(); let mut tasks = Vec::new(); for version in versions { let base = base.clone(); @@ -466,9 +466,6 @@ async fn concurrent_different_version_installs_do_not_corrupt_each_other() { let server = ArtifactServer::start(artifact.clone()); server.set_slow(true); - // Pre-fix, BOTH of these wrote to downloads/grok-0.1.tmp concurrently - // (with_extension("tmp") truncates at the last dot), so one racer could - // rename the other's partial file into its own versioned path. let results = run_concurrent_installs(&server, &["0.1.181", "0.1.182"]).await; for r in results { r.expect("both racing installs must succeed"); @@ -478,7 +475,7 @@ async fn concurrent_different_version_installs_do_not_corrupt_each_other() { for version in ["0.1.181", "0.1.182"] { let path = home .join("downloads") - .join(format!("grok-{version}-{platform}")); + .join(format!("kigi-{version}-{platform}")); assert_eq!( std::fs::read(&path).unwrap(), artifact, @@ -488,17 +485,18 @@ async fn concurrent_different_version_installs_do_not_corrupt_each_other() { // The active symlink points at whichever racer swapped last; it must // resolve and run regardless. - let resolved = dunce::canonicalize(home.join("bin").join("grok")).unwrap(); + let resolved = dunce::canonicalize(home.join("bin").join("kigi")).unwrap(); assert_eq!(std::fs::read(&resolved).unwrap(), artifact); let name = resolved.file_name().unwrap().to_string_lossy().to_string(); assert!( !name.contains(".tmp"), - "active grok must never be a temp file: {name}" + "active kigi must never be a temp file: {name}" ); - // No stray shared temp file left behind (the pre-fix collision name). + // No stray shared temp file left behind (a with_extension-style + // collision name). assert!( - !home.join("downloads").join("grok-0.1.tmp").exists(), - "the pre-fix shared temp name must not exist" + !home.join("downloads").join("kigi-0.1.tmp").exists(), + "the shared-temp-name collision must not exist" ); } diff --git a/docs/RELEASE.md b/docs/RELEASE.md new file mode 100644 index 0000000..90eb8ee --- /dev/null +++ b/docs/RELEASE.md @@ -0,0 +1,58 @@ +# Release checklist (PRD F8) + +Kigi ships as a single-file binary for five targets, published on this +repo's GitHub Releases by `.github/workflows/release.yml`. Users install via +`install.sh` / `install.ps1` and stay current through the in-app +self-updater (`kigi-update`), which resolves the same Releases API. + +## Cutting a release + +1. Bump `[workspace.package] version` in `Cargo.toml`; land the change on + `main` with green CI. +2. Regenerate the third-party notices (not enforced by CI — this is the + step that keeps `THIRD-PARTY-NOTICES.md` fresh): + + ```sh + cargo install cargo-about --locked # once + cargo about generate about.hbs -o THIRD-PARTY-NOTICES.md + ``` + + Commit the result if it changed. +3. Tag and push: + + ```sh + git tag vX.Y.Z && git push origin vX.Y.Z + ``` + + The tag must equal the workspace version (`vX.Y.Z` ↔ `X.Y.Z`); the + workflow fails fast on a mismatch. +4. The `Release` workflow builds all five targets with the hardened + `release-dist` profile, packages + `kigi--.{tar.gz|zip}` archives (binary + + LICENSE + NOTICE + THIRD-PARTY-NOTICES), generates `SHA256SUMS`, and + publishes the GitHub Release. Tags containing `-` (e.g. + `v0.2.0-alpha.1`) publish as pre-releases, which only the `alpha` + update channel picks up. +5. Smoke-test an installed artifact: + + ```sh + curl -fsSL https://raw.githubusercontent.com/ZacharyZhang-NY/Kigi-CLI/main/install.sh | sh + ~/.kigi/bin/kigi --version + ``` + +## Invariants to keep in lockstep + +- Asset naming `kigi--.{tar.gz|zip}` and the + `SHA256SUMS` manifest are consumed by three clients: `install.sh`, + `install.ps1`, and `auto_update::release_asset_name()` in + `crates/codegen/kigi-update`. Change one, change all (the kigi-update + test `test_release_asset_name_matches_release_workflow_naming` pins the + Rust side). +- Never publish two builds of the same semver version differing only in + build metadata (`+…`) — the `semver` crate orders build metadata, so + auto-update would bounce users between them. +- Rollbacks: deleting the bad release (or re-pointing "latest") is enough — + the internal installer treats the Releases API as authoritative and + downgrades clients on its own. +- No PyPI/npm packages, ever; in particular never squat the `kimi-cli` + package name (PRD F8). diff --git a/install.ps1 b/install.ps1 new file mode 100644 index 0000000..5d78059 --- /dev/null +++ b/install.ps1 @@ -0,0 +1,149 @@ +# Kigi installer (Windows x86_64) — PRD F8. +# +# Downloads the x86_64-pc-windows-msvc artifact from this repo's GitHub +# Releases, verifies its SHA-256 against the release's SHA256SUMS manifest, +# and installs the binary as %USERPROFILE%\.kigi\bin\kigi.exe. +# +# Usage: +# irm https://raw.githubusercontent.com/ZacharyZhang-NY/Kigi-CLI/main/install.ps1 | iex +# powershell -ExecutionPolicy Bypass -File install.ps1 -Version v0.1.0 +# +# Environment: +# KIGI_SHARE_DIR install root (default: %USERPROFILE%\.kigi) +# KIGI_UPDATE_BASE_URL GitHub-Releases-shaped API base (default: +# https://api.github.com/repos/ZacharyZhang-NY/Kigi-CLI/releases) + +[CmdletBinding()] +param( + [string]$Version = "" +) + +$ErrorActionPreference = "Stop" +Set-StrictMode -Version Latest + +function Fail([string]$Message) { + Write-Error "install.ps1: error: $Message" + exit 1 +} + +$Repo = "ZacharyZhang-NY/Kigi-CLI" +$ApiBase = if ($env:KIGI_UPDATE_BASE_URL) { $env:KIGI_UPDATE_BASE_URL } else { "https://api.github.com/repos/$Repo/releases" } +$KigiHome = if ($env:KIGI_SHARE_DIR) { $env:KIGI_SHARE_DIR } else { Join-Path $env:USERPROFILE ".kigi" } +$Triple = "x86_64-pc-windows-msvc" + +# ── Platform gate ──────────────────────────────────────────────────────────── +if (-not [System.Environment]::Is64BitOperatingSystem) { + Fail "kigi requires 64-bit Windows (x86_64)" +} +$arch = $env:PROCESSOR_ARCHITECTURE +if ($arch -ne "AMD64") { + Fail "unsupported architecture '$arch' (only x86_64/AMD64 Windows builds are published)" +} + +# ── Version argument ───────────────────────────────────────────────────────── +$Version = $Version.TrimStart("v") +if ($Version -and $Version -notmatch '^\d+\.\d+\.\d+([-.][0-9A-Za-z.-]+)?$') { + Fail "invalid version '$Version' (expected X.Y.Z or vX.Y.Z)" +} + +# TLS 1.2 for older PowerShell 5.1 defaults. +[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12 + +$Headers = @{ "User-Agent" = "kigi-install"; "Accept" = "application/vnd.github+json" } + +# ── Resolve the release ────────────────────────────────────────────────────── +$ReleaseUrl = if ($Version) { "$ApiBase/tags/v$Version" } else { "$ApiBase/latest" } +Write-Host "Resolving release from $ReleaseUrl" +try { + $Release = Invoke-RestMethod -Uri $ReleaseUrl -Headers $Headers +} catch { + Fail "could not fetch release metadata from ${ReleaseUrl}: $($_.Exception.Message)" +} + +$Tag = [string]$Release.tag_name +if (-not $Tag) { Fail "release metadata has no tag_name (endpoint: $ReleaseUrl)" } +$ResolvedVersion = $Tag.TrimStart("v") +if ($Version -and $ResolvedVersion -ne $Version) { + Fail "requested version $Version but release tag is $Tag" +} + +$Asset = "kigi-$ResolvedVersion-$Triple.zip" +$ArchiveAsset = $Release.assets | Where-Object { $_.name -eq $Asset } | Select-Object -First 1 +$SumsAsset = $Release.assets | Where-Object { $_.name -eq "SHA256SUMS" } | Select-Object -First 1 +if (-not $ArchiveAsset) { Fail "release $Tag has no asset $Asset" } +if (-not $SumsAsset) { Fail "release $Tag has no SHA256SUMS asset; refusing to install unverified binaries" } + +# ── Download + verify ──────────────────────────────────────────────────────── +$TmpDir = Join-Path ([System.IO.Path]::GetTempPath()) ("kigi-install-" + [System.IO.Path]::GetRandomFileName()) +New-Item -ItemType Directory -Path $TmpDir -Force | Out-Null +try { + $ArchivePath = Join-Path $TmpDir $Asset + $SumsPath = Join-Path $TmpDir "SHA256SUMS" + + Write-Host "Downloading kigi v$ResolvedVersion ($Triple)..." + Invoke-WebRequest -Uri $ArchiveAsset.browser_download_url -Headers $Headers -OutFile $ArchivePath + Invoke-WebRequest -Uri $SumsAsset.browser_download_url -Headers $Headers -OutFile $SumsPath + + $Expected = $null + foreach ($line in Get-Content $SumsPath) { + $parts = $line.Trim() -split '\s+', 2 + if ($parts.Count -eq 2 -and $parts[1].TrimStart('*') -eq $Asset) { + $Expected = $parts[0].ToLowerInvariant() + } + } + if (-not $Expected) { Fail "SHA256SUMS has no entry for $Asset" } + + $Actual = (Get-FileHash -Algorithm SHA256 -Path $ArchivePath).Hash.ToLowerInvariant() + if ($Actual -ne $Expected) { + Fail "SHA256 mismatch for ${Asset}: expected $Expected, got $Actual" + } + Write-Host "Checksum verified." + + # ── Extract + install ──────────────────────────────────────────────────── + $ExtractDir = Join-Path $TmpDir "extracted" + Expand-Archive -Path $ArchivePath -DestinationPath $ExtractDir -Force + $Binary = Get-ChildItem -Path $ExtractDir -Recurse -Filter "kigi.exe" | Select-Object -First 1 + if (-not $Binary) { Fail "archive $Asset does not contain kigi.exe" } + + $BinDir = Join-Path $KigiHome "bin" + New-Item -ItemType Directory -Path $BinDir -Force | Out-Null + $Dest = Join-Path $BinDir "kigi.exe" + + # A running kigi.exe blocks writes but allows renames — move it aside + # first (mirrors the self-updater's windows_replace_exe strategy). + if (Test-Path $Dest) { + $Aside = "$Dest.old" + Remove-Item -Path $Aside -Force -ErrorAction SilentlyContinue + try { + Move-Item -Path $Dest -Destination $Aside -Force + } catch { + Fail "cannot replace $Dest (close all running kigi sessions and retry): $($_.Exception.Message)" + } + } + Move-Item -Path $Binary.FullName -Destination $Dest -Force + + # Smoke-test the installed binary. + & $Dest --version *> $null + if ($LASTEXITCODE -ne 0) { + Fail "installed binary failed to run (exit $LASTEXITCODE)" + } + + Write-Host "" + Write-Host "kigi v$ResolvedVersion installed to $Dest" + + $UserPath = [Environment]::GetEnvironmentVariable("Path", "User") + $OnPath = ($UserPath -split ";" | Where-Object { $_ -eq $BinDir }).Count -gt 0 -or + ($env:Path -split ";" | Where-Object { $_ -eq $BinDir }).Count -gt 0 + if (-not $OnPath) { + Write-Host "" + Write-Host "$BinDir is not on your PATH. Add it for the current user with:" + Write-Host "" + Write-Host " [Environment]::SetEnvironmentVariable('Path', `"$BinDir;`" + [Environment]::GetEnvironmentVariable('Path', 'User'), 'User')" + Write-Host "" + Write-Host "Then open a new terminal and run 'kigi' to get started." + } else { + Write-Host "Run 'kigi' to get started." + } +} finally { + Remove-Item -Path $TmpDir -Recurse -Force -ErrorAction SilentlyContinue +} diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..ad83690 --- /dev/null +++ b/install.sh @@ -0,0 +1,199 @@ +#!/bin/sh +# +# Kigi installer (macOS / Linux) — PRD F8. +# +# Downloads the matching platform artifact from this repo's GitHub Releases, +# verifies its SHA-256 against the release's SHA256SUMS manifest, and installs +# the binary as ~/.kigi/bin/kigi (the same managed layout the self-updater +# maintains: versioned binary in ~/.kigi/downloads/, atomic symlink in bin/). +# +# Usage: +# curl -fsSL https://raw.githubusercontent.com/ZacharyZhang-NY/Kigi-CLI/main/install.sh | sh +# sh install.sh --version v0.1.0 # pin a specific release +# +# Environment: +# KIGI_SHARE_DIR install root (default: ~/.kigi) +# KIGI_UPDATE_BASE_URL GitHub-Releases-shaped API base (default: +# https://api.github.com/repos/ZacharyZhang-NY/Kigi-CLI/releases) +# +# Fails fast on any error; never leaves a partial binary as the active kigi. + +set -eu + +REPO="ZacharyZhang-NY/Kigi-CLI" +API_BASE="${KIGI_UPDATE_BASE_URL:-https://api.github.com/repos/${REPO}/releases}" +KIGI_HOME="${KIGI_SHARE_DIR:-$HOME/.kigi}" + +err() { + printf 'install.sh: error: %s\n' "$*" >&2 + exit 1 +} + +usage() { + sed -n '2,20p' "$0" 2>/dev/null | sed 's/^# \{0,1\}//' +} + +# ── Arguments ──────────────────────────────────────────────────────────────── +VERSION="" +while [ $# -gt 0 ]; do + case "$1" in + --version) + [ $# -ge 2 ] || err "--version requires an argument (e.g. --version v0.1.0)" + VERSION="$2" + shift + ;; + --version=*) + VERSION="${1#--version=}" + ;; + -h|--help) + usage + exit 0 + ;; + *) + err "unknown argument: $1 (supported: --version vX.Y.Z)" + ;; + esac + shift +done +VERSION="${VERSION#v}" +if [ -n "$VERSION" ]; then + case "$VERSION" in + [0-9]*.[0-9]*.[0-9]*) ;; + *) err "invalid version '$VERSION' (expected X.Y.Z or vX.Y.Z)" ;; + esac +fi + +# ── Platform detection ─────────────────────────────────────────────────────── +OS="$(uname -s)" +ARCH="$(uname -m)" +case "$OS" in + Darwin) + PLATFORM_OS="macos" + case "$ARCH" in + arm64|aarch64) TRIPLE="aarch64-apple-darwin"; PLATFORM_ARCH="aarch64" ;; + x86_64) TRIPLE="x86_64-apple-darwin"; PLATFORM_ARCH="x86_64" ;; + *) err "unsupported macOS architecture: $ARCH" ;; + esac + ;; + Linux) + PLATFORM_OS="linux" + case "$ARCH" in + arm64|aarch64) TRIPLE="aarch64-unknown-linux-gnu"; PLATFORM_ARCH="aarch64" ;; + x86_64|amd64) TRIPLE="x86_64-unknown-linux-gnu"; PLATFORM_ARCH="x86_64" ;; + *) err "unsupported Linux architecture: $ARCH" ;; + esac + ;; + *) + err "unsupported OS: $OS (Windows: use install.ps1)" + ;; +esac + +# ── Downloader ─────────────────────────────────────────────────────────────── +if command -v curl >/dev/null 2>&1; then + fetch() { curl -fsSL -o "$2" "$1"; } + fetch_stdout() { curl -fsSL "$1"; } +elif command -v wget >/dev/null 2>&1; then + fetch() { wget -q -O "$2" "$1"; } + fetch_stdout() { wget -q -O - "$1"; } +else + err "either curl or wget is required" +fi + +# ── SHA-256 tool ───────────────────────────────────────────────────────────── +if command -v sha256sum >/dev/null 2>&1; then + sha256_of() { sha256sum "$1" | cut -d' ' -f1; } +elif command -v shasum >/dev/null 2>&1; then + sha256_of() { shasum -a 256 "$1" | cut -d' ' -f1; } +else + err "either sha256sum or shasum is required to verify the download" +fi + +TMP_DIR="$(mktemp -d "${TMPDIR:-/tmp}/kigi-install.XXXXXX")" +trap 'rm -rf "$TMP_DIR"' EXIT INT TERM + +# ── Resolve the release ────────────────────────────────────────────────────── +if [ -n "$VERSION" ]; then + RELEASE_URL="$API_BASE/tags/v$VERSION" +else + RELEASE_URL="$API_BASE/latest" +fi +printf 'Resolving release from %s\n' "$RELEASE_URL" +RELEASE_JSON="$(fetch_stdout "$RELEASE_URL")" \ + || err "could not fetch release metadata from $RELEASE_URL" + +TAG="$(printf '%s' "$RELEASE_JSON" \ + | tr ',' '\n' \ + | sed -n 's/.*"tag_name"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' \ + | head -n 1)" +[ -n "$TAG" ] || err "release metadata has no tag_name (endpoint: $RELEASE_URL)" +RESOLVED_VERSION="${TAG#v}" +if [ -n "$VERSION" ] && [ "$RESOLVED_VERSION" != "$VERSION" ]; then + err "requested version $VERSION but release tag is $TAG" +fi + +ASSET="kigi-${RESOLVED_VERSION}-${TRIPLE}.tar.gz" + +# Pull every browser_download_url out of the JSON, then select by asset name. +URLS="$(printf '%s' "$RELEASE_JSON" \ + | tr ',' '\n' \ + | sed -n 's/.*"browser_download_url"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p')" +ARCHIVE_URL="$(printf '%s\n' "$URLS" | grep -F "/$ASSET" | head -n 1 || true)" +SUMS_URL="$(printf '%s\n' "$URLS" | grep -F "/SHA256SUMS" | head -n 1 || true)" +[ -n "$ARCHIVE_URL" ] || err "release $TAG has no asset $ASSET (this platform may not be published yet)" +[ -n "$SUMS_URL" ] || err "release $TAG has no SHA256SUMS asset; refusing to install unverified binaries" + +# ── Download + verify ──────────────────────────────────────────────────────── +printf 'Downloading kigi v%s (%s)...\n' "$RESOLVED_VERSION" "$TRIPLE" +fetch "$ARCHIVE_URL" "$TMP_DIR/$ASSET" || err "download failed: $ARCHIVE_URL" +fetch "$SUMS_URL" "$TMP_DIR/SHA256SUMS" || err "download failed: $SUMS_URL" + +EXPECTED="" +while IFS=' ' read -r hash name; do + name="${name#\*}" + if [ "$name" = "$ASSET" ]; then + EXPECTED="$hash" + fi +done < "$TMP_DIR/SHA256SUMS" +[ -n "$EXPECTED" ] || err "SHA256SUMS has no entry for $ASSET" + +ACTUAL="$(sha256_of "$TMP_DIR/$ASSET")" +if [ "$ACTUAL" != "$EXPECTED" ]; then + err "SHA256 mismatch for $ASSET: expected $EXPECTED, got $ACTUAL" +fi +printf 'Checksum verified.\n' + +# ── Extract + install ──────────────────────────────────────────────────────── +tar -xzf "$TMP_DIR/$ASSET" -C "$TMP_DIR" || err "failed to extract $ASSET" +[ -f "$TMP_DIR/kigi" ] || err "archive $ASSET does not contain a 'kigi' binary" +chmod 0755 "$TMP_DIR/kigi" + +DOWNLOADS_DIR="$KIGI_HOME/downloads" +BIN_DIR="$KIGI_HOME/bin" +mkdir -p "$DOWNLOADS_DIR" "$BIN_DIR" + +# Versioned binary + atomic symlink swap — the exact layout the self-updater +# maintains, so `kigi update` takes over seamlessly from here. +VERSIONED="kigi-${RESOLVED_VERSION}-${PLATFORM_OS}-${PLATFORM_ARCH}" +mv -f "$TMP_DIR/kigi" "$DOWNLOADS_DIR/$VERSIONED" + +TMP_LINK="$BIN_DIR/kigi.install.$$" +ln -s "../downloads/$VERSIONED" "$TMP_LINK" +mv -f "$TMP_LINK" "$BIN_DIR/kigi" + +# Smoke-test the installed binary through the managed link. +"$BIN_DIR/kigi" --version >/dev/null 2>&1 \ + || err "installed binary failed to run; your PATH still has no working kigi" + +printf '\nkigi v%s installed to %s\n' "$RESOLVED_VERSION" "$BIN_DIR/kigi" + +case ":$PATH:" in + *":$BIN_DIR:"*) + printf 'Run `kigi` to get started.\n' + ;; + *) + printf '\n%s is not on your PATH. Add it with:\n\n' "$BIN_DIR" + printf ' export PATH="%s:$PATH" # sh / bash / zsh (add to your shell rc)\n' "$BIN_DIR" + printf ' fish_add_path %s # fish\n\n' "$BIN_DIR" + printf 'Then run `kigi` to get started.\n' + ;; +esac