[INFO] cloning repository https://github.com/helo-kallberg/aoc2022 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/helo-kallberg/aoc2022" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhelo-kallberg%2Faoc2022", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhelo-kallberg%2Faoc2022'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 185473e66b44a59c8fd0d9f4e805896832dee8a6 [INFO] building helo-kallberg/aoc2022 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%2Fhelo-kallberg%2Faoc2022" "/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/helo-kallberg/aoc2022 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/helo-kallberg/aoc2022 [INFO] finished tweaking git repo https://github.com/helo-kallberg/aoc2022 [INFO] tweaked toml for git repo https://github.com/helo-kallberg/aoc2022 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/helo-kallberg/aoc2022 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] warning: unused manifest key: rust [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-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] 5fe7808142f161573809756c1e3ce862eb9955471b1fdc8b5d3ac93bd144e744 [INFO] running `Command { std: "docker" "start" "-a" "5fe7808142f161573809756c1e3ce862eb9955471b1fdc8b5d3ac93bd144e744", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5fe7808142f161573809756c1e3ce862eb9955471b1fdc8b5d3ac93bd144e744", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5fe7808142f161573809756c1e3ce862eb9955471b1fdc8b5d3ac93bd144e744", kill_on_drop: false }` [INFO] [stdout] 5fe7808142f161573809756c1e3ce862eb9955471b1fdc8b5d3ac93bd144e744 [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] e0024d1459c8cd55594b5624d119e4dcc6ca5addcd71e3fbd0b696bc4c76f5cb [INFO] running `Command { std: "docker" "start" "-a" "e0024d1459c8cd55594b5624d119e4dcc6ca5addcd71e3fbd0b696bc4c76f5cb", kill_on_drop: false }` [INFO] [stderr] warning: unused manifest key: rust [INFO] [stderr] Compiling autocfg v1.1.0 [INFO] [stderr] Compiling crossbeam-utils v0.8.14 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling libc v0.2.138 [INFO] [stderr] Compiling scopeguard v1.1.0 [INFO] [stderr] Compiling rayon-core v1.10.1 [INFO] [stderr] Compiling either v1.8.0 [INFO] [stderr] Compiling memoffset v0.7.1 [INFO] [stderr] Compiling crossbeam-epoch v0.9.13 [INFO] [stderr] Compiling crossbeam-channel v0.5.6 [INFO] [stderr] Compiling num_cpus v1.14.0 [INFO] [stderr] Compiling crossbeam-deque v0.8.2 [INFO] [stderr] Compiling rayon v1.6.1 [INFO] [stderr] Compiling aoc2022 v2022.12.12 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/day17.rs:98:34 [INFO] [stdout] | [INFO] [stdout] 98 | let bottom_bit = (self.data[index] & 1); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 98 - let bottom_bit = (self.data[index] & 1); [INFO] [stdout] 98 + let bottom_bit = self.data[index] & 1; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `global_y` [INFO] [stdout] --> src/day17.rs:601:21 [INFO] [stdout] | [INFO] [stdout] 601 | let global_y: u64 = y + page as u64 * 64; [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_global_y` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> src/day19.rs:229:16 [INFO] [stdout] | [INFO] [stdout] 229 | pub fn solve_2(input: &str) -> String { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `size` is never read [INFO] [stdout] --> src/day14.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct Simulation { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 26 | pub size: usize, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `math_find_beacon` is never used [INFO] [stdout] --> src/day15.rs:79:12 [INFO] [stdout] | [INFO] [stdout] 40 | impl ExclusionZone { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 79 | pub fn math_find_beacon(&self) -> Option<(isize, isize)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Valve` is never constructed [INFO] [stdout] --> src/day16.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Valve { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Valve` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Two`, `Three`, `Four`, and `Five` are never constructed [INFO] [stdout] --> src/day17.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum Shape { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] 8 | One, [INFO] [stdout] 9 | Two, [INFO] [stdout] | ^^^ [INFO] [stdout] 10 | Three, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 11 | Four, [INFO] [stdout] | ^^^^ [INFO] [stdout] 12 | Five, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Shape` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `shape` is never read [INFO] [stdout] --> src/day17.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 22 | pub struct Rock { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] ... [INFO] [stdout] 26 | pub shape: Shape, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Rock` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `fill` and `read` are never used [INFO] [stdout] --> src/day17.rs:131:8 [INFO] [stdout] | [INFO] [stdout] 29 | impl Rock { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 131 | fn fill(&mut self, page: usize, amount: usize) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 408 | fn read(&self, x: u8, y: u64, bits: usize) -> u64 { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `kmp_search` is never used [INFO] [stdout] --> src/day17.rs:431:4 [INFO] [stdout] | [INFO] [stdout] 431 | fn kmp_search(haystack: &[u64], needle: &[u64]) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `max_fall` and `cache` are never read [INFO] [stdout] --> src/day17.rs:500:9 [INFO] [stdout] | [INFO] [stdout] 494 | pub struct RockFallSolver { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 500 | pub max_fall: usize, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 501 | pub cache: HashMap<(VecDeque, Shape), u64>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RockFallSolver` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_solver_page` is never used [INFO] [stdout] --> src/day17.rs:628:8 [INFO] [stdout] | [INFO] [stdout] 628 | pub fn print_solver_page(solver: &RockFallSolver, page: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `value` is never used [INFO] [stdout] --> src/day19.rs:55:8 [INFO] [stdout] | [INFO] [stdout] 45 | impl Blueprint { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 55 | fn value(&self, robot: &Robot) -> u64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.15s [INFO] running `Command { std: "docker" "inspect" "e0024d1459c8cd55594b5624d119e4dcc6ca5addcd71e3fbd0b696bc4c76f5cb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e0024d1459c8cd55594b5624d119e4dcc6ca5addcd71e3fbd0b696bc4c76f5cb", kill_on_drop: false }` [INFO] [stdout] e0024d1459c8cd55594b5624d119e4dcc6ca5addcd71e3fbd0b696bc4c76f5cb [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] 78e3dba541150d3f7251da9da0fd2e4c52928a7b8f202423f5179320180eef2a [INFO] running `Command { std: "docker" "start" "-a" "78e3dba541150d3f7251da9da0fd2e4c52928a7b8f202423f5179320180eef2a", kill_on_drop: false }` [INFO] [stderr] warning: unused manifest key: rust [INFO] [stderr] Compiling aoc2022 v2022.12.12 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/day17.rs:98:34 [INFO] [stdout] | [INFO] [stdout] 98 | let bottom_bit = (self.data[index] & 1); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 98 - let bottom_bit = (self.data[index] & 1); [INFO] [stdout] 98 + let bottom_bit = self.data[index] & 1; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `global_y` [INFO] [stdout] --> src/day17.rs:601:21 [INFO] [stdout] | [INFO] [stdout] 601 | let global_y: u64 = y + page as u64 * 64; [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_global_y` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> src/day19.rs:229:16 [INFO] [stdout] | [INFO] [stdout] 229 | pub fn solve_2(input: &str) -> String { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `size` is never read [INFO] [stdout] --> src/day14.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct Simulation { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 26 | pub size: usize, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `math_find_beacon` is never used [INFO] [stdout] --> src/day15.rs:79:12 [INFO] [stdout] | [INFO] [stdout] 40 | impl ExclusionZone { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 79 | pub fn math_find_beacon(&self) -> Option<(isize, isize)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Valve` is never constructed [INFO] [stdout] --> src/day16.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Valve { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Valve` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Two`, `Three`, `Four`, and `Five` are never constructed [INFO] [stdout] --> src/day17.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum Shape { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] 8 | One, [INFO] [stdout] 9 | Two, [INFO] [stdout] | ^^^ [INFO] [stdout] 10 | Three, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 11 | Four, [INFO] [stdout] | ^^^^ [INFO] [stdout] 12 | Five, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Shape` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `shape` is never read [INFO] [stdout] --> src/day17.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 22 | pub struct Rock { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] ... [INFO] [stdout] 26 | pub shape: Shape, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Rock` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `fill` and `read` are never used [INFO] [stdout] --> src/day17.rs:131:8 [INFO] [stdout] | [INFO] [stdout] 29 | impl Rock { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 131 | fn fill(&mut self, page: usize, amount: usize) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 408 | fn read(&self, x: u8, y: u64, bits: usize) -> u64 { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `kmp_search` is never used [INFO] [stdout] --> src/day17.rs:431:4 [INFO] [stdout] | [INFO] [stdout] 431 | fn kmp_search(haystack: &[u64], needle: &[u64]) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `max_fall` and `cache` are never read [INFO] [stdout] --> src/day17.rs:500:9 [INFO] [stdout] | [INFO] [stdout] 494 | pub struct RockFallSolver { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 500 | pub max_fall: usize, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 501 | pub cache: HashMap<(VecDeque, Shape), u64>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RockFallSolver` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_solver_page` is never used [INFO] [stdout] --> src/day17.rs:628:8 [INFO] [stdout] | [INFO] [stdout] 628 | pub fn print_solver_page(solver: &RockFallSolver, page: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `value` is never used [INFO] [stdout] --> src/day19.rs:55:8 [INFO] [stdout] | [INFO] [stdout] 45 | impl Blueprint { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 55 | fn value(&self, robot: &Robot) -> u64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 3.77s [INFO] running `Command { std: "docker" "inspect" "78e3dba541150d3f7251da9da0fd2e4c52928a7b8f202423f5179320180eef2a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "78e3dba541150d3f7251da9da0fd2e4c52928a7b8f202423f5179320180eef2a", kill_on_drop: false }` [INFO] [stdout] 78e3dba541150d3f7251da9da0fd2e4c52928a7b8f202423f5179320180eef2a