[INFO] cloning repository https://github.com/Etenil/roguerust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Etenil/roguerust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEtenil%2Froguerust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEtenil%2Froguerust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] be6d4f86a5902b15e5464f6c596a4989017dea0b [INFO] building Etenil/roguerust against master#11663cd3bfefef7d34e8f0892c250bf698049392+rustflags=-Dtail-expr-drop-order for pr-134523 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEtenil%2Froguerust" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/Etenil/roguerust on toolchain 11663cd3bfefef7d34e8f0892c250bf698049392 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/Etenil/roguerust [INFO] finished tweaking git repo https://github.com/Etenil/roguerust [INFO] tweaked toml for git repo https://github.com/Etenil/roguerust written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/Etenil/roguerust 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" "+11663cd3bfefef7d34e8f0892c250bf698049392" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded text_io v0.1.7 [INFO] [stderr] Downloaded redox_users v0.3.1 [INFO] [stderr] Downloaded failure v0.1.6 [INFO] [stderr] Downloaded rust-argon2 v0.5.1 [INFO] [stderr] Downloaded constant_time_eq v0.1.4 [INFO] [stderr] Downloaded failure_derive v0.1.6 [INFO] [stderr] Downloaded simplelog v0.7.4 [INFO] [stderr] Downloaded blake2b_simd v0.5.9 [INFO] [stderr] Downloaded cc v1.0.48 [INFO] [stderr] Downloaded proc-macro2 v1.0.7 [INFO] [stderr] Downloaded syn v1.0.12 [INFO] [stderr] Downloaded libc v0.2.58 [INFO] [stderr] Downloaded crossterm v0.13.3 [INFO] [stderr] Downloaded ignore-result v0.2.0 [INFO] [stderr] Downloaded crossterm_winapi v0.4.0 [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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 0198b3fd7c192ac573a1ed3d194cb9f35d1d984b67a9c8b9357bdfb4a451f1ac [INFO] running `Command { std: "docker" "start" "-a" "0198b3fd7c192ac573a1ed3d194cb9f35d1d984b67a9c8b9357bdfb4a451f1ac", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "0198b3fd7c192ac573a1ed3d194cb9f35d1d984b67a9c8b9357bdfb4a451f1ac", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0198b3fd7c192ac573a1ed3d194cb9f35d1d984b67a9c8b9357bdfb4a451f1ac", kill_on_drop: false }` [INFO] [stdout] 0198b3fd7c192ac573a1ed3d194cb9f35d1d984b67a9c8b9357bdfb4a451f1ac [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 -Dtail-expr-drop-order" "-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6fa162578c90dbcf2d7b10d155aa692861dc6b781521050c0d07213847d5e1a0 [INFO] running `Command { std: "docker" "start" "-a" "6fa162578c90dbcf2d7b10d155aa692861dc6b781521050c0d07213847d5e1a0", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.58 [INFO] [stderr] Compiling autocfg v0.1.4 [INFO] [stderr] Compiling slab v0.4.2 [INFO] [stderr] Compiling ignore-result v0.2.0 [INFO] [stderr] Compiling text_io v0.1.7 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling log v0.4.6 [INFO] [stderr] Compiling c2-chacha v0.2.2 [INFO] [stderr] Compiling num-traits v0.2.10 [INFO] [stderr] Compiling num-integer v0.1.41 [INFO] [stderr] Compiling rand_chacha v0.2.0 [INFO] [stderr] Compiling getrandom v0.1.6 [INFO] [stderr] Compiling dirs-sys v0.3.4 [INFO] [stderr] Compiling net2 v0.2.33 [INFO] [stderr] Compiling time v0.1.42 [INFO] [stderr] Compiling iovec v0.1.4 [INFO] [stderr] Compiling rand_core v0.5.0 [INFO] [stderr] Compiling dirs v2.0.2 [INFO] [stderr] Compiling term v0.6.1 [INFO] [stderr] Compiling mio v0.6.19 [INFO] [stderr] Compiling rand v0.7.0 [INFO] [stderr] Compiling chrono v0.4.10 [INFO] [stderr] Compiling crossterm v0.13.3 [INFO] [stderr] Compiling simplelog v0.7.4 [INFO] [stderr] Compiling roguelike v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: methods `info`, `move_to`, and `clean` are never used [INFO] [stdout] --> src/entities.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub trait Entity { [INFO] [stdout] | ------ methods in this trait [INFO] [stdout] 7 | /// Get information about the entity [INFO] [stdout] 8 | fn info(&self) -> String; [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | fn move_to(&mut self, location: Point); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | fn clean(&mut self); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `level` is never read [INFO] [stdout] --> src/entities.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 30 | pub struct Character { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 34 | pub level: i32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Character` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `set_tile` is never used [INFO] [stdout] --> src/entities.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 46 | pub trait Enemy { [INFO] [stdout] | ----- method in this trait [INFO] [stdout] ... [INFO] [stdout] 57 | fn set_tile(&mut self, tile: Tile); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `damage`, `heal`, `attack`, and `dodge` are never used [INFO] [stdout] --> src/entities.rs:62:8 [INFO] [stdout] | [INFO] [stdout] 60 | pub trait Player { [INFO] [stdout] | ------ methods in this trait [INFO] [stdout] 61 | fn new(name: String, class: String, health: i32, attack: i32, dodge: i32, luck: i32) -> Self; [INFO] [stdout] 62 | fn damage(&mut self, damage_amount: i32); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 63 | fn heal(&mut self, heal_amount: i32); [INFO] [stdout] | ^^^^ [INFO] [stdout] 64 | fn attack(&self) -> i32; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 65 | fn dodge(&self) -> i32; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Help` is never constructed [INFO] [stdout] --> src/events.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum ViewportEvent { [INFO] [stdout] | ------------- variant in this enum [INFO] [stdout] 5 | Quit, [INFO] [stdout] 6 | Help, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ViewportEvent` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `opaque` is never read [INFO] [stdout] --> src/tiling.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct Tile { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] ... [INFO] [stdout] 19 | opaque: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Tile` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_opaque`, `opacity`, `open`, and `clos` are never used [INFO] [stdout] --> src/tiling.rs:55:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl Tile { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn is_opaque(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn opacity(&mut self, opaque: bool) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn open(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn clos(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `tile_at` is never used [INFO] [stdout] --> src/tiling.rs:139:12 [INFO] [stdout] | [INFO] [stdout] 100 | impl TileGrid { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 139 | pub fn tile_at(&self, x: usize, y: usize) -> &Tile { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `raw` and `start` are never read [INFO] [stdout] --> src/viewport.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct CrossTermViewPort { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 24 | raw: RawScreen, [INFO] [stdout] | ^^^ [INFO] [stdout] 25 | input: TerminalInput, [INFO] [stdout] 26 | start: (usize, usize), [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `xsize` and `ysize` are never used [INFO] [stdout] --> src/world.rs:267:12 [INFO] [stdout] | [INFO] [stdout] 257 | impl Dungeon { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 267 | pub fn xsize(&self) -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 271 | pub fn ysize(&self) -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.84s [INFO] running `Command { std: "docker" "inspect" "6fa162578c90dbcf2d7b10d155aa692861dc6b781521050c0d07213847d5e1a0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6fa162578c90dbcf2d7b10d155aa692861dc6b781521050c0d07213847d5e1a0", kill_on_drop: false }` [INFO] [stdout] 6fa162578c90dbcf2d7b10d155aa692861dc6b781521050c0d07213847d5e1a0 [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 -Dtail-expr-drop-order" "-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 73190c44d6dc8a723c27b4f04d616fa0e51e73d97ad661c3b11f366354a324d5 [INFO] running `Command { std: "docker" "start" "-a" "73190c44d6dc8a723c27b4f04d616fa0e51e73d97ad661c3b11f366354a324d5", kill_on_drop: false }` [INFO] [stderr] Compiling roguelike v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: methods `info`, `move_to`, and `clean` are never used [INFO] [stdout] --> src/entities.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub trait Entity { [INFO] [stdout] | ------ methods in this trait [INFO] [stdout] 7 | /// Get information about the entity [INFO] [stdout] 8 | fn info(&self) -> String; [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | fn move_to(&mut self, location: Point); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | fn clean(&mut self); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `level` is never read [INFO] [stdout] --> src/entities.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 30 | pub struct Character { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 34 | pub level: i32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Character` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `set_tile` is never used [INFO] [stdout] --> src/entities.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 46 | pub trait Enemy { [INFO] [stdout] | ----- method in this trait [INFO] [stdout] ... [INFO] [stdout] 57 | fn set_tile(&mut self, tile: Tile); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `damage`, `heal`, `attack`, and `dodge` are never used [INFO] [stdout] --> src/entities.rs:62:8 [INFO] [stdout] | [INFO] [stdout] 60 | pub trait Player { [INFO] [stdout] | ------ methods in this trait [INFO] [stdout] 61 | fn new(name: String, class: String, health: i32, attack: i32, dodge: i32, luck: i32) -> Self; [INFO] [stdout] 62 | fn damage(&mut self, damage_amount: i32); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 63 | fn heal(&mut self, heal_amount: i32); [INFO] [stdout] | ^^^^ [INFO] [stdout] 64 | fn attack(&self) -> i32; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 65 | fn dodge(&self) -> i32; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Help` is never constructed [INFO] [stdout] --> src/events.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum ViewportEvent { [INFO] [stdout] | ------------- variant in this enum [INFO] [stdout] 5 | Quit, [INFO] [stdout] 6 | Help, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ViewportEvent` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `opaque` is never read [INFO] [stdout] --> src/tiling.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct Tile { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] ... [INFO] [stdout] 19 | opaque: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Tile` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_opaque`, `opacity`, `open`, and `clos` are never used [INFO] [stdout] --> src/tiling.rs:55:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl Tile { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn is_opaque(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn opacity(&mut self, opaque: bool) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn open(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn clos(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `raw` and `start` are never read [INFO] [stdout] --> src/viewport.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct CrossTermViewPort { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 24 | raw: RawScreen, [INFO] [stdout] | ^^^ [INFO] [stdout] 25 | input: TerminalInput, [INFO] [stdout] 26 | start: (usize, usize), [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `xsize` and `ysize` are never used [INFO] [stdout] --> src/world.rs:267:12 [INFO] [stdout] | [INFO] [stdout] 257 | impl Dungeon { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 267 | pub fn xsize(&self) -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 271 | pub fn ysize(&self) -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.30s [INFO] running `Command { std: "docker" "inspect" "73190c44d6dc8a723c27b4f04d616fa0e51e73d97ad661c3b11f366354a324d5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "73190c44d6dc8a723c27b4f04d616fa0e51e73d97ad661c3b11f366354a324d5", kill_on_drop: false }` [INFO] [stdout] 73190c44d6dc8a723c27b4f04d616fa0e51e73d97ad661c3b11f366354a324d5