[INFO] fetching crate az 1.2.1... [INFO] checking az-1.2.1 against master#35936c4839dd272646394779d151e060d0f6b3ac for pr-122960-1 [INFO] extracting crate az 1.2.1 into /workspace/builds/worker-2-tc1/source [INFO] validating manifest of crates.io crate az 1.2.1 on toolchain 35936c4839dd272646394779d151e060d0f6b3ac [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+35936c4839dd272646394779d151e060d0f6b3ac" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate az 1.2.1 [INFO] finished tweaking crates.io crate az 1.2.1 [INFO] tweaked toml for crates.io crate az 1.2.1 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+35936c4839dd272646394779d151e060d0f6b3ac" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+35936c4839dd272646394779d151e060d0f6b3ac" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+35936c4839dd272646394779d151e060d0f6b3ac" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] fec53459decce50e454e8d45ca01a4e458c18e3a00443ab67c0a501e6fe732cb [INFO] running `Command { std: "docker" "start" "-a" "fec53459decce50e454e8d45ca01a4e458c18e3a00443ab67c0a501e6fe732cb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "fec53459decce50e454e8d45ca01a4e458c18e3a00443ab67c0a501e6fe732cb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fec53459decce50e454e8d45ca01a4e458c18e3a00443ab67c0a501e6fe732cb", kill_on_drop: false }` [INFO] [stdout] fec53459decce50e454e8d45ca01a4e458c18e3a00443ab67c0a501e6fe732cb [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+35936c4839dd272646394779d151e060d0f6b3ac" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 2111d03c5b2ae28868d3769a5404c7bc9c44b203e44d60c33280aedfa91c7d0b [INFO] running `Command { std: "docker" "start" "-a" "2111d03c5b2ae28868d3769a5404c7bc9c44b203e44d60c33280aedfa91c7d0b", kill_on_drop: false }` [INFO] [stderr] Compiling az v1.2.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: method `to_round` is never used [INFO] [stdout] --> src/tests/mod.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 56 | trait Float [INFO] [stdout] | ----- method in this trait [INFO] [stdout] ... [INFO] [stdout] 66 | fn to_round(self) -> Round; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.borrow()` on a reference in this situation does nothing [INFO] [stdout] --> src/tests/mod.rs:194:17 [INFO] [stdout] | [INFO] [stdout] 194 | assert_eq!(r.borrow().az::(), 12); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the type `I` does not implement `Borrow`, so calling `borrow` on `&I` copies the reference, which does not do anything and can be removed [INFO] [stdout] = note: `#[warn(noop_method_call)]` on by default [INFO] [stdout] help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] 194 - assert_eq!(r.borrow().az::(), 12); [INFO] [stdout] 194 + assert_eq!(r.az::(), 12); [INFO] [stdout] | [INFO] [stdout] help: if you meant to clone `I`, implement `Clone` for it [INFO] [stdout] | [INFO] [stdout] 161 + #[derive(Clone)] [INFO] [stdout] 162 | struct I(i32); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.borrow()` on a reference in this situation does nothing [INFO] [stdout] --> src/tests/mod.rs:195:17 [INFO] [stdout] | [INFO] [stdout] 195 | assert_eq!(r.borrow().checked_as::(), Some(12)); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the type `I` does not implement `Borrow`, so calling `borrow` on `&I` copies the reference, which does not do anything and can be removed [INFO] [stdout] help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] 195 - assert_eq!(r.borrow().checked_as::(), Some(12)); [INFO] [stdout] 195 + assert_eq!(r.checked_as::(), Some(12)); [INFO] [stdout] | [INFO] [stdout] help: if you meant to clone `I`, implement `Clone` for it [INFO] [stdout] | [INFO] [stdout] 161 + #[derive(Clone)] [INFO] [stdout] 162 | struct I(i32); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.borrow()` on a reference in this situation does nothing [INFO] [stdout] --> src/tests/mod.rs:196:17 [INFO] [stdout] | [INFO] [stdout] 196 | assert_eq!(r.borrow().saturating_as::(), 12); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the type `I` does not implement `Borrow`, so calling `borrow` on `&I` copies the reference, which does not do anything and can be removed [INFO] [stdout] help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] 196 - assert_eq!(r.borrow().saturating_as::(), 12); [INFO] [stdout] 196 + assert_eq!(r.saturating_as::(), 12); [INFO] [stdout] | [INFO] [stdout] help: if you meant to clone `I`, implement `Clone` for it [INFO] [stdout] | [INFO] [stdout] 161 + #[derive(Clone)] [INFO] [stdout] 162 | struct I(i32); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.borrow()` on a reference in this situation does nothing [INFO] [stdout] --> src/tests/mod.rs:197:26 [INFO] [stdout] | [INFO] [stdout] 197 | assert_eq!(r.borrow().borrow().wrapping_as::(), 12); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the type `I` does not implement `Borrow`, so calling `borrow` on `&I` copies the reference, which does not do anything and can be removed [INFO] [stdout] help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] 197 - assert_eq!(r.borrow().borrow().wrapping_as::(), 12); [INFO] [stdout] 197 + assert_eq!(r.borrow().wrapping_as::(), 12); [INFO] [stdout] | [INFO] [stdout] help: if you meant to clone `I`, implement `Clone` for it [INFO] [stdout] | [INFO] [stdout] 161 + #[derive(Clone)] [INFO] [stdout] 162 | struct I(i32); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.borrow()` on a reference in this situation does nothing [INFO] [stdout] --> src/tests/mod.rs:197:17 [INFO] [stdout] | [INFO] [stdout] 197 | assert_eq!(r.borrow().borrow().wrapping_as::(), 12); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the type `I` does not implement `Borrow`, so calling `borrow` on `&I` copies the reference, which does not do anything and can be removed [INFO] [stdout] help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] 197 - assert_eq!(r.borrow().borrow().wrapping_as::(), 12); [INFO] [stdout] 197 + assert_eq!(r.borrow().wrapping_as::(), 12); [INFO] [stdout] | [INFO] [stdout] help: if you meant to clone `I`, implement `Clone` for it [INFO] [stdout] | [INFO] [stdout] 161 + #[derive(Clone)] [INFO] [stdout] 162 | struct I(i32); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.borrow()` on a reference in this situation does nothing [INFO] [stdout] --> src/tests/mod.rs:198:17 [INFO] [stdout] | [INFO] [stdout] 198 | assert_eq!(r.borrow().overflowing_as::(), (12, false)); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the type `I` does not implement `Borrow`, so calling `borrow` on `&I` copies the reference, which does not do anything and can be removed [INFO] [stdout] help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] 198 - assert_eq!(r.borrow().overflowing_as::(), (12, false)); [INFO] [stdout] 198 + assert_eq!(r.overflowing_as::(), (12, false)); [INFO] [stdout] | [INFO] [stdout] help: if you meant to clone `I`, implement `Clone` for it [INFO] [stdout] | [INFO] [stdout] 161 + #[derive(Clone)] [INFO] [stdout] 162 | struct I(i32); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.borrow()` on a reference in this situation does nothing [INFO] [stdout] --> src/tests/mod.rs:199:17 [INFO] [stdout] | [INFO] [stdout] 199 | assert_eq!(r.borrow().unwrapped_as::(), 12); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the type `I` does not implement `Borrow`, so calling `borrow` on `&I` copies the reference, which does not do anything and can be removed [INFO] [stdout] help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] 199 - assert_eq!(r.borrow().unwrapped_as::(), 12); [INFO] [stdout] 199 + assert_eq!(r.unwrapped_as::(), 12); [INFO] [stdout] | [INFO] [stdout] help: if you meant to clone `I`, implement `Clone` for it [INFO] [stdout] | [INFO] [stdout] 161 + #[derive(Clone)] [INFO] [stdout] 162 | struct I(i32); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.borrow()` on a reference in this situation does nothing [INFO] [stdout] --> src/tests/mod.rs:201:17 [INFO] [stdout] | [INFO] [stdout] 201 | assert_eq!(r.borrow().checked_as::(), None); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the type `I` does not implement `Borrow`, so calling `borrow` on `&I` copies the reference, which does not do anything and can be removed [INFO] [stdout] help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] 201 - assert_eq!(r.borrow().checked_as::(), None); [INFO] [stdout] 201 + assert_eq!(r.checked_as::(), None); [INFO] [stdout] | [INFO] [stdout] help: if you meant to clone `I`, implement `Clone` for it [INFO] [stdout] | [INFO] [stdout] 161 + #[derive(Clone)] [INFO] [stdout] 162 | struct I(i32); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.borrow()` on a reference in this situation does nothing [INFO] [stdout] --> src/tests/mod.rs:202:17 [INFO] [stdout] | [INFO] [stdout] 202 | assert_eq!(r.borrow().saturating_as::(), 0); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the type `I` does not implement `Borrow`, so calling `borrow` on `&I` copies the reference, which does not do anything and can be removed [INFO] [stdout] help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] 202 - assert_eq!(r.borrow().saturating_as::(), 0); [INFO] [stdout] 202 + assert_eq!(r.saturating_as::(), 0); [INFO] [stdout] | [INFO] [stdout] help: if you meant to clone `I`, implement `Clone` for it [INFO] [stdout] | [INFO] [stdout] 161 + #[derive(Clone)] [INFO] [stdout] 162 | struct I(i32); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.borrow()` on a reference in this situation does nothing [INFO] [stdout] --> src/tests/mod.rs:203:17 [INFO] [stdout] | [INFO] [stdout] 203 | assert_eq!(r.borrow().wrapping_as::(), 5u32.wrapping_neg()); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the type `I` does not implement `Borrow`, so calling `borrow` on `&I` copies the reference, which does not do anything and can be removed [INFO] [stdout] help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] 203 - assert_eq!(r.borrow().wrapping_as::(), 5u32.wrapping_neg()); [INFO] [stdout] 203 + assert_eq!(r.wrapping_as::(), 5u32.wrapping_neg()); [INFO] [stdout] | [INFO] [stdout] help: if you meant to clone `I`, implement `Clone` for it [INFO] [stdout] | [INFO] [stdout] 161 + #[derive(Clone)] [INFO] [stdout] 162 | struct I(i32); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.borrow()` on a reference in this situation does nothing [INFO] [stdout] --> src/tests/mod.rs:205:10 [INFO] [stdout] | [INFO] [stdout] 205 | r.borrow().overflowing_as::(), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the type `I` does not implement `Borrow`, so calling `borrow` on `&I` copies the reference, which does not do anything and can be removed [INFO] [stdout] help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] 205 - r.borrow().overflowing_as::(), [INFO] [stdout] 205 + r.overflowing_as::(), [INFO] [stdout] | [INFO] [stdout] help: if you meant to clone `I`, implement `Clone` for it [INFO] [stdout] | [INFO] [stdout] 161 + #[derive(Clone)] [INFO] [stdout] 162 | struct I(i32); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 12 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.44s [INFO] running `Command { std: "docker" "inspect" "2111d03c5b2ae28868d3769a5404c7bc9c44b203e44d60c33280aedfa91c7d0b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2111d03c5b2ae28868d3769a5404c7bc9c44b203e44d60c33280aedfa91c7d0b", kill_on_drop: false }` [INFO] [stdout] 2111d03c5b2ae28868d3769a5404c7bc9c44b203e44d60c33280aedfa91c7d0b [INFO] checking az-1.2.1 against try#9ae1860851f3fbc1435a1698e572252c0076f413 for pr-122960-1 [INFO] extracting crate az 1.2.1 into /workspace/builds/worker-2-tc2/source [INFO] validating manifest of crates.io crate az 1.2.1 on toolchain 9ae1860851f3fbc1435a1698e572252c0076f413 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9ae1860851f3fbc1435a1698e572252c0076f413" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate az 1.2.1 [INFO] finished tweaking crates.io crate az 1.2.1 [INFO] tweaked toml for crates.io crate az 1.2.1 written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9ae1860851f3fbc1435a1698e572252c0076f413" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9ae1860851f3fbc1435a1698e572252c0076f413" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+9ae1860851f3fbc1435a1698e572252c0076f413" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 499917e69c7a4eda446c5d4315941b73d6b44f357d7f50bc0da54ca2892c7f35 [INFO] running `Command { std: "docker" "start" "-a" "499917e69c7a4eda446c5d4315941b73d6b44f357d7f50bc0da54ca2892c7f35", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "499917e69c7a4eda446c5d4315941b73d6b44f357d7f50bc0da54ca2892c7f35", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "499917e69c7a4eda446c5d4315941b73d6b44f357d7f50bc0da54ca2892c7f35", kill_on_drop: false }` [INFO] [stdout] 499917e69c7a4eda446c5d4315941b73d6b44f357d7f50bc0da54ca2892c7f35 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+9ae1860851f3fbc1435a1698e572252c0076f413" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] f17e231cbd171cc4591ddc6b4575c51dc5c31c80414d45531cd994212021dac4 [INFO] running `Command { std: "docker" "start" "-a" "f17e231cbd171cc4591ddc6b4575c51dc5c31c80414d45531cd994212021dac4", kill_on_drop: false }` [INFO] [stderr] Copying to /tmp/fixit [INFO] [stderr] skipping non-2021 edition `2018` [INFO] running `Command { std: "docker" "inspect" "f17e231cbd171cc4591ddc6b4575c51dc5c31c80414d45531cd994212021dac4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f17e231cbd171cc4591ddc6b4575c51dc5c31c80414d45531cd994212021dac4", kill_on_drop: false }` [INFO] [stdout] f17e231cbd171cc4591ddc6b4575c51dc5c31c80414d45531cd994212021dac4