[INFO] cloning repository https://github.com/dodadoa/advent-of-code-2022 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dodadoa/advent-of-code-2022" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdodadoa%2Fadvent-of-code-2022", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdodadoa%2Fadvent-of-code-2022'... [INFO] [stderr] /workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdodadoa%2Fadvent-of-code-2022: No space left on device [WARN] Retrying crate fetch in 3 seconds (attempt 1) [INFO] cloning repository https://github.com/dodadoa/advent-of-code-2022 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dodadoa/advent-of-code-2022" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdodadoa%2Fadvent-of-code-2022", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdodadoa%2Fadvent-of-code-2022'... [INFO] [stderr] /workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdodadoa%2Fadvent-of-code-2022: No space left on device [WARN] Retrying crate fetch in 3 seconds (attempt 2) [INFO] cloning repository https://github.com/dodadoa/advent-of-code-2022 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dodadoa/advent-of-code-2022" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdodadoa%2Fadvent-of-code-2022", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdodadoa%2Fadvent-of-code-2022'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 4fad7885a5ec88f7ec3671f337f50f529ede7d65 [INFO] checking dodadoa/advent-of-code-2022/4fad7885a5ec88f7ec3671f337f50f529ede7d65 against try#9a6ce9bcee4fff9f2010ea88aaa7654cc4d95132 for pr-133274 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdodadoa%2Fadvent-of-code-2022" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/dodadoa/advent-of-code-2022 on toolchain 9a6ce9bcee4fff9f2010ea88aaa7654cc4d95132 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9a6ce9bcee4fff9f2010ea88aaa7654cc4d95132" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/dodadoa/advent-of-code-2022 [INFO] finished tweaking git repo https://github.com/dodadoa/advent-of-code-2022 [INFO] tweaked toml for git repo https://github.com/dodadoa/advent-of-code-2022 written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/dodadoa/advent-of-code-2022 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9a6ce9bcee4fff9f2010ea88aaa7654cc4d95132" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/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:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+9a6ce9bcee4fff9f2010ea88aaa7654cc4d95132" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 6857a00e36337cc0351f193278e620ea4cd890174fc8397bd876501147afed20 [INFO] running `Command { std: "docker" "start" "-a" "6857a00e36337cc0351f193278e620ea4cd890174fc8397bd876501147afed20", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "6857a00e36337cc0351f193278e620ea4cd890174fc8397bd876501147afed20", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6857a00e36337cc0351f193278e620ea4cd890174fc8397bd876501147afed20", kill_on_drop: false }` [INFO] [stdout] 6857a00e36337cc0351f193278e620ea4cd890174fc8397bd876501147afed20 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+9a6ce9bcee4fff9f2010ea88aaa7654cc4d95132" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 4c11a5730aed146395a43601c66a82a0c902dbd5ee6e6c36f8c8c59f6677aecf [INFO] running `Command { std: "docker" "start" "-a" "4c11a5730aed146395a43601c66a82a0c902dbd5ee6e6c36f8c8c59f6677aecf", kill_on_drop: false }` [INFO] [stderr] Checking adventofcode2022 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: function `quiz1_part1` is never used [INFO] [stdout] --> src/main.rs:8:4 [INFO] [stdout] | [INFO] [stdout] 8 | fn quiz1_part1(reader: BufReader) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `quiz1_part2` is never used [INFO] [stdout] --> src/main.rs:31:4 [INFO] [stdout] | [INFO] [stdout] 31 | fn quiz1_part2(reader: BufReader) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `quiz2_part1` is never used [INFO] [stdout] --> src/main.rs:58:4 [INFO] [stdout] | [INFO] [stdout] 58 | fn quiz2_part1 (reader: BufReader) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `quiz2_part2` is never used [INFO] [stdout] --> src/main.rs:115:4 [INFO] [stdout] | [INFO] [stdout] 115 | fn quiz2_part2 (reader: BufReader) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `quiz3_part1` is never used [INFO] [stdout] --> src/main.rs:197:4 [INFO] [stdout] | [INFO] [stdout] 197 | fn quiz3_part1(reader: BufReader) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `quiz3_part2` is never used [INFO] [stdout] --> src/main.rs:236:4 [INFO] [stdout] | [INFO] [stdout] 236 | fn quiz3_part2(reader: BufReader) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `quiz4_part1` is never used [INFO] [stdout] --> src/main.rs:282:4 [INFO] [stdout] | [INFO] [stdout] 282 | fn quiz4_part1(reader: BufReader) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `quiz4_part2` is never used [INFO] [stdout] --> src/main.rs:316:4 [INFO] [stdout] | [INFO] [stdout] 316 | fn quiz4_part2(reader: BufReader) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `quiz5_part1` is never used [INFO] [stdout] --> src/main.rs:356:4 [INFO] [stdout] | [INFO] [stdout] 356 | fn quiz5_part1(reader: BufReader) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `quiz5_part2` is never used [INFO] [stdout] --> src/main.rs:405:4 [INFO] [stdout] | [INFO] [stdout] 405 | fn quiz5_part2(reader: BufReader) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `quiz6_part1` is never used [INFO] [stdout] --> src/main.rs:451:4 [INFO] [stdout] | [INFO] [stdout] 451 | fn quiz6_part1(reader: BufReader) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `quiz6_part2` is never used [INFO] [stdout] --> src/main.rs:476:4 [INFO] [stdout] | [INFO] [stdout] 476 | fn quiz6_part2(reader: BufReader) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `quiz7_part1` is never used [INFO] [stdout] --> src/main.rs:501:4 [INFO] [stdout] | [INFO] [stdout] 501 | fn quiz7_part1(reader: BufReader) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/main.rs:522:16 [INFO] [stdout] | [INFO] [stdout] 522 | Number(i32), [INFO] [stdout] | ------ ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Value` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 522 | Number(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/main.rs:523:14 [INFO] [stdout] | [INFO] [stdout] 523 | List(Vec) [INFO] [stdout] | ---- ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Value` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 523 | List(()) [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `quiz1_part1` is never used [INFO] [stdout] --> src/main.rs:8:4 [INFO] [stdout] | [INFO] [stdout] 8 | fn quiz1_part1(reader: BufReader) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `quiz1_part2` is never used [INFO] [stdout] --> src/main.rs:31:4 [INFO] [stdout] | [INFO] [stdout] 31 | fn quiz1_part2(reader: BufReader) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `quiz2_part1` is never used [INFO] [stdout] --> src/main.rs:58:4 [INFO] [stdout] | [INFO] [stdout] 58 | fn quiz2_part1 (reader: BufReader) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `quiz2_part2` is never used [INFO] [stdout] --> src/main.rs:115:4 [INFO] [stdout] | [INFO] [stdout] 115 | fn quiz2_part2 (reader: BufReader) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `quiz3_part1` is never used [INFO] [stdout] --> src/main.rs:197:4 [INFO] [stdout] | [INFO] [stdout] 197 | fn quiz3_part1(reader: BufReader) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `quiz3_part2` is never used [INFO] [stdout] --> src/main.rs:236:4 [INFO] [stdout] | [INFO] [stdout] 236 | fn quiz3_part2(reader: BufReader) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `quiz4_part1` is never used [INFO] [stdout] --> src/main.rs:282:4 [INFO] [stdout] | [INFO] [stdout] 282 | fn quiz4_part1(reader: BufReader) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `quiz4_part2` is never used [INFO] [stdout] --> src/main.rs:316:4 [INFO] [stdout] | [INFO] [stdout] 316 | fn quiz4_part2(reader: BufReader) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `quiz5_part1` is never used [INFO] [stdout] --> src/main.rs:356:4 [INFO] [stdout] | [INFO] [stdout] 356 | fn quiz5_part1(reader: BufReader) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `quiz5_part2` is never used [INFO] [stdout] --> src/main.rs:405:4 [INFO] [stdout] | [INFO] [stdout] 405 | fn quiz5_part2(reader: BufReader) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `quiz6_part1` is never used [INFO] [stdout] --> src/main.rs:451:4 [INFO] [stdout] | [INFO] [stdout] 451 | fn quiz6_part1(reader: BufReader) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `quiz6_part2` is never used [INFO] [stdout] --> src/main.rs:476:4 [INFO] [stdout] | [INFO] [stdout] 476 | fn quiz6_part2(reader: BufReader) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `quiz7_part1` is never used [INFO] [stdout] --> src/main.rs:501:4 [INFO] [stdout] | [INFO] [stdout] 501 | fn quiz7_part1(reader: BufReader) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/main.rs:522:16 [INFO] [stdout] | [INFO] [stdout] 522 | Number(i32), [INFO] [stdout] | ------ ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Value` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 522 | Number(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/main.rs:523:14 [INFO] [stdout] | [INFO] [stdout] 523 | List(Vec) [INFO] [stdout] | ---- ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Value` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 523 | List(()) [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/main.rs:573:5 [INFO] [stdout] | [INFO] [stdout] 573 | quiz13_part1(reader); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 573 | let _ = quiz13_part1(reader); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/main.rs:573:5 [INFO] [stdout] | [INFO] [stdout] 573 | quiz13_part1(reader); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 573 | let _ = quiz13_part1(reader); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `adventofcode2022` (bin "adventofcode2022"); 16 warnings emitted [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] No space left on device (os error 28) [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] failed to parse process output: `/opt/rustwide/rustup-home/toolchains/9a6ce9bcee4fff9f2010ea88aaa7654cc4d95132/bin/rustc --crate-name adventofcode2022 --edition=2021 src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,metadata -C embed-bitcode=no -C debuginfo=2 --check-cfg 'cfg(docsrs)' --check-cfg 'cfg(feature, values())' -C metadata=d85be70dd4104024 -C extra-filename=-d85be70dd4104024 --out-dir /opt/rustwide/target/debug/deps -L dependency=/opt/rustwide/target/debug/deps --cap-lints=forbid` (exit status: 1) [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: could not compile `adventofcode2022` (bin "adventofcode2022" test); 16 warnings emitted [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] No space left on device (os error 28) [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] failed to parse process output: `/opt/rustwide/rustup-home/toolchains/9a6ce9bcee4fff9f2010ea88aaa7654cc4d95132/bin/rustc --crate-name adventofcode2022 --edition=2021 src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --emit=dep-info,metadata -C embed-bitcode=no -C debuginfo=2 --test --check-cfg 'cfg(docsrs)' --check-cfg 'cfg(feature, values())' -C metadata=5f93a20d7f234104 -C extra-filename=-5f93a20d7f234104 --out-dir /opt/rustwide/target/debug/deps -L dependency=/opt/rustwide/target/debug/deps --cap-lints=forbid` (exit status: 1) [INFO] running `Command { std: "docker" "inspect" "4c11a5730aed146395a43601c66a82a0c902dbd5ee6e6c36f8c8c59f6677aecf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4c11a5730aed146395a43601c66a82a0c902dbd5ee6e6c36f8c8c59f6677aecf", kill_on_drop: false }` [INFO] [stdout] 4c11a5730aed146395a43601c66a82a0c902dbd5ee6e6c36f8c8c59f6677aecf