[INFO] fetching crate casaubon 0.3.2... [INFO] testing casaubon-0.3.2 against beta-2022-02-22 for beta-1.60-1 [INFO] extracting crate casaubon 0.3.2 into /workspace/builds/worker-27/source [INFO] validating manifest of crates.io crate casaubon 0.3.2 on toolchain beta-2022-02-22 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-02-22" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate casaubon 0.3.2 [INFO] finished tweaking crates.io crate casaubon 0.3.2 [INFO] tweaked toml for crates.io crate casaubon 0.3.2 written to /workspace/builds/worker-27/source/Cargo.toml [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-02-22" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }` [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-02-22" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded htmlescape v0.3.1 [INFO] [stderr] Downloaded pulldown-cmark v0.0.11 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-27/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-27/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:0cd99ca24d8e8c98e67c542213511d985b8778b5bdcbb160e038429496686047" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-02-22" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e7978b58a283109c665e4a6df77ea4e182e66a72640e6aa725bcd2e4072eaaa3 [INFO] running `Command { std: "docker" "start" "-a" "e7978b58a283109c665e4a6df77ea4e182e66a72640e6aa725bcd2e4072eaaa3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e7978b58a283109c665e4a6df77ea4e182e66a72640e6aa725bcd2e4072eaaa3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e7978b58a283109c665e4a6df77ea4e182e66a72640e6aa725bcd2e4072eaaa3", kill_on_drop: false }` [INFO] [stdout] e7978b58a283109c665e4a6df77ea4e182e66a72640e6aa725bcd2e4072eaaa3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-27/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-27/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:0cd99ca24d8e8c98e67c542213511d985b8778b5bdcbb160e038429496686047" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-02-22" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d3606d9f8a3966f6c9da040b5cf76c68271cdf09f50961b9240d2fa1564b176e [INFO] running `Command { std: "docker" "start" "-a" "d3606d9f8a3966f6c9da040b5cf76c68271cdf09f50961b9240d2fa1564b176e", kill_on_drop: false }` [INFO] [stderr] Compiling pulldown-cmark v0.0.11 [INFO] [stderr] Compiling bitflags v0.8.2 [INFO] [stderr] Compiling fs_extra v1.2.0 [INFO] [stderr] Compiling htmlescape v0.3.1 [INFO] [stderr] Compiling getopts v0.2.21 [INFO] [stderr] Compiling iovec v0.1.4 [INFO] [stderr] Compiling net2 v0.2.37 [INFO] [stderr] Compiling inotify-sys v0.1.5 [INFO] [stderr] Compiling filetime v0.2.15 [INFO] [stderr] Compiling toml v0.4.10 [INFO] [stderr] Compiling clap v2.34.0 [INFO] [stderr] Compiling uuid v0.7.4 [INFO] [stderr] Compiling inotify v0.7.1 [INFO] [stderr] Compiling mio v0.6.23 [INFO] [stderr] Compiling mio-extras v2.0.6 [INFO] [stderr] Compiling notify v4.0.17 [INFO] [stderr] Compiling casaubon v0.3.2 (/opt/rustwide/workdir) [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/lib.rs:208:5 [INFO] [stdout] | [INFO] [stdout] 208 | try!(watcher.watch(&cwd, RecursiveMode::Recursive)); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/lib.rs:207:43 [INFO] [stdout] | [INFO] [stdout] 207 | let mut watcher: RecommendedWatcher = try!(Watcher::new(tx, Duration::from_secs(2))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/entry.rs:49:28 [INFO] [stdout] | [INFO] [stdout] 49 | Err(err) => panic!(err), [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_fmt_panics)]` on by default [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 49 | Err(err) => panic!("{}", err), [INFO] [stdout] | +++++ [INFO] [stdout] help: or use std::panic::panic_any instead [INFO] [stdout] | [INFO] [stdout] 49 | Err(err) => std::panic::panic_any(err), [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/entry.rs:117:25 [INFO] [stdout] | [INFO] [stdout] 117 | _ => panic!(err), [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 117 | _ => panic!("{}", err), [INFO] [stdout] | +++++ [INFO] [stdout] help: or use std::panic::panic_any instead [INFO] [stdout] | [INFO] [stdout] 117 | _ => std::panic::panic_any(err), [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 5.74s [INFO] running `Command { std: "docker" "inspect" "d3606d9f8a3966f6c9da040b5cf76c68271cdf09f50961b9240d2fa1564b176e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d3606d9f8a3966f6c9da040b5cf76c68271cdf09f50961b9240d2fa1564b176e", kill_on_drop: false }` [INFO] [stdout] d3606d9f8a3966f6c9da040b5cf76c68271cdf09f50961b9240d2fa1564b176e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-27/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-27/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:0cd99ca24d8e8c98e67c542213511d985b8778b5bdcbb160e038429496686047" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-02-22" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 854c97929adcd517013295d12b3d08d9d63f12d95c997714fe4c435f9f9a896e [INFO] running `Command { std: "docker" "start" "-a" "854c97929adcd517013295d12b3d08d9d63f12d95c997714fe4c435f9f9a896e", kill_on_drop: false }` [INFO] [stderr] Compiling casaubon v0.3.2 (/opt/rustwide/workdir) [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/lib.rs:208:5 [INFO] [stdout] | [INFO] [stdout] 208 | try!(watcher.watch(&cwd, RecursiveMode::Recursive)); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/lib.rs:207:43 [INFO] [stdout] | [INFO] [stdout] 207 | let mut watcher: RecommendedWatcher = try!(Watcher::new(tx, Duration::from_secs(2))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/entry.rs:49:28 [INFO] [stdout] | [INFO] [stdout] 49 | Err(err) => panic!(err), [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_fmt_panics)]` on by default [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 49 | Err(err) => panic!("{}", err), [INFO] [stdout] | +++++ [INFO] [stdout] help: or use std::panic::panic_any instead [INFO] [stdout] | [INFO] [stdout] 49 | Err(err) => std::panic::panic_any(err), [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/entry.rs:117:25 [INFO] [stdout] | [INFO] [stdout] 117 | _ => panic!(err), [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 117 | _ => panic!("{}", err), [INFO] [stdout] | +++++ [INFO] [stdout] help: or use std::panic::panic_any instead [INFO] [stdout] | [INFO] [stdout] 117 | _ => std::panic::panic_any(err), [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/lib.rs:208:5 [INFO] [stdout] | [INFO] [stdout] 208 | try!(watcher.watch(&cwd, RecursiveMode::Recursive)); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/lib.rs:207:43 [INFO] [stdout] | [INFO] [stdout] 207 | let mut watcher: RecommendedWatcher = try!(Watcher::new(tx, Duration::from_secs(2))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/entry.rs:49:28 [INFO] [stdout] | [INFO] [stdout] 49 | Err(err) => panic!(err), [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_fmt_panics)]` on by default [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 49 | Err(err) => panic!("{}", err), [INFO] [stdout] | +++++ [INFO] [stdout] help: or use std::panic::panic_any instead [INFO] [stdout] | [INFO] [stdout] 49 | Err(err) => std::panic::panic_any(err), [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/entry.rs:117:25 [INFO] [stdout] | [INFO] [stdout] 117 | _ => panic!(err), [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 117 | _ => panic!("{}", err), [INFO] [stdout] | +++++ [INFO] [stdout] help: or use std::panic::panic_any instead [INFO] [stdout] | [INFO] [stdout] 117 | _ => std::panic::panic_any(err), [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 1.43s [INFO] running `Command { std: "docker" "inspect" "854c97929adcd517013295d12b3d08d9d63f12d95c997714fe4c435f9f9a896e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "854c97929adcd517013295d12b3d08d9d63f12d95c997714fe4c435f9f9a896e", kill_on_drop: false }` [INFO] [stdout] 854c97929adcd517013295d12b3d08d9d63f12d95c997714fe4c435f9f9a896e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-27/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-27/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:0cd99ca24d8e8c98e67c542213511d985b8778b5bdcbb160e038429496686047" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-02-22" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] b8420572fa63f6f5211b31428a74e6a60f8302db19f2aac43f66c303fcf1c43e [INFO] running `Command { std: "docker" "start" "-a" "b8420572fa63f6f5211b31428a74e6a60f8302db19f2aac43f66c303fcf1c43e", kill_on_drop: false }` [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/lib.rs:208:5 [INFO] [stderr] | [INFO] [stderr] 208 | try!(watcher.watch(&cwd, RecursiveMode::Recursive)); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/lib.rs:207:43 [INFO] [stderr] | [INFO] [stderr] 207 | let mut watcher: RecommendedWatcher = try!(Watcher::new(tx, Duration::from_secs(2))); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: panic message is not a string literal [INFO] [stderr] --> src/entry.rs:49:28 [INFO] [stderr] | [INFO] [stderr] 49 | Err(err) => panic!(err), [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_fmt_panics)]` on by default [INFO] [stderr] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: add a "{}" format string to Display the message [INFO] [stderr] | [INFO] [stderr] 49 | Err(err) => panic!("{}", err), [INFO] [stderr] | +++++ [INFO] [stderr] help: or use std::panic::panic_any instead [INFO] [stderr] | [INFO] [stderr] 49 | Err(err) => std::panic::panic_any(err), [INFO] [stderr] | ~~~~~~~~~~~~~~~~~~~~~ [INFO] [stderr] [INFO] [stderr] warning: panic message is not a string literal [INFO] [stderr] --> src/entry.rs:117:25 [INFO] [stderr] | [INFO] [stderr] 117 | _ => panic!(err), [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: add a "{}" format string to Display the message [INFO] [stderr] | [INFO] [stderr] 117 | _ => panic!("{}", err), [INFO] [stderr] | +++++ [INFO] [stderr] help: or use std::panic::panic_any instead [INFO] [stderr] | [INFO] [stderr] 117 | _ => std::panic::panic_any(err), [INFO] [stderr] | ~~~~~~~~~~~~~~~~~~~~~ [INFO] [stderr] [INFO] [stderr] warning: `casaubon` (lib) generated 4 warnings [INFO] [stderr] warning: `casaubon` (lib test) generated 4 warnings (4 duplicates) [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.10s [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/casaubon-2818796628163d67) [INFO] [stdout] [INFO] [stdout] running 9 tests [INFO] [stdout] test entry::tests::test_render_post ... ok [INFO] [stdout] test entry::tests::test_display_entry_date ... ok [INFO] [stdout] test rss::tests::generates_rss_feed ... ok [INFO] [stdout] test entry::tests::test_render_post_listing ... ok [INFO] [stdout] test tests::test_should_rebuild ... ok [INFO] [stdout] test entry::tests::test_parse_page_entry ... ok [INFO] [stdout] test entry::tests::test_write_entry ... ok [INFO] [stdout] test entry::tests::test_write_post_listing ... ok [INFO] [stdout] test entry::tests::test_parse_post_entry ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/casaubon-58d86e739358ec87) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/integration_test.rs (/opt/rustwide/target/debug/deps/integration_test-5d80c2c85533925e) [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test test_new ... ok [INFO] [stdout] test test_build ... ok [INFO] [stdout] test test_build_drafts ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Doc-tests casaubon [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "b8420572fa63f6f5211b31428a74e6a60f8302db19f2aac43f66c303fcf1c43e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b8420572fa63f6f5211b31428a74e6a60f8302db19f2aac43f66c303fcf1c43e", kill_on_drop: false }` [INFO] [stdout] b8420572fa63f6f5211b31428a74e6a60f8302db19f2aac43f66c303fcf1c43e