[INFO] cloning repository https://github.com/MFSGA/Chimera_Client
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/MFSGA/Chimera_Client" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMFSGA%2FChimera_Client", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMFSGA%2FChimera_Client'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 288bc50d16fb3a0cc6f0143b2e5430705d665f7f
[INFO] checking MFSGA/Chimera_Client against master#3f6250a7bb79e600d9036bbc7c8f65af43933643 for pr-147859
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMFSGA%2FChimera_Client" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-3-tc1/source/.cargo/config.toml
[INFO] removed /workspace/builds/worker-3-tc1/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/MFSGA/Chimera_Client
[INFO] finished tweaking git repo https://github.com/MFSGA/Chimera_Client
[INFO] tweaked toml for git repo https://github.com/MFSGA/Chimera_Client written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/MFSGA/Chimera_Client on toolchain 3f6250a7bb79e600d9036bbc7c8f65af43933643
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3f6250a7bb79e600d9036bbc7c8f65af43933643" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/MFSGA/Chimera_Client already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3f6250a7bb79e600d9036bbc7c8f65af43933643" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Updating git repository `https://github.com/eycorsican/netstack-lwip`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded netlink-packet-core v0.8.1
[INFO] [stderr]   Downloaded netlink-sys v0.8.8
[INFO] [stderr]   Downloaded tikv-jemallocator v0.6.1
[INFO] [stderr]   Downloaded env_filter v1.0.0
[INFO] [stderr]   Downloaded enum-ordinalize-derive v4.3.2
[INFO] [stderr]   Downloaded educe v0.6.0
[INFO] [stderr]   Downloaded clap v4.5.58
[INFO] [stderr]   Downloaded unsafe-libyaml v0.2.11
[INFO] [stderr]   Downloaded rustls-webpki v0.103.8
[INFO] [stderr]   Downloaded hickory-server v0.25.2
[INFO] [stderr]   Downloaded route_manager v0.2.11
[INFO] [stderr]   Downloaded wit-parser v0.244.0
[INFO] [stderr]   Downloaded clap_builder v4.5.58
[INFO] [stderr]   Downloaded netlink-packet-route v0.24.0
[INFO] [stderr]   Downloaded wasip3 v0.4.0+wasi-0.3.0-rc-2026-01-06
[INFO] [stderr]   Downloaded aws-lc-rs v1.15.2
[INFO] [stderr]   Downloaded tun-rs v2.8.2
[INFO] [stderr]   Downloaded webpki-roots v1.0.5
[INFO] [stderr]   Downloaded wit-component v0.244.0
[INFO] [stderr]   Downloaded netlink-packet-route v0.28.0
[INFO] [stderr]   Downloaded smoltcp v0.12.0
[INFO] [stderr]   Downloaded jiff-static v0.2.19
[INFO] [stderr]   Downloaded etherparse v0.19.0
[INFO] [stderr]   Downloaded rand v0.10.0
[INFO] [stderr]   Downloaded prefix-trie v0.7.0
[INFO] [stderr]   Downloaded cc v1.2.51
[INFO] [stderr]   Downloaded nix v0.31.1
[INFO] [stderr]   Downloaded serde_yaml v0.9.34+deprecated
[INFO] [stderr]   Downloaded etherparse v0.16.0
[INFO] [stderr]   Downloaded tungstenite v0.28.0
[INFO] [stderr]   Downloaded hickory-proto v0.25.2
[INFO] [stderr]   Downloaded chacha20 v0.10.0
[INFO] [stderr]   Downloaded libloading v0.9.0
[INFO] [stderr]   Downloaded jiff v0.2.19
[INFO] [stderr]   Downloaded netstack-smoltcp v0.2.0
[INFO] [stderr]   Downloaded wit-bindgen-rust v0.51.0
[INFO] [stderr]   Downloaded rand_core v0.10.0
[INFO] [stderr]   Downloaded defmt v1.0.1
[INFO] [stderr]   Downloaded flume v0.12.0
[INFO] [stderr]   Downloaded widestring v1.2.1
[INFO] [stderr]   Downloaded maxminddb v0.27.1
[INFO] [stderr]   Downloaded find-msvc-tools v0.1.6
[INFO] [stderr]   Downloaded tikv-jemalloc-sys v0.6.1+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7
[INFO] [stderr]   Downloaded wit-bindgen-core v0.51.0
[INFO] [stderr]   Downloaded wasm-metadata v0.244.0
[INFO] [stderr]   Downloaded zmij v1.0.21
[INFO] [stderr]   Downloaded defmt-macros v1.0.1
[INFO] [stderr]   Downloaded getifaddrs v0.6.0
[INFO] [stderr]   Downloaded netlink-packet-core v0.7.0
[INFO] [stderr]   Downloaded netlink-packet-utils v0.5.2
[INFO] [stderr]   Downloaded netconfig-rs v0.1.5
[INFO] [stderr]   Downloaded enum-ordinalize v4.3.2
[INFO] [stderr]   Downloaded ipnetwork v0.21.1
[INFO] [stderr]   Downloaded network-interface v2.0.5
[INFO] [stderr]   Downloaded tokio-tungstenite v0.28.0
[INFO] [stderr]   Downloaded tracing-appender v0.2.4
[INFO] [stderr]   Downloaded env_logger v0.11.9
[INFO] [stderr]   Downloaded wit-bindgen-rust-macro v0.51.0
[INFO] [stderr]   Downloaded defmt-parser v1.0.0
[INFO] [stderr]   Downloaded c2rust-bitfields-derive v0.22.1
[INFO] [stderr]   Downloaded winreg v0.55.0
[INFO] [stderr]   Downloaded cpufeatures v0.3.0
[INFO] [stderr]   Downloaded defmt v0.3.100
[INFO] [stderr]   Downloaded managed v0.8.0
[INFO] [stderr]   Downloaded c2rust-bitfields v0.22.1
[INFO] [stderr]   Downloaded aws-lc-sys v0.35.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+3f6250a7bb79e600d9036bbc7c8f65af43933643" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5951bec6f7d39a7f32f7028f6131170686a3168fdde1575b79d83444bd5ecf80
[INFO] running `Command { std: "docker" "start" "-a" "5951bec6f7d39a7f32f7028f6131170686a3168fdde1575b79d83444bd5ecf80", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5951bec6f7d39a7f32f7028f6131170686a3168fdde1575b79d83444bd5ecf80", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5951bec6f7d39a7f32f7028f6131170686a3168fdde1575b79d83444bd5ecf80", kill_on_drop: false }`
[INFO] [stdout] 5951bec6f7d39a7f32f7028f6131170686a3168fdde1575b79d83444bd5ecf80
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+3f6250a7bb79e600d9036bbc7c8f65af43933643" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f7bb76af1731b6dcdf2999d46ad5c6109f7bb379a7d5447e0e0f21f3612295a4
[INFO] running `Command { std: "docker" "start" "-a" "f7bb76af1731b6dcdf2999d46ad5c6109f7bb379a7d5447e0e0f21f3612295a4", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]     Checking bytes v1.11.1
[INFO] [stderr]     Checking log v0.4.29
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling find-msvc-tools v0.1.6
[INFO] [stderr]     Checking lock_api v0.4.14
[INFO] [stderr]    Compiling zerocopy v0.8.31
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling portable-atomic v1.13.0
[INFO] [stderr]     Checking futures-io v0.3.31
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]     Checking critical-section v1.2.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]    Compiling anyhow v1.0.101
[INFO] [stderr]    Compiling cfg_aliases v0.2.1
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]    Compiling num-conv v0.1.0
[INFO] [stderr]     Checking powerfmt v0.2.0
[INFO] [stderr]     Checking regex-syntax v0.8.8
[INFO] [stderr]    Compiling time-core v0.1.6
[INFO] [stderr]     Checking deranged v0.5.5
[INFO] [stderr]     Checking num_threads v0.1.7
[INFO] [stderr]    Compiling memoffset v0.9.1
[INFO] [stderr]    Compiling time-macros v0.2.24
[INFO] [stderr]     Checking parking v2.2.1
[INFO] [stderr]    Compiling heapless v0.8.0
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]     Checking hash32 v0.3.1
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]     Checking rand_core v0.10.0
[INFO] [stderr]    Compiling smoltcp v0.12.0
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]     Checking once_cell v1.21.3
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling clang-sys v1.8.1
[INFO] [stderr]    Compiling nix v0.31.1
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]     Checking managed v0.8.0
[INFO] [stderr]     Checking fastrand v2.3.0
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]     Checking cpufeatures v0.3.0
[INFO] [stderr]    Compiling cc v1.2.51
[INFO] [stderr]     Checking chacha20 v0.10.0
[INFO] [stderr]     Checking piper v0.2.4
[INFO] [stderr]     Checking async-channel v2.5.0
[INFO] [stderr]     Checking futures-lite v2.6.1
[INFO] [stderr]     Checking thread_local v1.1.9
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]     Checking nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling tun-rs v2.8.2
[INFO] [stderr]     Checking async-task v4.7.1
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]     Checking anstream v0.6.21
[INFO] [stderr]    Compiling libloading v0.8.9
[INFO] [stderr]     Checking etherparse v0.19.0
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling bindgen v0.70.1
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]     Checking blocking v1.6.2
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]     Checking http v1.4.0
[INFO] [stderr]     Checking data-encoding v2.10.0
[INFO] [stderr]     Checking percent-encoding v2.3.2
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling rustc-hash v1.1.0
[INFO] [stderr]    Compiling aws-lc-rs v1.15.2
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]     Checking tinyvec v1.10.0
[INFO] [stderr]     Checking rustls-pki-types v1.13.2
[INFO] [stderr]     Checking mio v1.1.0
[INFO] [stderr]     Checking socket2 v0.6.2
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking signal-hook-registry v1.4.6
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking time v0.3.44
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]    Compiling cmake v0.1.57
[INFO] [stderr]     Checking netlink-sys v0.8.8
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking rand v0.10.0
[INFO] [stderr]     Checking getifaddrs v0.6.0
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]    Compiling aws-lc-sys v0.35.0
[INFO] [stderr]    Compiling cexpr v0.6.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking cpufeatures v0.2.17
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking etherparse v0.16.0
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking jiff v0.2.19
[INFO] [stderr]    Compiling rustls v0.23.36
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]    Compiling network-interface v2.0.5
[INFO] [stderr]     Checking hashbrown v0.16.0
[INFO] [stderr]     Checking equivalent v1.0.2
[INFO] [stderr]     Checking utf-8 v0.7.6
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]     Checking unsafe-libyaml v0.2.11
[INFO] [stderr]     Checking iana-time-zone v0.1.64
[INFO] [stderr]     Checking ipnetwork v0.21.1
[INFO] [stderr]     Checking uuid v1.20.0
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking webpki-roots v1.0.5
[INFO] [stderr]     Checking indexmap v2.12.0
[INFO] [stderr]     Checking downcast-rs v2.0.2
[INFO] [stderr]     Checking clap_lex v1.0.0
[INFO] [stderr]    Compiling clash-rs v0.1.1 (/opt/rustwide/workdir/clash-bin)
[INFO] [stderr]     Checking clash-doc v0.1.1 (/opt/rustwide/workdir/clash-doc)
[INFO] [stderr]     Checking clash-ffi v0.1.1 (/opt/rustwide/workdir/clash-ffi)
[INFO] [stderr]     Checking clap_builder v4.5.58
[INFO] [stderr]     Checking env_filter v1.0.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling enum-as-inner v0.6.1
[INFO] [stderr]    Compiling enum-ordinalize-derive v4.3.2
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]    Compiling enum-ordinalize v4.3.2
[INFO] [stderr]    Compiling educe v0.6.0
[INFO] [stderr]     Checking tokio v1.49.0
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking env_logger v0.11.9
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking netlink-packet-utils v0.5.2
[INFO] [stderr]     Checking netlink-packet-core v0.7.0
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]     Checking tungstenite v0.28.0
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking netlink-packet-route v0.24.0
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking clap v4.5.58
[INFO] [stderr]     Checking tracing-subscriber v0.3.22
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking tracing-appender v0.2.4
[INFO] [stderr]     Checking ipnet v2.11.0
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking chrono v0.4.43
[INFO] [stderr]     Checking maxminddb v0.27.1
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking icu_properties v2.1.2
[INFO] [stderr]     Checking prefix-trie v0.7.0
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]    Compiling netstack-lwip v0.3.4 (https://github.com/eycorsican/netstack-lwip?rev=f434fef#f434fefd)
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking watfaq-netstack v0.1.0 (/opt/rustwide/workdir/clash-netstack)
[INFO] [stderr]     Checking hickory-proto v0.25.2
[INFO] [stderr]     Checking hyper v1.8.1
[INFO] [stderr]     Checking tokio-tungstenite v0.28.0
[INFO] [stderr]     Checking netstack-smoltcp v0.2.0
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking netconfig-rs v0.1.5
[INFO] [stderr]     Checking hickory-server v0.25.2
[INFO] [stderr]     Checking chimera-dns v0.1.1 (/opt/rustwide/workdir/clash-dns)
[INFO] [stdout] warning: unused import: `path::Path`
[INFO] [stdout]  --> clash-dns/src/lib.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{net::SocketAddr, path::Path};
[INFO] [stdout]   |                            ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `path::Path`
[INFO] [stdout]  --> clash-dns/src/lib.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{net::SocketAddr, path::Path};
[INFO] [stdout]   |                            ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `response_handle`
[INFO] [stdout]   --> clash-dns/src/handler.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         response_handle: H,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response_handle`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request`
[INFO] [stdout]   --> clash-dns/src/handler.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |         request: &Request,
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cwd`
[INFO] [stdout]   --> clash-dns/src/handler.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     cwd: &std::path::Path,
[INFO] [stdout]    |     ^^^ help: if this is intentional, prefix it with an underscore: `_cwd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> clash-dns/src/handler.rs:86:17
[INFO] [stdout]    |
[INFO] [stdout] 86 |     if let Some(c) = listen.doh {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> clash-dns/src/handler.rs:90:17
[INFO] [stdout]    |
[INFO] [stdout] 90 |     if let Some(c) = listen.dot {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> clash-dns/src/handler.rs:94:17
[INFO] [stdout]    |
[INFO] [stdout] 94 |     if let Some(c) = listen.doh3 {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `exchanger` is never read
[INFO] [stdout]   --> clash-dns/src/handler.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct DnsHandler<X> {
[INFO] [stdout]    |        ---------- field in this struct
[INFO] [stdout] 20 |     exchanger: X,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `response_handle`
[INFO] [stdout]   --> clash-dns/src/handler.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         response_handle: H,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response_handle`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request`
[INFO] [stdout]   --> clash-dns/src/handler.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |         request: &Request,
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cwd`
[INFO] [stdout]   --> clash-dns/src/handler.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     cwd: &std::path::Path,
[INFO] [stdout]    |     ^^^ help: if this is intentional, prefix it with an underscore: `_cwd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> clash-dns/src/handler.rs:86:17
[INFO] [stdout]    |
[INFO] [stdout] 86 |     if let Some(c) = listen.doh {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> clash-dns/src/handler.rs:90:17
[INFO] [stdout]    |
[INFO] [stdout] 90 |     if let Some(c) = listen.dot {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> clash-dns/src/handler.rs:94:17
[INFO] [stdout]    |
[INFO] [stdout] 94 |     if let Some(c) = listen.doh3 {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `exchanger` is never read
[INFO] [stdout]   --> clash-dns/src/handler.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct DnsHandler<X> {
[INFO] [stdout]    |        ---------- field in this struct
[INFO] [stdout] 20 |     exchanger: X,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking rustls-webpki v0.103.8
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking clash-lib v0.1.1 (/opt/rustwide/workdir/clash-lib)
[INFO] [stdout] warning: unused import: `trace`
[INFO] [stdout]  --> clash-lib/src/app/dispatcher/dispatcher_impl.rs:4:57
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tracing::{Instrument, debug, info_span, instrument, trace, warn};
[INFO] [stdout]   |                                                         ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `session::Session`
[INFO] [stdout]   --> clash-lib/src/app/dispatcher/statistics_manager.rs:12:48
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::{app::dispatcher::tracked::Tracked, session::Session};
[INFO] [stdout]    |                                                ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `trace`
[INFO] [stdout]  --> clash-lib/src/app/dispatcher/dispatcher_impl.rs:4:57
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tracing::{Instrument, debug, info_span, instrument, trace, warn};
[INFO] [stdout]   |                                                         ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IpAddr`, `Ipv4Addr`, `Ipv6Addr`, and `Ordering`
[INFO] [stdout]  --> clash-lib/src/app/dns/resolver/system.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 |     net::{IpAddr, Ipv4Addr, Ipv6Addr},
[INFO] [stdout]   |           ^^^^^^  ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 3 |     sync::atomic::{AtomicBool, Ordering},
[INFO] [stdout]   |                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ResolverKind`
[INFO] [stdout]   --> clash-lib/src/app/dns/resolver/system.rs:10:38
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::app::dns::{ClashResolver, ResolverKind};
[INFO] [stdout]    |                                      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `session::Session`
[INFO] [stdout]   --> clash-lib/src/app/dispatcher/statistics_manager.rs:12:48
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::{app::dispatcher::tracked::Tracked, session::Session};
[INFO] [stdout]    |                                                ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IpAddr`, `Ipv4Addr`, `Ipv6Addr`, and `Ordering`
[INFO] [stdout]  --> clash-lib/src/app/dns/resolver/system.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 |     net::{IpAddr, Ipv4Addr, Ipv6Addr},
[INFO] [stdout]   |           ^^^^^^  ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 3 |     sync::atomic::{AtomicBool, Ordering},
[INFO] [stdout]   |                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ResolverKind`
[INFO] [stdout]   --> clash-lib/src/app/dns/resolver/system.rs:10:38
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::app::dns::{ClashResolver, ResolverKind};
[INFO] [stdout]    |                                      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hickory_proto::op::Message`
[INFO] [stdout]  --> clash-lib/src/app/dns/server/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use hickory_proto::op::Message;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `handler::exchange_with_resolver`
[INFO] [stdout]  --> clash-lib/src/app/dns/server/mod.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use handler::exchange_with_resolver;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hickory_proto::op::Message`
[INFO] [stdout]  --> clash-lib/src/app/dns/server/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use hickory_proto::op::Message;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `handler::exchange_with_resolver`
[INFO] [stdout]  --> clash-lib/src/app/dns/server/mod.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use handler::exchange_with_resolver;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::HashMap`
[INFO] [stdout]  --> clash-lib/src/app/router/mod.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::{collections::HashMap, sync::Arc};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `config::RuleProviderDef`
[INFO] [stdout]   --> clash-lib/src/app/router/mod.rs:15:24
[INFO] [stdout]    |
[INFO] [stdout] 15 |     config::internal::{config::RuleProviderDef, rule::RuleType},
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::HashMap`
[INFO] [stdout]  --> clash-lib/src/app/router/mod.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::{collections::HashMap, sync::Arc};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `config::RuleProviderDef`
[INFO] [stdout]   --> clash-lib/src/app/router/mod.rs:15:24
[INFO] [stdout]    |
[INFO] [stdout] 15 |     config::internal::{config::RuleProviderDef, rule::RuleType},
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BindAddress`
[INFO] [stdout]  --> clash-lib/src/config/internal/convert/general.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 |     internal::config::{BindAddress, Controller, General},
[INFO] [stdout]   |                        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around function argument
[INFO] [stdout]   --> clash-lib/src/config/internal/convert/proxy_group.rs:15:51
[INFO] [stdout]    |
[INFO] [stdout] 15 |             let group = OutboundProxy::ProxyGroup({ todo!() });
[INFO] [stdout]    |                                                   ^^       ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_braces)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these braces
[INFO] [stdout]    |
[INFO] [stdout] 15 -             let group = OutboundProxy::ProxyGroup({ todo!() });
[INFO] [stdout] 15 +             let group = OutboundProxy::ProxyGroup(todo!() );
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BindAddress`
[INFO] [stdout]  --> clash-lib/src/config/internal/convert/general.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 |     internal::config::{BindAddress, Controller, General},
[INFO] [stdout]   |                        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around function argument
[INFO] [stdout]   --> clash-lib/src/config/internal/convert/proxy_group.rs:15:51
[INFO] [stdout]    |
[INFO] [stdout] 15 |             let group = OutboundProxy::ProxyGroup({ todo!() });
[INFO] [stdout]    |                                                   ^^       ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_braces)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these braces
[INFO] [stdout]    |
[INFO] [stdout] 15 -             let group = OutboundProxy::ProxyGroup({ todo!() });
[INFO] [stdout] 15 +             let group = OutboundProxy::ProxyGroup(todo!() );
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> clash-lib/src/proxy/inbound.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> clash-lib/src/proxy/inbound.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IpAddr`, `Ipv4Addr`, and `Ipv6Addr`
[INFO] [stdout]  --> clash-lib/src/proxy/socks/inbound/mod.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 |     net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr},
[INFO] [stdout]   |           ^^^^^^  ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AsyncReadExt`, `AsyncWriteExt`, `TcpListener`, and `TcpStream`
[INFO] [stdout]   --> clash-lib/src/proxy/socks/inbound/mod.rs:9:10
[INFO] [stdout]    |
[INFO] [stdout]  9 |     io::{AsyncReadExt, AsyncWriteExt},
[INFO] [stdout]    |          ^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 10 |     net::{TcpListener, TcpStream},
[INFO] [stdout]    |           ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]   --> clash-lib/src/proxy/socks/inbound/mod.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 | use tracing::{debug, info, warn};
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SOCKS5_VERSION` and `config::internal::listener::CommonInboundOpts`
[INFO] [stdout]   --> clash-lib/src/proxy/socks/inbound/mod.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     config::internal::listener::CommonInboundOpts,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |         socks::{SOCKS5_VERSION, inbound::stream::handle_tcp},
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IpAddr`, `Ipv4Addr`, and `Ipv6Addr`
[INFO] [stdout]  --> clash-lib/src/proxy/socks/inbound/mod.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 |     net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr},
[INFO] [stdout]   |           ^^^^^^  ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufMut` and `BytesMut`
[INFO] [stdout]  --> clash-lib/src/proxy/socks/socks5.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use bytes::{BufMut, BytesMut};
[INFO] [stdout]   |             ^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AsyncReadExt`, `AsyncWriteExt`, `TcpListener`, and `TcpStream`
[INFO] [stdout]   --> clash-lib/src/proxy/socks/inbound/mod.rs:9:10
[INFO] [stdout]    |
[INFO] [stdout]  9 |     io::{AsyncReadExt, AsyncWriteExt},
[INFO] [stdout]    |          ^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 10 |     net::{TcpListener, TcpStream},
[INFO] [stdout]    |           ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AsyncReadExt` and `AsyncWriteExt`
[INFO] [stdout]  --> clash-lib/src/proxy/socks/socks5.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]   |                 ^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]   --> clash-lib/src/proxy/socks/inbound/mod.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 | use tracing::{debug, info, warn};
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `common::errors::new_io_error` and `proxy::AnyStream`
[INFO] [stdout]  --> clash-lib/src/proxy/socks/socks5.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{common::errors::new_io_error, proxy::AnyStream};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SOCKS5_VERSION` and `config::internal::listener::CommonInboundOpts`
[INFO] [stdout]   --> clash-lib/src/proxy/socks/inbound/mod.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     config::internal::listener::CommonInboundOpts,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |         socks::{SOCKS5_VERSION, inbound::stream::handle_tcp},
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufMut` and `BytesMut`
[INFO] [stdout]  --> clash-lib/src/proxy/socks/socks5.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use bytes::{BufMut, BytesMut};
[INFO] [stdout]   |             ^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AsyncReadExt` and `AsyncWriteExt`
[INFO] [stdout]  --> clash-lib/src/proxy/socks/socks5.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]   |                 ^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `common::errors::new_io_error` and `proxy::AnyStream`
[INFO] [stdout]  --> clash-lib/src/proxy/socks/socks5.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{common::errors::new_io_error, proxy::AnyStream};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `net::SocketAddr`
[INFO] [stdout]  --> clash-lib/src/proxy/utils/proxy_connector.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     net::SocketAddr,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `net::SocketAddr`
[INFO] [stdout]  --> clash-lib/src/proxy/utils/proxy_connector.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     net::SocketAddr,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> clash-lib/src/app/router/mod.rs:57:13
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let mut sess_resolved = false;
[INFO] [stdout]    |             ----^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> clash-lib/src/app/router/mod.rs:57:13
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let mut sess_resolved = false;
[INFO] [stdout]    |             ----^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> clash-lib/src/lib.rs:217:21
[INFO] [stdout]     |
[INFO] [stdout] 217 |     let (reload_tx, mut reload_rx) = mpsc::channel(1);
[INFO] [stdout]     |                     ----^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> clash-lib/src/lib.rs:217:21
[INFO] [stdout]     |
[INFO] [stdout] 217 |     let (reload_tx, mut reload_rx) = mpsc::channel(1);
[INFO] [stdout]     |                     ----^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable call
[INFO] [stdout]   --> clash-lib/src/config/internal/convert/proxy_group.rs:15:25
[INFO] [stdout]    |
[INFO] [stdout] 15 |             let group = OutboundProxy::ProxyGroup({ todo!() });
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^   ------- any code following this expression is unreachable
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         unreachable call
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable call
[INFO] [stdout]   --> clash-lib/src/config/internal/convert/proxy_group.rs:15:25
[INFO] [stdout]    |
[INFO] [stdout] 15 |             let group = OutboundProxy::ProxyGroup({ todo!() });
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^   ------- any code following this expression is unreachable
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         unreachable call
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `outbound_manager`
[INFO] [stdout]   --> clash-lib/src/app/api/mod.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     outbound_manager: ThreadSafeOutboundManager,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outbound_manager`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cwd`
[INFO] [stdout]   --> clash-lib/src/app/api/mod.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     cwd: String,
[INFO] [stdout]    |     ^^^ help: if this is intentional, prefix it with an underscore: `_cwd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]   --> clash-lib/src/app/api/mod.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let app_state = Arc::new(AppState {
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resolver`
[INFO] [stdout]    --> clash-lib/src/app/dispatcher/dispatcher_impl.rs:186:25
[INFO] [stdout]     |
[INFO] [stdout] 186 | async fn reverse_lookup(resolver: &Arc<dyn ClashResolver>, dst: &SocksAddr) -> Option<SocksAddr> {
[INFO] [stdout]     |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_resolver`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `socket_addr`
[INFO] [stdout]    --> clash-lib/src/app/dispatcher/dispatcher_impl.rs:188:39
[INFO] [stdout]     |
[INFO] [stdout] 188 |         crate::session::SocksAddr::Ip(socket_addr) => {
[INFO] [stdout]     |                                       ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_socket_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sess_resolved`
[INFO] [stdout]   --> clash-lib/src/app/router/mod.rs:57:13
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let mut sess_resolved = false;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sess_resolved`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mmdb`
[INFO] [stdout]   --> clash-lib/src/app/dns/resolver/mod.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     mmdb: Option<MmdbLookup>,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_mmdb`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `outbounds`
[INFO] [stdout]   --> clash-lib/src/app/dns/resolver/mod.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     outbounds: HashMap<String, Arc<dyn OutboundHandler>>,
[INFO] [stdout]    |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outbounds`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `store`
[INFO] [stdout]   --> clash-lib/src/app/dns/resolver/mod.rs:27:18
[INFO] [stdout]    |
[INFO] [stdout] 27 |             Some(store) => {
[INFO] [stdout]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_store`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `outbound_manager`
[INFO] [stdout]   --> clash-lib/src/app/api/mod.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     outbound_manager: ThreadSafeOutboundManager,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outbound_manager`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cwd`
[INFO] [stdout]   --> clash-lib/src/app/api/mod.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     cwd: String,
[INFO] [stdout]    |     ^^^ help: if this is intentional, prefix it with an underscore: `_cwd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]   --> clash-lib/src/app/api/mod.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let app_state = Arc::new(AppState {
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resolver`
[INFO] [stdout]    --> clash-lib/src/app/dispatcher/dispatcher_impl.rs:186:25
[INFO] [stdout]     |
[INFO] [stdout] 186 | async fn reverse_lookup(resolver: &Arc<dyn ClashResolver>, dst: &SocksAddr) -> Option<SocksAddr> {
[INFO] [stdout]     |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_resolver`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `socket_addr`
[INFO] [stdout]    --> clash-lib/src/app/dispatcher/dispatcher_impl.rs:188:39
[INFO] [stdout]     |
[INFO] [stdout] 188 |         crate::session::SocksAddr::Ip(socket_addr) => {
[INFO] [stdout]     |                                       ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_socket_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sess_resolved`
[INFO] [stdout]   --> clash-lib/src/app/router/mod.rs:57:13
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let mut sess_resolved = false;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sess_resolved`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mmdb`
[INFO] [stdout]   --> clash-lib/src/app/dns/resolver/mod.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     mmdb: Option<MmdbLookup>,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_mmdb`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `outbounds`
[INFO] [stdout]   --> clash-lib/src/app/dns/resolver/mod.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     outbounds: HashMap<String, Arc<dyn OutboundHandler>>,
[INFO] [stdout]    |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outbounds`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `store`
[INFO] [stdout]   --> clash-lib/src/app/dns/resolver/mod.rs:27:18
[INFO] [stdout]    |
[INFO] [stdout] 27 |             Some(store) => {
[INFO] [stdout]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_store`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> clash-lib/src/app/logging.rs:46:17
[INFO] [stdout]    |
[INFO] [stdout] 46 |                 _ => {
[INFO] [stdout]    |                 ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> clash-lib/src/app/logging.rs:46:17
[INFO] [stdout]    |
[INFO] [stdout] 41 |                 tracing::Level::TRACE => LogLevel::Trace,
[INFO] [stdout]    |                 --------------------- matches some of the same values
[INFO] [stdout] 42 |                 tracing::Level::DEBUG => LogLevel::Debug,
[INFO] [stdout]    |                 --------------------- matches some of the same values
[INFO] [stdout] 43 |                 tracing::Level::ERROR => LogLevel::Error,
[INFO] [stdout]    |                 --------------------- matches some of the same values
[INFO] [stdout] 44 |                 tracing::Level::WARN => LogLevel::Warning,
[INFO] [stdout]    |                 -------------------- matches some of the same values
[INFO] [stdout] 45 |                 tracing::Level::INFO => LogLevel::Info,
[INFO] [stdout] 46 |                 _ => {
[INFO] [stdout]    |                 ^ ...and 1 other patterns collectively make this unreachable
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `proxy_names`
[INFO] [stdout]   --> clash-lib/src/app/outbound/manager.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |         proxy_names: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_proxy_names`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> clash-lib/src/app/logging.rs:46:17
[INFO] [stdout]    |
[INFO] [stdout] 46 |                 _ => {
[INFO] [stdout]    |                 ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> clash-lib/src/app/logging.rs:46:17
[INFO] [stdout]    |
[INFO] [stdout] 41 |                 tracing::Level::TRACE => LogLevel::Trace,
[INFO] [stdout]    |                 --------------------- matches some of the same values
[INFO] [stdout] 42 |                 tracing::Level::DEBUG => LogLevel::Debug,
[INFO] [stdout]    |                 --------------------- matches some of the same values
[INFO] [stdout] 43 |                 tracing::Level::ERROR => LogLevel::Error,
[INFO] [stdout]    |                 --------------------- matches some of the same values
[INFO] [stdout] 44 |                 tracing::Level::WARN => LogLevel::Warning,
[INFO] [stdout]    |                 -------------------- matches some of the same values
[INFO] [stdout] 45 |                 tracing::Level::INFO => LogLevel::Info,
[INFO] [stdout] 46 |                 _ => {
[INFO] [stdout]    |                 ^ ...and 1 other patterns collectively make this unreachable
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `country_mmdb`
[INFO] [stdout]   --> clash-lib/src/app/router/mod.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |         country_mmdb: Option<MmdbLookup>,
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_country_mmdb`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cwd`
[INFO] [stdout]   --> clash-lib/src/app/router/mod.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |         cwd: String,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_cwd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `proxy_names`
[INFO] [stdout]   --> clash-lib/src/app/outbound/manager.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |         proxy_names: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_proxy_names`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `country_mmdb`
[INFO] [stdout]   --> clash-lib/src/app/router/mod.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |         country_mmdb: Option<MmdbLookup>,
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_country_mmdb`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cwd`
[INFO] [stdout]   --> clash-lib/src/app/router/mod.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |         cwd: String,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_cwd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_port`
[INFO] [stdout]   --> clash-lib/src/config/internal/convert/listener.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let http_port = c.port;
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mixed_port`
[INFO] [stdout]   --> clash-lib/src/config/internal/convert/listener.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let mixed_port = c.mixed_port;
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mixed_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> clash-lib/src/config/internal/convert/proxy_group.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 |         |mut rv, mapping| {
[INFO] [stdout]    |          ----^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rv`
[INFO] [stdout]   --> clash-lib/src/config/internal/convert/proxy_group.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 |         |mut rv, mapping| {
[INFO] [stdout]    |          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_rv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> clash-lib/src/config/internal/convert/proxy_group.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 |             let name = mapping.get("name").cloned();
[INFO] [stdout]    |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `group`
[INFO] [stdout]   --> clash-lib/src/config/internal/convert/proxy_group.rs:15:17
[INFO] [stdout]    |
[INFO] [stdout] 15 |             let group = OutboundProxy::ProxyGroup({ todo!() });
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_group`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `g`
[INFO] [stdout]   --> clash-lib/src/config/internal/proxy.rs:22:39
[INFO] [stdout]    |
[INFO] [stdout] 22 |             OutboundProxy::ProxyGroup(g) => todo!(),
[INFO] [stdout]    |                                       ^ help: if this is intentional, prefix it with an underscore: `_g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `socks5`
[INFO] [stdout]   --> clash-lib/src/config/internal/proxy.rs:47:43
[INFO] [stdout]    |
[INFO] [stdout] 47 |             OutboundProxyProtocol::Socks5(socks5) => {
[INFO] [stdout]    |                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_socks5`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_port`
[INFO] [stdout]   --> clash-lib/src/config/internal/convert/listener.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let http_port = c.port;
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mixed_port`
[INFO] [stdout]   --> clash-lib/src/config/internal/convert/listener.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let mixed_port = c.mixed_port;
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mixed_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> clash-lib/src/config/internal/convert/proxy_group.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 |         |mut rv, mapping| {
[INFO] [stdout]    |          ----^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rv`
[INFO] [stdout]   --> clash-lib/src/config/internal/convert/proxy_group.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 |         |mut rv, mapping| {
[INFO] [stdout]    |          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_rv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> clash-lib/src/config/internal/convert/proxy_group.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 |             let name = mapping.get("name").cloned();
[INFO] [stdout]    |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `group`
[INFO] [stdout]   --> clash-lib/src/config/internal/convert/proxy_group.rs:15:17
[INFO] [stdout]    |
[INFO] [stdout] 15 |             let group = OutboundProxy::ProxyGroup({ todo!() });
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_group`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]   --> clash-lib/src/config/internal/rule.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |         params: Option<Vec<&str>>,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `g`
[INFO] [stdout]   --> clash-lib/src/config/internal/proxy.rs:22:39
[INFO] [stdout]    |
[INFO] [stdout] 22 |             OutboundProxy::ProxyGroup(g) => todo!(),
[INFO] [stdout]    |                                       ^ help: if this is intentional, prefix it with an underscore: `_g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `socks5`
[INFO] [stdout]   --> clash-lib/src/config/internal/proxy.rs:47:43
[INFO] [stdout]    |
[INFO] [stdout] 47 |             OutboundProxyProtocol::Socks5(socks5) => {
[INFO] [stdout]    |                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_socks5`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]   --> clash-lib/src/config/internal/rule.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |         params: Option<Vec<&str>>,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ip`
[INFO] [stdout]    --> clash-lib/src/session.rs:116:19
[INFO] [stdout]     |
[INFO] [stdout] 116 |         if let Ok(ip) = value.0.parse::<IpAddr>() {
[INFO] [stdout]     |                   ^^ help: if this is intentional, prefix it with an underscore: `_ip`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> clash-lib/src/lib.rs:90:25
[INFO] [stdout]    |
[INFO] [stdout] 90 |             Config::Str(s) => {
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reload_rx`
[INFO] [stdout]    --> clash-lib/src/lib.rs:217:21
[INFO] [stdout]     |
[INFO] [stdout] 217 |     let (reload_tx, mut reload_rx) = mpsc::channel(1);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reload_rx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `log_level`, `tunnel_listener_handle`, `dns_listener_handle`, `reload_tx`, and `cwd` are never read
[INFO] [stdout]    --> clash-lib/src/lib.rs:98:5
[INFO] [stdout]     |
[INFO] [stdout]  97 | pub struct GlobalState {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout]  98 |     log_level: LogLevel,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]  99 |     #[cfg(feature = "tun")]
[INFO] [stdout] 100 |     tunnel_listener_handle: Option<JoinHandle<Result<()>>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 101 |     api_listener_handle: Option<JoinHandle<Result<()>>>,
[INFO] [stdout] 102 |     dns_listener_handle: Option<JoinHandle<Result<()>>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 103 |     reload_tx: mpsc::Sender<(Config, oneshot::Sender<()>)>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 104 |     cwd: String,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `cache_store`, `dns_resolver`, and `dispatcher` are never read
[INFO] [stdout]    --> clash-lib/src/lib.rs:278:5
[INFO] [stdout]     |
[INFO] [stdout] 273 | struct RuntimeComponents {
[INFO] [stdout]     |        ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 278 |     cache_store: profile::ThreadSafeCacheFile,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 279 |     dns_resolver: ThreadSafeDNSResolver,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 280 |     outbound_manager: Arc<OutboundManager>,
[INFO] [stdout] 281 |     dispatcher: Arc<Dispatcher>,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `log_source_tx` and `statistics_manager` are never read
[INFO] [stdout]   --> clash-lib/src/app/api/mod.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct AppState {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 15 |     log_source_tx: Sender<LogEvent>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 16 |     statistics_manager: Arc<StatisticsManager>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_outbound`, `tcp_buffer_size`, `resolver`, and `statistics_manager` are never used
[INFO] [stdout]   --> clash-lib/src/app/dispatcher/dispatcher_impl.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl Dispatcher {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn get_outbound(&self, name: &str) -> Option<AnyOutboundHandler> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn tcp_buffer_size(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn resolver(&self) -> ThreadSafeDNSResolver {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn statistics_manager(&self) -> Arc<StatisticsManager> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `1` is never read
[INFO] [stdout]   --> clash-lib/src/app/dispatcher/tracked.rs:24:32
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct Tracked(uuid::Uuid, Arc<TrackerInfo>);
[INFO] [stdout]    |            -------             ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `tracker_info` is never used
[INFO] [stdout]   --> clash-lib/src/app/dispatcher/tracked.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Tracked {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn tracker_info(&self) -> Arc<TrackerInfo> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ResolverKind` is never used
[INFO] [stdout]   --> clash-lib/src/app/dns/mod.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub enum ResolverKind {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `exchange` is never used
[INFO] [stdout]   --> clash-lib/src/app/dns/mod.rs:35:14
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub trait ClashResolver: Sync + Send {
[INFO] [stdout]    |           ------------- method in this trait
[INFO] [stdout] 34 |     /// Used for DNS Server
[INFO] [stdout] 35 |     async fn exchange(&self, message: &op::Message) -> anyhow::Result<op::Message>;
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_DNS_SERVER_TTL` is never used
[INFO] [stdout]   --> clash-lib/src/app/dns/server/mod.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | static DEFAULT_DNS_SERVER_TTL: u32 = 60;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exchange_with_resolver` is never used
[INFO] [stdout]  --> clash-lib/src/app/dns/server/handler.rs:6:14
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub async fn exchange_with_resolver(
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Ports` is never constructed
[INFO] [stdout]   --> clash-lib/src/app/inbound/manager.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Ports {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> clash-lib/src/app/inbound/manager.rs:85:18
[INFO] [stdout]     |
[INFO] [stdout]  38 | impl InboundManager {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub async fn shutdown(&self) {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub async fn restart(&self) {
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub async fn get_ports(&self) -> Ports {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub async fn get_allow_lan(&self) -> bool {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub async fn set_allow_lan(&self, allow_lan: bool) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub async fn set_bind_address(&self, bind_address: BindAddress) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub async fn change_ports(&self, ports: Ports) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `proxy_manager` is never read
[INFO] [stdout]   --> clash-lib/src/app/outbound/manager.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct OutboundManager {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 24 |     handlers: HashMap<String, AnyOutboundHandler>,
[INFO] [stdout] 25 |     proxy_manager: ProxyManager,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `proxy_names` is never used
[INFO] [stdout]   --> clash-lib/src/app/outbound/manager.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl OutboundManager {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 94 |     pub fn proxy_names(&self) -> &[String] {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> clash-lib/src/app/profile/mod.rs:21:32
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct ThreadSafeCacheFile(Arc<tokio::sync::RwLock<CacheFile>>);
[INFO] [stdout]    |            ------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout]    = note: `ThreadSafeCacheFile` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `store_selected` is never read
[INFO] [stdout]   --> clash-lib/src/app/profile/mod.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 66 | struct CacheFile {
[INFO] [stdout]    |        --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 69 |     store_selected: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `proxy_state` and `dns_resolver` are never read
[INFO] [stdout]   --> clash-lib/src/app/remote_content_manager/mod.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct ProxyManager {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 17 |     proxy_state: Arc<RwLock<HashMap<String, ProxyState>>>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 18 |     dns_resolver: ThreadSafeDNSResolver,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProxyManager` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `alive` and `delay_history` are never read
[INFO] [stdout]   --> clash-lib/src/app/remote_content_manager/mod.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | struct ProxyState {
[INFO] [stdout]    |        ---------- fields in this struct
[INFO] [stdout] 35 |     alive: AtomicBool,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 36 |     delay_history: VecDeque<DelayHistory>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `dns_resolver` is never read
[INFO] [stdout]   --> clash-lib/src/app/router/mod.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct Router {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 21 |     rules: Vec<Box<dyn RuleMatcher>>,
[INFO] [stdout] 22 |     dns_resolver: ThreadSafeDNSResolver,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `IntoIoResultExt` is never used
[INFO] [stdout]   --> clash-lib/src/common/errors.rs:25:11
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub trait IntoIoResultExt<T> {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `dns_resolver` is never read
[INFO] [stdout]   --> clash-lib/src/common/http/client.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct HttpClient {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 25 |     dns_resolver: ThreadSafeDNSResolver,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HttpClient` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ReadExactBase` is never used
[INFO] [stdout]    --> clash-lib/src/common/io/mod.rs:408:11
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub trait ReadExactBase {
[INFO] [stdout]     |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ReadExt` is never used
[INFO] [stdout]    --> clash-lib/src/common/io/mod.rs:415:11
[INFO] [stdout]     |
[INFO] [stdout] 415 | pub trait ReadExt: ReadExactBase {
[INFO] [stdout]     |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_ASN_MMDB_DOWNLOAD_URL` is never used
[INFO] [stdout]   --> clash-lib/src/common/mmdb.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub static DEFAULT_ASN_MMDB_DOWNLOAD_URL: &str = "https://git.io/GeoLite2-ASN.mmdb";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `reader` is never read
[INFO] [stdout]   --> clash-lib/src/common/mmdb.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct Mmdb {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] 18 |     reader: maxminddb::Reader<Vec<u8>>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MmdbLookupCountry` is never constructed
[INFO] [stdout]   --> clash-lib/src/common/mmdb.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct MmdbLookupCountry {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MmdbLookupAsn` is never constructed
[INFO] [stdout]   --> clash-lib/src/common/mmdb.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct MmdbLookupAsn {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `lookup_country` and `lookup_asn` are never used
[INFO] [stdout]   --> clash-lib/src/common/mmdb.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub trait MmdbLookupTrait {
[INFO] [stdout]    |           --------------- methods in this trait
[INFO] [stdout] 38 |     fn lookup_country(&self, ip: IpAddr) -> std::io::Result<MmdbLookupCountry>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     fn lookup_asn(&self, ip: IpAddr) -> std::io::Result<MmdbLookupAsn>;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RuleProviderDef` is never used
[INFO] [stdout]    --> clash-lib/src/config/internal/config.rs:162:10
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub enum RuleProviderDef {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileRuleProvider` is never constructed
[INFO] [stdout]    --> clash-lib/src/config/internal/config.rs:169:12
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub struct FileRuleProvider {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_ADDR_LEN` is never used
[INFO] [stdout]  --> clash-lib/src/proxy/socks/socks5.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const MAX_ADDR_LEN: usize = 1 + 1 + 255 + 2;
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_AUTH_LEN` is never used
[INFO] [stdout]  --> clash-lib/src/proxy/socks/socks5.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const MAX_AUTH_LEN: usize = 255;
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERROR_CODE_LOOKUP` is never used
[INFO] [stdout]   --> clash-lib/src/proxy/socks/socks5.rs:35:7
[INFO] [stdout]    |
[INFO] [stdout] 35 | const ERROR_CODE_LOOKUP: &[&str] = &[
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `icon` and `url` are never read
[INFO] [stdout]  --> clash-lib/src/proxy/options.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct HandlerCommonOptions {
[INFO] [stdout]   |            -------------------- fields in this struct
[INFO] [stdout] 3 |     pub connector: Option<String>,
[INFO] [stdout] 4 |     pub icon: Option<String>,
[INFO] [stdout]   |         ^^^^
[INFO] [stdout] 5 |     pub url: Option<String>,
[INFO] [stdout]   |         ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `HandlerCommonOptions` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `udp` is never read
[INFO] [stdout]   --> clash-lib/src/proxy/trojan/mod.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct HandlerOptions {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub udp: bool,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ip`
[INFO] [stdout]    --> clash-lib/src/session.rs:116:19
[INFO] [stdout]     |
[INFO] [stdout] 116 |         if let Ok(ip) = value.0.parse::<IpAddr>() {
[INFO] [stdout]     |                   ^^ help: if this is intentional, prefix it with an underscore: `_ip`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> clash-lib/src/lib.rs:90:25
[INFO] [stdout]    |
[INFO] [stdout] 90 |             Config::Str(s) => {
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reload_rx`
[INFO] [stdout]    --> clash-lib/src/lib.rs:217:21
[INFO] [stdout]     |
[INFO] [stdout] 217 |     let (reload_tx, mut reload_rx) = mpsc::channel(1);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reload_rx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `log_level`, `tunnel_listener_handle`, `dns_listener_handle`, `reload_tx`, and `cwd` are never read
[INFO] [stdout]    --> clash-lib/src/lib.rs:98:5
[INFO] [stdout]     |
[INFO] [stdout]  97 | pub struct GlobalState {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout]  98 |     log_level: LogLevel,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]  99 |     #[cfg(feature = "tun")]
[INFO] [stdout] 100 |     tunnel_listener_handle: Option<JoinHandle<Result<()>>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 101 |     api_listener_handle: Option<JoinHandle<Result<()>>>,
[INFO] [stdout] 102 |     dns_listener_handle: Option<JoinHandle<Result<()>>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 103 |     reload_tx: mpsc::Sender<(Config, oneshot::Sender<()>)>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 104 |     cwd: String,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `cache_store`, `dns_resolver`, and `dispatcher` are never read
[INFO] [stdout]    --> clash-lib/src/lib.rs:278:5
[INFO] [stdout]     |
[INFO] [stdout] 273 | struct RuntimeComponents {
[INFO] [stdout]     |        ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 278 |     cache_store: profile::ThreadSafeCacheFile,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 279 |     dns_resolver: ThreadSafeDNSResolver,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 280 |     outbound_manager: Arc<OutboundManager>,
[INFO] [stdout] 281 |     dispatcher: Arc<Dispatcher>,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `log_source_tx` and `statistics_manager` are never read
[INFO] [stdout]   --> clash-lib/src/app/api/mod.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct AppState {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 15 |     log_source_tx: Sender<LogEvent>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 16 |     statistics_manager: Arc<StatisticsManager>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_outbound`, `tcp_buffer_size`, `resolver`, and `statistics_manager` are never used
[INFO] [stdout]   --> clash-lib/src/app/dispatcher/dispatcher_impl.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl Dispatcher {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn get_outbound(&self, name: &str) -> Option<AnyOutboundHandler> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn tcp_buffer_size(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn resolver(&self) -> ThreadSafeDNSResolver {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn statistics_manager(&self) -> Arc<StatisticsManager> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `1` is never read
[INFO] [stdout]   --> clash-lib/src/app/dispatcher/tracked.rs:24:32
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct Tracked(uuid::Uuid, Arc<TrackerInfo>);
[INFO] [stdout]    |            -------             ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `tracker_info` is never used
[INFO] [stdout]   --> clash-lib/src/app/dispatcher/tracked.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Tracked {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn tracker_info(&self) -> Arc<TrackerInfo> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ResolverKind` is never used
[INFO] [stdout]   --> clash-lib/src/app/dns/mod.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub enum ResolverKind {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `exchange` is never used
[INFO] [stdout]   --> clash-lib/src/app/dns/mod.rs:35:14
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub trait ClashResolver: Sync + Send {
[INFO] [stdout]    |           ------------- method in this trait
[INFO] [stdout] 34 |     /// Used for DNS Server
[INFO] [stdout] 35 |     async fn exchange(&self, message: &op::Message) -> anyhow::Result<op::Message>;
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_DNS_SERVER_TTL` is never used
[INFO] [stdout]   --> clash-lib/src/app/dns/server/mod.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | static DEFAULT_DNS_SERVER_TTL: u32 = 60;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exchange_with_resolver` is never used
[INFO] [stdout]  --> clash-lib/src/app/dns/server/handler.rs:6:14
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub async fn exchange_with_resolver(
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Ports` is never constructed
[INFO] [stdout]   --> clash-lib/src/app/inbound/manager.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Ports {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> clash-lib/src/app/inbound/manager.rs:85:18
[INFO] [stdout]     |
[INFO] [stdout]  38 | impl InboundManager {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub async fn shutdown(&self) {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub async fn restart(&self) {
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub async fn get_ports(&self) -> Ports {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub async fn get_allow_lan(&self) -> bool {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub async fn set_allow_lan(&self, allow_lan: bool) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub async fn set_bind_address(&self, bind_address: BindAddress) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub async fn change_ports(&self, ports: Ports) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `proxy_manager` is never read
[INFO] [stdout]   --> clash-lib/src/app/outbound/manager.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct OutboundManager {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 24 |     handlers: HashMap<String, AnyOutboundHandler>,
[INFO] [stdout] 25 |     proxy_manager: ProxyManager,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `proxy_names` is never used
[INFO] [stdout]   --> clash-lib/src/app/outbound/manager.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl OutboundManager {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 94 |     pub fn proxy_names(&self) -> &[String] {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> clash-lib/src/app/profile/mod.rs:21:32
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct ThreadSafeCacheFile(Arc<tokio::sync::RwLock<CacheFile>>);
[INFO] [stdout]    |            ------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout]    = note: `ThreadSafeCacheFile` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `store_selected` is never read
[INFO] [stdout]   --> clash-lib/src/app/profile/mod.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 66 | struct CacheFile {
[INFO] [stdout]    |        --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 69 |     store_selected: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `proxy_state` and `dns_resolver` are never read
[INFO] [stdout]   --> clash-lib/src/app/remote_content_manager/mod.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct ProxyManager {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 17 |     proxy_state: Arc<RwLock<HashMap<String, ProxyState>>>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 18 |     dns_resolver: ThreadSafeDNSResolver,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProxyManager` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `alive` and `delay_history` are never read
[INFO] [stdout]   --> clash-lib/src/app/remote_content_manager/mod.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | struct ProxyState {
[INFO] [stdout]    |        ---------- fields in this struct
[INFO] [stdout] 35 |     alive: AtomicBool,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 36 |     delay_history: VecDeque<DelayHistory>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `dns_resolver` is never read
[INFO] [stdout]   --> clash-lib/src/app/router/mod.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct Router {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 21 |     rules: Vec<Box<dyn RuleMatcher>>,
[INFO] [stdout] 22 |     dns_resolver: ThreadSafeDNSResolver,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `IntoIoResultExt` is never used
[INFO] [stdout]   --> clash-lib/src/common/errors.rs:25:11
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub trait IntoIoResultExt<T> {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `dns_resolver` is never read
[INFO] [stdout]   --> clash-lib/src/common/http/client.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct HttpClient {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 25 |     dns_resolver: ThreadSafeDNSResolver,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HttpClient` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ReadExactBase` is never used
[INFO] [stdout]    --> clash-lib/src/common/io/mod.rs:408:11
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub trait ReadExactBase {
[INFO] [stdout]     |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ReadExt` is never used
[INFO] [stdout]    --> clash-lib/src/common/io/mod.rs:415:11
[INFO] [stdout]     |
[INFO] [stdout] 415 | pub trait ReadExt: ReadExactBase {
[INFO] [stdout]     |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_ASN_MMDB_DOWNLOAD_URL` is never used
[INFO] [stdout]   --> clash-lib/src/common/mmdb.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub static DEFAULT_ASN_MMDB_DOWNLOAD_URL: &str = "https://git.io/GeoLite2-ASN.mmdb";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `reader` is never read
[INFO] [stdout]   --> clash-lib/src/common/mmdb.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct Mmdb {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] 18 |     reader: maxminddb::Reader<Vec<u8>>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MmdbLookupCountry` is never constructed
[INFO] [stdout]   --> clash-lib/src/common/mmdb.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct MmdbLookupCountry {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MmdbLookupAsn` is never constructed
[INFO] [stdout]   --> clash-lib/src/common/mmdb.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct MmdbLookupAsn {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `lookup_country` and `lookup_asn` are never used
[INFO] [stdout]   --> clash-lib/src/common/mmdb.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub trait MmdbLookupTrait {
[INFO] [stdout]    |           --------------- methods in this trait
[INFO] [stdout] 38 |     fn lookup_country(&self, ip: IpAddr) -> std::io::Result<MmdbLookupCountry>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     fn lookup_asn(&self, ip: IpAddr) -> std::io::Result<MmdbLookupAsn>;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RuleProviderDef` is never used
[INFO] [stdout]    --> clash-lib/src/config/internal/config.rs:162:10
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub enum RuleProviderDef {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileRuleProvider` is never constructed
[INFO] [stdout]    --> clash-lib/src/config/internal/config.rs:169:12
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub struct FileRuleProvider {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_ADDR_LEN` is never used
[INFO] [stdout]  --> clash-lib/src/proxy/socks/socks5.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const MAX_ADDR_LEN: usize = 1 + 1 + 255 + 2;
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_AUTH_LEN` is never used
[INFO] [stdout]  --> clash-lib/src/proxy/socks/socks5.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const MAX_AUTH_LEN: usize = 255;
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERROR_CODE_LOOKUP` is never used
[INFO] [stdout]   --> clash-lib/src/proxy/socks/socks5.rs:35:7
[INFO] [stdout]    |
[INFO] [stdout] 35 | const ERROR_CODE_LOOKUP: &[&str] = &[
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `icon` and `url` are never read
[INFO] [stdout]  --> clash-lib/src/proxy/options.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct HandlerCommonOptions {
[INFO] [stdout]   |            -------------------- fields in this struct
[INFO] [stdout] 3 |     pub connector: Option<String>,
[INFO] [stdout] 4 |     pub icon: Option<String>,
[INFO] [stdout]   |         ^^^^
[INFO] [stdout] 5 |     pub url: Option<String>,
[INFO] [stdout]   |         ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `HandlerCommonOptions` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `udp` is never read
[INFO] [stdout]   --> clash-lib/src/proxy/trojan/mod.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct HandlerOptions {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub udp: bool,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 24s
[INFO] running `Command { std: "docker" "inspect" "f7bb76af1731b6dcdf2999d46ad5c6109f7bb379a7d5447e0e0f21f3612295a4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f7bb76af1731b6dcdf2999d46ad5c6109f7bb379a7d5447e0e0f21f3612295a4", kill_on_drop: false }`
[INFO] [stdout] f7bb76af1731b6dcdf2999d46ad5c6109f7bb379a7d5447e0e0f21f3612295a4
