Nov 29 23:14:18.690 INFO checking loovjo/neat-driver against try#32252761328f59ccfadb1bafb8148c685bc830b3 for pr-56323 Nov 29 23:14:18.690 INFO running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-56323/worker-0/try#32252761328f59ccfadb1bafb8148c685bc830b3:/target:rw,Z" "-v" "/mnt/big/crater/work/local/test-source/worker-0/pr-56323/try#32252761328f59ccfadb1bafb8148c685bc830b3:/source:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/source" "-e" "USER_ID=1000" "-e" "CMD=cargo +32252761328f59ccfadb1bafb8148c685bc830b3-alt check --frozen --all --all-targets" "-e" "CARGO_TARGET_DIR=/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/cargo-home" "-e" "RUSTUP_HOME=/rustup-home" "-m" "1536M" "--network" "none" "crater"` Nov 29 23:14:19.120 INFO [stdout] 061caee41d9f11e48e0821475822fbff56836aa25975df1639540638f62d8c5a Nov 29 23:14:19.126 INFO running `"docker" "start" "-a" "061caee41d9f11e48e0821475822fbff56836aa25975df1639540638f62d8c5a"` Nov 29 23:14:20.273 INFO [stderr] usermod: no changes Nov 29 23:14:20.484 INFO [stderr] Checking crossbeam-epoch v0.3.1 Nov 29 23:14:20.484 INFO [stderr] Compiling phf_codegen v0.7.23 Nov 29 23:14:20.484 INFO [stderr] Compiling syn v0.14.9 Nov 29 23:14:20.484 INFO [stderr] Checking png v0.12.0 Nov 29 23:14:22.860 INFO [stderr] Compiling palette v0.4.1 Nov 29 23:14:23.004 INFO [stderr] Checking crossbeam-deque v0.2.0 Nov 29 23:14:25.114 INFO [stderr] Checking rayon-core v1.4.1 Nov 29 23:14:28.453 INFO [stderr] Checking rayon v1.0.3 Nov 29 23:14:35.960 INFO [stderr] Checking ytesrev v0.2.4 Nov 29 23:14:46.233 INFO [stderr] Compiling palette_derive v0.4.1 Nov 29 23:14:58.677 INFO [stderr] Checking NEAT-Pong v0.1.0 (/source) Nov 29 23:15:01.133 INFO [stderr] warning: unused import: `std::mem::replace` Nov 29 23:15:01.133 INFO [stderr] --> src/main.rs:5:5 Nov 29 23:15:01.133 INFO [stderr] | Nov 29 23:15:01.133 INFO [stderr] 5 | use std::mem::replace; Nov 29 23:15:01.133 INFO [stderr] | ^^^^^^^^^^^^^^^^^ Nov 29 23:15:01.133 INFO [stderr] | Nov 29 23:15:01.133 INFO [stderr] = note: #[warn(unused_imports)] on by default Nov 29 23:15:01.133 INFO [stderr] Nov 29 23:15:01.133 INFO [stderr] warning: unused import: `std::fs::File` Nov 29 23:15:01.133 INFO [stderr] --> src/game.rs:1:5 Nov 29 23:15:01.133 INFO [stderr] | Nov 29 23:15:01.133 INFO [stderr] 1 | use std::fs::File; Nov 29 23:15:01.133 INFO [stderr] | ^^^^^^^^^^^^^ Nov 29 23:15:01.133 INFO [stderr] Nov 29 23:15:01.266 INFO [stderr] warning: unused import: `std::mem::replace` Nov 29 23:15:01.266 INFO [stderr] --> src/main.rs:5:5 Nov 29 23:15:01.267 INFO [stderr] | Nov 29 23:15:01.267 INFO [stderr] 5 | use std::mem::replace; Nov 29 23:15:01.267 INFO [stderr] | ^^^^^^^^^^^^^^^^^ Nov 29 23:15:01.267 INFO [stderr] | Nov 29 23:15:01.268 INFO [stderr] = note: #[warn(unused_imports)] on by default Nov 29 23:15:01.268 INFO [stderr] Nov 29 23:15:01.269 INFO [stderr] warning: unused import: `std::fs::File` Nov 29 23:15:01.269 INFO [stderr] --> src/game.rs:1:5 Nov 29 23:15:01.269 INFO [stderr] | Nov 29 23:15:01.269 INFO [stderr] 1 | use std::fs::File; Nov 29 23:15:01.270 INFO [stderr] | ^^^^^^^^^^^^^ Nov 29 23:15:01.270 INFO [stderr] Nov 29 23:15:01.968 INFO [stderr] warning: unreachable pattern Nov 29 23:15:01.969 INFO [stderr] --> src/game.rs:101:13 Nov 29 23:15:01.969 INFO [stderr] | Nov 29 23:15:01.969 INFO [stderr] 101 | _ => {} Nov 29 23:15:01.969 INFO [stderr] | ^ Nov 29 23:15:01.970 INFO [stderr] | Nov 29 23:15:01.970 INFO [stderr] = note: #[warn(unreachable_patterns)] on by default Nov 29 23:15:01.970 INFO [stderr] Nov 29 23:15:01.980 INFO [stderr] warning: unused variable: `sat_shift` Nov 29 23:15:01.980 INFO [stderr] --> src/car_textures.rs:42:49 Nov 29 23:15:01.981 INFO [stderr] | Nov 29 23:15:01.981 INFO [stderr] 42 | pub fn shift_hue(im: &PngImage, hue_shift: f32, sat_shift: f32) -> PngImage { Nov 29 23:15:01.981 INFO [stderr] | ^^^^^^^^^ help: consider using `_sat_shift` instead Nov 29 23:15:01.982 INFO [stderr] | Nov 29 23:15:01.982 INFO [stderr] = note: #[warn(unused_variables)] on by default Nov 29 23:15:01.982 INFO [stderr] Nov 29 23:15:01.983 INFO [stderr] warning: unused variable: `ind` Nov 29 23:15:01.983 INFO [stderr] --> src/neat.rs:356:14 Nov 29 23:15:01.983 INFO [stderr] | Nov 29 23:15:01.984 INFO [stderr] 356 | for (ind, idx) in x { Nov 29 23:15:01.984 INFO [stderr] | ^^^ help: consider using `_ind` instead Nov 29 23:15:01.984 INFO [stderr] Nov 29 23:15:01.985 INFO [stderr] warning: unused variable: `sp` Nov 29 23:15:01.985 INFO [stderr] --> src/neat.rs:380:13 Nov 29 23:15:01.985 INFO [stderr] | Nov 29 23:15:01.985 INFO [stderr] 380 | for (i, sp) in species.iter().enumerate() { Nov 29 23:15:01.986 INFO [stderr] | ^^ help: consider using `_sp` instead Nov 29 23:15:01.986 INFO [stderr] Nov 29 23:15:01.986 INFO [stderr] warning: unused variable: `i` Nov 29 23:15:01.986 INFO [stderr] --> src/neat.rs:417:13 Nov 29 23:15:01.987 INFO [stderr] | Nov 29 23:15:01.987 INFO [stderr] 417 | for i in 0..num_offspring { Nov 29 23:15:01.987 INFO [stderr] | ^ help: consider using `_i` instead Nov 29 23:15:01.987 INFO [stderr] Nov 29 23:15:01.988 INFO [stderr] warning: unused variable: `i` Nov 29 23:15:01.989 INFO [stderr] --> src/main.rs:57:13 Nov 29 23:15:01.989 INFO [stderr] | Nov 29 23:15:01.989 INFO [stderr] 57 | for i in 0..POP_SIZE { Nov 29 23:15:01.989 INFO [stderr] | ^ help: consider using `_i` instead Nov 29 23:15:01.990 INFO [stderr] Nov 29 23:15:01.990 INFO [stderr] warning: unused variable: `settings` Nov 29 23:15:01.991 INFO [stderr] --> src/game.rs:138:70 Nov 29 23:15:01.991 INFO [stderr] | Nov 29 23:15:01.991 INFO [stderr] 138 | fn draw(&self, canvas: &mut Canvas, position: &Position, settings: DrawSettings) { Nov 29 23:15:01.992 INFO [stderr] | ^^^^^^^^ help: consider using `_settings` instead Nov 29 23:15:01.992 INFO [stderr] Nov 29 23:15:01.993 INFO [stderr] warning: unused variable: `a` Nov 29 23:15:01.993 INFO [stderr] --> src/map.rs:24:21 Nov 29 23:15:01.993 INFO [stderr] | Nov 29 23:15:01.994 INFO [stderr] 24 | let a = image.data[4 * idx + 3]; Nov 29 23:15:01.994 INFO [stderr] | ^ help: consider using `_a` instead Nov 29 23:15:01.994 INFO [stderr] Nov 29 23:15:01.995 INFO [stderr] warning: unused variable: `i` Nov 29 23:15:01.995 INFO [stderr] --> src/neat.rs:179:21 Nov 29 23:15:01.996 INFO [stderr] | Nov 29 23:15:01.996 INFO [stderr] 179 | 'outer: for i in 0..40 { Nov 29 23:15:01.996 INFO [stderr] | ^ help: consider using `_i` instead Nov 29 23:15:01.997 INFO [stderr] Nov 29 23:15:01.997 INFO [stderr] warning: unused variable: `i` Nov 29 23:15:01.998 INFO [stderr] --> src/main.rs:176:13 Nov 29 23:15:01.998 INFO [stderr] | Nov 29 23:15:01.998 INFO [stderr] 176 | for i in 0..self.speed_mult { Nov 29 23:15:01.999 INFO [stderr] | ^ help: consider using `_i` instead Nov 29 23:15:01.999 INFO [stderr] Nov 29 23:15:02.104 INFO [stderr] warning: variable does not need to be mutable Nov 29 23:15:02.105 INFO [stderr] --> src/main.rs:271:13 Nov 29 23:15:02.105 INFO [stderr] | Nov 29 23:15:02.105 INFO [stderr] 271 | let mut file = File::create(SAVE_PATH).unwrap(); Nov 29 23:15:02.106 INFO [stderr] | ----^^^^ Nov 29 23:15:02.106 INFO [stderr] | | Nov 29 23:15:02.106 INFO [stderr] | help: remove this `mut` Nov 29 23:15:02.107 INFO [stderr] | Nov 29 23:15:02.107 INFO [stderr] = note: #[warn(unused_mut)] on by default Nov 29 23:15:02.107 INFO [stderr] Nov 29 23:15:02.128 INFO [stderr] warning: unreachable pattern Nov 29 23:15:02.128 INFO [stderr] --> src/game.rs:101:13 Nov 29 23:15:02.128 INFO [stderr] | Nov 29 23:15:02.128 INFO [stderr] 101 | _ => {} Nov 29 23:15:02.128 INFO [stderr] | ^ Nov 29 23:15:02.129 INFO [stderr] | Nov 29 23:15:02.129 INFO [stderr] = note: #[warn(unreachable_patterns)] on by default Nov 29 23:15:02.129 INFO [stderr] Nov 29 23:15:02.129 INFO [stderr] warning: unused variable: `sat_shift` Nov 29 23:15:02.129 INFO [stderr] --> src/car_textures.rs:42:49 Nov 29 23:15:02.129 INFO [stderr] | Nov 29 23:15:02.129 INFO [stderr] 42 | pub fn shift_hue(im: &PngImage, hue_shift: f32, sat_shift: f32) -> PngImage { Nov 29 23:15:02.129 INFO [stderr] | ^^^^^^^^^ help: consider using `_sat_shift` instead Nov 29 23:15:02.129 INFO [stderr] | Nov 29 23:15:02.129 INFO [stderr] = note: #[warn(unused_variables)] on by default Nov 29 23:15:02.129 INFO [stderr] Nov 29 23:15:02.129 INFO [stderr] warning: unused variable: `ind` Nov 29 23:15:02.130 INFO [stderr] --> src/neat.rs:356:14 Nov 29 23:15:02.130 INFO [stderr] | Nov 29 23:15:02.130 INFO [stderr] 356 | for (ind, idx) in x { Nov 29 23:15:02.130 INFO [stderr] | ^^^ help: consider using `_ind` instead Nov 29 23:15:02.130 INFO [stderr] Nov 29 23:15:02.130 INFO [stderr] warning: unused variable: `sp` Nov 29 23:15:02.130 INFO [stderr] --> src/neat.rs:380:13 Nov 29 23:15:02.130 INFO [stderr] | Nov 29 23:15:02.130 INFO [stderr] 380 | for (i, sp) in species.iter().enumerate() { Nov 29 23:15:02.130 INFO [stderr] | ^^ help: consider using `_sp` instead Nov 29 23:15:02.131 INFO [stderr] Nov 29 23:15:02.131 INFO [stderr] warning: unused variable: `i` Nov 29 23:15:02.131 INFO [stderr] --> src/neat.rs:417:13 Nov 29 23:15:02.131 INFO [stderr] | Nov 29 23:15:02.131 INFO [stderr] 417 | for i in 0..num_offspring { Nov 29 23:15:02.131 INFO [stderr] | ^ help: consider using `_i` instead Nov 29 23:15:02.131 INFO [stderr] Nov 29 23:15:02.131 INFO [stderr] warning: unused variable: `i` Nov 29 23:15:02.131 INFO [stderr] --> src/main.rs:57:13 Nov 29 23:15:02.131 INFO [stderr] | Nov 29 23:15:02.131 INFO [stderr] 57 | for i in 0..POP_SIZE { Nov 29 23:15:02.131 INFO [stderr] | ^ help: consider using `_i` instead Nov 29 23:15:02.131 INFO [stderr] Nov 29 23:15:02.131 INFO [stderr] warning: unused variable: `settings` Nov 29 23:15:02.131 INFO [stderr] --> src/game.rs:138:70 Nov 29 23:15:02.131 INFO [stderr] | Nov 29 23:15:02.131 INFO [stderr] 138 | fn draw(&self, canvas: &mut Canvas, position: &Position, settings: DrawSettings) { Nov 29 23:15:02.131 INFO [stderr] | ^^^^^^^^ help: consider using `_settings` instead Nov 29 23:15:02.132 INFO [stderr] Nov 29 23:15:02.132 INFO [stderr] warning: unused variable: `a` Nov 29 23:15:02.132 INFO [stderr] --> src/map.rs:24:21 Nov 29 23:15:02.132 INFO [stderr] | Nov 29 23:15:02.132 INFO [stderr] 24 | let a = image.data[4 * idx + 3]; Nov 29 23:15:02.132 INFO [stderr] | ^ help: consider using `_a` instead Nov 29 23:15:02.132 INFO [stderr] Nov 29 23:15:02.132 INFO [stderr] warning: unused variable: `i` Nov 29 23:15:02.132 INFO [stderr] --> src/neat.rs:179:21 Nov 29 23:15:02.132 INFO [stderr] | Nov 29 23:15:02.132 INFO [stderr] 179 | 'outer: for i in 0..40 { Nov 29 23:15:02.132 INFO [stderr] | ^ help: consider using `_i` instead Nov 29 23:15:02.132 INFO [stderr] Nov 29 23:15:02.132 INFO [stderr] warning: unused variable: `i` Nov 29 23:15:02.132 INFO [stderr] --> src/main.rs:176:13 Nov 29 23:15:02.132 INFO [stderr] | Nov 29 23:15:02.132 INFO [stderr] 176 | for i in 0..self.speed_mult { Nov 29 23:15:02.132 INFO [stderr] | ^ help: consider using `_i` instead Nov 29 23:15:02.132 INFO [stderr] Nov 29 23:15:02.213 INFO [stderr] warning: variable does not need to be mutable Nov 29 23:15:02.213 INFO [stderr] --> src/main.rs:271:13 Nov 29 23:15:02.213 INFO [stderr] | Nov 29 23:15:02.213 INFO [stderr] 271 | let mut file = File::create(SAVE_PATH).unwrap(); Nov 29 23:15:02.213 INFO [stderr] | ----^^^^ Nov 29 23:15:02.213 INFO [stderr] | | Nov 29 23:15:02.213 INFO [stderr] | help: remove this `mut` Nov 29 23:15:02.213 INFO [stderr] | Nov 29 23:15:02.214 INFO [stderr] = note: #[warn(unused_mut)] on by default Nov 29 23:15:02.214 INFO [stderr] Nov 29 23:15:02.428 INFO [stderr] warning: field is never used: `showing` Nov 29 23:15:02.429 INFO [stderr] --> src/main.rs:103:5 Nov 29 23:15:02.429 INFO [stderr] | Nov 29 23:15:02.429 INFO [stderr] 103 | showing: Option>, Nov 29 23:15:02.430 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 29 23:15:02.430 INFO [stderr] | Nov 29 23:15:02.430 INFO [stderr] = note: #[warn(dead_code)] on by default Nov 29 23:15:02.431 INFO [stderr] Nov 29 23:15:02.432 INFO [stderr] warning: crate `NEAT_Pong` should have a snake case name such as `neat_pong` Nov 29 23:15:02.432 INFO [stderr] | Nov 29 23:15:02.432 INFO [stderr] = note: #[warn(non_snake_case)] on by default Nov 29 23:15:02.433 INFO [stderr] Nov 29 23:15:02.440 INFO [stderr] warning: unused `std::result::Result` that must be used Nov 29 23:15:02.440 INFO [stderr] --> src/game.rs:194:9 Nov 29 23:15:02.441 INFO [stderr] | Nov 29 23:15:02.441 INFO [stderr] 194 | texture.update(None, car_texture.data.as_slice(), 4 * car_texture.width); Nov 29 23:15:02.441 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 29 23:15:02.442 INFO [stderr] | Nov 29 23:15:02.442 INFO [stderr] = note: #[warn(unused_must_use)] on by default Nov 29 23:15:02.442 INFO [stderr] = note: this `Result` may be an `Err` variant, which should be handled Nov 29 23:15:02.443 INFO [stderr] Nov 29 23:15:02.446 INFO [stderr] warning: unused `std::result::Result` that must be used Nov 29 23:15:02.446 INFO [stderr] --> src/neat.rs:263:9 Nov 29 23:15:02.447 INFO [stderr] | Nov 29 23:15:02.447 INFO [stderr] 263 | write!(f, "{}", sres); Nov 29 23:15:02.447 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ Nov 29 23:15:02.448 INFO [stderr] | Nov 29 23:15:02.448 INFO [stderr] = note: this `Result` may be an `Err` variant, which should be handled Nov 29 23:15:02.448 INFO [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) Nov 29 23:15:02.449 INFO [stderr] Nov 29 23:15:02.449 INFO [stderr] warning: unused `std::result::Result` that must be used Nov 29 23:15:02.450 INFO [stderr] --> src/neat.rs:265:9 Nov 29 23:15:02.450 INFO [stderr] | Nov 29 23:15:02.450 INFO [stderr] 265 | / Command::new("dot") Nov 29 23:15:02.451 INFO [stderr] 266 | | .arg("-Tsvg") Nov 29 23:15:02.451 INFO [stderr] 267 | | .arg(path) Nov 29 23:15:02.451 INFO [stderr] 268 | | .arg("-o") Nov 29 23:15:02.452 INFO [stderr] 269 | | .arg(format!("/tmp/graphs/{}.svg", name)) Nov 29 23:15:02.452 INFO [stderr] 270 | | .output(); Nov 29 23:15:02.452 INFO [stderr] | |______________________^ Nov 29 23:15:02.453 INFO [stderr] | Nov 29 23:15:02.453 INFO [stderr] = note: this `Result` may be an `Err` variant, which should be handled Nov 29 23:15:02.454 INFO [stderr] Nov 29 23:15:02.566 INFO [stderr] warning: field is never used: `showing` Nov 29 23:15:02.566 INFO [stderr] --> src/main.rs:103:5 Nov 29 23:15:02.566 INFO [stderr] | Nov 29 23:15:02.567 INFO [stderr] 103 | showing: Option>, Nov 29 23:15:02.567 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 29 23:15:02.568 INFO [stderr] | Nov 29 23:15:02.568 INFO [stderr] = note: #[warn(dead_code)] on by default Nov 29 23:15:02.568 INFO [stderr] Nov 29 23:15:02.568 INFO [stderr] warning: crate `NEAT_Pong` should have a snake case name such as `neat_pong` Nov 29 23:15:02.569 INFO [stderr] | Nov 29 23:15:02.569 INFO [stderr] = note: #[warn(non_snake_case)] on by default Nov 29 23:15:02.569 INFO [stderr] Nov 29 23:15:02.570 INFO [stderr] warning: unused `std::result::Result` that must be used Nov 29 23:15:02.570 INFO [stderr] --> src/game.rs:194:9 Nov 29 23:15:02.570 INFO [stderr] | Nov 29 23:15:02.571 INFO [stderr] 194 | texture.update(None, car_texture.data.as_slice(), 4 * car_texture.width); Nov 29 23:15:02.571 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 29 23:15:02.572 INFO [stderr] | Nov 29 23:15:02.572 INFO [stderr] = note: #[warn(unused_must_use)] on by default Nov 29 23:15:02.572 INFO [stderr] = note: this `Result` may be an `Err` variant, which should be handled Nov 29 23:15:02.572 INFO [stderr] Nov 29 23:15:02.573 INFO [stderr] warning: unused `std::result::Result` that must be used Nov 29 23:15:02.573 INFO [stderr] --> src/neat.rs:263:9 Nov 29 23:15:02.574 INFO [stderr] | Nov 29 23:15:02.574 INFO [stderr] 263 | write!(f, "{}", sres); Nov 29 23:15:02.574 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ Nov 29 23:15:02.575 INFO [stderr] | Nov 29 23:15:02.575 INFO [stderr] = note: this `Result` may be an `Err` variant, which should be handled Nov 29 23:15:02.575 INFO [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) Nov 29 23:15:02.575 INFO [stderr] Nov 29 23:15:02.576 INFO [stderr] warning: unused `std::result::Result` that must be used Nov 29 23:15:02.576 INFO [stderr] --> src/neat.rs:265:9 Nov 29 23:15:02.576 INFO [stderr] | Nov 29 23:15:02.577 INFO [stderr] 265 | / Command::new("dot") Nov 29 23:15:02.577 INFO [stderr] 266 | | .arg("-Tsvg") Nov 29 23:15:02.577 INFO [stderr] 267 | | .arg(path) Nov 29 23:15:02.577 INFO [stderr] 268 | | .arg("-o") Nov 29 23:15:02.578 INFO [stderr] 269 | | .arg(format!("/tmp/graphs/{}.svg", name)) Nov 29 23:15:02.578 INFO [stderr] 270 | | .output(); Nov 29 23:15:02.578 INFO [stderr] | |______________________^ Nov 29 23:15:02.579 INFO [stderr] | Nov 29 23:15:02.579 INFO [stderr] = note: this `Result` may be an `Err` variant, which should be handled Nov 29 23:15:02.579 INFO [stderr] Nov 29 23:15:02.619 INFO [stderr] Finished dev [unoptimized + debuginfo] target(s) in 42.32s Nov 29 23:15:02.626 INFO [stderr] su: No module specific data is present Nov 29 23:15:04.291 INFO running `"docker" "inspect" "061caee41d9f11e48e0821475822fbff56836aa25975df1639540638f62d8c5a"` Nov 29 23:15:04.676 INFO running `"docker" "rm" "-f" "061caee41d9f11e48e0821475822fbff56836aa25975df1639540638f62d8c5a"` Nov 29 23:15:05.004 INFO [stdout] 061caee41d9f11e48e0821475822fbff56836aa25975df1639540638f62d8c5a