[INFO] crate servo-glutin 0.15.0 is already in cache [INFO] testing servo-glutin-0.15.0 against 1.38.0 for beta-1.39-1 [INFO] extracting crate servo-glutin 0.15.0 into work/builds/worker-3/source [INFO] validating manifest of crates.io crate servo-glutin 0.15.0 on toolchain 1.38.0 [INFO] running `"/big/crater/work/cargo-home/bin/cargo" "+1.38.0" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started tweaking crates.io crate servo-glutin 0.15.0 [INFO] finished tweaking crates.io crate servo-glutin 0.15.0 [INFO] tweaked toml for crates.io crate servo-glutin 0.15.0 written to work/builds/worker-3/source/Cargo.toml [INFO] running `"/big/crater/work/cargo-home/bin/cargo" "+1.38.0" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/big/crater/work/cargo-home/bin/cargo" "+1.38.0" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"docker" "create" "-v" "/big/crater/work/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/big/crater/work/builds/worker-3/source:/opt/rustwide/workdir:ro,Z" "-v" "/big/crater/work/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/big/crater/work/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-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" "/opt/rustwide/cargo-home/bin/cargo" "+1.38.0" "build" "--frozen"` [INFO] [stdout] e88e7f9d57eba390f6532bb547f6a7e469953d607e0fae3e000d7165e6dc80b2 [INFO] running `"docker" "start" "-a" "e88e7f9d57eba390f6532bb547f6a7e469953d607e0fae3e000d7165e6dc80b2"` [INFO] [stderr] Compiling inflate v0.3.4 [INFO] [stderr] Compiling gl_generator v0.9.0 [INFO] [stderr] Compiling rayon-core v1.6.0 [INFO] [stderr] Compiling png v0.11.0 [INFO] [stderr] Compiling rayon v1.2.0 [INFO] [stderr] Compiling servo-glutin v0.15.0 (/opt/rustwide/workdir) [INFO] [stderr] Compiling jpeg-decoder v0.1.16 [INFO] [stderr] Compiling image v0.18.0 [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/api/android/mod.rs:123:17 [INFO] [stderr] | [INFO] [stderr] 123 | /// The activity needs to be redrawn. [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 124 | Some(Event::Refresh) [INFO] [stderr] | -------------------- rustdoc does not generate documentation for expressions [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/api/win32/callback.rs:19:1 [INFO] [stderr] | [INFO] [stderr] 19 | / /// There's no parameters passed to the callback function, so it needs to get [INFO] [stderr] 20 | | /// its context (the HWND, the Sender for events, etc.) stashed in [INFO] [stderr] 21 | | /// a thread-local variable. [INFO] [stderr] | |____________________________^ [INFO] [stderr] 22 | thread_local!(pub static CONTEXT_STASH: RefCell> = RefCell::new(None)); [INFO] [stderr] | ----------------------------------------------------------------------------------------------- rustdoc does not generate documentation for macro expansions [INFO] [stderr] | [INFO] [stderr] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/api/x11/window.rs:938:17 [INFO] [stderr] | [INFO] [stderr] 938 | /// Resize cursors [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 939 | MouseCursor::EResize => load("right_side"), [INFO] [stderr] | ------------------------------------------ rustdoc does not generate documentation for match arms [INFO] [stderr] [INFO] [stderr] warning: attribute must be of the form `#[link(name = "...", /*opt*/ kind = "dylib|static|...", [INFO] [stderr] /*opt*/ cfg = "...")]` [INFO] [stderr] --> src/api/dlopen.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | #[link="dl"] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(ill_formed_attribute_input)]` on by default [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #57571 [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cmp::Ordering` [INFO] [stderr] --> src/lib.rs:73:5 [INFO] [stderr] | [INFO] [stderr] 73 | use std::cmp::Ordering; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> /opt/rustwide/target/debug/build/servo-glutin-9c4ef883dd2ef5f1/out/egl_bindings.rs:379:47 [INFO] [stderr] | [INFO] [stderr] 379 | fn do_metaloadfn(loadfn: &mut FnMut(&'static str) -> *const __gl_imports::raw::c_void, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(&'static str) -> *const __gl_imports::raw::c_void` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `slice` [INFO] [stderr] --> src/api/glx/mod.rs:18:21 [INFO] [stderr] | [INFO] [stderr] 18 | use std::{mem, ptr, slice}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `platform::Window as PlatformWindow` [INFO] [stderr] --> src/api/glx/mod.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | use platform::Window as PlatformWindow; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the item `CString` is imported redundantly [INFO] [stderr] --> src/api/glx/mod.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 17 | use std::ffi::{CStr, CString}; [INFO] [stderr] | ------- the item `CString` is already imported here [INFO] [stderr] ... [INFO] [stderr] 34 | use std::ffi::CString; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> /opt/rustwide/target/debug/build/servo-glutin-9c4ef883dd2ef5f1/out/glx_bindings.rs:431:47 [INFO] [stderr] | [INFO] [stderr] 431 | fn do_metaloadfn(loadfn: &mut FnMut(&'static str) -> *const __gl_imports::raw::c_void, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(&'static str) -> *const __gl_imports::raw::c_void` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> /opt/rustwide/target/debug/build/servo-glutin-9c4ef883dd2ef5f1/out/glx_extra_bindings.rs:457:47 [INFO] [stderr] | [INFO] [stderr] 457 | fn do_metaloadfn(loadfn: &mut FnMut(&'static str) -> *const __gl_imports::raw::c_void, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(&'static str) -> *const __gl_imports::raw::c_void` [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/api/x11/window.rs:244:50 [INFO] [stderr] | [INFO] [stderr] 244 | ffi::XI_DeviceChanged...ffi::XI_LASTEVENT => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: the item `mem` is imported redundantly [INFO] [stderr] --> src/api/x11/window.rs:275:13 [INFO] [stderr] | [INFO] [stderr] 6 | use std::{mem, ptr, cmp}; [INFO] [stderr] | --- the item `mem` is already imported here [INFO] [stderr] ... [INFO] [stderr] 275 | use std::mem; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the item `image` is imported redundantly [INFO] [stderr] --> src/api/x11/window.rs:725:13 [INFO] [stderr] | [INFO] [stderr] 725 | use image; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/lib.rs:63:1 [INFO] [stderr] | [INFO] [stderr] 63 | extern crate image; [INFO] [stderr] | ------------------- the item `image` is already imported here [INFO] [stderr] [INFO] [stderr] warning: the item `mem` is imported redundantly [INFO] [stderr] --> src/api/x11/window.rs:812:17 [INFO] [stderr] | [INFO] [stderr] 6 | use std::{mem, ptr, cmp}; [INFO] [stderr] | --- the item `mem` is already imported here [INFO] [stderr] ... [INFO] [stderr] 812 | use std::mem; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the item `mem` is imported redundantly [INFO] [stderr] --> src/api/x11/window.rs:995:13 [INFO] [stderr] | [INFO] [stderr] 6 | use std::{mem, ptr, cmp}; [INFO] [stderr] | --- the item `mem` is already imported here [INFO] [stderr] ... [INFO] [stderr] 995 | use std::mem; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/api/x11/xdisplay.rs:171:32 [INFO] [stderr] | [INFO] [stderr] 171 | fn cause(&self) -> Option<&Error> { [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stderr] [INFO] [stderr] warning: unused import: `Event` [INFO] [stderr] --> src/platform/linux/api_dispatch.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use Event; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:161:28 [INFO] [stderr] | [INFO] [stderr] 161 | NoBackendAvailable(Box), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:194:32 [INFO] [stderr] | [INFO] [stderr] 194 | fn cause(&self) -> Option<&std::error::Error> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error` [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint32_t': Use u32 instead. [INFO] [stderr] --> src/api/caca/ffi.rs:19:58 [INFO] [stderr] | [INFO] [stderr] 19 | pitch: libc::c_int, rmask: libc::uint32_t, gmask: libc::uint32_t, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint32_t': Use u32 instead. [INFO] [stderr] --> src/api/caca/ffi.rs:19:81 [INFO] [stderr] | [INFO] [stderr] 19 | pitch: libc::c_int, rmask: libc::uint32_t, gmask: libc::uint32_t, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint32_t': Use u32 instead. [INFO] [stderr] --> src/api/caca/ffi.rs:20:38 [INFO] [stderr] | [INFO] [stderr] 20 | bmask: libc::uint32_t, amask: libc::uint32_t) -> *mut caca_dither_t, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint32_t': Use u32 instead. [INFO] [stderr] --> src/api/caca/ffi.rs:20:61 [INFO] [stderr] | [INFO] [stderr] 20 | bmask: libc::uint32_t, amask: libc::uint32_t) -> *mut caca_dither_t, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::sync::ONCE_INIT': the `new` function is now preferred [INFO] [stderr] --> src/api/caca/ffi.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | / shared_library!(LibCaca, "libcaca.so.0", [INFO] [stderr] 10 | | pub fn caca_create_display(cv: *mut caca_canvas_t) -> *mut caca_display_t, [INFO] [stderr] 11 | | pub fn caca_free_display(dp: *mut caca_display_t) -> libc::c_int, [INFO] [stderr] 12 | | pub fn caca_get_canvas(dp: *mut caca_display_t) -> *mut caca_canvas_t, [INFO] [stderr] ... | [INFO] [stderr] 22 | | pub fn caca_get_canvas_height(cv: *mut caca_canvas_t) -> libc::c_int, [INFO] [stderr] 23 | | ); [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/api/caca/ffi.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | / shared_library!(LibCaca, "libcaca.so.0", [INFO] [stderr] 10 | | pub fn caca_create_display(cv: *mut caca_canvas_t) -> *mut caca_display_t, [INFO] [stderr] 11 | | pub fn caca_free_display(dp: *mut caca_display_t) -> libc::c_int, [INFO] [stderr] 12 | | pub fn caca_get_canvas(dp: *mut caca_display_t) -> *mut caca_canvas_t, [INFO] [stderr] ... | [INFO] [stderr] 22 | | pub fn caca_get_canvas_height(cv: *mut caca_canvas_t) -> libc::c_int, [INFO] [stderr] 23 | | ); [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 'libc::uint32_t': Use u32 instead. [INFO] [stderr] --> src/api/caca/ffi.rs:19:58 [INFO] [stderr] | [INFO] [stderr] 19 | pitch: libc::c_int, rmask: libc::uint32_t, gmask: libc::uint32_t, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint64_t': Use u64 instead. [INFO] [stderr] --> src/api/egl/ffi.rs:24:29 [INFO] [stderr] | [INFO] [stderr] 24 | pub type khronos_uint64_t = libc::uint64_t; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::int32_t': Use i32 instead. [INFO] [stderr] --> src/api/egl/ffi.rs:26:19 [INFO] [stderr] | [INFO] [stderr] 26 | pub type EGLint = libc::int32_t; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/api/x11/window.rs:918:17 [INFO] [stderr] | [INFO] [stderr] 918 | let mut xcursor = match cursor { [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `config_id` [INFO] [stderr] --> src/api/egl/mod.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | config_id: ffi::egl::types::EGLConfig [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 19.29s [INFO] running `"docker" "inspect" "e88e7f9d57eba390f6532bb547f6a7e469953d607e0fae3e000d7165e6dc80b2"` [INFO] running `"docker" "rm" "-f" "e88e7f9d57eba390f6532bb547f6a7e469953d607e0fae3e000d7165e6dc80b2"` [INFO] [stdout] e88e7f9d57eba390f6532bb547f6a7e469953d607e0fae3e000d7165e6dc80b2 [INFO] running `"docker" "create" "-v" "/big/crater/work/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/big/crater/work/builds/worker-3/source:/opt/rustwide/workdir:ro,Z" "-v" "/big/crater/work/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/big/crater/work/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-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" "/opt/rustwide/cargo-home/bin/cargo" "+1.38.0" "test" "--frozen" "--no-run"` [INFO] [stdout] 8f78bbc912b5890675d3232e27640dc49b239b146a3f8c74481c0e6980f91518 [INFO] running `"docker" "start" "-a" "8f78bbc912b5890675d3232e27640dc49b239b146a3f8c74481c0e6980f91518"` [INFO] [stderr] Compiling servo-glutin v0.15.0 (/opt/rustwide/workdir) [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/api/android/mod.rs:123:17 [INFO] [stderr] | [INFO] [stderr] 123 | /// The activity needs to be redrawn. [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 124 | Some(Event::Refresh) [INFO] [stderr] | -------------------- rustdoc does not generate documentation for expressions [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/api/win32/callback.rs:19:1 [INFO] [stderr] | [INFO] [stderr] 19 | / /// There's no parameters passed to the callback function, so it needs to get [INFO] [stderr] 20 | | /// its context (the HWND, the Sender for events, etc.) stashed in [INFO] [stderr] 21 | | /// a thread-local variable. [INFO] [stderr] | |____________________________^ [INFO] [stderr] 22 | thread_local!(pub static CONTEXT_STASH: RefCell> = RefCell::new(None)); [INFO] [stderr] | ----------------------------------------------------------------------------------------------- rustdoc does not generate documentation for macro expansions [INFO] [stderr] | [INFO] [stderr] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/api/x11/window.rs:938:17 [INFO] [stderr] | [INFO] [stderr] 938 | /// Resize cursors [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 939 | MouseCursor::EResize => load("right_side"), [INFO] [stderr] | ------------------------------------------ rustdoc does not generate documentation for match arms [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> /opt/rustwide/target/debug/build/servo-glutin-9c4ef883dd2ef5f1/out/test_gl_bindings.rs:1205:47 [INFO] [stderr] | [INFO] [stderr] 1205 | fn do_metaloadfn(loadfn: &mut FnMut(&'static str) -> *const __gl_imports::raw::c_void, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(&'static str) -> *const __gl_imports::raw::c_void` [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] --> /opt/rustwide/target/debug/build/servo-glutin-9c4ef883dd2ef5f1/out/test_gl_bindings.rs:1205:47 [INFO] [stderr] | [INFO] [stderr] 1205 | fn do_metaloadfn(loadfn: &mut FnMut(&'static str) -> *const __gl_imports::raw::c_void, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(&'static str) -> *const __gl_imports::raw::c_void` [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] --> /opt/rustwide/target/debug/build/servo-glutin-9c4ef883dd2ef5f1/out/test_gl_bindings.rs:1205:47 [INFO] [stderr] | [INFO] [stderr] 1205 | fn do_metaloadfn(loadfn: &mut FnMut(&'static str) -> *const __gl_imports::raw::c_void, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(&'static str) -> *const __gl_imports::raw::c_void` [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] --> /opt/rustwide/target/debug/build/servo-glutin-9c4ef883dd2ef5f1/out/test_gl_bindings.rs:1205:47 [INFO] [stderr] | [INFO] [stderr] 1205 | fn do_metaloadfn(loadfn: &mut FnMut(&'static str) -> *const __gl_imports::raw::c_void, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(&'static str) -> *const __gl_imports::raw::c_void` [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] --> /opt/rustwide/target/debug/build/servo-glutin-9c4ef883dd2ef5f1/out/test_gl_bindings.rs:1205:47 [INFO] [stderr] | [INFO] [stderr] 1205 | fn do_metaloadfn(loadfn: &mut FnMut(&'static str) -> *const __gl_imports::raw::c_void, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(&'static str) -> *const __gl_imports::raw::c_void` [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] --> /opt/rustwide/target/debug/build/servo-glutin-9c4ef883dd2ef5f1/out/test_gl_bindings.rs:1205:47 [INFO] [stderr] | [INFO] [stderr] 1205 | fn do_metaloadfn(loadfn: &mut FnMut(&'static str) -> *const __gl_imports::raw::c_void, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(&'static str) -> *const __gl_imports::raw::c_void` [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] --> /opt/rustwide/target/debug/build/servo-glutin-9c4ef883dd2ef5f1/out/test_gl_bindings.rs:1205:47 [INFO] [stderr] | [INFO] [stderr] 1205 | fn do_metaloadfn(loadfn: &mut FnMut(&'static str) -> *const __gl_imports::raw::c_void, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(&'static str) -> *const __gl_imports::raw::c_void` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `glutin::*` [INFO] [stderr] --> tests/headless.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use glutin::*; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ptr` [INFO] [stderr] --> tests/headless.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::ptr; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> /opt/rustwide/target/debug/build/servo-glutin-9c4ef883dd2ef5f1/out/test_gl_bindings.rs:1205:47 [INFO] [stderr] | [INFO] [stderr] 1205 | fn do_metaloadfn(loadfn: &mut FnMut(&'static str) -> *const __gl_imports::raw::c_void, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(&'static str) -> *const __gl_imports::raw::c_void` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `gl::types::*` [INFO] [stderr] --> tests/headless.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use gl::types::*; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: attribute must be of the form `#[link(name = "...", /*opt*/ kind = "dylib|static|...", [INFO] [stderr] /*opt*/ cfg = "...")]` [INFO] [stderr] --> src/api/dlopen.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | #[link="dl"] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(ill_formed_attribute_input)]` on by default [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #57571 [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cmp::Ordering` [INFO] [stderr] --> src/lib.rs:73:5 [INFO] [stderr] | [INFO] [stderr] 73 | use std::cmp::Ordering; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> /opt/rustwide/target/debug/build/servo-glutin-9c4ef883dd2ef5f1/out/egl_bindings.rs:379:47 [INFO] [stderr] | [INFO] [stderr] 379 | fn do_metaloadfn(loadfn: &mut FnMut(&'static str) -> *const __gl_imports::raw::c_void, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(&'static str) -> *const __gl_imports::raw::c_void` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `slice` [INFO] [stderr] --> src/api/glx/mod.rs:18:21 [INFO] [stderr] | [INFO] [stderr] 18 | use std::{mem, ptr, slice}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `platform::Window as PlatformWindow` [INFO] [stderr] --> src/api/glx/mod.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | use platform::Window as PlatformWindow; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the item `CString` is imported redundantly [INFO] [stderr] --> src/api/glx/mod.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 17 | use std::ffi::{CStr, CString}; [INFO] [stderr] | ------- the item `CString` is already imported here [INFO] [stderr] ... [INFO] [stderr] 34 | use std::ffi::CString; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> /opt/rustwide/target/debug/build/servo-glutin-9c4ef883dd2ef5f1/out/glx_bindings.rs:431:47 [INFO] [stderr] | [INFO] [stderr] 431 | fn do_metaloadfn(loadfn: &mut FnMut(&'static str) -> *const __gl_imports::raw::c_void, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(&'static str) -> *const __gl_imports::raw::c_void` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> /opt/rustwide/target/debug/build/servo-glutin-9c4ef883dd2ef5f1/out/glx_extra_bindings.rs:457:47 [INFO] [stderr] | [INFO] [stderr] 457 | fn do_metaloadfn(loadfn: &mut FnMut(&'static str) -> *const __gl_imports::raw::c_void, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(&'static str) -> *const __gl_imports::raw::c_void` [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/api/x11/window.rs:244:50 [INFO] [stderr] | [INFO] [stderr] 244 | ffi::XI_DeviceChanged...ffi::XI_LASTEVENT => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: the item `mem` is imported redundantly [INFO] [stderr] --> src/api/x11/window.rs:275:13 [INFO] [stderr] | [INFO] [stderr] 6 | use std::{mem, ptr, cmp}; [INFO] [stderr] | --- the item `mem` is already imported here [INFO] [stderr] ... [INFO] [stderr] 275 | use std::mem; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the item `image` is imported redundantly [INFO] [stderr] --> src/api/x11/window.rs:725:13 [INFO] [stderr] | [INFO] [stderr] 725 | use image; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/lib.rs:63:1 [INFO] [stderr] | [INFO] [stderr] 63 | extern crate image; [INFO] [stderr] | ------------------- the item `image` is already imported here [INFO] [stderr] [INFO] [stderr] warning: the item `mem` is imported redundantly [INFO] [stderr] --> src/api/x11/window.rs:812:17 [INFO] [stderr] | [INFO] [stderr] 6 | use std::{mem, ptr, cmp}; [INFO] [stderr] | --- the item `mem` is already imported here [INFO] [stderr] ... [INFO] [stderr] 812 | use std::mem; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the item `mem` is imported redundantly [INFO] [stderr] --> src/api/x11/window.rs:995:13 [INFO] [stderr] | [INFO] [stderr] 6 | use std::{mem, ptr, cmp}; [INFO] [stderr] | --- the item `mem` is already imported here [INFO] [stderr] ... [INFO] [stderr] 995 | use std::mem; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/api/x11/xdisplay.rs:171:32 [INFO] [stderr] | [INFO] [stderr] 171 | fn cause(&self) -> Option<&Error> { [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stderr] [INFO] [stderr] warning: unused import: `Event` [INFO] [stderr] --> src/platform/linux/api_dispatch.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use Event; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:161:28 [INFO] [stderr] | [INFO] [stderr] 161 | NoBackendAvailable(Box), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:194:32 [INFO] [stderr] | [INFO] [stderr] 194 | fn cause(&self) -> Option<&std::error::Error> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error` [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint32_t': Use u32 instead. [INFO] [stderr] --> src/api/caca/ffi.rs:19:58 [INFO] [stderr] | [INFO] [stderr] 19 | pitch: libc::c_int, rmask: libc::uint32_t, gmask: libc::uint32_t, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint32_t': Use u32 instead. [INFO] [stderr] --> src/api/caca/ffi.rs:19:81 [INFO] [stderr] | [INFO] [stderr] 19 | pitch: libc::c_int, rmask: libc::uint32_t, gmask: libc::uint32_t, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint32_t': Use u32 instead. [INFO] [stderr] --> src/api/caca/ffi.rs:20:38 [INFO] [stderr] | [INFO] [stderr] 20 | bmask: libc::uint32_t, amask: libc::uint32_t) -> *mut caca_dither_t, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint32_t': Use u32 instead. [INFO] [stderr] --> src/api/caca/ffi.rs:20:61 [INFO] [stderr] | [INFO] [stderr] 20 | bmask: libc::uint32_t, amask: libc::uint32_t) -> *mut caca_dither_t, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::sync::ONCE_INIT': the `new` function is now preferred [INFO] [stderr] --> src/api/caca/ffi.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | / shared_library!(LibCaca, "libcaca.so.0", [INFO] [stderr] 10 | | pub fn caca_create_display(cv: *mut caca_canvas_t) -> *mut caca_display_t, [INFO] [stderr] 11 | | pub fn caca_free_display(dp: *mut caca_display_t) -> libc::c_int, [INFO] [stderr] 12 | | pub fn caca_get_canvas(dp: *mut caca_display_t) -> *mut caca_canvas_t, [INFO] [stderr] ... | [INFO] [stderr] 22 | | pub fn caca_get_canvas_height(cv: *mut caca_canvas_t) -> libc::c_int, [INFO] [stderr] 23 | | ); [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/api/caca/ffi.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | / shared_library!(LibCaca, "libcaca.so.0", [INFO] [stderr] 10 | | pub fn caca_create_display(cv: *mut caca_canvas_t) -> *mut caca_display_t, [INFO] [stderr] 11 | | pub fn caca_free_display(dp: *mut caca_display_t) -> libc::c_int, [INFO] [stderr] 12 | | pub fn caca_get_canvas(dp: *mut caca_display_t) -> *mut caca_canvas_t, [INFO] [stderr] ... | [INFO] [stderr] 22 | | pub fn caca_get_canvas_height(cv: *mut caca_canvas_t) -> libc::c_int, [INFO] [stderr] 23 | | ); [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 'libc::uint32_t': Use u32 instead. [INFO] [stderr] --> src/api/caca/ffi.rs:19:58 [INFO] [stderr] | [INFO] [stderr] 19 | pitch: libc::c_int, rmask: libc::uint32_t, gmask: libc::uint32_t, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint64_t': Use u64 instead. [INFO] [stderr] --> src/api/egl/ffi.rs:24:29 [INFO] [stderr] | [INFO] [stderr] 24 | pub type khronos_uint64_t = libc::uint64_t; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::int32_t': Use i32 instead. [INFO] [stderr] --> src/api/egl/ffi.rs:26:19 [INFO] [stderr] | [INFO] [stderr] 26 | pub type EGLint = libc::int32_t; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> examples/icon.rs:15:9 [INFO] [stderr] | [INFO] [stderr] 15 | let mut window = glutin::WindowBuilder::new() [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/api/x11/window.rs:918:17 [INFO] [stderr] | [INFO] [stderr] 918 | let mut xcursor = match cursor { [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `config_id` [INFO] [stderr] --> src/api/egl/mod.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | config_id: ffi::egl::types::EGLConfig [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 7.33s [INFO] running `"docker" "inspect" "8f78bbc912b5890675d3232e27640dc49b239b146a3f8c74481c0e6980f91518"` [INFO] running `"docker" "rm" "-f" "8f78bbc912b5890675d3232e27640dc49b239b146a3f8c74481c0e6980f91518"` [INFO] [stdout] 8f78bbc912b5890675d3232e27640dc49b239b146a3f8c74481c0e6980f91518 [INFO] running `"docker" "create" "-v" "/big/crater/work/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/big/crater/work/builds/worker-3/source:/opt/rustwide/workdir:ro,Z" "-v" "/big/crater/work/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/big/crater/work/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-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" "/opt/rustwide/cargo-home/bin/cargo" "+1.38.0" "test" "--frozen"` [INFO] [stdout] 5458f4d2eaa49bd01c4f50a6116c05a5775523b8c40c81816f6ce00ee5a419cb [INFO] running `"docker" "start" "-a" "5458f4d2eaa49bd01c4f50a6116c05a5775523b8c40c81816f6ce00ee5a419cb"` [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.36s [INFO] [stderr] Running /opt/rustwide/target/debug/deps/glutin-c234fb2becb570c8 [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 [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/headless-64e368b1a3965449 [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 [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/window_proxy_send-3745b6edecdfdd4f [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 [INFO] [stdout] [INFO] [stderr] Doc-tests glutin [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] test /opt/rustwide/target/debug/build/servo-glutin-9c4ef883dd2ef5f1/out/egl_bindings.rs - api::egl::ffi::egl::Egl::load_with (line 373) ... ignored [INFO] [stdout] test /opt/rustwide/target/debug/build/servo-glutin-9c4ef883dd2ef5f1/out/glx_bindings.rs - api::x11::ffi::glx::Glx::load_with (line 425) ... ignored [INFO] [stdout] test /opt/rustwide/target/debug/build/servo-glutin-9c4ef883dd2ef5f1/out/glx_extra_bindings.rs - api::x11::ffi::glx_extra::Glx::load_with (line 451) ... ignored [INFO] [stdout] test src/lib.rs - Window (line 88) ... ignored [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 4 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] running `"docker" "inspect" "5458f4d2eaa49bd01c4f50a6116c05a5775523b8c40c81816f6ce00ee5a419cb"` [INFO] running `"docker" "rm" "-f" "5458f4d2eaa49bd01c4f50a6116c05a5775523b8c40c81816f6ce00ee5a419cb"` [INFO] [stdout] 5458f4d2eaa49bd01c4f50a6116c05a5775523b8c40c81816f6ce00ee5a419cb