[INFO] crate rust_asio 0.6.0 is already in cache [INFO] extracting crate rust_asio 0.6.0 into work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/reg/rust_asio/0.6.0 [INFO] extracting crate rust_asio 0.6.0 into work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/reg/rust_asio/0.6.0 [INFO] validating manifest of rust_asio-0.6.0 on toolchain master#60960a260f7b5c695fd0717311d72ce62dd4eb43 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of rust_asio-0.6.0 on toolchain try#266783e4e09e4e9d5307c1c8e695659c58bbcac7 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing rust_asio-0.6.0 [INFO] finished frobbing rust_asio-0.6.0 [INFO] frobbed toml for rust_asio-0.6.0 written to work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/reg/rust_asio/0.6.0/Cargo.toml [INFO] started frobbing rust_asio-0.6.0 [INFO] finished frobbing rust_asio-0.6.0 [INFO] frobbed toml for rust_asio-0.6.0 written to work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/reg/rust_asio/0.6.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-alt" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] checking rust_asio-0.6.0 against try#266783e4e09e4e9d5307c1c8e695659c58bbcac7 for pr-63376 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-63376/worker-5/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/reg/rust_asio/0.6.0:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/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" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-alt" "check" "--frozen" "--all" "--all-targets"` [INFO] [stdout] f46ab9d8922daa5c3b1b1337b3cbbcc343c595919459fd24b2b7037d2015abf9 [INFO] running `"docker" "start" "-a" "f46ab9d8922daa5c3b1b1337b3cbbcc343c595919459fd24b2b7037d2015abf9"` [INFO] [stderr] Checking rust_asio v0.6.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/lib.rs:98:1 [INFO] [stderr] | [INFO] [stderr] 98 | #[macro_use] extern crate bitflags; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/lib.rs:119:1 [INFO] [stderr] | [INFO] [stderr] 119 | / macro_rules! libc_unwrap { [INFO] [stderr] 120 | | ($expr:expr) => ( [INFO] [stderr] 121 | | match unsafe { $expr } { [INFO] [stderr] 122 | | rc if rc >= 0 => rc, [INFO] [stderr] ... | [INFO] [stderr] 125 | | ) [INFO] [stderr] 126 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_macros)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/core/mod.rs:258:22 [INFO] [stderr] | [INFO] [stderr] 258 | type Operation = Box; [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FnOp + Send` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/core/task_ctx.rs:23:21 [INFO] [stderr] | [INFO] [stderr] 23 | type Function = Box; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnBox + Send + 'static` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/async/mod.rs:4:65 [INFO] [stderr] | [INFO] [stderr] 4 | pub trait Sender> : FnOp + Upcast { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FnOp + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/async/mod.rs:12:24 [INFO] [stderr] | [INFO] [stderr] 12 | impl Into> for Box + Send> { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FnOp + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/async/mod.rs:12:46 [INFO] [stderr] | [INFO] [stderr] 12 | impl Into> for Box + Send> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Sender + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/async/mod.rs:13:26 [INFO] [stderr] | [INFO] [stderr] 13 | fn into(self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FnOp + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/async/mod.rs:18:35 [INFO] [stderr] | [INFO] [stderr] 18 | pub type Operation = Box + Send>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Sender + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/async/wrap.rs:50:28 [INFO] [stderr] | [INFO] [stderr] 50 | impl Upcast for (ArcHandler, G) [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FnOp + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/async/wrap.rs:57:39 [INFO] [stderr] | [INFO] [stderr] 57 | fn upcast(self: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FnOp + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/async/strand.rs:22:24 [INFO] [stderr] | [INFO] [stderr] 22 | type Function = Box>; [INFO] [stderr] | ^^^^^^^^ help: use `dyn`: `dyn FnBox` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/async/strand.rs:228:28 [INFO] [stderr] | [INFO] [stderr] 228 | impl Upcast for (StrandHandler, G) [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FnOp + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/async/strand.rs:235:39 [INFO] [stderr] | [INFO] [stderr] 235 | fn upcast(self: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FnOp + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/async/coroutine.rs:24:15 [INFO] [stderr] | [INFO] [stderr] 24 | func: Box, [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn FnBox` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/async/coroutine.rs:165:22 [INFO] [stderr] | [INFO] [stderr] 165 | impl Upcast for (CoroutineHandler, G) [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FnOp + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/async/coroutine.rs:170:39 [INFO] [stderr] | [INFO] [stderr] 170 | fn upcast(self: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FnOp + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/reactive_io/mod.rs:13:27 [INFO] [stderr] | [INFO] [stderr] 13 | where T: Into> [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FnOp + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/reactive_io/mod.rs:27:27 [INFO] [stderr] | [INFO] [stderr] 27 | where T: Into> [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FnOp + Send` [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::sync::ONCE_INIT': the `new` function is now preferred [INFO] [stderr] --> src/core/init.rs:29:1 [INFO] [stderr] | [INFO] [stderr] 29 | / lazy_static! { [INFO] [stderr] 30 | | static ref REGISTRY_COUNT: Mutex = Default::default(); [INFO] [stderr] 31 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::sync::ONCE_INIT': the `new` function is now preferred [INFO] [stderr] --> src/core/callstack.rs:65:1 [INFO] [stderr] | [INFO] [stderr] 65 | / lazy_static! { [INFO] [stderr] 66 | | static ref TOP: TssPtr = TssPtr::new().unwrap(); [INFO] [stderr] 67 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/lib.rs:98:1 [INFO] [stderr] | [INFO] [stderr] 98 | #[macro_use] extern crate bitflags; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/lib.rs:119:1 [INFO] [stderr] | [INFO] [stderr] 119 | / macro_rules! libc_unwrap { [INFO] [stderr] 120 | | ($expr:expr) => ( [INFO] [stderr] 121 | | match unsafe { $expr } { [INFO] [stderr] 122 | | rc if rc >= 0 => rc, [INFO] [stderr] ... | [INFO] [stderr] 125 | | ) [INFO] [stderr] 126 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_macros)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/core/mod.rs:258:22 [INFO] [stderr] | [INFO] [stderr] 258 | type Operation = Box; [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FnOp + Send` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/core/task_ctx.rs:23:21 [INFO] [stderr] | [INFO] [stderr] 23 | type Function = Box; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnBox + Send + 'static` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/async/mod.rs:4:65 [INFO] [stderr] | [INFO] [stderr] 4 | pub trait Sender> : FnOp + Upcast { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FnOp + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/async/mod.rs:12:24 [INFO] [stderr] | [INFO] [stderr] 12 | impl Into> for Box + Send> { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FnOp + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/async/mod.rs:12:46 [INFO] [stderr] | [INFO] [stderr] 12 | impl Into> for Box + Send> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Sender + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/async/mod.rs:13:26 [INFO] [stderr] | [INFO] [stderr] 13 | fn into(self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FnOp + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/async/mod.rs:18:35 [INFO] [stderr] | [INFO] [stderr] 18 | pub type Operation = Box + Send>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Sender + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/async/wrap.rs:50:28 [INFO] [stderr] | [INFO] [stderr] 50 | impl Upcast for (ArcHandler, G) [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FnOp + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/async/wrap.rs:57:39 [INFO] [stderr] | [INFO] [stderr] 57 | fn upcast(self: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FnOp + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/async/strand.rs:22:24 [INFO] [stderr] | [INFO] [stderr] 22 | type Function = Box>; [INFO] [stderr] | ^^^^^^^^ help: use `dyn`: `dyn FnBox` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/async/strand.rs:228:28 [INFO] [stderr] | [INFO] [stderr] 228 | impl Upcast for (StrandHandler, G) [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FnOp + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/async/strand.rs:235:39 [INFO] [stderr] | [INFO] [stderr] 235 | fn upcast(self: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FnOp + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/async/coroutine.rs:24:15 [INFO] [stderr] | [INFO] [stderr] 24 | func: Box, [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn FnBox` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/async/coroutine.rs:165:22 [INFO] [stderr] | [INFO] [stderr] 165 | impl Upcast for (CoroutineHandler, G) [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FnOp + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/async/coroutine.rs:170:39 [INFO] [stderr] | [INFO] [stderr] 170 | fn upcast(self: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FnOp + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/reactive_io/mod.rs:13:27 [INFO] [stderr] | [INFO] [stderr] 13 | where T: Into> [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FnOp + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/reactive_io/mod.rs:27:27 [INFO] [stderr] | [INFO] [stderr] 27 | where T: Into> [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FnOp + Send` [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/ip/icmp.rs:129:26 [INFO] [stderr] | [INFO] [stderr] 129 | for ep in re.resolve(("localhost")).unwrap() { [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::sync::ONCE_INIT': the `new` function is now preferred [INFO] [stderr] --> src/ffi/tss/mod.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | / lazy_static! { [INFO] [stderr] 25 | | static ref PTR: TssPtr = TssPtr::new().unwrap(); [INFO] [stderr] 26 | | }; [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::sync::atomic::ATOMIC_USIZE_INIT': the `new` function is now preferred [INFO] [stderr] --> src/core/mod.rs:309:52 [INFO] [stderr] | [INFO] [stderr] 309 | use std::sync::atomic::{Ordering, AtomicUsize, ATOMIC_USIZE_INIT}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::sync::atomic::ATOMIC_USIZE_INIT': the `new` function is now preferred [INFO] [stderr] --> src/core/mod.rs:311:33 [INFO] [stderr] | [INFO] [stderr] 311 | static COUNT: AtomicUsize = ATOMIC_USIZE_INIT; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated item: `AtomicUsize::new(0)` [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::sync::ONCE_INIT': the `new` function is now preferred [INFO] [stderr] --> src/core/init.rs:29:1 [INFO] [stderr] | [INFO] [stderr] 29 | / lazy_static! { [INFO] [stderr] 30 | | static ref REGISTRY_COUNT: Mutex = Default::default(); [INFO] [stderr] 31 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::sync::ONCE_INIT': the `new` function is now preferred [INFO] [stderr] --> src/core/callstack.rs:65:1 [INFO] [stderr] | [INFO] [stderr] 65 | / lazy_static! { [INFO] [stderr] 66 | | static ref TOP: TssPtr = TssPtr::new().unwrap(); [INFO] [stderr] 67 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 16.17s [INFO] running `"docker" "inspect" "f46ab9d8922daa5c3b1b1337b3cbbcc343c595919459fd24b2b7037d2015abf9"` [INFO] running `"docker" "rm" "-f" "f46ab9d8922daa5c3b1b1337b3cbbcc343c595919459fd24b2b7037d2015abf9"` [INFO] [stdout] f46ab9d8922daa5c3b1b1337b3cbbcc343c595919459fd24b2b7037d2015abf9