[INFO] updating cached repository robmerrell/belmont [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/robmerrell/belmont [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/robmerrell/belmont" "work/ex/beta-1.38-1/sources/1.37.0/gh/robmerrell/belmont"` [INFO] [stderr] Cloning into 'work/ex/beta-1.38-1/sources/1.37.0/gh/robmerrell/belmont'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/robmerrell/belmont" "work/ex/beta-1.38-1/sources/beta-2019-08-13/gh/robmerrell/belmont"` [INFO] [stderr] Cloning into 'work/ex/beta-1.38-1/sources/beta-2019-08-13/gh/robmerrell/belmont'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] bccc5d3d711175ad69903fda155f9712c194c6f1 [INFO] sha for GitHub repo robmerrell/belmont: bccc5d3d711175ad69903fda155f9712c194c6f1 [INFO] validating manifest of robmerrell/belmont on toolchain 1.37.0 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+1.37.0" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of robmerrell/belmont on toolchain beta-2019-08-13 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+beta-2019-08-13" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing robmerrell/belmont [INFO] finished frobbing robmerrell/belmont [INFO] frobbed toml for robmerrell/belmont written to work/ex/beta-1.38-1/sources/1.37.0/gh/robmerrell/belmont/Cargo.toml [INFO] started frobbing robmerrell/belmont [INFO] finished frobbing robmerrell/belmont [INFO] frobbed toml for robmerrell/belmont written to work/ex/beta-1.38-1/sources/beta-2019-08-13/gh/robmerrell/belmont/Cargo.toml [INFO] crate robmerrell/belmont already has a lockfile, it will not be regenerated [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+1.37.0" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+beta-2019-08-13" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] testing robmerrell/belmont against 1.37.0 for beta-1.38-1 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/beta-1.38-1/worker-3/1.37.0:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/beta-1.38-1/sources/1.37.0/gh/robmerrell/belmont:/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=warn" "-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" "+1.37.0" "build" "--frozen"` [INFO] [stdout] 407d86cbf58569f3722f73eea1c2ef22c1a48c6a4b4b4c42b0788c33c6eb7224 [INFO] running `"docker" "start" "-a" "407d86cbf58569f3722f73eea1c2ef22c1a48c6a4b4b4c42b0788c33c6eb7224"` [INFO] [stderr] Compiling custom_error v1.3.0 [INFO] [stderr] Compiling belmont v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cartridge.rs:73:21 [INFO] [stderr] | [INFO] [stderr] 73 | pub mapper: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn mapper::Mapper` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(bare_trait_objects)] on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/cpu.rs:194:17 [INFO] [stderr] | [INFO] [stderr] 194 | (1, false) [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unreachable_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x` [INFO] [stderr] --> src/cartridge.rs:111:54 [INFO] [stderr] | [INFO] [stderr] 111 | let zero_prg_data: Vec = (1..=prg_size).map(|x| 0).collect(); [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_x` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x` [INFO] [stderr] --> src/cartridge.rs:112:54 [INFO] [stderr] | [INFO] [stderr] 112 | let zero_chr_data: Vec = (1..=chr_size).map(|x| 0).collect(); [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_x` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `header_size` [INFO] [stderr] --> src/cartridge.rs:107:9 [INFO] [stderr] | [INFO] [stderr] 107 | let header_size = 16; [INFO] [stderr] | ^^^^^^^^^^^ help: consider prefixing with an underscore: `_header_size` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `page_crossed` [INFO] [stderr] --> src/cpu.rs:164:23 [INFO] [stderr] | [INFO] [stderr] 164 | let (address, page_crossed) = match instructions::INSTRUCTIONS[opcode as usize].addressing_mode { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider prefixing with an underscore: `_page_crossed` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `mapper_number` [INFO] [stderr] --> src/mapper.rs:9:12 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn new(mapper_number: u8) -> impl Mapper { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider prefixing with an underscore: `_mapper_number` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:9:9 [INFO] [stderr] | [INFO] [stderr] 9 | let mut cartridge = cartridge::parse_ines_rom(String::from("./test_roms/nestest.nes")).unwrap(); [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:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | let mut memory = memory::new(cartridge); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: function is never used: `generate_test_cartridge` [INFO] [stderr] --> src/cartridge.rs:106:1 [INFO] [stderr] | [INFO] [stderr] 106 | pub fn generate_test_cartridge(header: Header, prg_data: Vec, chr_data: Vec) -> Cartridge { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `ZeroPageX` [INFO] [stderr] --> src/instructions.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | ZeroPageX, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `ZeroPageY` [INFO] [stderr] --> src/instructions.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | ZeroPageY, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `AbsoluteX` [INFO] [stderr] --> src/instructions.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | AbsoluteX, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `AbsoluteY` [INFO] [stderr] --> src/instructions.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | AbsoluteY, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Indirect` [INFO] [stderr] --> src/instructions.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | Indirect, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `IndirectIndexed` [INFO] [stderr] --> src/instructions.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | IndirectIndexed, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `lower_bank` [INFO] [stderr] --> src/mapper0.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | lower_bank: u8, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.53s [INFO] running `"docker" "inspect" "407d86cbf58569f3722f73eea1c2ef22c1a48c6a4b4b4c42b0788c33c6eb7224"` [INFO] running `"docker" "rm" "-f" "407d86cbf58569f3722f73eea1c2ef22c1a48c6a4b4b4c42b0788c33c6eb7224"` [INFO] [stdout] 407d86cbf58569f3722f73eea1c2ef22c1a48c6a4b4b4c42b0788c33c6eb7224 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/beta-1.38-1/worker-3/1.37.0:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/beta-1.38-1/sources/1.37.0/gh/robmerrell/belmont:/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=warn" "-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" "+1.37.0" "test" "--frozen" "--no-run"` [INFO] [stdout] 9c39c30a20235c46012b28373be33af3420bb06559a8fa20ab691dc0d912c37d [INFO] running `"docker" "start" "-a" "9c39c30a20235c46012b28373be33af3420bb06559a8fa20ab691dc0d912c37d"` [INFO] [stderr] Compiling belmont v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cartridge.rs:73:21 [INFO] [stderr] | [INFO] [stderr] 73 | pub mapper: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn mapper::Mapper` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(bare_trait_objects)] on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/cpu.rs:194:17 [INFO] [stderr] | [INFO] [stderr] 194 | (1, false) [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unreachable_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x` [INFO] [stderr] --> src/cartridge.rs:111:54 [INFO] [stderr] | [INFO] [stderr] 111 | let zero_prg_data: Vec = (1..=prg_size).map(|x| 0).collect(); [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_x` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x` [INFO] [stderr] --> src/cartridge.rs:112:54 [INFO] [stderr] | [INFO] [stderr] 112 | let zero_chr_data: Vec = (1..=chr_size).map(|x| 0).collect(); [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_x` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `header_size` [INFO] [stderr] --> src/cartridge.rs:107:9 [INFO] [stderr] | [INFO] [stderr] 107 | let header_size = 16; [INFO] [stderr] | ^^^^^^^^^^^ help: consider prefixing with an underscore: `_header_size` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `page_crossed` [INFO] [stderr] --> src/cpu.rs:164:23 [INFO] [stderr] | [INFO] [stderr] 164 | let (address, page_crossed) = match instructions::INSTRUCTIONS[opcode as usize].addressing_mode { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider prefixing with an underscore: `_page_crossed` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `mapper_number` [INFO] [stderr] --> src/mapper.rs:9:12 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn new(mapper_number: u8) -> impl Mapper { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider prefixing with an underscore: `_mapper_number` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:9:9 [INFO] [stderr] | [INFO] [stderr] 9 | let mut cartridge = cartridge::parse_ines_rom(String::from("./test_roms/nestest.nes")).unwrap(); [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:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | let mut memory = memory::new(cartridge); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `ZeroPageX` [INFO] [stderr] --> src/instructions.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | ZeroPageX, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `ZeroPageY` [INFO] [stderr] --> src/instructions.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | ZeroPageY, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `AbsoluteX` [INFO] [stderr] --> src/instructions.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | AbsoluteX, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `AbsoluteY` [INFO] [stderr] --> src/instructions.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | AbsoluteY, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Indirect` [INFO] [stderr] --> src/instructions.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | Indirect, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `IndirectIndexed` [INFO] [stderr] --> src/instructions.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | IndirectIndexed, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `lower_bank` [INFO] [stderr] --> src/mapper0.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | lower_bank: u8, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2.00s [INFO] running `"docker" "inspect" "9c39c30a20235c46012b28373be33af3420bb06559a8fa20ab691dc0d912c37d"` [INFO] running `"docker" "rm" "-f" "9c39c30a20235c46012b28373be33af3420bb06559a8fa20ab691dc0d912c37d"` [INFO] [stdout] 9c39c30a20235c46012b28373be33af3420bb06559a8fa20ab691dc0d912c37d [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/beta-1.38-1/worker-3/1.37.0:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/beta-1.38-1/sources/1.37.0/gh/robmerrell/belmont:/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=warn" "-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" "+1.37.0" "test" "--frozen"` [INFO] [stdout] 315a0f8174229a3eb6113e990c2e01b1779fdef54078636ce9b96bc7c0f3ad49 [INFO] running `"docker" "start" "-a" "315a0f8174229a3eb6113e990c2e01b1779fdef54078636ce9b96bc7c0f3ad49"` [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.03s [INFO] [stderr] Running /opt/crater/target/debug/deps/belmont-853b4528094784ab [INFO] [stdout] [INFO] [stdout] running 46 tests [INFO] [stdout] test cartridge::test::test_parse_battery_backed_ram ... ok [INFO] [stdout] test cartridge::test::test_parse_mirroring_mode ... ok [INFO] [stdout] test cartridge::test::test_parse_trainer ... ok [INFO] [stdout] test cartridge::test::test_parse_mapper ... ok [INFO] [stdout] test cartridge::test::test_program_ram_banks ... ok [INFO] [stdout] test cpu::test::test_dex ... ok [INFO] [stdout] test cartridge::test::test_game_data_no_trainer_present ... ok [INFO] [stdout] test cartridge::test::test_game_data_ignore_trainer_data ... ok [INFO] [stdout] test cpu::test::test_eor ... ok [INFO] [stdout] test cpu::test::test_flags ... ok [INFO] [stdout] test cartridge::test::test_game_data ... ok [INFO] [stdout] test cpu::test::test_and ... ok [INFO] [stdout] test cpu::test::test_adc ... ok [INFO] [stdout] test cpu::test::test_cmp ... ok [INFO] [stdout] test cpu::test::test_bit ... ok [INFO] [stdout] test cpu::test::test_inx ... ok [INFO] [stdout] test cpu::test::test_dey ... ok [INFO] [stdout] test cpu::test::test_iny ... ok [INFO] [stdout] test cpu::test::test_jmp ... ok [INFO] [stdout] test cpu::test::test_jsr ... ok [INFO] [stdout] test cpu::test::test_lda ... ok [INFO] [stdout] test cpu::test::test_ldx ... ok [INFO] [stdout] test cpu::test::test_ldy ... ok [INFO] [stdout] test cpu::test::test_lsr_accumulator ... ok [INFO] [stdout] test cpu::test::test_ora ... ok [INFO] [stdout] test cpu::test::test_rti ... ok [INFO] [stdout] test cpu::test::test_rts ... ok [INFO] [stdout] test cpu::test::test_php ... ok [INFO] [stdout] test cpu::test::test_tay ... ok [INFO] [stdout] test cpu::test::test_tsx ... ok [INFO] [stdout] test cpu::test::test_pla ... ok [INFO] [stdout] test cpu::test::test_tax ... ok [INFO] [stdout] test cpu::test::test_stx ... ok [INFO] [stdout] test cpu::test::test_sbc ... ok [INFO] [stdout] test cpu::test::test_sta ... ok [INFO] [stdout] test cpu::test::test_pha ... ok [INFO] [stdout] test cpu::test::test_txs ... ok [INFO] [stdout] test cpu::test::test_txa ... ok [INFO] [stdout] test cpu::test::test_tya ... ok [INFO] [stdout] test memory::test::test_creating_a_cartridge_zeroes_out_ram ... ok [INFO] [stdout] test mapper0::test::test_read_byte_two_banks ... ok [INFO] [stdout] test memory::test::test_read_and_write_byte ... ok [INFO] [stdout] test mapper0::test::test_read_byte_mirrored_bank ... ok [INFO] [stdout] test memory::test::test_read_word_with_bug ... ok [INFO] [stdout] test cpu::test::test_relative_branching ... ok [INFO] [stdout] test memory::test::test_read_word ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 46 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] running `"docker" "inspect" "315a0f8174229a3eb6113e990c2e01b1779fdef54078636ce9b96bc7c0f3ad49"` [INFO] running `"docker" "rm" "-f" "315a0f8174229a3eb6113e990c2e01b1779fdef54078636ce9b96bc7c0f3ad49"` [INFO] [stdout] 315a0f8174229a3eb6113e990c2e01b1779fdef54078636ce9b96bc7c0f3ad49