[INFO] cloning repository https://github.com/guccyon/rust_risc_emu [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/guccyon/rust_risc_emu" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fguccyon%2Frust_risc_emu", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fguccyon%2Frust_risc_emu'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 2e7018feeabb1e882b29f279281ade5bfe9ac87d [INFO] checking guccyon/rust_risc_emu against master#8007b506ac5da629f223b755f5a5391edd5f6d01 for pr-88041 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fguccyon%2Frust_risc_emu" "/workspace/builds/worker-112/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-112/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/guccyon/rust_risc_emu on toolchain 8007b506ac5da629f223b755f5a5391edd5f6d01 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+8007b506ac5da629f223b755f5a5391edd5f6d01" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/guccyon/rust_risc_emu [INFO] finished tweaking git repo https://github.com/guccyon/rust_risc_emu [INFO] tweaked toml for git repo https://github.com/guccyon/rust_risc_emu written to /workspace/builds/worker-112/source/Cargo.toml [INFO] crate git repo https://github.com/guccyon/rust_risc_emu already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+8007b506ac5da629f223b755f5a5391edd5f6d01" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-112/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-112/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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+8007b506ac5da629f223b755f5a5391edd5f6d01" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 92cb26eba7b2b15226e053aae8e418959f830a3c60a981aa220aa45172243aaf [INFO] running `Command { std: "docker" "start" "-a" "92cb26eba7b2b15226e053aae8e418959f830a3c60a981aa220aa45172243aaf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "92cb26eba7b2b15226e053aae8e418959f830a3c60a981aa220aa45172243aaf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "92cb26eba7b2b15226e053aae8e418959f830a3c60a981aa220aa45172243aaf", kill_on_drop: false }` [INFO] [stdout] 92cb26eba7b2b15226e053aae8e418959f830a3c60a981aa220aa45172243aaf [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-112/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-112/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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+8007b506ac5da629f223b755f5a5391edd5f6d01" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9219ddc85dd183ebe12c4c632042abef35ff0cf5ec4f3ef15ccd349de3fcf52b [INFO] running `Command { std: "docker" "start" "-a" "9219ddc85dd183ebe12c4c632042abef35ff0cf5ec4f3ef15ccd349de3fcf52b", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Compiling proc-macro2 v0.4.30 [INFO] [stderr] Compiling unicode-xid v0.1.0 [INFO] [stderr] Compiling syn v0.15.44 [INFO] [stderr] Compiling autocfg v1.0.1 [INFO] [stderr] Compiling num-derive v0.2.5 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling quote v0.6.13 [INFO] [stderr] Checking rust_risc_emu v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `Slot` [INFO] [stdout] --> src/cpu_emu.rs:8:33 [INFO] [stdout] | [INFO] [stdout] 8 | use register::{GeneralRegister, Slot}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/main.rs:9:16 [INFO] [stdout] | [INFO] [stdout] 9 | panic!(msg); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_fmt_panics)]` on by default [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 9 | panic!("{}", msg); [INFO] [stdout] | +++++ [INFO] [stdout] help: or use std::panic::panic_any instead [INFO] [stdout] | [INFO] [stdout] 9 | std::panic::panic_any(msg); [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/cpu_emu.rs:144:20 [INFO] [stdout] | [INFO] [stdout] 144 | panic!(msg); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_fmt_panics)]` on by default [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 144 | panic!("{}", msg); [INFO] [stdout] | +++++ [INFO] [stdout] help: or use std::panic::panic_any instead [INFO] [stdout] | [INFO] [stdout] 144 | std::panic::panic_any(msg); [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/cpu_emu.rs:159:20 [INFO] [stdout] | [INFO] [stdout] 159 | panic!(msg); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 159 | panic!("{}", msg); [INFO] [stdout] | +++++ [INFO] [stdout] help: or use std::panic::panic_any instead [INFO] [stdout] | [INFO] [stdout] 159 | std::panic::panic_any(msg); [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/cpu_emu.rs:176:20 [INFO] [stdout] | [INFO] [stdout] 176 | panic!(msg); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 176 | panic!("{}", msg); [INFO] [stdout] | +++++ [INFO] [stdout] help: or use std::panic::panic_any instead [INFO] [stdout] | [INFO] [stdout] 176 | std::panic::panic_any(msg); [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/cpu_emu.rs:193:20 [INFO] [stdout] | [INFO] [stdout] 193 | panic!(msg); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 193 | panic!("{}", msg); [INFO] [stdout] | +++++ [INFO] [stdout] help: or use std::panic::panic_any instead [INFO] [stdout] | [INFO] [stdout] 193 | std::panic::panic_any(msg); [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/cpu_emu.rs:209:20 [INFO] [stdout] | [INFO] [stdout] 209 | panic!(msg); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 209 | panic!("{}", msg); [INFO] [stdout] | +++++ [INFO] [stdout] help: or use std::panic::panic_any instead [INFO] [stdout] | [INFO] [stdout] 209 | std::panic::panic_any(msg); [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/cpu_emu.rs:225:20 [INFO] [stdout] | [INFO] [stdout] 225 | panic!(msg); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 225 | panic!("{}", msg); [INFO] [stdout] | +++++ [INFO] [stdout] help: or use std::panic::panic_any instead [INFO] [stdout] | [INFO] [stdout] 225 | std::panic::panic_any(msg); [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/cpu_emu.rs:240:20 [INFO] [stdout] | [INFO] [stdout] 240 | panic!(msg); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 240 | panic!("{}", msg); [INFO] [stdout] | +++++ [INFO] [stdout] help: or use std::panic::panic_any instead [INFO] [stdout] | [INFO] [stdout] 240 | std::panic::panic_any(msg); [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/cpu_emu.rs:255:20 [INFO] [stdout] | [INFO] [stdout] 255 | panic!(msg); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 255 | panic!("{}", msg); [INFO] [stdout] | +++++ [INFO] [stdout] help: or use std::panic::panic_any instead [INFO] [stdout] | [INFO] [stdout] 255 | std::panic::panic_any(msg); [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/cpu_emu.rs:272:20 [INFO] [stdout] | [INFO] [stdout] 272 | panic!(msg); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 272 | panic!("{}", msg); [INFO] [stdout] | +++++ [INFO] [stdout] help: or use std::panic::panic_any instead [INFO] [stdout] | [INFO] [stdout] 272 | std::panic::panic_any(msg); [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/cpu_emu.rs:288:20 [INFO] [stdout] | [INFO] [stdout] 288 | panic!(msg); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 288 | panic!("{}", msg); [INFO] [stdout] | +++++ [INFO] [stdout] help: or use std::panic::panic_any instead [INFO] [stdout] | [INFO] [stdout] 288 | std::panic::panic_any(msg); [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/cpu_emu.rs:303:20 [INFO] [stdout] | [INFO] [stdout] 303 | panic!(msg); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 303 | panic!("{}", msg); [INFO] [stdout] | +++++ [INFO] [stdout] help: or use std::panic::panic_any instead [INFO] [stdout] | [INFO] [stdout] 303 | std::panic::panic_any(msg); [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/cpu_emu.rs:318:20 [INFO] [stdout] | [INFO] [stdout] 318 | panic!(msg); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 318 | panic!("{}", msg); [INFO] [stdout] | +++++ [INFO] [stdout] help: or use std::panic::panic_any instead [INFO] [stdout] | [INFO] [stdout] 318 | std::panic::panic_any(msg); [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/cpu_emu.rs:332:20 [INFO] [stdout] | [INFO] [stdout] 332 | panic!(msg); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 332 | panic!("{}", msg); [INFO] [stdout] | +++++ [INFO] [stdout] help: or use std::panic::panic_any instead [INFO] [stdout] | [INFO] [stdout] 332 | std::panic::panic_any(msg); [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/cpu_emu.rs:353:20 [INFO] [stdout] | [INFO] [stdout] 353 | panic!(msg); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 353 | panic!("{}", msg); [INFO] [stdout] | +++++ [INFO] [stdout] help: or use std::panic::panic_any instead [INFO] [stdout] | [INFO] [stdout] 353 | std::panic::panic_any(msg); [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/cpu_emu.rs:373:20 [INFO] [stdout] | [INFO] [stdout] 373 | panic!(msg); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 373 | panic!("{}", msg); [INFO] [stdout] | +++++ [INFO] [stdout] help: or use std::panic::panic_any instead [INFO] [stdout] | [INFO] [stdout] 373 | std::panic::panic_any(msg); [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/cpu_emu.rs:387:20 [INFO] [stdout] | [INFO] [stdout] 387 | panic!(msg); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 387 | panic!("{}", msg); [INFO] [stdout] | +++++ [INFO] [stdout] help: or use std::panic::panic_any instead [INFO] [stdout] | [INFO] [stdout] 387 | std::panic::panic_any(msg); [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/cpu_emu.rs:401:20 [INFO] [stdout] | [INFO] [stdout] 401 | panic!(msg); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 401 | panic!("{}", msg); [INFO] [stdout] | +++++ [INFO] [stdout] help: or use std::panic::panic_any instead [INFO] [stdout] | [INFO] [stdout] 401 | std::panic::panic_any(msg); [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/main.rs:9:16 [INFO] [stdout] | [INFO] [stdout] 9 | panic!(msg); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 9 | panic!("{}", msg); [INFO] [stdout] | +++++ [INFO] [stdout] help: or use std::panic::panic_any instead [INFO] [stdout] | [INFO] [stdout] 9 | std::panic::panic_any(msg); [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 18 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 29.78s [INFO] running `Command { std: "docker" "inspect" "9219ddc85dd183ebe12c4c632042abef35ff0cf5ec4f3ef15ccd349de3fcf52b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9219ddc85dd183ebe12c4c632042abef35ff0cf5ec4f3ef15ccd349de3fcf52b", kill_on_drop: false }` [INFO] [stdout] 9219ddc85dd183ebe12c4c632042abef35ff0cf5ec4f3ef15ccd349de3fcf52b