[INFO] fetching crate jsonwebtokens 1.1.0... [INFO] testing jsonwebtokens-1.1.0 against master#a77da2d454e6caa227a85b16410b95f93495e7e0 for pr-91031 [INFO] extracting crate jsonwebtokens 1.1.0 into /workspace/builds/worker-8/source [INFO] validating manifest of crates.io crate jsonwebtokens 1.1.0 on toolchain a77da2d454e6caa227a85b16410b95f93495e7e0 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+a77da2d454e6caa227a85b16410b95f93495e7e0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate jsonwebtokens 1.1.0 [INFO] finished tweaking crates.io crate jsonwebtokens 1.1.0 [INFO] tweaked toml for crates.io crate jsonwebtokens 1.1.0 written to /workspace/builds/worker-8/source/Cargo.toml [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+a77da2d454e6caa227a85b16410b95f93495e7e0" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }` [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+a77da2d454e6caa227a85b16410b95f93495e7e0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/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:5736fa189c1c60b01babf4b8b698fe57b6ecc41933a7ff2e0b8d7a221459412b" "/opt/rustwide/cargo-home/bin/cargo" "+a77da2d454e6caa227a85b16410b95f93495e7e0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 496b35c32cca5a241da4217db7d0dc13f951bc69efe378d1124692b3d5f1cfb3 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "496b35c32cca5a241da4217db7d0dc13f951bc69efe378d1124692b3d5f1cfb3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "496b35c32cca5a241da4217db7d0dc13f951bc69efe378d1124692b3d5f1cfb3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "496b35c32cca5a241da4217db7d0dc13f951bc69efe378d1124692b3d5f1cfb3", kill_on_drop: false }` [INFO] [stdout] 496b35c32cca5a241da4217db7d0dc13f951bc69efe378d1124692b3d5f1cfb3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/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" "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:5736fa189c1c60b01babf4b8b698fe57b6ecc41933a7ff2e0b8d7a221459412b" "/opt/rustwide/cargo-home/bin/cargo" "+a77da2d454e6caa227a85b16410b95f93495e7e0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ccc271295a31786a638ba4a16c1be781aaf281288faf10f79ec8933870a0ef4a [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "ccc271295a31786a638ba4a16c1be781aaf281288faf10f79ec8933870a0ef4a", kill_on_drop: false }` [INFO] [stderr] Compiling serde_derive v1.0.130 [INFO] [stderr] Compiling serde v1.0.130 [INFO] [stderr] Compiling cc v1.0.72 [INFO] [stderr] Compiling once_cell v1.8.0 [INFO] [stderr] Compiling regex-syntax v0.6.25 [INFO] [stderr] Compiling base64 v0.13.0 [INFO] [stderr] Compiling spin v0.5.2 [INFO] [stderr] Compiling untrusted v0.7.1 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Compiling num-bigint v0.4.3 [INFO] [stderr] Compiling syn v1.0.81 [INFO] [stderr] Compiling ring v0.16.20 [INFO] [stderr] Compiling chrono v0.4.19 [INFO] [stderr] Compiling regex v1.5.4 [INFO] [stderr] Compiling pem v0.8.3 [INFO] [stderr] Compiling thiserror-impl v1.0.30 [INFO] [stderr] Compiling thiserror v1.0.30 [INFO] [stderr] Compiling simple_asn1 v0.5.4 [INFO] [stderr] Compiling serde_json v1.0.71 [INFO] [stderr] Compiling jsonwebtokens v1.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `BigUint`, `OID` [INFO] [stdout] --> src/pem/decoder.rs:3:19 [INFO] [stdout] | [INFO] [stdout] 3 | use simple_asn1::{BigUint, OID}; [INFO] [stdout] | ^^^^^^^ ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1m 03s [INFO] running `Command { std: "docker" "inspect" "ccc271295a31786a638ba4a16c1be781aaf281288faf10f79ec8933870a0ef4a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ccc271295a31786a638ba4a16c1be781aaf281288faf10f79ec8933870a0ef4a", kill_on_drop: false }` [INFO] [stdout] ccc271295a31786a638ba4a16c1be781aaf281288faf10f79ec8933870a0ef4a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/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" "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:5736fa189c1c60b01babf4b8b698fe57b6ecc41933a7ff2e0b8d7a221459412b" "/opt/rustwide/cargo-home/bin/cargo" "+a77da2d454e6caa227a85b16410b95f93495e7e0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 67bd50754e174a9c5be851bcb90712e0c68c7639101871ca74f7876f08e1d242 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "67bd50754e174a9c5be851bcb90712e0c68c7639101871ca74f7876f08e1d242", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Compiling futures-core v0.3.17 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stdout] warning: unused imports: `BigUint`, `OID` [INFO] [stdout] --> src/pem/decoder.rs:3:19 [INFO] [stdout] | [INFO] [stdout] 3 | use simple_asn1::{BigUint, OID}; [INFO] [stdout] | ^^^^^^^ ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling tokio v0.2.25 [INFO] [stderr] Compiling tokio-test v0.2.1 [INFO] [stderr] Compiling jsonwebtokens v1.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: function is never used: `get_time` [INFO] [stdout] --> tests/common/mod.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn get_time() -> u64 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BigUint`, `OID` [INFO] [stdout] --> src/pem/decoder.rs:3:19 [INFO] [stdout] | [INFO] [stdout] 3 | use simple_asn1::{BigUint, OID}; [INFO] [stdout] | ^^^^^^^ ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 16.77s [INFO] running `Command { std: "docker" "inspect" "67bd50754e174a9c5be851bcb90712e0c68c7639101871ca74f7876f08e1d242", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "67bd50754e174a9c5be851bcb90712e0c68c7639101871ca74f7876f08e1d242", kill_on_drop: false }` [INFO] [stdout] 67bd50754e174a9c5be851bcb90712e0c68c7639101871ca74f7876f08e1d242 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/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" "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:5736fa189c1c60b01babf4b8b698fe57b6ecc41933a7ff2e0b8d7a221459412b" "/opt/rustwide/cargo-home/bin/cargo" "+a77da2d454e6caa227a85b16410b95f93495e7e0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 9d4ebc1bcd5f7093a92531ce8ff1d5e44418204dbf4fc60d16fcf94d0c73f65a [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "9d4ebc1bcd5f7093a92531ce8ff1d5e44418204dbf4fc60d16fcf94d0c73f65a", kill_on_drop: false }` [INFO] [stderr] warning: unused imports: `BigUint`, `OID` [INFO] [stderr] --> src/pem/decoder.rs:3:19 [INFO] [stderr] | [INFO] [stderr] 3 | use simple_asn1::{BigUint, OID}; [INFO] [stderr] | ^^^^^^^ ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `jsonwebtokens` (lib) generated 1 warning [INFO] [stderr] warning: `jsonwebtokens` (lib test) generated 1 warning (1 duplicate) [INFO] [stderr] warning: function is never used: `get_time` [INFO] [stderr] --> tests/common/mod.rs:3:8 [INFO] [stderr] | [INFO] [stderr] 3 | pub fn get_time() -> u64 { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `jsonwebtokens` (test "time") generated 1 warning [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.05s [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/jsonwebtokens-5075c5eb3b1dfa60) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test crypto::algorithm::tests::generate_algorithm_enum_from_str ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/hmac.rs (/opt/rustwide/target/debug/deps/hmac-3ba86290baa63c6c) [INFO] [stdout] [INFO] [stdout] running 19 tests [INFO] [stdout] test only_decode_token_header ... ok [INFO] [stdout] test only_decode_token_header_with_slice_api ... ok [INFO] [stdout] test only_decode_token_invalid_signature ... ok [INFO] [stdout] test only_decode_token_wrong_algorithm ... ok [INFO] [stdout] test decode_token_with_bytes_secret ... ok [INFO] [stdout] test round_trip_claims ... ok [INFO] [stdout] test only_decode_token ... ok [INFO] [stdout] test decode_token ... ok [INFO] [stdout] test round_trip_claims_and_custom_header ... ok [INFO] [stdout] test sign_hs256 ... ok [INFO] [stdout] test verify_hs256 ... ok [INFO] [stdout] test round_trip_claims_and_kid ... ok [INFO] [stdout] test verify_hs256_signature_only ... ok [INFO] [stdout] test decode_token_missing_parts - should panic ... ok [INFO] [stdout] test missing_alg - should panic ... ok [INFO] [stdout] test decode_token_invalid_signature - should panic ... ok [INFO] [stdout] test hmac_256_bad_secret - should panic ... ok [INFO] [stdout] test split_token_missing_parts - should panic ... ok [INFO] [stdout] test round_trip_claims_and_wrong_kid - should panic ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s [INFO] [stdout] [INFO] [stderr] Running tests/lib.rs (/opt/rustwide/target/debug/deps/lib-9b9a5280a5639894) [INFO] [stdout] [INFO] [stdout] running 13 tests [INFO] [stdout] test ecdsa::round_trip_claims ... ok [INFO] [stdout] test rsa::rsa_modulus_exponent ... ok [INFO] [stdout] test ecdsa::round_trip_sign_verification_pem ... ok [INFO] [stdout] test rsa::round_trip_claims ... ok [INFO] [stdout] test rsa::round_trip_sign_verification_pem_pkcs8 ... ok [INFO] [stdout] test rsa::round_trip_sign_verification_pem_pkcs1 ... ok [INFO] [stdout] test ecdsa::fails_with_non_ecdsa_pkcs8_key_format - should panic ... ok [INFO] [stdout] test ecdsa::wrong_ecdsa_curve - should panic ... ok [INFO] [stdout] test rsa::dont_allow_sign_with_verify_algorithm - should panic ... ok [INFO] [stdout] test rsa::dont_allow_verify_with_sign_algorithm - should panic ... ok [INFO] [stdout] test rsa::decode_token_wrong_algorithm - should panic ... ok [INFO] [stdout] test rsa::roundtrip_with_jwtio_example_jey ... ok [INFO] [stdout] test rsa::round_trip_claims_and_custom_header ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.41s [INFO] [stdout] [INFO] [stderr] Running tests/none.rs (/opt/rustwide/target/debug/deps/none-1d51c1084c9ddf12) [INFO] [stdout] [INFO] [stdout] running 9 tests [INFO] [stdout] test sign_none ... ok [INFO] [stdout] test token_with_non_empty_signature ... ok [INFO] [stdout] test round_trip_claims ... ok [INFO] [stdout] test jwt_name ... ok [INFO] [stdout] test verify_none ... ok [INFO] [stdout] test no_trailing_dot ... ok [INFO] [stdout] test wrong_alg - should panic ... ok [INFO] [stdout] test missing_alg - should panic ... ok [INFO] [stdout] test verify_none_with_non_empty_signature - should panic ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s [INFO] [stdout] [INFO] [stderr] Running tests/time.rs (/opt/rustwide/target/debug/deps/time-914abbd5019ed286) [INFO] [stdout] [INFO] [stdout] running 10 tests [INFO] [stdout] test ignore_token_expired ... ok [INFO] [stdout] test token_just_expired ... ok [INFO] [stdout] test token_expired ... ok [INFO] [stdout] test token_used_before_just_before_issue_with_leeway ... ok [INFO] [stdout] test ignore_token_used_early ... ok [INFO] [stdout] test token_used_slightly_early_with_leeway ... ok [INFO] [stdout] test token_recently_expired_with_leeway ... ok [INFO] [stdout] test token_used_exactly_at_nbf_time ... ok [INFO] [stdout] test token_used_early - should panic ... ok [INFO] [stdout] test token_used_before_issue - should panic ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s [INFO] [stdout] [INFO] [stderr] Running tests/verifier.rs (/opt/rustwide/target/debug/deps/verifier-baac4304f867af66) [INFO] [stdout] [INFO] [stdout] running 32 tests [INFO] [stdout] test aud_equal ... ok [INFO] [stdout] test aud_equal_with_array ... ok [INFO] [stdout] test equals_one_of ... ok [INFO] [stdout] test closure_verify_u64_claim ... ok [INFO] [stdout] test iss_equal ... ok [INFO] [stdout] test matches_one_of ... ok [INFO] [stdout] test string_array_contains ... ok [INFO] [stdout] test string_equals ... ok [INFO] [stdout] test aud_not_equal - should panic ... ok [INFO] [stdout] test string_equals_missing - should panic ... ok [INFO] [stdout] test string_equals_wrong_type - should panic ... ok [INFO] [stdout] test string_matches ... ok [INFO] [stdout] test closure_fail_verify_u64_claim - should panic ... ok [INFO] [stdout] test string_matches_failure - should panic ... ok [INFO] [stdout] test non_integer_exp - should panic ... ok [INFO] [stdout] test string_or_array_aud ... ok [INFO] [stdout] test string_matches_missing - should panic ... ok [INFO] [stdout] test sub_equal ... ok [INFO] [stdout] test non_string_array_contains - should panic ... ok [INFO] [stdout] test sub_not_equal - should panic ... ok [INFO] [stdout] test non_string_array_aud - should panic ... ok [INFO] [stdout] test equals_one_of_failure - should panic ... ok [INFO] [stdout] test non_integer_nbf - should panic ... ok [INFO] [stdout] test non_string_iss - should panic ... ok [INFO] [stdout] test equals_one_of_wrong_type - should panic ... ok [INFO] [stdout] test non_string_sub - should panic ... ok [INFO] [stdout] test non_string_or_array_aud - should panic ... ok [INFO] [stdout] test matches_one_of_failure - should panic ... ok [INFO] [stdout] test matches_one_of_missing - should panic ... ok [INFO] [stdout] test iss_not_equal - should panic ... ok [INFO] [stdout] test string_equals_failure - should panic ... ok [INFO] [stdout] test non_integer_iat - should panic ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 32 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.26s [INFO] [stdout] [INFO] [stderr] Doc-tests jsonwebtokens [INFO] [stdout] [INFO] [stdout] running 8 tests [INFO] [stdout] test src/raw.rs - raw::decode_header_only (line 130) ... ok [INFO] [stdout] test src/raw.rs - raw::decode_json_token_slice (line 109) ... ok [INFO] [stdout] test src/raw.rs - raw::split_token (line 55) ... ok [INFO] [stdout] test src/raw.rs - raw::decode_json_token_slice (line 98) ... ok [INFO] [stdout] test src/encode.rs - encode::encode (line 11) ... ok [INFO] [stdout] test src/encode.rs - encode::encode (line 26) ... ok [INFO] [stdout] test src/raw.rs - raw::verify_signature_only (line 172) ... ok [INFO] [stdout] test src/raw.rs - raw::decode_only (line 151) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 11.90s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "9d4ebc1bcd5f7093a92531ce8ff1d5e44418204dbf4fc60d16fcf94d0c73f65a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9d4ebc1bcd5f7093a92531ce8ff1d5e44418204dbf4fc60d16fcf94d0c73f65a", kill_on_drop: false }` [INFO] [stdout] 9d4ebc1bcd5f7093a92531ce8ff1d5e44418204dbf4fc60d16fcf94d0c73f65a