[INFO] cloning repository https://github.com/AlexanderStein/raytracing [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/AlexanderStein/raytracing" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAlexanderStein%2Fraytracing", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAlexanderStein%2Fraytracing'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 58b5cd1ef10197190cedaed1665f16c670aecc0d [INFO] testing AlexanderStein/raytracing against try#8de4c7234dd9b97c9d76b58671343fdbbc9a433e+target=x86_64-unknown-linux-musl for musl_upgrade_1_2_5_with_libc_patch_0 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAlexanderStein%2Fraytracing" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/AlexanderStein/raytracing [INFO] finished tweaking git repo https://github.com/AlexanderStein/raytracing [INFO] tweaked toml for git repo https://github.com/AlexanderStein/raytracing written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/AlexanderStein/raytracing on toolchain 8de4c7234dd9b97c9d76b58671343fdbbc9a433e [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/AlexanderStein/raytracing 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" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded enum-iterator v0.7.0 [INFO] [stderr] Downloaded getset v0.1.2 [INFO] [stderr] Downloaded vergen v7.2.0 [INFO] [stderr] Downloaded rustversion v1.0.6 [INFO] [stderr] Downloaded enum-iterator-derive v0.7.0 [INFO] [stderr] Downloaded pkg-config v0.3.25 [INFO] [stderr] Downloaded lebe v0.5.1 [INFO] [stderr] Downloaded console v0.15.0 [INFO] [stderr] Downloaded os_str_bytes v6.1.0 [INFO] [stderr] Downloaded clap_lex v0.2.0 [INFO] [stderr] Downloaded bytemuck v1.9.1 [INFO] [stderr] Downloaded spin v0.9.3 [INFO] [stderr] Downloaded once_cell v1.12.0 [INFO] [stderr] Downloaded crossbeam-utils v0.8.8 [INFO] [stderr] Downloaded crossbeam-epoch v0.9.8 [INFO] [stderr] Downloaded miniz_oxide v0.5.1 [INFO] [stderr] Downloaded gif v0.11.3 [INFO] [stderr] Downloaded indexmap v1.8.2 [INFO] [stderr] Downloaded weezl v0.1.6 [INFO] [stderr] Downloaded cgmath v0.18.0 [INFO] [stderr] Downloaded crossbeam-channel v0.5.4 [INFO] [stderr] Downloaded time v0.3.9 [INFO] [stderr] Downloaded flume v0.10.12 [INFO] [stderr] Downloaded flate2 v1.0.23 [INFO] [stderr] Downloaded git2 v0.14.4 [INFO] [stderr] Downloaded clap v3.1.18 [INFO] [stderr] Downloaded exr v1.4.2 [INFO] [stderr] Downloaded regex v1.5.6 [INFO] [stderr] Downloaded image v0.24.2 [INFO] [stderr] Downloaded regex-syntax v0.6.26 [INFO] [stderr] Downloaded tiff v0.7.2 [INFO] [stderr] Downloaded libgit2-sys v0.13.4+1.4.2 [INFO] [stderr] Downloaded libz-sys v1.1.8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] ebd5402efe3b74e4752ff59b1ac65eb708a447018f282c74de6e9c731c293d8c [INFO] running `Command { std: "docker" "start" "-a" "ebd5402efe3b74e4752ff59b1ac65eb708a447018f282c74de6e9c731c293d8c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ebd5402efe3b74e4752ff59b1ac65eb708a447018f282c74de6e9c731c293d8c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ebd5402efe3b74e4752ff59b1ac65eb708a447018f282c74de6e9c731c293d8c", kill_on_drop: false }` [INFO] [stdout] ebd5402efe3b74e4752ff59b1ac65eb708a447018f282c74de6e9c731c293d8c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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" "-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "build" "--frozen" "--message-format=json" "--target" "x86_64-unknown-linux-musl", kill_on_drop: false }` [INFO] [stdout] 2fa210e105b5d9ee2f658c91ad44b26ef62258be7dd5b93183cf7586314fd8a8 [INFO] running `Command { std: "docker" "start" "-a" "2fa210e105b5d9ee2f658c91ad44b26ef62258be7dd5b93183cf7586314fd8a8", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.126 [INFO] [stderr] Compiling proc-macro2 v1.0.39 [INFO] [stderr] Compiling unicode-ident v1.0.0 [INFO] [stderr] Compiling syn v1.0.95 [INFO] [stderr] Compiling crossbeam-utils v0.8.8 [INFO] [stderr] Compiling pkg-config v0.3.25 [INFO] [stderr] Compiling num-traits v0.2.15 [INFO] [stderr] Compiling memoffset v0.6.5 [INFO] [stderr] Compiling crossbeam-epoch v0.9.8 [INFO] [stderr] Compiling tinyvec_macros v0.1.0 [INFO] [stderr] Compiling matches v0.1.9 [INFO] [stderr] Compiling anyhow v1.0.57 [INFO] [stderr] Compiling rayon-core v1.9.3 [INFO] [stderr] Compiling rustversion v1.0.6 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling tinyvec v1.6.0 [INFO] [stderr] Compiling lock_api v0.4.7 [INFO] [stderr] Compiling itoa v1.0.2 [INFO] [stderr] Compiling crc32fast v1.3.2 [INFO] [stderr] Compiling percent-encoding v2.1.0 [INFO] [stderr] Compiling num_threads v0.1.6 [INFO] [stderr] Compiling unicode-bidi v0.3.8 [INFO] [stderr] Compiling form_urlencoded v1.0.1 [INFO] [stderr] Compiling log v0.4.17 [INFO] [stderr] Compiling rayon v1.5.3 [INFO] [stderr] Compiling num-integer v0.1.45 [INFO] [stderr] Compiling futures-core v0.3.21 [INFO] [stderr] Compiling adler32 v1.2.0 [INFO] [stderr] Compiling unicode-normalization v0.1.19 [INFO] [stderr] Compiling miniz_oxide v0.5.1 [INFO] [stderr] Compiling getrandom v0.2.6 [INFO] [stderr] Compiling num_cpus v1.13.1 [INFO] [stderr] Compiling crossbeam-channel v0.5.4 [INFO] [stderr] Compiling jobserver v0.1.24 [INFO] [stderr] Compiling time v0.3.9 [INFO] [stderr] Compiling quote v1.0.18 [INFO] [stderr] Compiling either v1.6.1 [INFO] [stderr] Compiling crossbeam-deque v0.8.1 [INFO] [stderr] Compiling bitflags v1.3.2 [INFO] [stderr] Compiling cc v1.0.73 [INFO] [stderr] Compiling nanorand v0.7.0 [INFO] [stderr] Compiling spin v0.9.3 [INFO] [stderr] Compiling deflate v1.0.0 [INFO] [stderr] Compiling indexmap v1.8.2 [INFO] [stderr] Compiling num-iter v0.1.43 [INFO] [stderr] Compiling num-rational v0.4.0 [INFO] [stderr] Compiling futures-sink v0.3.21 [INFO] [stderr] Compiling weezl v0.1.6 [INFO] [stderr] Compiling flate2 v1.0.23 [INFO] [stderr] Compiling idna v0.2.3 [INFO] [stderr] Compiling threadpool v1.8.1 [INFO] [stderr] Compiling rand_core v0.6.3 [INFO] [stderr] Compiling terminal_size v0.1.17 [INFO] [stderr] Compiling inflate v0.4.5 [INFO] [stderr] Compiling color_quant v1.1.0 [INFO] [stderr] Compiling once_cell v1.12.0 [INFO] [stderr] Compiling hashbrown v0.11.2 [INFO] [stderr] Compiling approx v0.5.1 [INFO] [stderr] Compiling regex-syntax v0.6.26 [INFO] [stderr] Compiling url v2.2.2 [INFO] [stderr] Compiling bit_field v0.10.1 [INFO] [stderr] Compiling smallvec v1.8.0 [INFO] [stderr] Compiling cgmath v0.18.0 [INFO] [stderr] Compiling vergen v7.2.0 [INFO] [stderr] Compiling half v1.8.2 [INFO] [stderr] Compiling ppv-lite86 v0.2.16 [INFO] [stderr] Compiling os_str_bytes v6.1.0 [INFO] [stderr] Compiling lebe v0.5.1 [INFO] [stderr] Compiling gif v0.11.3 [INFO] [stderr] Compiling png v0.17.5 [INFO] [stderr] Compiling console v0.15.0 [INFO] [stderr] Compiling clap_lex v0.2.0 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling approx v0.4.0 [INFO] [stderr] Compiling atty v0.2.14 [INFO] [stderr] Compiling strsim v0.10.0 [INFO] [stderr] Compiling termcolor v1.1.3 [INFO] [stderr] Compiling libz-sys v1.1.8 [INFO] [stderr] Compiling libgit2-sys v0.13.4+1.4.2 [INFO] [stderr] Compiling textwrap v0.15.0 [INFO] [stderr] Compiling scoped_threadpool v0.1.9 [INFO] [stderr] Compiling bytemuck v1.9.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling clap v3.1.18 [INFO] [stderr] Compiling regex v1.5.6 [INFO] [stderr] Compiling jpeg-decoder v0.2.6 [INFO] [stderr] Compiling indicatif v0.16.2 [INFO] [stderr] Compiling tiff v0.7.2 [INFO] [stderr] Compiling enum-iterator-derive v0.7.0 [INFO] [stderr] Compiling thiserror-impl v1.0.31 [INFO] [stderr] Compiling pin-project-internal v1.0.10 [INFO] [stderr] Compiling getset v0.1.2 [INFO] [stderr] Compiling enum-iterator v0.7.0 [INFO] [stderr] Compiling pin-project v1.0.10 [INFO] [stderr] Compiling thiserror v1.0.31 [INFO] [stderr] Compiling flume v0.10.12 [INFO] [stderr] Compiling exr v1.4.2 [INFO] [stderr] Compiling git2 v0.14.4 [INFO] [stderr] Compiling image v0.24.2 [INFO] [stderr] Compiling raytracer v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/aarect.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option { [INFO] [stdout] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 14 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/aarect.rs:58:12 [INFO] [stdout] | [INFO] [stdout] 58 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option { [INFO] [stdout] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 58 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/aarect.rs:102:12 [INFO] [stdout] | [INFO] [stdout] 102 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option { [INFO] [stdout] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 102 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/bvh.rs:90:12 [INFO] [stdout] | [INFO] [stdout] 90 | fn hit(&self, ray: &Ray, t_min: f64, mut t_max: f64) -> Option { [INFO] [stdout] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 90 | fn hit(&self, ray: &Ray, t_min: f64, mut t_max: f64) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/constant_medium.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 22 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option { [INFO] [stdout] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 22 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/cuboid.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 78 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option { [INFO] [stdout] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 78 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/hitable.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 27 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option; [INFO] [stdout] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 27 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option>; [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/hitable_list.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 22 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option { [INFO] [stdout] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 22 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/rotate.rs:62:12 [INFO] [stdout] | [INFO] [stdout] 62 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option { [INFO] [stdout] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 62 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/sphere.rs:40:12 [INFO] [stdout] | [INFO] [stdout] 40 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option { [INFO] [stdout] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 40 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/sphere.rs:121:12 [INFO] [stdout] | [INFO] [stdout] 121 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option { [INFO] [stdout] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 121 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/translate.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | &self, [INFO] [stdout] | ^^^^^ this lifetime flows to the output [INFO] [stdout] ... [INFO] [stdout] 21 | ) -> Option { [INFO] [stdout] | --------- the lifetime gets resolved as `'_` [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 21 | ) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 42.47s [INFO] running `Command { std: "docker" "inspect" "2fa210e105b5d9ee2f658c91ad44b26ef62258be7dd5b93183cf7586314fd8a8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2fa210e105b5d9ee2f658c91ad44b26ef62258be7dd5b93183cf7586314fd8a8", kill_on_drop: false }` [INFO] [stdout] 2fa210e105b5d9ee2f658c91ad44b26ef62258be7dd5b93183cf7586314fd8a8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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" "-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "test" "--frozen" "--no-run" "--message-format=json" "--target" "x86_64-unknown-linux-musl", kill_on_drop: false }` [INFO] [stdout] 4a4db58e75b02dfef056efcabc3b2b87aa3626c2f2f8fce47208c449b6a40b8c [INFO] running `Command { std: "docker" "start" "-a" "4a4db58e75b02dfef056efcabc3b2b87aa3626c2f2f8fce47208c449b6a40b8c", kill_on_drop: false }` [INFO] [stderr] Compiling raytracer v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused `#[macro_use]` import [INFO] [stdout] --> src/main.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | #[macro_use] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/aarect.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option { [INFO] [stdout] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 14 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/aarect.rs:58:12 [INFO] [stdout] | [INFO] [stdout] 58 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option { [INFO] [stdout] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 58 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/aarect.rs:102:12 [INFO] [stdout] | [INFO] [stdout] 102 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option { [INFO] [stdout] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 102 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/bvh.rs:90:12 [INFO] [stdout] | [INFO] [stdout] 90 | fn hit(&self, ray: &Ray, t_min: f64, mut t_max: f64) -> Option { [INFO] [stdout] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 90 | fn hit(&self, ray: &Ray, t_min: f64, mut t_max: f64) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/constant_medium.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 22 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option { [INFO] [stdout] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 22 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/cuboid.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 78 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option { [INFO] [stdout] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 78 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/hitable.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 27 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option; [INFO] [stdout] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 27 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option>; [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/hitable_list.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 22 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option { [INFO] [stdout] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 22 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/rotate.rs:62:12 [INFO] [stdout] | [INFO] [stdout] 62 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option { [INFO] [stdout] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 62 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/sphere.rs:40:12 [INFO] [stdout] | [INFO] [stdout] 40 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option { [INFO] [stdout] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 40 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/sphere.rs:121:12 [INFO] [stdout] | [INFO] [stdout] 121 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option { [INFO] [stdout] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 121 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/translate.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | &self, [INFO] [stdout] | ^^^^^ this lifetime flows to the output [INFO] [stdout] ... [INFO] [stdout] 21 | ) -> Option { [INFO] [stdout] | --------- the lifetime gets resolved as `'_` [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 21 | ) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.08s [INFO] running `Command { std: "docker" "inspect" "4a4db58e75b02dfef056efcabc3b2b87aa3626c2f2f8fce47208c449b6a40b8c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4a4db58e75b02dfef056efcabc3b2b87aa3626c2f2f8fce47208c449b6a40b8c", kill_on_drop: false }` [INFO] [stdout] 4a4db58e75b02dfef056efcabc3b2b87aa3626c2f2f8fce47208c449b6a40b8c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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" "-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "test" "--frozen" "--target" "x86_64-unknown-linux-musl", kill_on_drop: false }` [INFO] [stdout] 4762ae1b791928a5a9bea3d75e00da55e522363e91b3904a5ab04cec28a44fe0 [INFO] running `Command { std: "docker" "start" "-a" "4762ae1b791928a5a9bea3d75e00da55e522363e91b3904a5ab04cec28a44fe0", kill_on_drop: false }` [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/main.rs:2:1 [INFO] [stderr] | [INFO] [stderr] 2 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stderr] --> src/aarect.rs:14:12 [INFO] [stderr] | [INFO] [stderr] 14 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option { [INFO] [stderr] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stderr] | [INFO] [stderr] 14 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stderr] --> src/aarect.rs:58:12 [INFO] [stderr] | [INFO] [stderr] 58 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option { [INFO] [stderr] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stderr] | [INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stderr] | [INFO] [stderr] 58 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stderr] --> src/aarect.rs:102:12 [INFO] [stderr] | [INFO] [stderr] 102 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option { [INFO] [stderr] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stderr] | [INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stderr] | [INFO] [stderr] 102 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stderr] --> src/bvh.rs:90:12 [INFO] [stderr] | [INFO] [stderr] 90 | fn hit(&self, ray: &Ray, t_min: f64, mut t_max: f64) -> Option { [INFO] [stderr] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stderr] | [INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stderr] | [INFO] [stderr] 90 | fn hit(&self, ray: &Ray, t_min: f64, mut t_max: f64) -> Option> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stderr] --> src/constant_medium.rs:22:12 [INFO] [stderr] | [INFO] [stderr] 22 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option { [INFO] [stderr] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stderr] | [INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stderr] | [INFO] [stderr] 22 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stderr] --> src/cuboid.rs:78:12 [INFO] [stderr] | [INFO] [stderr] 78 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option { [INFO] [stderr] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stderr] | [INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stderr] | [INFO] [stderr] 78 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stderr] --> src/hitable.rs:27:12 [INFO] [stderr] | [INFO] [stderr] 27 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option; [INFO] [stderr] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stderr] | [INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stderr] | [INFO] [stderr] 27 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option>; [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stderr] --> src/hitable_list.rs:22:12 [INFO] [stderr] | [INFO] [stderr] 22 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option { [INFO] [stderr] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stderr] | [INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stderr] | [INFO] [stderr] 22 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stderr] --> src/rotate.rs:62:12 [INFO] [stderr] | [INFO] [stderr] 62 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option { [INFO] [stderr] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stderr] | [INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stderr] | [INFO] [stderr] 62 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stderr] --> src/sphere.rs:40:12 [INFO] [stderr] | [INFO] [stderr] 40 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option { [INFO] [stderr] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stderr] | [INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stderr] | [INFO] [stderr] 40 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stderr] --> src/sphere.rs:121:12 [INFO] [stderr] | [INFO] [stderr] 121 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option { [INFO] [stderr] | ^^^^^ this lifetime flows to the output --------- the lifetime gets resolved as `'_` [INFO] [stderr] | [INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stderr] | [INFO] [stderr] 121 | fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stderr] --> src/translate.rs:17:9 [INFO] [stderr] | [INFO] [stderr] 17 | &self, [INFO] [stderr] | ^^^^^ this lifetime flows to the output [INFO] [stderr] ... [INFO] [stderr] 21 | ) -> Option { [INFO] [stderr] | --------- the lifetime gets resolved as `'_` [INFO] [stderr] | [INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stderr] | [INFO] [stderr] 21 | ) -> Option> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: `raytracer` (bin "raytracer" test) generated 13 warnings (run `cargo fix --bin "raytracer" --tests` to apply 12 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.09s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/x86_64-unknown-linux-musl/debug/deps/raytracer-cc05fd6eef42bb87) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/x86_64-unknown-linux-musl/debug/deps/raytracer-6d3b9d02b5b9920c) [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "4762ae1b791928a5a9bea3d75e00da55e522363e91b3904a5ab04cec28a44fe0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4762ae1b791928a5a9bea3d75e00da55e522363e91b3904a5ab04cec28a44fe0", kill_on_drop: false }` [INFO] [stdout] 4762ae1b791928a5a9bea3d75e00da55e522363e91b3904a5ab04cec28a44fe0