[INFO] fetching crate rmcp-server-kit 1.3.2...
[INFO] testing rmcp-server-kit-1.3.2 against beta-2026-04-21 for beta-1.96-2
[INFO] extracting crate rmcp-server-kit 1.3.2 into /workspace/builds/worker-1-tc2/source
[INFO] started tweaking crates.io crate rmcp-server-kit 1.3.2
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate rmcp-server-kit 1.3.2
[INFO] tweaked toml for crates.io crate rmcp-server-kit 1.3.2 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate rmcp-server-kit 1.3.2 on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate rmcp-server-kit 1.3.2 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" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 21507500be4eac3b56cfec238b4eb0addfb94b8a2ea37f8ca089deccabe5ed27
[INFO] running `Command { std: "docker" "start" "-a" "21507500be4eac3b56cfec238b4eb0addfb94b8a2ea37f8ca089deccabe5ed27", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "21507500be4eac3b56cfec238b4eb0addfb94b8a2ea37f8ca089deccabe5ed27", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "21507500be4eac3b56cfec238b4eb0addfb94b8a2ea37f8ca089deccabe5ed27", kill_on_drop: false }`
[INFO] [stdout] 21507500be4eac3b56cfec238b4eb0addfb94b8a2ea37f8ca089deccabe5ed27
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1a563ae6e26db7543e92573a195b072fc85089f525e316e1ff402e497a704f06
[INFO] running `Command { std: "docker" "start" "-a" "1a563ae6e26db7543e92573a195b072fc85089f525e316e1ff402e497a704f06", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling generic-array v0.14.9
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling rustls v0.23.38
[INFO] [stderr]    Compiling num-conv v0.2.1
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling time-macros v0.2.27
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling asn1-rs-derive v0.6.0
[INFO] [stderr]    Compiling asn1-rs-impl v0.2.0
[INFO] [stderr]    Compiling compression-core v0.4.31
[INFO] [stderr]    Compiling tokio v1.52.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling oid-registry v0.8.1
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling schemars_derive v1.2.1
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling compression-codecs v0.4.37
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling rmcp v1.5.0
[INFO] [stderr]    Compiling rusticata-macros v4.1.0
[INFO] [stderr]    Compiling winnow v1.0.2
[INFO] [stderr]    Compiling base64ct v1.8.3
[INFO] [stderr]    Compiling dashmap v6.1.0
[INFO] [stderr]    Compiling rand v0.9.4
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling tracing-serde v0.2.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling password-hash v0.5.0
[INFO] [stderr]    Compiling blake2 v0.10.6
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling asn1-rs v0.7.1
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling sse-stream v0.2.2
[INFO] [stderr]    Compiling uuid v1.23.1
[INFO] [stderr]    Compiling spinning_top v0.3.0
[INFO] [stderr]    Compiling nonzero_ext v0.3.0
[INFO] [stderr]    Compiling pastey v0.2.1
[INFO] [stderr]    Compiling data-encoding v2.10.0
[INFO] [stderr]    Compiling web-time v1.1.0
[INFO] [stderr]    Compiling toml_writer v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling humantime-serde v1.1.1
[INFO] [stderr]    Compiling governor v0.10.4
[INFO] [stderr]    Compiling argon2 v0.5.3
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling rmcp-macros v1.5.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling secrecy v0.10.3
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling toml v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling schemars v1.2.1
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling der-parser v10.0.0
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling async-compression v0.4.41
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling x509-parser v0.18.1
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling axum v0.8.9
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling rustls-platform-verifier v0.6.2
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.13.2
[INFO] [stderr]    Compiling rmcp-server-kit v1.3.2 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 02s
[INFO] running `Command { std: "docker" "inspect" "1a563ae6e26db7543e92573a195b072fc85089f525e316e1ff402e497a704f06", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1a563ae6e26db7543e92573a195b072fc85089f525e316e1ff402e497a704f06", kill_on_drop: false }`
[INFO] [stdout] 1a563ae6e26db7543e92573a195b072fc85089f525e316e1ff402e497a704f06
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7ea02649a94737b136c0ce10292f8cea786d5ec0c7c5d3b42cf63691247ffcee
[INFO] running `Command { std: "docker" "start" "-a" "7ea02649a94737b136c0ce10292f8cea786d5ec0c7c5d3b42cf63691247ffcee", kill_on_drop: false }`
[INFO] [stderr]    Compiling libm v0.2.16
[INFO] [stderr]    Compiling const-oid v0.9.6
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling zerocopy-derive v0.8.48
[INFO] [stderr]    Compiling tokio v1.52.1
[INFO] [stderr]    Compiling spin v0.9.8
[INFO] [stderr]    Compiling pem-rfc7468 v0.7.0
[INFO] [stderr]    Compiling raw-cpuid v11.6.0
[INFO] [stderr]    Compiling num-bigint-dig v0.8.6
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling sse-stream v0.2.2
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling yasna v0.5.2
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling blake2 v0.10.6
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling der v0.7.10
[INFO] [stderr]    Compiling pem v3.0.6
[INFO] [stderr]    Compiling password-hash v0.5.0
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling signature v2.2.0
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling memory-stats v1.2.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling argon2 v0.5.3
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling quanta v0.12.6
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling asn1-rs v0.7.1
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling rcgen v0.14.7
[INFO] [stderr]    Compiling spki v0.7.3
[INFO] [stderr]    Compiling pkcs8 v0.10.2
[INFO] [stderr]    Compiling rustls v0.23.38
[INFO] [stderr]    Compiling pkcs1 v0.7.5
[INFO] [stderr]    Compiling oid-registry v0.8.1
[INFO] [stderr]    Compiling der-parser v10.0.0
[INFO] [stderr]    Compiling schemars v1.2.1
[INFO] [stderr]    Compiling x509-parser v0.18.1
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling async-compression v0.4.41
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling deadpool v0.12.3
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling rmcp v1.5.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling rustls-platform-verifier v0.6.2
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling rand v0.9.4
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stderr]    Compiling governor v0.10.4
[INFO] [stderr]    Compiling proptest v1.11.0
[INFO] [stderr]    Compiling rsa v0.9.10
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling axum v0.8.9
[INFO] [stderr]    Compiling wiremock v0.6.5
[INFO] [stderr]    Compiling reqwest v0.13.2
[INFO] [stderr]    Compiling rmcp-server-kit v1.3.2 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 58s
[INFO] running `Command { std: "docker" "inspect" "7ea02649a94737b136c0ce10292f8cea786d5ec0c7c5d3b42cf63691247ffcee", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7ea02649a94737b136c0ce10292f8cea786d5ec0c7c5d3b42cf63691247ffcee", kill_on_drop: false }`
[INFO] [stdout] 7ea02649a94737b136c0ce10292f8cea786d5ec0c7c5d3b42cf63691247ffcee
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 5dad9949d0a15d9345b313cf007facd96f409231923e049fc4eb6830c9de5ebd
[INFO] running `Command { std: "docker" "start" "-a" "5dad9949d0a15d9345b313cf007facd96f409231923e049fc4eb6830c9de5ebd", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.59s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rmcp_server_kit-8934dbeeac70c056)
[INFO] [stdout] 
[INFO] [stdout] running 143 tests
[INFO] [stdout] test auth::tests::extract_bearer_is_case_insensitive_per_rfc7235 ... ok
[INFO] [stdout] test auth::tests::extract_bearer_rejects_other_schemes ... ok
[INFO] [stdout] test auth::tests::auth_identity_debug_redacts_raw_token ... ok
[INFO] [stdout] test auth::tests::api_key_entry_debug_redacts_hash ... ok
[INFO] [stdout] test auth::tests::extract_bearer_tolerates_extra_separator_whitespace ... ok
[INFO] [stdout] test auth::tests::extract_bearer_accepts_canonical_case ... ok
[INFO] [stdout] test auth::tests::auth_identity_debug_marks_absent_secrets ... ok
[INFO] [stdout] test auth::tests::extract_bearer_rejects_malformed ... ok
[INFO] [stdout] test auth::tests::extract_mtls_identity_invalid_der ... ok
[INFO] [stdout] test auth::tests::pre_auth_default_multiplier_is_10x ... ok
[INFO] [stdout] test auth::tests::pre_auth_explicit_override_wins ... ok
[INFO] [stdout] test auth::tests::extract_mtls_identity_from_cn ... ok
[INFO] [stdout] test auth::tests::extract_mtls_identity_falls_back_to_san ... ok
[INFO] [stdout] test auth::tests::rate_limit_semantics_failed_only ... ok
[INFO] [stdout] test auth::tests::middleware_rate_limits ... ok
[INFO] [stdout] test auth::tests::middleware_rejects_no_credentials ... ok
[INFO] [stdout] test admin::tests::no_identity_gets_403 ... ok
[INFO] [stdout] test admin::tests::wrong_role_gets_403 ... ok
[INFO] [stdout] test admin::tests::keys_endpoint_omits_hash ... ok
[INFO] [stdout] test admin::tests::status_returns_uptime ... ok
[INFO] [stdout] test auth::tests::rate_limiter_allows_within_quota ... ok
[INFO] [stdout] test admin::tests::rbac_summary_includes_role_list ... ok
[INFO] [stdout] test auth::tests::rate_limiter_separate_ips ... ok
[INFO] [stdout] test auth::tests::pre_auth_gate_does_not_throttle_mtls ... ok
[INFO] [stdout] test config::tests::invalid_request_timeout_rejected ... ok
[INFO] [stdout] test config::tests::invalid_shutdown_timeout_rejected ... ok
[INFO] [stdout] test config::tests::invalid_log_level_rejected ... ok
[INFO] [stdout] test config::tests::all_valid_log_levels_accepted ... ok
[INFO] [stdout] test config::tests::both_log_formats_accepted ... ok
[INFO] [stdout] test config::tests::observability_config_defaults ... ok
[INFO] [stdout] test config::tests::server_config_defaults ... ok
[INFO] [stdout] test config::tests::tls_cert_without_key_rejected ... ok
[INFO] [stdout] test config::tests::tls_both_set_passes ... ok
[INFO] [stdout] test config::tests::tls_key_without_cert_rejected ... ok
[INFO] [stdout] test config::tests::invalid_log_format_rejected ... ok
[INFO] [stdout] test bounded_limiter::tests::evicted_keys_get_fresh_quota ... ok
[INFO] [stdout] test config::tests::server_config_deserialize_defaults ... ok
[INFO] [stdout] test config::tests::valid_server_config_passes ... ok
[INFO] [stdout] test config::tests::valid_observability_config_passes ... ok
[INFO] [stdout] test config::tests::observability_config_deserialize_defaults ... ok
[INFO] [stdout] test error::tests::display_preserves_message ... ok
[INFO] [stdout] test error::tests::auth_error_returns_401 ... ok
[INFO] [stdout] test error::tests::config_error_returns_500 ... ok
[INFO] [stdout] test error::tests::rate_limited_error_returns_429 ... ok
[INFO] [stdout] test error::tests::tls_error_returns_500 ... ok
[INFO] [stderr] [2m2026-04-27T00:32:25.963+00:00[0m [33m WARN[0m [2mrmcp_server_kit::rbac[0m[2m:[0m RBAC denied [3muser[0m[2m=[0malice-the-auditor [3mrole[0m[2m=[0mviewer [3mtool[0m[2m=[0m"resource_delete" [3mhost[0m[2m=[0m"-"
[INFO] [stdout] test error::tests::startup_error_returns_500 ... ok
[INFO] [stderr] [2m2026-04-27T00:32:25.965+00:00[0m [31mERROR[0m [2mrmcp_server_kit::error[0m[2m:[0m internal error [3merror[0m[2m=[0mI/O error: gone
[INFO] [stdout] test config::tests::zero_port_rejected ... ok
[INFO] [stderr] [2m2026-04-27T00:32:25.976+00:00[0m [33m WARN[0m [2mrmcp_server_kit::rbac[0m[2m:[0m RBAC denied [3muser[0m[2m=[0malice [3mrole[0m[2m=[0mviewer [3mtool[0m[2m=[0m"resource_delete" [3mhost[0m[2m=[0m"-"
[INFO] [stdout] test rbac::tests::argument_allowed_no_allowlist ... ok
[INFO] [stderr] [2m2026-04-27T00:32:25.976+00:00[0m [33m WARN[0m [2mrmcp_server_kit::rbac[0m[2m:[0m RBAC denied [3muser[0m[2m=[0malice [3mrole[0m[2m=[0mviewer [3mtool[0m[2m=[0m"resource_delete" [3mhost[0m[2m=[0m"-"
[INFO] [stdout] test rbac::tests::argument_allowed_with_allowlist ... ok
[INFO] [stderr] [2m2026-04-27T00:32:25.976+00:00[0m [33m WARN[0m [2mrmcp_server_kit::rbac[0m[2m:[0m argument not in allowlist [3muser[0m[2m=[0mdev [3mrole[0m[2m=[0mrestricted-exec [3mtool[0m[2m=[0m"resource_exec" [3margument[0m[2m=[0m"cmd" [3marg_hmac[0m[2m=[0mbddb2112
[INFO] [stdout] test observability::tests::config_format_valid ... ok
[INFO] [stderr] [2m2026-04-27T00:32:25.976+00:00[0m [33m WARN[0m [2mrmcp_server_kit::rbac[0m[2m:[0m argument not in allowlist [3muser[0m[2m=[0mdev [3mrole[0m[2m=[0mrestricted-exec [3mtool[0m[2m=[0m"resource_exec" [3margument[0m[2m=[0m"cmd" [3marg_hmac[0m[2m=[0mbddb2112
[INFO] [stdout] test rbac::tests::argument_denied_not_in_allowlist ... ok
[INFO] [stderr] [2m2026-04-27T00:32:25.984+00:00[0m [33m WARN[0m [2mrmcp_server_kit::tool_hooks[0m[2m:[0m tool result exceeds max_result_bytes; replacing with structured error [3mtool[0m[2m=[0mreplaced_tool [3msize_bytes[0m[2m=[0m8247 [3mlimit_bytes[0m[2m=[0m256
[INFO] [stdout] test rbac::tests::argument_denied_unknown_role ... ok
[INFO] [stderr] [2m2026-04-27T00:32:25.986+00:00[0m [33m WARN[0m [2mrmcp_server_kit::tool_hooks[0m[2m:[0m tool result exceeds max_result_bytes; replacing with structured error [3mtool[0m[2m=[0mwhatever [3msize_bytes[0m[2m=[0m8247 [3mlimit_bytes[0m[2m=[0m256
[INFO] [stdout] test rbac::tests::check_operation_allows_without_host ... ok
[INFO] [stderr] [2m2026-04-27T00:32:25.986+00:00[0m [33m WARN[0m [2mrmcp_server_kit::transport[0m[2m:[0m rejected request: Origin not allowed [3morigin[0m[2m=[0m"http://anything.com" [3mmethod[0m[2m=[0mGET [3mpath[0m[2m=[0m/test [3mallowed[0m[2m=[0m[]
[INFO] [stdout] test observability::tests::init_tracing_double_init_returns_err_not_panic ... ok
[INFO] [stderr] [2m2026-04-27T00:32:25.992+00:00[0m [33m WARN[0m [2mrmcp_server_kit::transport[0m[2m:[0m rejected request: Origin not allowed [3morigin[0m[2m=[0m"http://evil.com" [3mmethod[0m[2m=[0mGET [3mpath[0m[2m=[0m/test [3mallowed[0m[2m=[0m["http://localhost:3000"]
[INFO] [stdout] test rbac::tests::check_operation_unknown_role ... ok
[INFO] [stdout] test rbac::tests::check_operation_disabled ... ok
[INFO] [stdout] test rbac::tests::current_role_returns_none_outside_scope ... ok
[INFO] [stdout] test rbac::tests::deny_overrides_allow ... ok
[INFO] [stdout] test rbac::tests::deploy_allowed_on_matching_hosts ... ok
[INFO] [stdout] test rbac::tests::deploy_denied_on_non_matching_host ... ok
[INFO] [stdout] test rbac::tests::deny_path_uses_explicit_identity_not_task_local ... ok
[INFO] [stdout] test rbac::tests::disabled_policy_allows_everything ... ok
[INFO] [stdout] test rbac::tests::glob_exact_match ... ok
[INFO] [stdout] test error::tests::rbac_error_returns_403 ... ok
[INFO] [stdout] test rbac::tests::check_operation_deny_overrides ... ok
[INFO] [stdout] test error::tests::io_error_returns_500 ... ok
[INFO] [stdout] test rbac::tests::glob_star_middle ... ok
[INFO] [stdout] test rbac::tests::glob_star_only ... ok
[INFO] [stdout] test bounded_limiter::tests::active_over_quota_key_not_evicted ... ok
[INFO] [stdout] test rbac::tests::current_identity_returns_none_outside_scope ... ok
[INFO] [stdout] test rbac::tests::glob_multiple_stars ... ok
[INFO] [stdout] test rbac::tests::host_visible_respects_globs ... ok
[INFO] [stdout] test rbac::tests::host_visible_unknown_role ... ok
[INFO] [stdout] test rbac::tests::host_patterns_returns_globs ... ok
[INFO] [stdout] test rbac::tests::glob_star_prefix ... ok
[INFO] [stdout] test rbac::tests::middleware_batch_all_allowed_passes ... ok
[INFO] [stdout] test rbac::tests::middleware_allows_permitted_tool ... ok
[INFO] [stdout] test rbac::tests::glob_star_suffix ... ok
[INFO] [stdout] test rbac::tests::middleware_batch_with_denied_call_rejects_entire_batch ... ok
[INFO] [stdout] test rbac::tests::middleware_denies_unpermitted_tool ... ok
[INFO] [stdout] test rbac::tests::middleware_enforces_argument_allowlist ... ok
[INFO] [stdout] test rbac::tests::middleware_denies_without_identity ... ok
[INFO] [stdout] test rbac::tests::middleware_batch_mixed_allowed_and_denied_rejects ... ok
[INFO] [stdout] test rbac::tests::middleware_disabled_policy_passes_everything ... ok
[INFO] [stdout] test rbac::tests::ops_wildcard_allows_everything ... ok
[INFO] [stdout] test rbac::tests::redact_with_salt_differs_across_salts ... ok
[INFO] [stdout] test rbac::tests::redact_with_salt_distinguishes_values ... ok
[INFO] [stdout] test rbac::tests::middleware_passes_non_tool_call_post ... ok
[INFO] [stdout] test rbac::tests::policy_with_configured_salt_redacts_consistently ... ok
[INFO] [stdout] test rbac::tests::middleware_passes_non_post ... ok
[INFO] [stdout] test rbac::tests::viewer_allowed_read_ops ... ok
[INFO] [stdout] test rbac::tests::redact_with_salt_is_deterministic_per_salt ... ok
[INFO] [stdout] test rbac::tests::policy_without_configured_salt_uses_process_salt ... ok
[INFO] [stdout] test rbac::tests::redact_arg_is_fast_enough ... ok
[INFO] [stdout] test rbac::tests::unknown_role_denied ... ok
[INFO] [stdout] test rbac::tests::viewer_denied_write_ops ... ok
[INFO] [stdout] test ssrf::tests::cgnat_blocked ... ok
[INFO] [stdout] test ssrf::tests::documentation_and_benchmarking_blocked ... ok
[INFO] [stdout] test ssrf::tests::ipv4_mapped_v6_inherits_block ... ok
[INFO] [stdout] test ssrf::tests::link_local_blocked_v4_v6 ... ok
[INFO] [stdout] test ssrf::tests::rfc1918_blocked ... ok
[INFO] [stdout] test ssrf::tests::http_gated_by_flag ... ok
[INFO] [stdout] test ssrf::tests::https_always_allowed ... ok
[INFO] [stdout] test ssrf::tests::other_schemes_rejected ... ok
[INFO] [stdout] test ssrf::tests::cloud_metadata_blocked ... ok
[INFO] [stdout] test ssrf::tests::loopback_blocked ... ok
[INFO] [stdout] test ssrf::tests::unique_local_v6_blocked ... ok
[INFO] [stdout] test ssrf::tests::public_ips_allowed ... ok
[INFO] [stdout] test tool_hooks::tests::before_hook_deny_builds_error ... ok
[INFO] [stdout] test tool_hooks::tests::replace_outcome_skips_inner_and_returns_payload ... ok
[INFO] [stdout] test tool_hooks::tests::replace_outcome_subject_to_size_cap ... ok
[INFO] [stdout] test transport::tests::derive_allowed_hosts_includes_bind_authority ... ok
[INFO] [stdout] test transport::tests::derive_allowed_hosts_includes_public_host ... ok
[INFO] [stdout] test transport::tests::empty_allowlist_passes_without_origin ... ok
[INFO] [stdout] test tool_hooks::tests::size_cap_replaces_oversized_result ... ok
[INFO] [stdout] test tool_hooks::tests::too_large_result_mentions_limit_and_actual ... ok
[INFO] [stdout] test transport::tests::format_request_headers_redacts_sensitive_values ... ok
[INFO] [stdout] test transport::tests::empty_allowlist_rejects_any_origin ... ok
[INFO] [stdout] test tool_hooks::tests::after_hook_fires_exactly_once_via_spawn ... ok
[INFO] [stdout] test transport::tests::healthz_returns_ok_json ... ok
[INFO] [stdout] test transport::tests::no_origin_header_passes ... ok
[INFO] [stdout] test transport::tests::readyz_returns_503_when_not_ready ... ok
[INFO] [stdout] test transport::tests::readyz_returns_503_when_ready_missing ... ok
[INFO] [stdout] test transport::tests::readyz_returns_ok_when_ready ... ok
[INFO] [stdout] test transport::tests::origin_rejected_returns_403 ... ok
[INFO] [stdout] test transport::tests::server_config_new_defaults ... ok
[INFO] [stdout] test transport::tests::security_headers_set_on_response ... ok
[INFO] [stdout] test transport::tests::concurrency_limit_layer_composes_and_serves ... ok
[INFO] [stdout] test transport::tests::version_payload_contains_expected_fields ... ok
[INFO] [stdout] test transport::tests::compression_layer_gzip_encodes_response ... ok
[INFO] [stdout] test transport::tests::validate_consumes_and_proves ... ok
[INFO] [stdout] test transport::tests::hsts_set_when_tls_enabled ... ok
[INFO] [stdout] test transport::tests::origin_allowed_passes ... ok
[INFO] [stdout] test bounded_limiter::tests::never_exceeds_max_tracked_keys ... ok
[INFO] [stdout] test tool_hooks::tests::after_hook_panic_is_isolated_from_response_path ... ok
[INFO] [stdout] test auth::tests::expired_key_rejected ... ok
[INFO] [stderr] [2m2026-04-27T00:32:29.378+00:00[0m [33m WARN[0m [2mrmcp_server_kit::auth[0m[2m:[0m auth failed [3mfailure_class[0m[2m=[0minvalid_credential
[INFO] [stdout] test auth::tests::middleware_rejects_wrong_bearer ... ok
[INFO] [stdout] test auth::tests::future_expiry_accepted ... ok
[INFO] [stdout] test auth::tests::wrong_token_rejected ... ok
[INFO] [stderr] [2m2026-04-27T00:32:29.729+00:00[0m [32m INFO[0m [2mrmcp_server_kit::auth[0m[2m:[0m bearer token authenticated [3mname[0m[2m=[0mtest-key [3mrole[0m[2m=[0mops
[INFO] [stdout] test auth::tests::middleware_accepts_valid_bearer ... ok
[INFO] [stdout] test auth::tests::generate_and_verify_api_key ... ok
[INFO] [stdout] test auth::tests::multiple_keys_first_match_wins ... ok
[INFO] [stderr] [2m2026-04-27T00:32:30.498+00:00[0m [33m WARN[0m [2mrmcp_server_kit::auth[0m[2m:[0m auth failed [3mfailure_class[0m[2m=[0minvalid_credential
[INFO] [stderr] [2m2026-04-27T00:32:30.499+00:00[0m [33m WARN[0m [2mrmcp_server_kit::auth[0m[2m:[0m auth rate limited by pre-auth gate (request rejected before credential verification) [3mip[0m[2m=[0m10.0.0.10
[INFO] [stdout] test auth::tests::pre_auth_gate_blocks_before_argon2_verification ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 143 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.85s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/crl_discovery_ratelimit.rs (/opt/rustwide/target/debug/deps/crl_discovery_ratelimit-d2abaf248bf8c4a3)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test rate_limited_url_remains_retriable_on_next_handshake ... ok
[INFO] [stdout] test discovery_rate_limit_allows_first_burst_within_quota ... ok
[INFO] [stdout] test discovery_rate_limit_drops_excess ... ok
[INFO] [stdout] test note_discovered_urls_dedup_does_not_consume_limiter_quota ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/crl_map_bounds.rs (/opt/rustwide/target/debug/deps/crl_map_bounds-384a2b32355fef6e)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/crl_ssrf.rs (/opt/rustwide/target/debug/deps/crl_ssrf-8ecce64945e9b420)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test malformed_cert_der_returns_empty ... ok
[INFO] [stdout] test cert_without_cdp_returns_empty ... ok
[INFO] [stdout] test extract_cdp_urls_drops_malformed ... ok
[INFO] [stdout] test extract_cdp_urls_handles_uppercase_scheme ... ok
[INFO] [stdout] test extract_cdp_urls_filters_http_when_disallowed ... ok
[INFO] [stdout] test extract_cdp_urls_drops_disallowed_schemes ... ok
[INFO] [stdout] test body_cap_rejects_oversized_response ... ok
[INFO] [stdout] test hardened_client_refuses_redirect ... ok
[INFO] [stdout] test hardened_client_surfaces_5xx_as_error ... ok
[INFO] [stdout] test body_cap_allows_undersized_response ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/docs_citations.rs (/opt/rustwide/target/debug/deps/docs_citations-4e346577cf34c238)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test architecture_citations_resolve ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/e2e.rs (/opt/rustwide/target/debug/deps/e2e-7ae92eff82cd4d41)
[INFO] [stdout] 
[INFO] [stdout] running 26 tests
[INFO] [stdout] test builder_matches_direct_field_assignment ... ok
[INFO] [stdout] test hook_outcome_variants_are_constructible ... ok
[INFO] [stdout] test auth_rate_limit_triggers ... ok
[INFO] [stdout] test origin_allowed_passes ... ok
[INFO] [stdout] test healthz_returns_ok ... ok
[INFO] [stdout] test no_origin_header_passes ... ok
[INFO] [stdout] test crl_tests::crl_allows_unrevoked_client ... ok
[INFO] [stdout] test origin_rejected ... ok
[INFO] [stdout] test hooked_handler_serves_healthz ... ok
[INFO] [stdout] test validate_rejects_other_misconfig ... ok
[INFO] [stdout] test validate_rejects_admin_without_auth ... ok
[INFO] [stdout] test validate_rejects_partial_tls_pair ... ok
[INFO] [stdout] test crl_tests::crl_rejects_revoked_client ... ok
[INFO] [stdout] test readyz_returns_503_when_not_ready ... ok
[INFO] [stdout] test readyz_mirrors_healthz_when_no_check ... ok
[INFO] [stdout] test auth_rejects_unauthenticated_mcp ... ok
[INFO] [stdout] test crl_tests::crl_fail_closed_when_cdp_unreachable ... ok
[INFO] [stdout] test shutdown_timeout_honored_on_first_signal ... ok
[INFO] [stdout] test crl_tests::crl_fail_open_when_cdp_unreachable ... ok
[INFO] [stdout] test c1_body_limit_applies_before_rbac ... ok
[INFO] [stdout] test c1_origin_rejected_before_auth ... ok
[INFO] [stdout] test auth_accepts_valid_bearer ... ok
[INFO] [stdout] test rbac_allows_permitted_tool ... ok
[INFO] [stdout] test auth_rejects_wrong_bearer ... ok
[INFO] [stdout] test rbac_denies_unpermitted_tool ... ok
[INFO] [stdout] test rbac_argument_allowlist_enforced ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.59s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/jwks_key_cap.rs (/opt/rustwide/target/debug/deps/jwks_key_cap-4aed4e9faea4347a)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/jwks_redirect_ssrf.rs (/opt/rustwide/target/debug/deps/jwks_redirect_ssrf-5dbd6d3e80761e02)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stderr]      Running tests/limiter_memory.rs (/opt/rustwide/target/debug/deps/limiter_memory-74dddc8a6e83b908)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running tests/oauth_http_client.rs (/opt/rustwide/target/debug/deps/oauth_http_client-e96e35b07a3ce6b0)
[INFO] [stdout] running 1 test
[INFO] [stdout] test one_million_ips_holds_under_50mib ... ignored, memory benchmark; run explicitly via --ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running tests/oauth_url_validation.rs (/opt/rustwide/target/debug/deps/oauth_url_validation-5a9c38d4db4aa8d5)
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/properties.rs (/opt/rustwide/target/debug/deps/properties-67efa27a06da7ff9)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test glob_pattern_never_panics ... ok
[INFO] [stdout] test argument_allowed_membership ... ok
[INFO] [stdout] test api_key_generate_verify_roundtrip has been running for over 60 seconds
[INFO] [stdout] test api_key_generate_verify_roundtrip ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 215.24s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests rmcp_server_kit
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test src/lib.rs - tool_hooks (line 70) - compile ... ok
[INFO] [stdout] test src/transport.rs - transport::Validated (line 276) - compile ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/transport.rs - transport::Validated (line 298) - compile fail ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 1.81s; merged doctests compilation took 1.54s
[INFO] running `Command { std: "docker" "inspect" "5dad9949d0a15d9345b313cf007facd96f409231923e049fc4eb6830c9de5ebd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5dad9949d0a15d9345b313cf007facd96f409231923e049fc4eb6830c9de5ebd", kill_on_drop: false }`
[INFO] [stdout] 5dad9949d0a15d9345b313cf007facd96f409231923e049fc4eb6830c9de5ebd
