[INFO] fetching crate retaker 0.8.6... [INFO] testing retaker-0.8.6 against try#8de4c7234dd9b97c9d76b58671343fdbbc9a433e+target=x86_64-unknown-linux-musl for musl_upgrade_1_2_5_with_getrandom_patch_0 [INFO] extracting crate retaker 0.8.6 into /workspace/builds/worker-4-tc1/source [INFO] started tweaking crates.io crate retaker 0.8.6 [INFO] removed 0 missing examples [INFO] finished tweaking crates.io crate retaker 0.8.6 [INFO] tweaked toml for crates.io crate retaker 0.8.6 written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate retaker 0.8.6 on toolchain 8de4c7234dd9b97c9d76b58671343fdbbc9a433e [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate retaker 0.8.6 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" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded miniquad v0.4.6 [INFO] [stderr] Downloaded macroquad v0.4.13 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] c2613cb606775f44c78f624b284b7f2f9b41b1300308cd7668070209f6b1ec19 [INFO] running `Command { std: "docker" "start" "-a" "c2613cb606775f44c78f624b284b7f2f9b41b1300308cd7668070209f6b1ec19", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c2613cb606775f44c78f624b284b7f2f9b41b1300308cd7668070209f6b1ec19", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c2613cb606775f44c78f624b284b7f2f9b41b1300308cd7668070209f6b1ec19", kill_on_drop: false }` [INFO] [stdout] c2613cb606775f44c78f624b284b7f2f9b41b1300308cd7668070209f6b1ec19 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "build" "--frozen" "--message-format=json" "--target" "x86_64-unknown-linux-musl", kill_on_drop: false }` [INFO] [stdout] 5676640b8f9ecce3fd9f35fad04f23c5c1229f8c80c405ce1d5254e6d011385c [INFO] running `Command { std: "docker" "start" "-a" "5676640b8f9ecce3fd9f35fad04f23c5c1229f8c80c405ce1d5254e6d011385c", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.161 [INFO] [stderr] Compiling crossbeam-utils v0.8.20 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling autocfg v1.4.0 [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling rayon-core v1.12.1 [INFO] [stderr] Compiling once_cell v1.20.2 [INFO] [stderr] Compiling scopeguard v1.2.0 [INFO] [stderr] Compiling smallvec v1.13.2 [INFO] [stderr] Compiling either v1.13.0 [INFO] [stderr] Compiling ahash v0.7.8 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling crossbeam-deque v0.8.5 [INFO] [stderr] Compiling getrandom v0.2.15 [INFO] [stderr] Compiling rayon v1.10.0 [INFO] [stderr] Compiling parking_lot v0.12.3 [INFO] [stderr] Compiling hashbrown v0.12.3 [INFO] [stderr] Compiling retaker v0.8.6 (/opt/rustwide/workdir) [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/world.rs:96:24 [INFO] [stdout] | [INFO] [stdout] 96 | pub fn lock_shared(&self) -> ReaderWorldGuard { [INFO] [stdout] | ^^^^^ ---------------- the lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 96 | pub fn lock_shared(&self) -> ReaderWorldGuard<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/world.rs:101:27 [INFO] [stdout] | [INFO] [stdout] 101 | pub fn lock_exclusive(&self) -> WriterWorldGuard { [INFO] [stdout] | ^^^^^ ---------------- the lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 101 | pub fn lock_exclusive(&self) -> WriterWorldGuard<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/world.rs:106:28 [INFO] [stdout] | [INFO] [stdout] 106 | pub fn lock_upgradable(&self) -> UpgradableReaderWorldGuard { [INFO] [stdout] | ^^^^^ -------------------------- the lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 106 | pub fn lock_upgradable(&self) -> UpgradableReaderWorldGuard<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.62s [INFO] running `Command { std: "docker" "inspect" "5676640b8f9ecce3fd9f35fad04f23c5c1229f8c80c405ce1d5254e6d011385c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5676640b8f9ecce3fd9f35fad04f23c5c1229f8c80c405ce1d5254e6d011385c", kill_on_drop: false }` [INFO] [stdout] 5676640b8f9ecce3fd9f35fad04f23c5c1229f8c80c405ce1d5254e6d011385c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "test" "--frozen" "--no-run" "--message-format=json" "--target" "x86_64-unknown-linux-musl", kill_on_drop: false }` [INFO] [stdout] 0ea89c69b8ffd0b9c96225c62aeaa46d1d5ee79ef94242fb6922255fdf6f59aa [INFO] running `Command { std: "docker" "start" "-a" "0ea89c69b8ffd0b9c96225c62aeaa46d1d5ee79ef94242fb6922255fdf6f59aa", kill_on_drop: false }` [INFO] [stderr] Compiling simd-adler32 v0.3.7 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Compiling adler2 v2.0.0 [INFO] [stderr] Compiling crc32fast v1.4.2 [INFO] [stderr] Compiling zerocopy v0.7.35 [INFO] [stderr] Compiling slotmap v1.0.7 [INFO] [stderr] Compiling bitflags v1.3.2 [INFO] [stderr] Compiling miniquad v0.4.6 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling color_quant v1.1.0 [INFO] [stderr] Compiling byteorder v1.5.0 [INFO] [stderr] Compiling ttf-parser v0.15.2 [INFO] [stderr] Compiling bytemuck v1.22.0 [INFO] [stderr] Compiling glam v0.27.0 [INFO] [stderr] Compiling macroquad_macro v0.1.8 [INFO] [stderr] Compiling quad-rand v0.2.3 [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/world.rs:96:24 [INFO] [stdout] | [INFO] [stdout] 96 | pub fn lock_shared(&self) -> ReaderWorldGuard { [INFO] [stdout] | ^^^^^ ---------------- the lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 96 | pub fn lock_shared(&self) -> ReaderWorldGuard<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/world.rs:101:27 [INFO] [stdout] | [INFO] [stdout] 101 | pub fn lock_exclusive(&self) -> WriterWorldGuard { [INFO] [stdout] | ^^^^^ ---------------- the lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 101 | pub fn lock_exclusive(&self) -> WriterWorldGuard<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/world.rs:106:28 [INFO] [stdout] | [INFO] [stdout] 106 | pub fn lock_upgradable(&self) -> UpgradableReaderWorldGuard { [INFO] [stdout] | ^^^^^ -------------------------- the lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 106 | pub fn lock_upgradable(&self) -> UpgradableReaderWorldGuard<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling miniz_oxide v0.8.5 [INFO] [stderr] Compiling fdeflate v0.3.7 [INFO] [stderr] Compiling hashbrown v0.13.2 [INFO] [stderr] Compiling flate2 v1.1.0 [INFO] [stderr] Compiling png v0.17.16 [INFO] [stderr] Compiling fontdue v0.7.3 [INFO] [stderr] Compiling image v0.24.9 [INFO] [stderr] Compiling macroquad v0.4.13 [INFO] [stderr] Compiling retaker v0.8.6 (/opt/rustwide/workdir) [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/world.rs:96:24 [INFO] [stdout] | [INFO] [stdout] 96 | pub fn lock_shared(&self) -> ReaderWorldGuard { [INFO] [stdout] | ^^^^^ ---------------- the lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 96 | pub fn lock_shared(&self) -> ReaderWorldGuard<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/world.rs:101:27 [INFO] [stdout] | [INFO] [stdout] 101 | pub fn lock_exclusive(&self) -> WriterWorldGuard { [INFO] [stdout] | ^^^^^ ---------------- the lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 101 | pub fn lock_exclusive(&self) -> WriterWorldGuard<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/world.rs:106:28 [INFO] [stdout] | [INFO] [stdout] 106 | pub fn lock_upgradable(&self) -> UpgradableReaderWorldGuard { [INFO] [stdout] | ^^^^^ -------------------------- the lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 106 | pub fn lock_upgradable(&self) -> UpgradableReaderWorldGuard<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 24.86s [INFO] running `Command { std: "docker" "inspect" "0ea89c69b8ffd0b9c96225c62aeaa46d1d5ee79ef94242fb6922255fdf6f59aa", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0ea89c69b8ffd0b9c96225c62aeaa46d1d5ee79ef94242fb6922255fdf6f59aa", kill_on_drop: false }` [INFO] [stdout] 0ea89c69b8ffd0b9c96225c62aeaa46d1d5ee79ef94242fb6922255fdf6f59aa [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "test" "--frozen" "--target" "x86_64-unknown-linux-musl", kill_on_drop: false }` [INFO] [stdout] 80bd87a453ca89222d1b45784fec927666c7cbd83cedb4bff1b2b015e60ba2e5 [INFO] running `Command { std: "docker" "start" "-a" "80bd87a453ca89222d1b45784fec927666c7cbd83cedb4bff1b2b015e60ba2e5", kill_on_drop: false }` [INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stderr] --> src/world.rs:96:24 [INFO] [stderr] | [INFO] [stderr] 96 | pub fn lock_shared(&self) -> ReaderWorldGuard { [INFO] [stderr] | ^^^^^ ---------------- the lifetime gets resolved as `'_` [INFO] [stderr] | | [INFO] [stderr] | this lifetime flows to the output [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stderr] | [INFO] [stderr] 96 | pub fn lock_shared(&self) -> ReaderWorldGuard<'_> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stderr] --> src/world.rs:101:27 [INFO] [stderr] | [INFO] [stderr] 101 | pub fn lock_exclusive(&self) -> WriterWorldGuard { [INFO] [stderr] | ^^^^^ ---------------- the lifetime gets resolved as `'_` [INFO] [stderr] | | [INFO] [stderr] | this lifetime flows to the output [INFO] [stderr] | [INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stderr] | [INFO] [stderr] 101 | pub fn lock_exclusive(&self) -> WriterWorldGuard<'_> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stderr] --> src/world.rs:106:28 [INFO] [stderr] | [INFO] [stderr] 106 | pub fn lock_upgradable(&self) -> UpgradableReaderWorldGuard { [INFO] [stderr] | ^^^^^ -------------------------- the lifetime gets resolved as `'_` [INFO] [stderr] | | [INFO] [stderr] | this lifetime flows to the output [INFO] [stderr] | [INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stderr] | [INFO] [stderr] 106 | pub fn lock_upgradable(&self) -> UpgradableReaderWorldGuard<'_> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: `retaker` (lib) generated 3 warnings (run `cargo fix --lib -p retaker` to apply 3 suggestions) [INFO] [stderr] warning: `retaker` (lib test) generated 3 warnings (3 duplicates) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.09s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/x86_64-unknown-linux-musl/debug/deps/retaker-8a8b9c865888947d) [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test world::insert_remove_set_get ... ok [INFO] [stdout] test world::query_with_without ... ok [INFO] [stdout] test world::query_resource ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.41s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "80bd87a453ca89222d1b45784fec927666c7cbd83cedb4bff1b2b015e60ba2e5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "80bd87a453ca89222d1b45784fec927666c7cbd83cedb4bff1b2b015e60ba2e5", kill_on_drop: false }` [INFO] [stdout] 80bd87a453ca89222d1b45784fec927666c7cbd83cedb4bff1b2b015e60ba2e5