[INFO] crate ledcat 0.1.5 is already in cache [INFO] testing ledcat-0.1.5 against try#41997647ba6a77908f6ef64401414feb00bccf16 for pr-71274 [INFO] extracting crate ledcat 0.1.5 into /workspace/builds/worker-2/source [INFO] validating manifest of crates.io crate ledcat 0.1.5 on toolchain 41997647ba6a77908f6ef64401414feb00bccf16 [INFO] running `"/workspace/cargo-home/bin/cargo" "+41997647ba6a77908f6ef64401414feb00bccf16" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started tweaking crates.io crate ledcat 0.1.5 [INFO] finished tweaking crates.io crate ledcat 0.1.5 [INFO] tweaked toml for crates.io crate ledcat 0.1.5 written to /workspace/builds/worker-2/source/Cargo.toml [INFO] running `"/workspace/cargo-home/bin/cargo" "+41997647ba6a77908f6ef64401414feb00bccf16" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/workspace/cargo-home/bin/cargo" "+41997647ba6a77908f6ef64401414feb00bccf16" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/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" "/opt/rustwide/cargo-home/bin/cargo" "+41997647ba6a77908f6ef64401414feb00bccf16" "build" "--frozen"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 71be4024bb0e32b01ddc53bd7f6655509fae4252a1b535ec077f4181f7e8effa [INFO] running `"docker" "start" "-a" "71be4024bb0e32b01ddc53bd7f6655509fae4252a1b535ec077f4181f7e8effa"` [INFO] [stderr] Compiling unicode-xid v0.0.4 [INFO] [stderr] Compiling nix v0.10.0 [INFO] [stderr] Compiling case v0.1.0 [INFO] [stderr] Compiling ledcat v0.1.5 (/opt/rustwide/workdir) [INFO] [stderr] Compiling gpio v0.3.0 [INFO] [stderr] Compiling thread_local v1.0.1 [INFO] [stderr] Compiling iovec v0.1.4 [INFO] [stderr] Compiling atty v0.2.14 [INFO] [stderr] Compiling net2 v0.2.33 [INFO] [stderr] Compiling clap v2.33.0 [INFO] [stderr] Compiling synom v0.11.3 [INFO] [stderr] Compiling bytes v0.4.12 [INFO] [stderr] Compiling regex v1.3.7 [INFO] [stderr] Compiling syn v0.11.11 [INFO] [stderr] Compiling derive-error v0.0.4 [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/main.rs:374:51 [INFO] [stderr] | [INFO] [stderr] 374 | let transpositions: Vec> = try!(operations.into_iter() [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/device/apa102.rs:27:40 [INFO] [stderr] | [INFO] [stderr] 27 | fn write_frame(&self, writer: &mut io::Write, pixels: &[Pixel]) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn io::Write` [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/device/fluxled/mod.rs:244:20 [INFO] [stderr] | [INFO] [stderr] 244 | type Err = Box; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/device/fluxled/mod.rs:253:43 [INFO] [stderr] | [INFO] [stderr] 253 | .or_else(|_| -> Result<_, Box> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/device/generic.rs:13:40 [INFO] [stderr] | [INFO] [stderr] 13 | fn write_frame(&self, writer: &mut io::Write, pixels: &[Pixel]) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn io::Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/device/hexws2811.rs:13:40 [INFO] [stderr] | [INFO] [stderr] 13 | fn write_frame(&self, writer: &mut io::Write, pixels: &[Pixel]) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn io::Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/device/lpd8806.rs:25:40 [INFO] [stderr] | [INFO] [stderr] 25 | fn write_frame(&self, writer: &mut io::Write, pixels: &[Pixel]) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn io::Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/device/sk9822.rs:27:40 [INFO] [stderr] | [INFO] [stderr] 27 | fn write_frame(&self, writer: &mut io::Write, pixels: &[Pixel]) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn io::Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/device/ws2812.rs:25:40 [INFO] [stderr] | [INFO] [stderr] 25 | fn write_frame(&self, writer: &mut io::Write, pixels: &[Pixel]) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn io::Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/device/mod.rs:43:21 [INFO] [stderr] | [INFO] [stderr] 43 | impl Output for Box { [INFO] [stderr] | ^^^^^^ help: use `dyn`: `dyn Output` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/device/mod.rs:60:32 [INFO] [stderr] | [INFO] [stderr] 60 | fn write_frame(&self, &mut io::Write, &[Pixel]) -> io::Result<()>; [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn io::Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/device/mod.rs:82:37 [INFO] [stderr] | [INFO] [stderr] 82 | fn write_frame(&self, out: &mut io::Write, frame: &[Pixel]) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn io::Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/device/mod.rs:111:16 [INFO] [stderr] | [INFO] [stderr] 111 | Device(Box), [INFO] [stderr] | ^^^^^^ help: use `dyn`: `dyn Device` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/device/mod.rs:113:16 [INFO] [stderr] | [INFO] [stderr] 113 | Output(Box), [INFO] [stderr] | ^^^^^^ help: use `dyn`: `dyn Output` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/driver/artnet/unicast.rs:17:17 [INFO] [stderr] | [INFO] [stderr] 17 | target: Box, [INFO] [stderr] | ^^^^^^ help: use `dyn`: `dyn Target` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/driver/artnet/unicast.rs:23:27 [INFO] [stderr] | [INFO] [stderr] 23 | pub fn to(target: Box, frame_size: usize) -> io::Result { [INFO] [stderr] | ^^^^^^ help: use `dyn`: `dyn Target` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/driver/artnet/mod.rs:59:28 [INFO] [stderr] | [INFO] [stderr] 59 | let artnet_target: Box = if args.is_present("broadcast") { [INFO] [stderr] | ^^^^^^ help: use `dyn`: `dyn Target` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/driver/spidev.rs:28:38 [INFO] [stderr] | [INFO] [stderr] 28 | pub fn open(path: &path::Path, dev: &Device) -> Result { [INFO] [stderr] | ^^^^^^ help: use `dyn`: `dyn Device` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/input/geometry.rs:45:32 [INFO] [stderr] | [INFO] [stderr] 45 | impl Transposition for Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn Transposition` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/input/select.rs:25:21 [INFO] [stderr] | [INFO] [stderr] 25 | inputs: Vec>, [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn ReadFd + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/input/select.rs:39:39 [INFO] [stderr] | [INFO] [stderr] 39 | let files: io::Result>> = filenames.into_iter().map(|filename| { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn ReadFd + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/input/select.rs:63:22 [INFO] [stderr] | [INFO] [stderr] 63 | Ok(Box::::from(Box::new(file))) [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn ReadFd + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/input/select.rs:68:33 [INFO] [stderr] | [INFO] [stderr] 68 | pub fn from(inputs: Vec>, switch_after: usize, when_eof: WhenEOF, clear_timeout: Option) -> Reader { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn ReadFd + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/main.rs:164:21 [INFO] [stderr] | [INFO] [stderr] 164 | let output: Box = { [INFO] [stderr] | ^^^^^^ help: use `dyn`: `dyn Output` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/main.rs:190:33 [INFO] [stderr] | [INFO] [stderr] 190 | let output: Box = match driver_name.as_str() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn io::Write + Send` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/main.rs:374:33 [INFO] [stderr] | [INFO] [stderr] 374 | let transpositions: Vec> = try!(operations.into_iter() [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn Transposition` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/main.rs:375:35 [INFO] [stderr] | [INFO] [stderr] 375 | .map(|name| -> Result, String> { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn Transposition` [INFO] [stderr] [INFO] [stderr] error: linking with `cc` failed: exit code: 1 [INFO] [stderr] | [INFO] [stderr] = note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" "/opt/rustwide/rustup-home/toolchains/41997647ba6a77908f6ef64401414feb00bccf16/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/opt/rustwide/target/debug/deps/ledcat-427a0d6c9ea4f0fa.ledcat.3v3kj967-cgu.0.rcgu.o" "/opt/rustwide/target/debug/deps/ledcat-427a0d6c9ea4f0fa.ledcat.3v3kj967-cgu.1.rcgu.o" "/opt/rustwide/target/debug/deps/ledcat-427a0d6c9ea4f0fa.ledcat.3v3kj967-cgu.10.rcgu.o" "/opt/rustwide/target/debug/deps/ledcat-427a0d6c9ea4f0fa.ledcat.3v3kj967-cgu.11.rcgu.o" "/opt/rustwide/target/debug/deps/ledcat-427a0d6c9ea4f0fa.ledcat.3v3kj967-cgu.12.rcgu.o" "/opt/rustwide/target/debug/deps/ledcat-427a0d6c9ea4f0fa.ledcat.3v3kj967-cgu.13.rcgu.o" "/opt/rustwide/target/debug/deps/ledcat-427a0d6c9ea4f0fa.ledcat.3v3kj967-cgu.14.rcgu.o" "/opt/rustwide/target/debug/deps/ledcat-427a0d6c9ea4f0fa.ledcat.3v3kj967-cgu.15.rcgu.o" "/opt/rustwide/target/debug/deps/ledcat-427a0d6c9ea4f0fa.ledcat.3v3kj967-cgu.2.rcgu.o" "/opt/rustwide/target/debug/deps/ledcat-427a0d6c9ea4f0fa.ledcat.3v3kj967-cgu.3.rcgu.o" "/opt/rustwide/target/debug/deps/ledcat-427a0d6c9ea4f0fa.ledcat.3v3kj967-cgu.4.rcgu.o" "/opt/rustwide/target/debug/deps/ledcat-427a0d6c9ea4f0fa.ledcat.3v3kj967-cgu.5.rcgu.o" "/opt/rustwide/target/debug/deps/ledcat-427a0d6c9ea4f0fa.ledcat.3v3kj967-cgu.6.rcgu.o" "/opt/rustwide/target/debug/deps/ledcat-427a0d6c9ea4f0fa.ledcat.3v3kj967-cgu.7.rcgu.o" "/opt/rustwide/target/debug/deps/ledcat-427a0d6c9ea4f0fa.ledcat.3v3kj967-cgu.8.rcgu.o" "/opt/rustwide/target/debug/deps/ledcat-427a0d6c9ea4f0fa.ledcat.3v3kj967-cgu.9.rcgu.o" "-o" "/opt/rustwide/target/debug/deps/ledcat-427a0d6c9ea4f0fa" "/opt/rustwide/target/debug/deps/ledcat-427a0d6c9ea4f0fa.281xqiub0pdft82k.rcgu.o" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-nodefaultlibs" "-L" "/opt/rustwide/target/debug/deps" "-L" "/opt/rustwide/workdir/components/rpi-rgb-led-matrix/lib" "-L" "/opt/rustwide/rustup-home/toolchains/41997647ba6a77908f6ef64401414feb00bccf16/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "-Wl,--whole-archive" "-lrgbmatrix" "-Wl,--no-whole-archive" "-Wl,-Bdynamic" "-lstdc++" "-Wl,-Bstatic" "/opt/rustwide/target/debug/deps/libregex-5673d2c692486c34.rlib" "/opt/rustwide/target/debug/deps/libthread_local-99a05dc3a68e4d67.rlib" "/opt/rustwide/target/debug/deps/liblazy_static-81e71b56f2a8a8f3.rlib" "/opt/rustwide/target/debug/deps/libregex_syntax-895f7b6116abae12.rlib" "/opt/rustwide/target/debug/deps/libaho_corasick-171112384f1bc6b1.rlib" "/opt/rustwide/target/debug/deps/libmemchr-e6743c7b9c8d789f.rlib" "/opt/rustwide/target/debug/deps/libnix-99d3c666109b1eb5.rlib" "/opt/rustwide/target/debug/deps/libvoid-97cb09eed3196251.rlib" "/opt/rustwide/target/debug/deps/libbytes-c97a74b1261a0aa7.rlib" "/opt/rustwide/target/debug/deps/libiovec-15c872251895ac9b.rlib" "/opt/rustwide/target/debug/deps/libnet2-d82c0d63566bfddf.rlib" "/opt/rustwide/target/debug/deps/libcfg_if-7bfa6ddb9b2ff1d3.rlib" "/opt/rustwide/target/debug/deps/libgpio-641c5b1f5ccb00b7.rlib" "/opt/rustwide/target/debug/deps/libclap-4f2b3147b0d95bd1.rlib" "/opt/rustwide/target/debug/deps/libvec_map-0124ff4ac8afcced.rlib" "/opt/rustwide/target/debug/deps/libtextwrap-08e331ec82d34bf5.rlib" "/opt/rustwide/target/debug/deps/libunicode_width-f4037b7b6be902d1.rlib" "/opt/rustwide/target/debug/deps/libstrsim-b32b1c93e6d2d890.rlib" "/opt/rustwide/target/debug/deps/libbitflags-c5180c3dc5cc8193.rlib" "/opt/rustwide/target/debug/deps/libatty-69617a5d40e30f17.rlib" "/opt/rustwide/target/debug/deps/liblibc-7f3b8e4c2db2a8d8.rlib" "/opt/rustwide/target/debug/deps/libansi_term-0d3bacace01cab89.rlib" "/opt/rustwide/target/debug/deps/libbyteorder-7b8e532639ee0fad.rlib" "-Wl,--start-group" "/opt/rustwide/rustup-home/toolchains/41997647ba6a77908f6ef64401414feb00bccf16/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-62f93208e14fa8f0.rlib" "/opt/rustwide/rustup-home/toolchains/41997647ba6a77908f6ef64401414feb00bccf16/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-b2c4dbe979cef5e2.rlib" "/opt/rustwide/rustup-home/toolchains/41997647ba6a77908f6ef64401414feb00bccf16/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-8b9b66cb3e9f891d.rlib" "/opt/rustwide/rustup-home/toolchains/41997647ba6a77908f6ef64401414feb00bccf16/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-5998b08bf29f56ac.rlib" "/opt/rustwide/rustup-home/toolchains/41997647ba6a77908f6ef64401414feb00bccf16/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace-efd1670396ccb585.rlib" "/opt/rustwide/rustup-home/toolchains/41997647ba6a77908f6ef64401414feb00bccf16/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace_sys-6435b9209e888961.rlib" "/opt/rustwide/rustup-home/toolchains/41997647ba6a77908f6ef64401414feb00bccf16/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-866e5dfb603b34d2.rlib" "/opt/rustwide/rustup-home/toolchains/41997647ba6a77908f6ef64401414feb00bccf16/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-75eac3089695b3b4.rlib" "/opt/rustwide/rustup-home/toolchains/41997647ba6a77908f6ef64401414feb00bccf16/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-35744537b4825584.rlib" "/opt/rustwide/rustup-home/toolchains/41997647ba6a77908f6ef64401414feb00bccf16/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-f7ee5081d96fb2cd.rlib" "/opt/rustwide/rustup-home/toolchains/41997647ba6a77908f6ef64401414feb00bccf16/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-5b28479cb639d76c.rlib" "/opt/rustwide/rustup-home/toolchains/41997647ba6a77908f6ef64401414feb00bccf16/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-f827473dd3b319fa.rlib" "/opt/rustwide/rustup-home/toolchains/41997647ba6a77908f6ef64401414feb00bccf16/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-53f9c299c549c6a9.rlib" "-Wl,--end-group" "/opt/rustwide/rustup-home/toolchains/41997647ba6a77908f6ef64401414feb00bccf16/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-44132fbb3fcc18d3.rlib" "-Wl,-Bdynamic" "-lutil" "-ldl" "-lutil" "-ldl" "-lrt" "-lpthread" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread" "-lutil" "-ldl" "-lutil" [INFO] [stderr] = note: /usr/bin/ld: cannot find -lrgbmatrix [INFO] [stderr] collect2: error: ld returned 1 exit status [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error; 27 warnings emitted [INFO] [stderr] [INFO] [stderr] error: could not compile `ledcat`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "71be4024bb0e32b01ddc53bd7f6655509fae4252a1b535ec077f4181f7e8effa"` [INFO] running `"docker" "rm" "-f" "71be4024bb0e32b01ddc53bd7f6655509fae4252a1b535ec077f4181f7e8effa"` [INFO] [stdout] 71be4024bb0e32b01ddc53bd7f6655509fae4252a1b535ec077f4181f7e8effa