[INFO] updating cached repository kolgotko/forkpty [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/kolgotko/forkpty [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/kolgotko/forkpty" "work/ex/pr-58592/sources/master#f66e4697ae286985ddefc53c3a047614568458bb/gh/kolgotko/forkpty"` [INFO] [stderr] Cloning into 'work/ex/pr-58592/sources/master#f66e4697ae286985ddefc53c3a047614568458bb/gh/kolgotko/forkpty'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/kolgotko/forkpty" "work/ex/pr-58592/sources/try#c3b22200e6f5b70eb1f99ae6944d989ae17a458a/gh/kolgotko/forkpty"` [INFO] [stderr] Cloning into 'work/ex/pr-58592/sources/try#c3b22200e6f5b70eb1f99ae6944d989ae17a458a/gh/kolgotko/forkpty'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] a4d1f28d265114037ab6bdfda898289bd6284aa8 [INFO] sha for GitHub repo kolgotko/forkpty: a4d1f28d265114037ab6bdfda898289bd6284aa8 [INFO] validating manifest of kolgotko/forkpty on toolchain master#f66e4697ae286985ddefc53c3a047614568458bb [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+f66e4697ae286985ddefc53c3a047614568458bb-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of kolgotko/forkpty on toolchain try#c3b22200e6f5b70eb1f99ae6944d989ae17a458a [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+c3b22200e6f5b70eb1f99ae6944d989ae17a458a-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing kolgotko/forkpty [INFO] finished frobbing kolgotko/forkpty [INFO] frobbed toml for kolgotko/forkpty written to work/ex/pr-58592/sources/master#f66e4697ae286985ddefc53c3a047614568458bb/gh/kolgotko/forkpty/Cargo.toml [INFO] started frobbing kolgotko/forkpty [INFO] finished frobbing kolgotko/forkpty [INFO] frobbed toml for kolgotko/forkpty written to work/ex/pr-58592/sources/try#c3b22200e6f5b70eb1f99ae6944d989ae17a458a/gh/kolgotko/forkpty/Cargo.toml [INFO] crate kolgotko/forkpty has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+f66e4697ae286985ddefc53c3a047614568458bb-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+c3b22200e6f5b70eb1f99ae6944d989ae17a458a-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] checking kolgotko/forkpty against try#c3b22200e6f5b70eb1f99ae6944d989ae17a458a for pr-58592 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-58592/worker-7/try#c3b22200e6f5b70eb1f99ae6944d989ae17a458a:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/pr-58592/sources/try#c3b22200e6f5b70eb1f99ae6944d989ae17a458a/gh/kolgotko/forkpty:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+c3b22200e6f5b70eb1f99ae6944d989ae17a458a-alt" "check" "--frozen" "--all" "--all-targets"` [INFO] [stdout] d86a78b48bb6d89c0a44a3c51968cfea6a1e95725a5dca79baf83f06c39d866b [INFO] running `"docker" "start" "-a" "d86a78b48bb6d89c0a44a3c51968cfea6a1e95725a5dca79baf83f06c39d866b"` [INFO] [stderr] Checking forkpty v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused import: `open` [INFO] [stderr] --> src/lib.rs:14:25 [INFO] [stderr] | [INFO] [stderr] 14 | use nix::fcntl::{OFlag, open, fcntl, FcntlArg}; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `open` [INFO] [stderr] --> src/lib.rs:14:25 [INFO] [stderr] | [INFO] [stderr] 14 | use nix::fcntl::{OFlag, open, fcntl, FcntlArg}; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/lib.rs:148:13 [INFO] [stderr] | [INFO] [stderr] 148 | Ok(-1) => { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unreachable_patterns)] on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/lib.rs:211:13 [INFO] [stderr] | [INFO] [stderr] 211 | Ok(-1) => { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/lib.rs:362:13 [INFO] [stderr] | [INFO] [stderr] 362 | close(slave_fd); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/lib.rs:376:13 [INFO] [stderr] | [INFO] [stderr] 376 | close(stdin.as_raw_fd()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/lib.rs:377:13 [INFO] [stderr] | [INFO] [stderr] 377 | close(stdout.as_raw_fd()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/lib.rs:378:13 [INFO] [stderr] | [INFO] [stderr] 378 | close(stderr.as_raw_fd()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/lib.rs:148:13 [INFO] [stderr] | [INFO] [stderr] 148 | Ok(-1) => { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unreachable_patterns)] on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/lib.rs:211:13 [INFO] [stderr] | [INFO] [stderr] 211 | Ok(-1) => { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/lib.rs:362:13 [INFO] [stderr] | [INFO] [stderr] 362 | close(slave_fd); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/lib.rs:376:13 [INFO] [stderr] | [INFO] [stderr] 376 | close(stdin.as_raw_fd()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/lib.rs:377:13 [INFO] [stderr] | [INFO] [stderr] 377 | close(stdout.as_raw_fd()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/lib.rs:378:13 [INFO] [stderr] | [INFO] [stderr] 378 | close(stderr.as_raw_fd()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused imports: `OFlag`, `open` [INFO] [stderr] --> src/main.rs:6:18 [INFO] [stderr] | [INFO] [stderr] 6 | use nix::fcntl::{OFlag, open}; [INFO] [stderr] | ^^^^^ ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::process::Command` [INFO] [stderr] --> src/main.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::process::Command; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `nix::sys::wait::*` [INFO] [stderr] --> src/main.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use nix::sys::wait::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::os::unix::io::AsRawFd` [INFO] [stderr] --> src/main.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use std::os::unix::io::AsRawFd; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::os::unix::io::IntoRawFd` [INFO] [stderr] --> src/main.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | use std::os::unix::io::IntoRawFd; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::OpenOptions` [INFO] [stderr] --> src/main.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use std::fs::OpenOptions; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `UnixStream` [INFO] [stderr] --> src/main.rs:16:26 [INFO] [stderr] | [INFO] [stderr] 16 | use std::os::unix::net::{UnixStream, UnixListener}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::create_dir_all` [INFO] [stderr] --> src/main.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | use std::fs::create_dir_all; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::mem` [INFO] [stderr] --> src/main.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | use std::mem; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `OFlag`, `open` [INFO] [stderr] --> src/main.rs:6:18 [INFO] [stderr] | [INFO] [stderr] 6 | use nix::fcntl::{OFlag, open}; [INFO] [stderr] | ^^^^^ ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::process::Command` [INFO] [stderr] --> src/main.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::process::Command; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `nix::sys::wait::*` [INFO] [stderr] --> src/main.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use nix::sys::wait::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::os::unix::io::AsRawFd` [INFO] [stderr] --> src/main.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use std::os::unix::io::AsRawFd; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::os::unix::io::IntoRawFd` [INFO] [stderr] --> src/main.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | use std::os::unix::io::IntoRawFd; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::OpenOptions` [INFO] [stderr] --> src/main.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use std::fs::OpenOptions; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `UnixStream` [INFO] [stderr] --> src/main.rs:16:26 [INFO] [stderr] | [INFO] [stderr] 16 | use std::os::unix::net::{UnixStream, UnixListener}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::create_dir_all` [INFO] [stderr] --> src/main.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | use std::fs::create_dir_all; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::mem` [INFO] [stderr] --> src/main.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | use std::mem; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `buffer` [INFO] [stderr] --> src/main.rs:52:25 [INFO] [stderr] | [INFO] [stderr] 52 | let mut buffer: Vec = vec![0; libc::BUFSIZ as usize]; [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_buffer` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:52:21 [INFO] [stderr] | [INFO] [stderr] 52 | let mut buffer: Vec = vec![0; libc::BUFSIZ as usize]; [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/main.rs:32:41 [INFO] [stderr] | [INFO] [stderr] 32 | Ok(ForkPtyResult::Parent(child, mut pty_master)) => { [INFO] [stderr] | ----^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:79:18 [INFO] [stderr] | [INFO] [stderr] 79 | let (mut in_stream, _) = in_listener.accept().unwrap(); [INFO] [stderr] | ----^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | pty_master.resize(winsize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:54:17 [INFO] [stderr] | [INFO] [stderr] 54 | pty_master_reader.set_nonblocking(true); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:84:21 [INFO] [stderr] | [INFO] [stderr] 84 | pty_master_writer.write(&[byte.unwrap()]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:97:13 [INFO] [stderr] | [INFO] [stderr] 97 | / execvp(&command, &[ [INFO] [stderr] 98 | | CString::new("").unwrap(), [INFO] [stderr] 99 | | ]); [INFO] [stderr] | |_______________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused variable: `buffer` [INFO] [stderr] --> src/main.rs:52:25 [INFO] [stderr] | [INFO] [stderr] 52 | let mut buffer: Vec = vec![0; libc::BUFSIZ as usize]; [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_buffer` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:52:21 [INFO] [stderr] | [INFO] [stderr] 52 | let mut buffer: Vec = vec![0; libc::BUFSIZ as usize]; [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/main.rs:32:41 [INFO] [stderr] | [INFO] [stderr] 32 | Ok(ForkPtyResult::Parent(child, mut pty_master)) => { [INFO] [stderr] | ----^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:79:18 [INFO] [stderr] | [INFO] [stderr] 79 | let (mut in_stream, _) = in_listener.accept().unwrap(); [INFO] [stderr] | ----^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | pty_master.resize(winsize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:54:17 [INFO] [stderr] | [INFO] [stderr] 54 | pty_master_reader.set_nonblocking(true); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:84:21 [INFO] [stderr] | [INFO] [stderr] 84 | pty_master_writer.write(&[byte.unwrap()]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:97:13 [INFO] [stderr] | [INFO] [stderr] 97 | / execvp(&command, &[ [INFO] [stderr] 98 | | CString::new("").unwrap(), [INFO] [stderr] 99 | | ]); [INFO] [stderr] | |_______________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.76s [INFO] running `"docker" "inspect" "d86a78b48bb6d89c0a44a3c51968cfea6a1e95725a5dca79baf83f06c39d866b"` [INFO] running `"docker" "rm" "-f" "d86a78b48bb6d89c0a44a3c51968cfea6a1e95725a5dca79baf83f06c39d866b"` [INFO] [stdout] d86a78b48bb6d89c0a44a3c51968cfea6a1e95725a5dca79baf83f06c39d866b