[INFO] crate conrod 0.61.1 is already in cache [INFO] testing conrod-0.61.1 against try#03a1ea71b075ab964b5278bc6e74cd6c52c36ee0 for pr-74409 [INFO] extracting crate conrod 0.61.1 into /workspace/builds/worker-8/source [INFO] validating manifest of crates.io crate conrod 0.61.1 on toolchain 03a1ea71b075ab964b5278bc6e74cd6c52c36ee0 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+03a1ea71b075ab964b5278bc6e74cd6c52c36ee0" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] started tweaking crates.io crate conrod 0.61.1 [INFO] finished tweaking crates.io crate conrod 0.61.1 [INFO] tweaked toml for crates.io crate conrod 0.61.1 written to /workspace/builds/worker-8/source/Cargo.toml [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+03a1ea71b075ab964b5278bc6e74cd6c52c36ee0" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }` [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+03a1ea71b075ab964b5278bc6e74cd6c52c36ee0" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/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" "MAP_USER_ID=0" "-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" "--network" "none" "rustops/crates-build-env@sha256:38e1b949b06cde1964af550a6e548bd9b2b2ea170003ae122f8fc0886596cc07" "/opt/rustwide/cargo-home/bin/cargo" "+03a1ea71b075ab964b5278bc6e74cd6c52c36ee0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 808bd8d879ba2a47982290bae24b4110f2857b54a8fed6eadf79781b1ad6ba23 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "808bd8d879ba2a47982290bae24b4110f2857b54a8fed6eadf79781b1ad6ba23", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "808bd8d879ba2a47982290bae24b4110f2857b54a8fed6eadf79781b1ad6ba23", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "808bd8d879ba2a47982290bae24b4110f2857b54a8fed6eadf79781b1ad6ba23", kill_on_drop: false }` [INFO] [stdout] 808bd8d879ba2a47982290bae24b4110f2857b54a8fed6eadf79781b1ad6ba23 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env@sha256:38e1b949b06cde1964af550a6e548bd9b2b2ea170003ae122f8fc0886596cc07" "/opt/rustwide/cargo-home/bin/cargo" "+03a1ea71b075ab964b5278bc6e74cd6c52c36ee0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] a332290a9e636f691aa6c313dcfe4b6cd5c9706132cc9568da2679b9564d8701 [INFO] running `Command { std: "docker" "start" "-a" "a332290a9e636f691aa6c313dcfe4b6cd5c9706132cc9568da2679b9564d8701", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.19 [INFO] [stderr] Compiling libc v0.2.73 [INFO] [stderr] Compiling rustc-serialize v0.3.24 [INFO] [stderr] Compiling syn v1.0.35 [INFO] [stderr] Compiling arrayvec v0.4.12 [INFO] [stderr] Compiling serde v1.0.114 [INFO] [stderr] Compiling nodrop v0.1.14 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling num-iter v0.1.41 [INFO] [stderr] Compiling proc-macro2 v0.3.8 [INFO] [stderr] Compiling unreachable v1.0.0 [INFO] [stderr] Compiling piston-viewport v0.3.0 [INFO] [stderr] Compiling stb_truetype v0.3.1 [INFO] [stderr] Compiling ordered-float v0.5.2 [INFO] [stderr] Compiling stb_truetype v0.2.8 [INFO] [stderr] Compiling rusttype v0.5.2 [INFO] [stderr] Compiling quote v0.5.2 [INFO] [stderr] Compiling rand v0.4.6 [INFO] [stderr] Compiling syn v0.13.11 [INFO] [stderr] Compiling quote v1.0.7 [INFO] [stderr] Compiling num-bigint v0.1.44 [INFO] [stderr] Compiling num-complex v0.1.43 [INFO] [stderr] Compiling num-rational v0.1.42 [INFO] [stderr] Compiling num v0.1.42 [INFO] [stderr] Compiling serde_derive v1.0.114 [INFO] [stderr] Compiling conrod_derive v0.1.2 [INFO] [stderr] Compiling pistoncore-input v0.21.0 [INFO] [stderr] Compiling conrod v0.61.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/graph/mod.rs:71:33 [INFO] [stdout] | [INFO] [stdout] 71 | pub maybe_state: Option>, [INFO] [stdout] | ^^^^^^^^^^ help: use `dyn`: `dyn Any + Send` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/theme.rs:61:20 [INFO] [stdout] | [INFO] [stdout] 61 | pub style: Box, [INFO] [stdout] | ^^^^^^^^^^ help: use `dyn`: `dyn Any + Send` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/theme.rs:77:27 [INFO] [stdout] | [INFO] [stdout] 77 | pub fn new(style: Box) -> WidgetDefault { [INFO] [stdout] | ^^^^^^^^^^ help: use `dyn`: `dyn Any + Send` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `event` is imported redundantly [INFO] [stdout] --> src/ui.rs:382:21 [INFO] [stdout] | [INFO] [stdout] 2 | use event; [INFO] [stdout] | ----- the item `event` is already imported here [INFO] [stdout] ... [INFO] [stdout] 382 | use event::{self, Input}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `ModifierKey` is imported redundantly [INFO] [stdout] --> src/ui.rs:388:17 [INFO] [stdout] | [INFO] [stdout] 383 | use input::{Button, Key, ModifierKey, Motion}; [INFO] [stdout] | ----------- the item `ModifierKey` is already imported here [INFO] [stdout] ... [INFO] [stdout] 388 | use input::keyboard::ModifierKey; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `utils` is imported redundantly [INFO] [stdout] --> src/ui.rs:697:37 [INFO] [stdout] | [INFO] [stdout] 12 | use utils; [INFO] [stdout] | ----- the item `utils` is already imported here [INFO] [stdout] ... [INFO] [stdout] 697 | use utils; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `Widget` is imported redundantly [INFO] [stdout] --> src/ui.rs:1051:62 [INFO] [stdout] | [INFO] [stdout] 13 | use widget::{self, Widget}; [INFO] [stdout] | ------ the item `Widget` is already imported here [INFO] [stdout] ... [INFO] [stdout] 1051 | use {color, Colorable, Borderable, Positionable, Widget}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused label [INFO] [stdout] --> src/widget/number_dialer.rs:246:9 [INFO] [stdout] | [INFO] [stdout] 246 | 'events: for widget_event in ui.widget_input(id).events() { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_labels)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/text.rs:243:37 [INFO] [stdout] | [INFO] [stdout] 243 | Error::IO(ref e) => std::error::Error::description(e), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/text.rs:253:38 [INFO] [stdout] | [INFO] [stdout] 253 | _ => write!(f, "{}", std::error::Error::description(self)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 10 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 43.92s [INFO] running `Command { std: "docker" "inspect" "a332290a9e636f691aa6c313dcfe4b6cd5c9706132cc9568da2679b9564d8701", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a332290a9e636f691aa6c313dcfe4b6cd5c9706132cc9568da2679b9564d8701", kill_on_drop: false }` [INFO] [stdout] a332290a9e636f691aa6c313dcfe4b6cd5c9706132cc9568da2679b9564d8701 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env@sha256:38e1b949b06cde1964af550a6e548bd9b2b2ea170003ae122f8fc0886596cc07" "/opt/rustwide/cargo-home/bin/cargo" "+03a1ea71b075ab964b5278bc6e74cd6c52c36ee0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] fe5681b4b2a858b05c5763fbc4a92bee357315aadf736fa4d1cfe1db2b7ee7f4 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "fe5681b4b2a858b05c5763fbc4a92bee357315aadf736fa4d1cfe1db2b7ee7f4", kill_on_drop: false }` [INFO] [stderr] Compiling log v0.4.11 [INFO] [stderr] Compiling libloading v0.6.2 [INFO] [stderr] Compiling khronos_api v2.2.0 [INFO] [stderr] Compiling syn v0.15.44 [INFO] [stderr] Compiling ppv-lite86 v0.2.8 [INFO] [stderr] Compiling pkg-config v0.3.18 [INFO] [stderr] Compiling remove_dir_all v0.5.3 [INFO] [stderr] Compiling rayon-core v1.7.1 [INFO] [stderr] Compiling token_store v0.1.2 [INFO] [stderr] Compiling adler32 v1.1.0 [INFO] [stderr] Compiling percent-encoding v1.0.1 [INFO] [stderr] Compiling rand_core v0.4.2 [INFO] [stderr] Compiling downcast-rs v1.2.0 [INFO] [stderr] Compiling shader_version v0.3.0 [INFO] [stderr] Compiling stable_deref_trait v1.2.0 [INFO] [stderr] Compiling nix v0.11.1 [INFO] [stderr] Compiling scopeguard v0.3.3 [INFO] [stderr] Compiling piston-texture v0.6.0 [INFO] [stderr] Compiling read_color v1.0.0 [INFO] [stderr] Compiling interpolation v0.1.0 [INFO] [stderr] Compiling piston-shaders_graphics2d v0.3.1 [INFO] [stderr] Compiling memoffset v0.5.5 [INFO] [stderr] Compiling rayon v1.3.1 [INFO] [stderr] Compiling vecmath v0.3.1 [INFO] [stderr] Compiling inflate v0.4.5 [INFO] [stderr] Compiling owning_ref v0.4.1 [INFO] [stderr] Compiling rand_core v0.3.1 [INFO] [stderr] Compiling xml-rs v0.7.0 [INFO] [stderr] Compiling getrandom v0.1.14 [INFO] [stderr] Compiling memmap v0.6.2 [INFO] [stderr] Compiling num_cpus v1.13.0 [INFO] [stderr] Compiling shared_library v0.1.9 [INFO] [stderr] Compiling deflate v0.7.20 [INFO] [stderr] Compiling parking_lot_core v0.3.1 [INFO] [stderr] Compiling rand v0.5.6 [INFO] [stderr] Compiling lock_api v0.1.5 [INFO] [stderr] Compiling crossbeam-queue v0.2.3 [INFO] [stderr] Compiling osmesa-sys v0.1.2 [INFO] [stderr] Compiling rand_core v0.5.1 [INFO] [stderr] Compiling dlib v0.4.2 [INFO] [stderr] Compiling rusttype v0.4.3 [INFO] [stderr] Compiling crossbeam-epoch v0.8.2 [INFO] [stderr] Compiling rand_chacha v0.2.2 [INFO] [stderr] Compiling wayland-sys v0.12.5 [INFO] [stderr] Compiling wayland-sys v0.20.12 [INFO] [stderr] Compiling pistoncore-window v0.32.0 [INFO] [stderr] Compiling x11-dl v2.18.5 [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/graph/mod.rs:71:33 [INFO] [stdout] | [INFO] [stdout] 71 | pub maybe_state: Option>, [INFO] [stdout] | ^^^^^^^^^^ help: use `dyn`: `dyn Any + Send` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/theme.rs:61:20 [INFO] [stdout] | [INFO] [stdout] 61 | pub style: Box, [INFO] [stdout] | ^^^^^^^^^^ help: use `dyn`: `dyn Any + Send` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/theme.rs:77:27 [INFO] [stdout] | [INFO] [stdout] 77 | pub fn new(style: Box) -> WidgetDefault { [INFO] [stdout] | ^^^^^^^^^^ help: use `dyn`: `dyn Any + Send` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `event` is imported redundantly [INFO] [stdout] --> src/ui.rs:382:21 [INFO] [stdout] | [INFO] [stdout] 2 | use event; [INFO] [stdout] | ----- the item `event` is already imported here [INFO] [stdout] ... [INFO] [stdout] 382 | use event::{self, Input}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `ModifierKey` is imported redundantly [INFO] [stdout] --> src/ui.rs:388:17 [INFO] [stdout] | [INFO] [stdout] 383 | use input::{Button, Key, ModifierKey, Motion}; [INFO] [stdout] | ----------- the item `ModifierKey` is already imported here [INFO] [stdout] ... [INFO] [stdout] 388 | use input::keyboard::ModifierKey; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `utils` is imported redundantly [INFO] [stdout] --> src/ui.rs:697:37 [INFO] [stdout] | [INFO] [stdout] 12 | use utils; [INFO] [stdout] | ----- the item `utils` is already imported here [INFO] [stdout] ... [INFO] [stdout] 697 | use utils; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `Widget` is imported redundantly [INFO] [stdout] --> src/ui.rs:1051:62 [INFO] [stdout] | [INFO] [stdout] 13 | use widget::{self, Widget}; [INFO] [stdout] | ------ the item `Widget` is already imported here [INFO] [stdout] ... [INFO] [stdout] 1051 | use {color, Colorable, Borderable, Positionable, Widget}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused label [INFO] [stdout] --> src/widget/number_dialer.rs:246:9 [INFO] [stdout] | [INFO] [stdout] 246 | 'events: for widget_event in ui.widget_input(id).events() { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_labels)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/text.rs:243:37 [INFO] [stdout] | [INFO] [stdout] 243 | Error::IO(ref e) => std::error::Error::description(e), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/text.rs:253:38 [INFO] [stdout] | [INFO] [stdout] 253 | _ => write!(f, "{}", std::error::Error::description(self)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 10 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling wayland-commons v0.20.12 [INFO] [stderr] Compiling pistoncore-event_loop v0.37.0 [INFO] [stderr] Compiling png v0.12.0 [INFO] [stderr] Compiling rand v0.7.3 [INFO] [stderr] Compiling gl_generator v0.9.0 [INFO] [stderr] Compiling wayland-scanner v0.12.5 [INFO] [stderr] Compiling wayland-scanner v0.20.12 [INFO] [stderr] Compiling piston v0.37.0 [INFO] [stderr] Compiling piston2d-graphics v0.26.0 [INFO] [stderr] Compiling crossbeam-deque v0.7.3 [INFO] [stderr] Compiling wayland-client v0.12.5 [INFO] [stderr] Compiling wayland-protocols v0.12.5 [INFO] [stderr] Compiling wayland-client v0.20.12 [INFO] [stderr] Compiling wayland-protocols v0.20.12 [INFO] [stderr] Compiling parking_lot v0.6.4 [INFO] [stderr] Compiling tempfile v3.1.0 [INFO] [stderr] Compiling gfx_gl v0.5.0 [INFO] [stderr] Compiling gl v0.10.0 [INFO] [stderr] Compiling glutin v0.14.0 [INFO] [stderr] Compiling glutin v0.17.0 [INFO] [stderr] Compiling wayland-kbd v0.13.1 [INFO] [stderr] Compiling jpeg-decoder v0.1.20 [INFO] [stderr] Compiling derivative v1.0.4 [INFO] [stderr] Compiling num-derive v0.2.5 [INFO] [stderr] Compiling wayland-window v0.13.3 [INFO] [stderr] Compiling winit v0.12.0 [INFO] [stderr] Compiling smithay-client-toolkit v0.2.6 [INFO] [stderr] Compiling winit v0.16.2 [INFO] [stderr] Compiling image v0.19.0 [INFO] [stderr] Compiling gfx_core v0.8.3 [INFO] [stderr] Compiling pistoncore-glutin_window v0.47.0 [INFO] [stderr] Compiling gfx v0.17.1 [INFO] [stderr] Compiling gfx_device_gl v0.15.5 [INFO] [stderr] Compiling gfx_window_glutin v0.25.0 [INFO] [stderr] Compiling piston-gfx_texture v0.32.0 [INFO] [stderr] Compiling piston2d-gfx_graphics v0.51.0 [INFO] [stderr] Compiling piston_window v0.80.0 [INFO] [stderr] Compiling conrod v0.61.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused `#[macro_use]` import [INFO] [stdout] --> examples/custom_widget.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | #[macro_use] extern crate conrod; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `#[macro_use]` import [INFO] [stdout] --> examples/custom_widget.rs:15:1 [INFO] [stdout] | [INFO] [stdout] 15 | #[macro_use] extern crate conrod_derive; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/graph/mod.rs:71:33 [INFO] [stdout] | [INFO] [stdout] 71 | pub maybe_state: Option>, [INFO] [stdout] | ^^^^^^^^^^ help: use `dyn`: `dyn Any + Send` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/theme.rs:61:20 [INFO] [stdout] | [INFO] [stdout] 61 | pub style: Box, [INFO] [stdout] | ^^^^^^^^^^ help: use `dyn`: `dyn Any + Send` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/theme.rs:77:27 [INFO] [stdout] | [INFO] [stdout] 77 | pub fn new(style: Box) -> WidgetDefault { [INFO] [stdout] | ^^^^^^^^^^ help: use `dyn`: `dyn Any + Send` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `event` is imported redundantly [INFO] [stdout] --> src/ui.rs:382:21 [INFO] [stdout] | [INFO] [stdout] 2 | use event; [INFO] [stdout] | ----- the item `event` is already imported here [INFO] [stdout] ... [INFO] [stdout] 382 | use event::{self, Input}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `ModifierKey` is imported redundantly [INFO] [stdout] --> src/ui.rs:388:17 [INFO] [stdout] | [INFO] [stdout] 383 | use input::{Button, Key, ModifierKey, Motion}; [INFO] [stdout] | ----------- the item `ModifierKey` is already imported here [INFO] [stdout] ... [INFO] [stdout] 388 | use input::keyboard::ModifierKey; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `utils` is imported redundantly [INFO] [stdout] --> src/ui.rs:697:37 [INFO] [stdout] | [INFO] [stdout] 12 | use utils; [INFO] [stdout] | ----- the item `utils` is already imported here [INFO] [stdout] ... [INFO] [stdout] 697 | use utils; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `Widget` is imported redundantly [INFO] [stdout] --> src/ui.rs:1051:62 [INFO] [stdout] | [INFO] [stdout] 13 | use widget::{self, Widget}; [INFO] [stdout] | ------ the item `Widget` is already imported here [INFO] [stdout] ... [INFO] [stdout] 1051 | use {color, Colorable, Borderable, Positionable, Widget}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused label [INFO] [stdout] --> src/widget/number_dialer.rs:246:9 [INFO] [stdout] | [INFO] [stdout] 246 | 'events: for widget_event in ui.widget_input(id).events() { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_labels)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/text.rs:243:37 [INFO] [stdout] | [INFO] [stdout] 243 | Error::IO(ref e) => std::error::Error::description(e), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/text.rs:253:38 [INFO] [stdout] | [INFO] [stdout] 253 | _ => write!(f, "{}", std::error::Error::description(self)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 10 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 1m 59s [INFO] running `Command { std: "docker" "inspect" "fe5681b4b2a858b05c5763fbc4a92bee357315aadf736fa4d1cfe1db2b7ee7f4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fe5681b4b2a858b05c5763fbc4a92bee357315aadf736fa4d1cfe1db2b7ee7f4", kill_on_drop: false }` [INFO] [stdout] fe5681b4b2a858b05c5763fbc4a92bee357315aadf736fa4d1cfe1db2b7ee7f4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env@sha256:38e1b949b06cde1964af550a6e548bd9b2b2ea170003ae122f8fc0886596cc07" "/opt/rustwide/cargo-home/bin/cargo" "+03a1ea71b075ab964b5278bc6e74cd6c52c36ee0" "test" "--frozen", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] d61df47e63fe6184305852993284b9c7af8d7667412c4fdcb9c843b37117ccf1 [INFO] running `Command { std: "docker" "start" "-a" "d61df47e63fe6184305852993284b9c7af8d7667412c4fdcb9c843b37117ccf1", kill_on_drop: false }` [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/graph/mod.rs:71:33 [INFO] [stderr] | [INFO] [stderr] 71 | pub maybe_state: Option>, [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Any + 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/theme.rs:61:20 [INFO] [stderr] | [INFO] [stderr] 61 | pub style: Box, [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Any + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/theme.rs:77:27 [INFO] [stderr] | [INFO] [stderr] 77 | pub fn new(style: Box) -> WidgetDefault { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Any + Send` [INFO] [stderr] [INFO] [stderr] warning: the item `event` is imported redundantly [INFO] [stderr] --> src/ui.rs:382:21 [INFO] [stderr] | [INFO] [stderr] 2 | use event; [INFO] [stderr] | ----- the item `event` is already imported here [INFO] [stderr] ... [INFO] [stderr] 382 | use event::{self, Input}; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: the item `ModifierKey` is imported redundantly [INFO] [stderr] --> src/ui.rs:388:17 [INFO] [stderr] | [INFO] [stderr] 383 | use input::{Button, Key, ModifierKey, Motion}; [INFO] [stderr] | ----------- the item `ModifierKey` is already imported here [INFO] [stderr] ... [INFO] [stderr] 388 | use input::keyboard::ModifierKey; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the item `utils` is imported redundantly [INFO] [stderr] --> src/ui.rs:697:37 [INFO] [stderr] | [INFO] [stderr] 12 | use utils; [INFO] [stderr] | ----- the item `utils` is already imported here [INFO] [stderr] ... [INFO] [stderr] 697 | use utils; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the item `Widget` is imported redundantly [INFO] [stderr] --> src/ui.rs:1051:62 [INFO] [stderr] | [INFO] [stderr] 13 | use widget::{self, Widget}; [INFO] [stderr] | ------ the item `Widget` is already imported here [INFO] [stderr] ... [INFO] [stderr] 1051 | use {color, Colorable, Borderable, Positionable, Widget}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused label [INFO] [stderr] --> src/widget/number_dialer.rs:246:9 [INFO] [stderr] | [INFO] [stderr] 246 | 'events: for widget_event in ui.widget_input(id).events() { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_labels)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stderr] --> src/text.rs:243:37 [INFO] [stderr] | [INFO] [stderr] 243 | Error::IO(ref e) => std::error::Error::description(e), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stderr] --> src/text.rs:253:38 [INFO] [stderr] | [INFO] [stderr] 253 | _ => write!(f, "{}", std::error::Error::description(self)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: 10 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/graph/mod.rs:71:33 [INFO] [stderr] | [INFO] [stderr] 71 | pub maybe_state: Option>, [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Any + 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/theme.rs:61:20 [INFO] [stderr] | [INFO] [stderr] 61 | pub style: Box, [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Any + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/theme.rs:77:27 [INFO] [stderr] | [INFO] [stderr] 77 | pub fn new(style: Box) -> WidgetDefault { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Any + Send` [INFO] [stderr] [INFO] [stderr] warning: the item `event` is imported redundantly [INFO] [stderr] --> src/ui.rs:382:21 [INFO] [stderr] | [INFO] [stderr] 2 | use event; [INFO] [stderr] | ----- the item `event` is already imported here [INFO] [stderr] ... [INFO] [stderr] 382 | use event::{self, Input}; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: the item `ModifierKey` is imported redundantly [INFO] [stderr] --> src/ui.rs:388:17 [INFO] [stderr] | [INFO] [stderr] 383 | use input::{Button, Key, ModifierKey, Motion}; [INFO] [stderr] | ----------- the item `ModifierKey` is already imported here [INFO] [stderr] ... [INFO] [stderr] 388 | use input::keyboard::ModifierKey; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> examples/custom_widget.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | #[macro_use] extern crate conrod; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> examples/custom_widget.rs:15:1 [INFO] [stderr] | [INFO] [stderr] 15 | #[macro_use] extern crate conrod_derive; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: 2 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: the item `utils` is imported redundantly [INFO] [stderr] --> src/ui.rs:697:37 [INFO] [stderr] | [INFO] [stderr] 12 | use utils; [INFO] [stderr] | ----- the item `utils` is already imported here [INFO] [stderr] ... [INFO] [stderr] 697 | use utils; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the item `Widget` is imported redundantly [INFO] [stderr] --> src/ui.rs:1051:62 [INFO] [stderr] | [INFO] [stderr] 13 | use widget::{self, Widget}; [INFO] [stderr] | ------ the item `Widget` is already imported here [INFO] [stderr] ... [INFO] [stderr] 1051 | use {color, Colorable, Borderable, Positionable, Widget}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused label [INFO] [stderr] --> src/widget/number_dialer.rs:246:9 [INFO] [stderr] | [INFO] [stderr] 246 | 'events: for widget_event in ui.widget_input(id).events() { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_labels)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stderr] --> src/text.rs:243:37 [INFO] [stderr] | [INFO] [stderr] 243 | Error::IO(ref e) => std::error::Error::description(e), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stderr] --> src/text.rs:253:38 [INFO] [stderr] | [INFO] [stderr] 253 | _ => write!(f, "{}", std::error::Error::description(self)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: 10 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.28s [INFO] [stderr] Running /opt/rustwide/target/debug/deps/conrod-32b03801d2377ce4 [INFO] [stdout] [INFO] [stdout] running 17 tests [INFO] [stdout] test color::plain_contrast_should_weight_colors ... ok [INFO] [stdout] test input::state::button_down_should_store_the_point ... ok [INFO] [stdout] test tests::global_input::resetting_input_should_clear_out_events ... ok [INFO] [stdout] test tests::widget_input::mouse_should_return_none_if_another_widget_is_capturing_mouse ... ok [INFO] [stdout] test tests::widget_input::widget_input_should_provide_any_mouse_events_over_the_widgets_area_if_nothing_is_capturing_mouse ... ok [INFO] [stdout] test utils::test_map_range ... ok [INFO] [stdout] test input::state::input_state_should_be_made_relative_to_a_given_point ... ok [INFO] [stdout] test tests::global_input::no_events_should_be_returned_after_reset_is_called ... ok [INFO] [stdout] test tests::ui::ui_should_push_input_events_to_aggregator ... ok [INFO] [stdout] test tests::ui::ui_should_reset_global_input_after_widget_are_set ... ok [INFO] [stdout] test tests::global_input::resetting_input_should_set_starting_state_to_current_state ... ok [INFO] [stdout] test tests::global_input::events_should_return_all_inputs_in_order ... ok [INFO] [stdout] test input::state::pressed_next_should_return_first_pressed_button ... ok [INFO] [stdout] test input::state::pressed_next_returns_none_if_no_buttons_are_pressed ... ok [INFO] [stdout] test tests::ui::high_level_scroll_event_should_be_created_from_a_raw_mouse_scroll ... ok [INFO] [stdout] test widget::id::test_invocation_variations ... ok [INFO] [stdout] test widget::id::test ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] Doc-tests conrod [INFO] [stdout] [INFO] [stdout] running 45 tests [INFO] [stdout] test src/guide/chapter_1.rs - guide::chapter_1 (line 190) ... ignored [INFO] [stdout] test src/guide/chapter_1.rs - guide::chapter_1 (line 207) ... ignored [INFO] [stdout] test src/guide/chapter_1.rs - guide::chapter_1 (line 225) ... ignored [INFO] [stdout] test src/guide/chapter_1.rs - guide::chapter_1 (line 242) ... ignored [INFO] [stdout] test src/image.rs - image::Map (line 22) ... ignored [INFO] [stdout] test src/position/range.rs - position::range::Range::align_end_of (line 500) ... ok [INFO] [stdout] test src/position/range.rs - position::range::Range::align_after (line 550) ... ok [INFO] [stdout] test src/position/range.rs - position::range::Range::is_over (line 293) ... ok [INFO] [stdout] test src/position/range.rs - position::range::Range::align_middle_of (line 526) ... ok [INFO] [stdout] test src/position/range.rs - position::range::Range::has_same_direction (line 451) ... ok [INFO] [stdout] test src/position/range.rs - position::range::Range::len (line 84) ... ok [INFO] [stdout] test src/position/range.rs - position::range::Range::from_pos_and_len (line 51) ... ok [INFO] [stdout] test src/position/range.rs - position::range::Range::align_start_of (line 471) ... ok [INFO] [stdout] test src/position/range.rs - position::range::Range::floor (line 326) ... ok [INFO] [stdout] test src/position/range.rs - position::range::Range::closest_edge (line 615) ... ok [INFO] [stdout] test src/position/range.rs - position::range::Range::direction (line 174) ... ok [INFO] [stdout] test src/position/range.rs - position::range::Range::align_before (line 578) ... ok [INFO] [stdout] test src/position/range.rs - position::range::Range::clamp_value (line 398) ... ok [INFO] [stdout] test src/position/range.rs - position::range::Range::invert (line 116) ... ok [INFO] [stdout] test src/position/range.rs - position::range::Range::new (line 35) ... ok [INFO] [stdout] test src/position/range.rs - position::range::Range::magnitude (line 69) ... ok [INFO] [stdout] test src/position/range.rs - position::range::Range::max_directed (line 273) ... ok [INFO] [stdout] test src/position/range.rs - position::range::Range::max (line 210) ... ok [INFO] [stdout] test src/position/range.rs - position::range::Range::pad (line 370) ... ok [INFO] [stdout] test src/position/range.rs - position::range::Range::map_value_to (line 132) ... ok [INFO] [stdout] test src/widget/id.rs - widget_ids (line 147) ... ignored [INFO] [stdout] test src/widget/mod.rs - widget::Common (line 456) ... ignored [INFO] [stdout] test src/position/range.rs - position::range::Range::pad_ends (line 384) ... ok [INFO] [stdout] test src/widget/primitive/shape/triangles.rs - widget::primitive::shape::triangles::from_quad (line 371) ... ignored [INFO] [stdout] test src/widget/primitive/shape/triangles.rs - widget::primitive::shape::triangles::from_quad (line 385) ... ignored [INFO] [stdout] test src/widget/primitive/shape/triangles.rs - widget::primitive::shape::triangles::from_quad (line 391) ... ignored [INFO] [stdout] test src/widget/builder.rs - builder_methods (line 118) ... ok [INFO] [stdout] test src/widget/id.rs - widget_ids (line 127) ... ok [INFO] [stdout] test src/position/range.rs - position::range::Range::pad_end (line 355) ... ok [INFO] [stdout] test src/position/range.rs - position::range::Range::middle (line 99) ... ok [INFO] [stdout] test src/widget/id.rs - widget_ids (line 112) ... ok [INFO] [stdout] test src/position/range.rs - position::range::Range::overlap (line 238) ... ok [INFO] [stdout] test src/widget/mod.rs - widget::Widget::Style (line 560) ... ok [INFO] [stdout] test src/position/range.rs - position::range::Range::shift (line 159) ... ok [INFO] [stdout] test src/position/range.rs - position::range::Range::pad_start (line 340) ... ok [INFO] [stdout] test src/position/range.rs - position::range::Range::stretch_to_value (line 415) ... ok [INFO] [stdout] test src/position/range.rs - position::range::Range::round (line 312) ... ok [INFO] [stdout] test src/position/range.rs - position::range::Range::undirected (line 193) ... ok [INFO] [stdout] test src/widget/builder.rs - builder_methods (line 66) ... ok [INFO] [stdout] test src/widget/primitive/shape/triangles.rs - widget::primitive::shape::triangles::from_quad (line 397) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 35 passed; 0 failed; 10 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "d61df47e63fe6184305852993284b9c7af8d7667412c4fdcb9c843b37117ccf1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d61df47e63fe6184305852993284b9c7af8d7667412c4fdcb9c843b37117ccf1", kill_on_drop: false }` [INFO] [stdout] d61df47e63fe6184305852993284b9c7af8d7667412c4fdcb9c843b37117ccf1