[INFO] updating cached repository rohitjoshi/rato [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/rohitjoshi/rato [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/rohitjoshi/rato" "work/ex/pr-60162/sources/master#a850a426491e14186af2250549bf41256b5938d2/gh/rohitjoshi/rato"` [INFO] [stderr] Cloning into 'work/ex/pr-60162/sources/master#a850a426491e14186af2250549bf41256b5938d2/gh/rohitjoshi/rato'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/rohitjoshi/rato" "work/ex/pr-60162/sources/try#06a150c7d11500b41499224f165e9de1de096768/gh/rohitjoshi/rato"` [INFO] [stderr] Cloning into 'work/ex/pr-60162/sources/try#06a150c7d11500b41499224f165e9de1de096768/gh/rohitjoshi/rato'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] eec56be4033d76c1caae11a77a408bdf3ba64b11 [INFO] sha for GitHub repo rohitjoshi/rato: eec56be4033d76c1caae11a77a408bdf3ba64b11 [INFO] validating manifest of rohitjoshi/rato on toolchain master#a850a426491e14186af2250549bf41256b5938d2 [INFO] running `"/mnt/crater-raid/crater/work/local/cargo-home/bin/cargo" "+a850a426491e14186af2250549bf41256b5938d2-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of rohitjoshi/rato on toolchain try#06a150c7d11500b41499224f165e9de1de096768 [INFO] running `"/mnt/crater-raid/crater/work/local/cargo-home/bin/cargo" "+06a150c7d11500b41499224f165e9de1de096768-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing rohitjoshi/rato [INFO] finished frobbing rohitjoshi/rato [INFO] frobbed toml for rohitjoshi/rato written to work/ex/pr-60162/sources/master#a850a426491e14186af2250549bf41256b5938d2/gh/rohitjoshi/rato/Cargo.toml [INFO] started frobbing rohitjoshi/rato [INFO] finished frobbing rohitjoshi/rato [INFO] frobbed toml for rohitjoshi/rato written to work/ex/pr-60162/sources/try#06a150c7d11500b41499224f165e9de1de096768/gh/rohitjoshi/rato/Cargo.toml [INFO] crate rohitjoshi/rato already has a lockfile, it will not be regenerated [INFO] running `"/mnt/crater-raid/crater/work/local/cargo-home/bin/cargo" "+a850a426491e14186af2250549bf41256b5938d2-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] [stderr] Blocking waiting for file lock on the registry index [INFO] [stderr] Updating crates.io index [INFO] [stderr] error: the lock file /mnt/crater-raid/crater/work/ex/pr-60162/sources/master#a850a426491e14186af2250549bf41256b5938d2/gh/rohitjoshi/rato/Cargo.lock needs to be updated but --locked was passed to prevent this [INFO] the lockfile is outdated, regenerating it [INFO] running `"/mnt/crater-raid/crater/work/local/cargo-home/bin/cargo" "+a850a426491e14186af2250549bf41256b5938d2-alt" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/crater-raid/crater/work/local/cargo-home/bin/cargo" "+06a150c7d11500b41499224f165e9de1de096768-alt" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/crater-raid/crater/work/local/cargo-home/bin/cargo" "+a850a426491e14186af2250549bf41256b5938d2-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/crater-raid/crater/work/local/cargo-home/bin/cargo" "+06a150c7d11500b41499224f165e9de1de096768-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] checking rohitjoshi/rato against master#a850a426491e14186af2250549bf41256b5938d2 for pr-60162 [INFO] running `"docker" "create" "-v" "/mnt/crater-raid/crater/work/local/target-dirs/pr-60162/worker-2/master#a850a426491e14186af2250549bf41256b5938d2:/opt/crater/target:rw,Z" "-v" "/mnt/crater-raid/crater/work/ex/pr-60162/sources/master#a850a426491e14186af2250549bf41256b5938d2/gh/rohitjoshi/rato:/opt/crater/workdir:ro,Z" "-v" "/mnt/crater-raid/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/crater-raid/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+a850a426491e14186af2250549bf41256b5938d2-alt" "check" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 5e273dd4b6e1b7f3792d681476b0668ec3dba958ba13b9f93fdb6d9bfdd230b4 [INFO] running `"docker" "start" "-a" "5e273dd4b6e1b7f3792d681476b0668ec3dba958ba13b9f93fdb6d9bfdd230b4"` [INFO] [stderr] warning: unused manifest key: package.License [INFO] [stderr] Compiling byteorder v1.3.1 [INFO] [stderr] Checking log v0.4.6 [INFO] [stderr] Checking log v0.3.9 [INFO] [stderr] Checking hashbrown v0.1.8 [INFO] [stderr] Checking rato v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused import: `super::*` [INFO] [stderr] --> src/lib.rs:13:9 [INFO] [stderr] | [INFO] [stderr] 13 | use super::*; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::sync::Arc` [INFO] [stderr] --> src/lib.rs:18:9 [INFO] [stderr] | [INFO] [stderr] 18 | use std::sync::Arc; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0658]: use of unstable library feature 'rustc_private': this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via `Cargo.toml` instead? [INFO] [stderr] --> src/lib.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | extern crate env_logger; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: for more information, see https://github.com/rust-lang/rust/issues/27812 [INFO] [stderr] = help: add #![feature(rustc_private)] to the crate attributes to enable [INFO] [stderr] [INFO] [stderr] error[E0658]: use of unstable library feature 'rustc_private': this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via `Cargo.toml` instead? [INFO] [stderr] --> src/lib.rs:140:17 [INFO] [stderr] | [INFO] [stderr] 140 | let _ = env_logger::try_init(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: for more information, see https://github.com/rust-lang/rust/issues/27812 [INFO] [stderr] = help: add #![feature(rustc_private)] to the crate attributes to enable [INFO] [stderr] [INFO] [stderr] error[E0658]: use of unstable library feature 'rustc_private': this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via `Cargo.toml` instead? [INFO] [stderr] --> src/lib.rs:159:17 [INFO] [stderr] | [INFO] [stderr] 159 | let _ = env_logger::try_init(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: for more information, see https://github.com/rust-lang/rust/issues/27812 [INFO] [stderr] = help: add #![feature(rustc_private)] to the crate attributes to enable [INFO] [stderr] [INFO] [stderr] error[E0658]: use of unstable library feature 'rustc_private': this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via `Cargo.toml` instead? [INFO] [stderr] --> src/lib.rs:179:17 [INFO] [stderr] | [INFO] [stderr] 179 | let _ = env_logger::try_init(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: for more information, see https://github.com/rust-lang/rust/issues/27812 [INFO] [stderr] = help: add #![feature(rustc_private)] to the crate attributes to enable [INFO] [stderr] [INFO] [stderr] error[E0658]: use of unstable library feature 'rustc_private': this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via `Cargo.toml` instead? [INFO] [stderr] --> src/lib.rs:196:17 [INFO] [stderr] | [INFO] [stderr] 196 | let _ = env_logger::try_init(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: for more information, see https://github.com/rust-lang/rust/issues/27812 [INFO] [stderr] = help: add #![feature(rustc_private)] to the crate attributes to enable [INFO] [stderr] [INFO] [stderr] error[E0658]: use of unstable library feature 'rustc_private': this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via `Cargo.toml` instead? [INFO] [stderr] --> src/lib.rs:213:17 [INFO] [stderr] | [INFO] [stderr] 213 | let _ = env_logger::try_init(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: for more information, see https://github.com/rust-lang/rust/issues/27812 [INFO] [stderr] = help: add #![feature(rustc_private)] to the crate attributes to enable [INFO] [stderr] [INFO] [stderr] error[E0061]: this function takes 4 parameters but 3 parameters were supplied [INFO] [stderr] --> src/lib.rs:150:19 [INFO] [stderr] | [INFO] [stderr] 150 | let res = Rato::parse_input(&redis_test, &mut tags, &mut b"AUTH secret\r\n".to_vec()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected 4 parameters [INFO] [stderr] | [INFO] [stderr] ::: src/rato.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | / pub fn parse_input( [INFO] [stderr] 41 | | event_handler: &T, [INFO] [stderr] 42 | | mut conn_tags: &mut HashMap, [INFO] [stderr] 43 | | input: &mut Vec, [INFO] [stderr] ... | [INFO] [stderr] 140 | | close [INFO] [stderr] 141 | | } [INFO] [stderr] | |_____- defined here [INFO] [stderr] [INFO] [stderr] warning: unused variable: `total_commands` [INFO] [stderr] --> src/rato.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | let total_commands = argss.len(); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider prefixing with an underscore: `_total_commands` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable `close_session` is assigned to, but never used [INFO] [stderr] --> src/rato.rs:90:21 [INFO] [stderr] | [INFO] [stderr] 90 | let mut close_session = false; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_close_session` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `close_session` is never read [INFO] [stderr] --> src/rato.rs:106:25 [INFO] [stderr] | [INFO] [stderr] 106 | close_session = true; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rato.rs:42:9 [INFO] [stderr] | [INFO] [stderr] 42 | mut conn_tags: &mut HashMap, [INFO] [stderr] | ----^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] error[E0610]: `bool` is a primitive type and therefore doesn't have fields [INFO] [stderr] --> src/lib.rs:151:49 [INFO] [stderr] | [INFO] [stderr] 151 | assert_eq!(String::from_utf8_lossy(&res.0), "+OK\r\n"); [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] error[E0061]: this function takes 4 parameters but 3 parameters were supplied [INFO] [stderr] --> src/lib.rs:153:19 [INFO] [stderr] | [INFO] [stderr] 153 | let res = Rato::parse_input(&redis_test, &mut tags, &mut b"AUTH abc\r\n".to_vec()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected 4 parameters [INFO] [stderr] | [INFO] [stderr] ::: src/rato.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | / pub fn parse_input( [INFO] [stderr] 41 | | event_handler: &T, [INFO] [stderr] 42 | | mut conn_tags: &mut HashMap, [INFO] [stderr] 43 | | input: &mut Vec, [INFO] [stderr] ... | [INFO] [stderr] 140 | | close [INFO] [stderr] 141 | | } [INFO] [stderr] | |_____- defined here [INFO] [stderr] [INFO] [stderr] error[E0610]: `bool` is a primitive type and therefore doesn't have fields [INFO] [stderr] --> src/lib.rs:154:49 [INFO] [stderr] | [INFO] [stderr] 154 | assert_ne!(String::from_utf8_lossy(&res.0), "+OK\r\n"); [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] error[E0061]: this function takes 4 parameters but 3 parameters were supplied [INFO] [stderr] --> src/lib.rs:170:19 [INFO] [stderr] | [INFO] [stderr] 170 | let res = Rato::parse_input(&redis_test, &mut tags, &mut b"PING\r\n".to_vec()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected 4 parameters [INFO] [stderr] | [INFO] [stderr] ::: src/rato.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | / pub fn parse_input( [INFO] [stderr] 41 | | event_handler: &T, [INFO] [stderr] 42 | | mut conn_tags: &mut HashMap, [INFO] [stderr] 43 | | input: &mut Vec, [INFO] [stderr] ... | [INFO] [stderr] 140 | | close [INFO] [stderr] 141 | | } [INFO] [stderr] | |_____- defined here [INFO] [stderr] [INFO] [stderr] error[E0610]: `bool` is a primitive type and therefore doesn't have fields [INFO] [stderr] --> src/lib.rs:171:49 [INFO] [stderr] | [INFO] [stderr] 171 | assert_eq!(String::from_utf8_lossy(&res.0), "+PONG\r\n"); [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] error[E0061]: this function takes 4 parameters but 3 parameters were supplied [INFO] [stderr] --> src/lib.rs:173:19 [INFO] [stderr] | [INFO] [stderr] 173 | let res = Rato::parse_input(&redis_test, &mut tags, &mut b"PING test_key\r\n".to_vec()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected 4 parameters [INFO] [stderr] | [INFO] [stderr] ::: src/rato.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | / pub fn parse_input( [INFO] [stderr] 41 | | event_handler: &T, [INFO] [stderr] 42 | | mut conn_tags: &mut HashMap, [INFO] [stderr] 43 | | input: &mut Vec, [INFO] [stderr] ... | [INFO] [stderr] 140 | | close [INFO] [stderr] 141 | | } [INFO] [stderr] | |_____- defined here [INFO] [stderr] [INFO] [stderr] error[E0610]: `bool` is a primitive type and therefore doesn't have fields [INFO] [stderr] --> src/lib.rs:174:49 [INFO] [stderr] | [INFO] [stderr] 174 | assert_eq!(String::from_utf8_lossy(&res.0), "$8\r\ntest_key\r\n"); [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] error[E0061]: this function takes 4 parameters but 3 parameters were supplied [INFO] [stderr] --> src/lib.rs:190:19 [INFO] [stderr] | [INFO] [stderr] 190 | let res = Rato::parse_input(&redis_test, &mut tags, &mut b"SET a b\r\n".to_vec()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected 4 parameters [INFO] [stderr] | [INFO] [stderr] ::: src/rato.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | / pub fn parse_input( [INFO] [stderr] 41 | | event_handler: &T, [INFO] [stderr] 42 | | mut conn_tags: &mut HashMap, [INFO] [stderr] 43 | | input: &mut Vec, [INFO] [stderr] ... | [INFO] [stderr] 140 | | close [INFO] [stderr] 141 | | } [INFO] [stderr] | |_____- defined here [INFO] [stderr] [INFO] [stderr] error[E0610]: `bool` is a primitive type and therefore doesn't have fields [INFO] [stderr] --> src/lib.rs:191:49 [INFO] [stderr] | [INFO] [stderr] 191 | assert_eq!(String::from_utf8_lossy(&res.0), "+OK\r\n"); [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] error[E0061]: this function takes 4 parameters but 3 parameters were supplied [INFO] [stderr] --> src/lib.rs:207:19 [INFO] [stderr] | [INFO] [stderr] 207 | let res = Rato::parse_input(&redis_test, &mut tags, &mut b"GET a\r\n".to_vec()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected 4 parameters [INFO] [stderr] | [INFO] [stderr] ::: src/rato.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | / pub fn parse_input( [INFO] [stderr] 41 | | event_handler: &T, [INFO] [stderr] 42 | | mut conn_tags: &mut HashMap, [INFO] [stderr] 43 | | input: &mut Vec, [INFO] [stderr] ... | [INFO] [stderr] 140 | | close [INFO] [stderr] 141 | | } [INFO] [stderr] | |_____- defined here [INFO] [stderr] [INFO] [stderr] error[E0610]: `bool` is a primitive type and therefore doesn't have fields [INFO] [stderr] --> src/lib.rs:208:49 [INFO] [stderr] | [INFO] [stderr] 208 | assert_eq!(String::from_utf8_lossy(&res.0), "$1\r\nb\r\n"); [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] error[E0061]: this function takes 4 parameters but 3 parameters were supplied [INFO] [stderr] --> src/lib.rs:224:19 [INFO] [stderr] | [INFO] [stderr] 224 | let res = Rato::parse_input(&redis_test, &mut tags, &mut b"SELECT PAN_DB\r\n".to_vec()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected 4 parameters [INFO] [stderr] | [INFO] [stderr] ::: src/rato.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | / pub fn parse_input( [INFO] [stderr] 41 | | event_handler: &T, [INFO] [stderr] 42 | | mut conn_tags: &mut HashMap, [INFO] [stderr] 43 | | input: &mut Vec, [INFO] [stderr] ... | [INFO] [stderr] 140 | | close [INFO] [stderr] 141 | | } [INFO] [stderr] | |_____- defined here [INFO] [stderr] [INFO] [stderr] error[E0061]: this function takes 4 parameters but 3 parameters were supplied [INFO] [stderr] --> src/lib.rs:226:19 [INFO] [stderr] | [INFO] [stderr] 226 | let res = Rato::parse_input(&redis_test, &mut tags, &mut b"GET a\r\n".to_vec()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected 4 parameters [INFO] [stderr] | [INFO] [stderr] ::: src/rato.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | / pub fn parse_input( [INFO] [stderr] 41 | | event_handler: &T, [INFO] [stderr] 42 | | mut conn_tags: &mut HashMap, [INFO] [stderr] 43 | | input: &mut Vec, [INFO] [stderr] ... | [INFO] [stderr] 140 | | close [INFO] [stderr] 141 | | } [INFO] [stderr] | |_____- defined here [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rato.rs:151:13 [INFO] [stderr] | [INFO] [stderr] 151 | let mut args = args; [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] error: aborting due to 20 previous errors [INFO] [stderr] [INFO] [stderr] Some errors have detailed explanations: E0061, E0610, E0658. [INFO] [stderr] For more information about an error, try `rustc --explain E0061`. [INFO] [stderr] error: Could not compile `rato`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "5e273dd4b6e1b7f3792d681476b0668ec3dba958ba13b9f93fdb6d9bfdd230b4"` [INFO] running `"docker" "rm" "-f" "5e273dd4b6e1b7f3792d681476b0668ec3dba958ba13b9f93fdb6d9bfdd230b4"` [INFO] [stdout] 5e273dd4b6e1b7f3792d681476b0668ec3dba958ba13b9f93fdb6d9bfdd230b4