Nov 06 13:30:49.753 INFO checking stallmanifold/ring-buffer against master#24e66c28980442a48d9458f1a4f9b76cc722dc8a+rustflags=-Dduplicate_associated_type_bindings for pr-55687 Nov 06 13:30:49.754 INFO running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-55687/worker-4/master#24e66c28980442a48d9458f1a4f9b76cc722dc8a+rustflags=-Dduplicate_associated_type_bindings:/target:rw,Z" "-v" "/mnt/big/crater/work/local/test-source/worker-4/pr-55687/master#24e66c28980442a48d9458f1a4f9b76cc722dc8a+rustflags=-Dduplicate_associated_type_bindings:/source:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/source" "-e" "USER_ID=1000" "-e" "CMD=cargo +24e66c28980442a48d9458f1a4f9b76cc722dc8a-alt check --frozen --all --all-targets" "-e" "CARGO_TARGET_DIR=/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dduplicate_associated_type_bindings" "-e" "CARGO_HOME=/cargo-home" "-e" "RUSTUP_HOME=/rustup-home" "-m" "1536M" "--network" "none" "crater"` Nov 06 13:30:50.278 INFO blam! 989bcf0d23168fee4b32f08b76d52a18ea3ec7688c6758463e3cefa1c29a31fb Nov 06 13:30:50.288 INFO running `"docker" "start" "-a" "989bcf0d23168fee4b32f08b76d52a18ea3ec7688c6758463e3cefa1c29a31fb"` Nov 06 13:30:52.056 INFO kablam! usermod: no changes Nov 06 13:30:52.176 INFO kablam! Checking ring-buffer v0.1.0 (/source) Nov 06 13:30:52.460 INFO kablam! warning: unused import: `ring_buffer::RingBuffer` Nov 06 13:30:52.460 INFO kablam! --> src/tests.rs:1:5 Nov 06 13:30:52.460 INFO kablam! | Nov 06 13:30:52.460 INFO kablam! 1 | use ring_buffer::RingBuffer; Nov 06 13:30:52.460 INFO kablam! | ^^^^^^^^^^^^^^^^^^^^^^^ Nov 06 13:30:52.460 INFO kablam! | Nov 06 13:30:52.462 INFO kablam! = note: #[warn(unused_imports)] on by default Nov 06 13:30:52.462 INFO kablam! Nov 06 13:30:52.462 INFO kablam! warning: unused imports: `Read`, `Write` Nov 06 13:30:52.462 INFO kablam! --> src/tests.rs:2:15 Nov 06 13:30:52.462 INFO kablam! | Nov 06 13:30:52.462 INFO kablam! 2 | use std::io::{Read, Write}; Nov 06 13:30:52.462 INFO kablam! | ^^^^ ^^^^^ Nov 06 13:30:52.462 INFO kablam! Nov 06 13:30:52.561 INFO kablam! warning: unused variable: `i` Nov 06 13:30:52.561 INFO kablam! --> src/ring_buffer.rs:24:13 Nov 06 13:30:52.561 INFO kablam! | Nov 06 13:30:52.561 INFO kablam! 24 | for i in 0..buffer.capacity() { Nov 06 13:30:52.561 INFO kablam! | ^ help: consider using `_i` instead Nov 06 13:30:52.561 INFO kablam! | Nov 06 13:30:52.564 INFO kablam! = note: #[warn(unused_variables)] on by default Nov 06 13:30:52.564 INFO kablam! Nov 06 13:30:52.564 INFO kablam! warning: unused variable: `but` Nov 06 13:30:52.564 INFO kablam! --> src/ring_buffer.rs:132:24 Nov 06 13:30:52.564 INFO kablam! | Nov 06 13:30:52.564 INFO kablam! 132 | fn read(&mut self, but: &mut [u8]) -> io::Result { Nov 06 13:30:52.564 INFO kablam! | ^^^ help: consider using `_but` instead Nov 06 13:30:52.564 INFO kablam! Nov 06 13:30:52.564 INFO kablam! warning: unused variable: `buf` Nov 06 13:30:52.564 INFO kablam! --> src/ring_buffer.rs:140:25 Nov 06 13:30:52.564 INFO kablam! | Nov 06 13:30:52.564 INFO kablam! 140 | fn write(&mut self, buf: &[u8]) -> io::Result { Nov 06 13:30:52.564 INFO kablam! | ^^^ help: consider using `_buf` instead Nov 06 13:30:52.564 INFO kablam! Nov 06 13:30:52.589 INFO kablam! warning: field is never used: `buffer` Nov 06 13:30:52.589 INFO kablam! --> src/ring_buffer.rs:14:5 Nov 06 13:30:52.589 INFO kablam! | Nov 06 13:30:52.589 INFO kablam! 14 | buffer: Box>, Nov 06 13:30:52.589 INFO kablam! | ^^^^^^^^^^^^^^^^^^^^ Nov 06 13:30:52.589 INFO kablam! | Nov 06 13:30:52.589 INFO kablam! = note: #[warn(dead_code)] on by default Nov 06 13:30:52.589 INFO kablam! Nov 06 13:30:52.589 INFO kablam! warning: field is never used: `capacity` Nov 06 13:30:52.589 INFO kablam! --> src/ring_buffer.rs:15:5 Nov 06 13:30:52.589 INFO kablam! | Nov 06 13:30:52.589 INFO kablam! 15 | capacity: usize, Nov 06 13:30:52.589 INFO kablam! | ^^^^^^^^^^^^^^^ Nov 06 13:30:52.589 INFO kablam! Nov 06 13:30:52.589 INFO kablam! warning: field is never used: `start` Nov 06 13:30:52.589 INFO kablam! --> src/ring_buffer.rs:16:5 Nov 06 13:30:52.589 INFO kablam! | Nov 06 13:30:52.589 INFO kablam! 16 | start: usize, Nov 06 13:30:52.589 INFO kablam! | ^^^^^^^^^^^^^ Nov 06 13:30:52.589 INFO kablam! Nov 06 13:30:52.589 INFO kablam! warning: field is never used: `end` Nov 06 13:30:52.589 INFO kablam! --> src/ring_buffer.rs:17:5 Nov 06 13:30:52.589 INFO kablam! | Nov 06 13:30:52.589 INFO kablam! 17 | end: usize, Nov 06 13:30:52.589 INFO kablam! | ^^^^^^^^^^^^^ Nov 06 13:30:52.589 INFO kablam! Nov 06 13:30:52.589 INFO kablam! warning: method is never used: `new` Nov 06 13:30:52.589 INFO kablam! --> src/ring_buffer.rs:21:5 Nov 06 13:30:52.589 INFO kablam! | Nov 06 13:30:52.589 INFO kablam! 21 | fn new(capacity: usize) -> RingBuffer { Nov 06 13:30:52.589 INFO kablam! | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 06 13:30:52.589 INFO kablam! Nov 06 13:30:52.589 INFO kablam! warning: method is never used: `read_buf_amount` Nov 06 13:30:52.589 INFO kablam! --> src/ring_buffer.rs:36:5 Nov 06 13:30:52.589 INFO kablam! | Nov 06 13:30:52.589 INFO kablam! 36 | fn read_buf_amount(&mut self, target: &mut [u8], amount: usize) -> Result { Nov 06 13:30:52.589 INFO kablam! | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 06 13:30:52.589 INFO kablam! Nov 06 13:30:52.589 INFO kablam! warning: method is never used: `write_buf_amount` Nov 06 13:30:52.589 INFO kablam! --> src/ring_buffer.rs:57:5 Nov 06 13:30:52.589 INFO kablam! | Nov 06 13:30:52.589 INFO kablam! 57 | fn write_buf_amount(&mut self, data: &[u8], amount: usize) -> Result { Nov 06 13:30:52.589 INFO kablam! | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 06 13:30:52.589 INFO kablam! Nov 06 13:30:52.589 INFO kablam! warning: method is never used: `is_empty` Nov 06 13:30:52.589 INFO kablam! --> src/ring_buffer.rs:80:5 Nov 06 13:30:52.589 INFO kablam! | Nov 06 13:30:52.589 INFO kablam! 80 | fn is_empty(&self) -> bool { Nov 06 13:30:52.589 INFO kablam! | ^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 06 13:30:52.589 INFO kablam! Nov 06 13:30:52.589 INFO kablam! warning: method is never used: `is_full` Nov 06 13:30:52.589 INFO kablam! --> src/ring_buffer.rs:85:5 Nov 06 13:30:52.589 INFO kablam! | Nov 06 13:30:52.589 INFO kablam! 85 | fn is_full(&self) -> bool { Nov 06 13:30:52.589 INFO kablam! | ^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 06 13:30:52.589 INFO kablam! Nov 06 13:30:52.589 INFO kablam! warning: method is never used: `available_data` Nov 06 13:30:52.589 INFO kablam! --> src/ring_buffer.rs:90:5 Nov 06 13:30:52.589 INFO kablam! | Nov 06 13:30:52.589 INFO kablam! 90 | fn available_data(&self) -> usize { Nov 06 13:30:52.589 INFO kablam! | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 06 13:30:52.589 INFO kablam! Nov 06 13:30:52.589 INFO kablam! warning: method is never used: `available_space` Nov 06 13:30:52.589 INFO kablam! --> src/ring_buffer.rs:95:5 Nov 06 13:30:52.589 INFO kablam! | Nov 06 13:30:52.589 INFO kablam! 95 | fn available_space(&self) -> usize { Nov 06 13:30:52.589 INFO kablam! | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 06 13:30:52.589 INFO kablam! Nov 06 13:30:52.589 INFO kablam! warning: method is never used: `gets` Nov 06 13:30:52.589 INFO kablam! --> src/ring_buffer.rs:99:5 Nov 06 13:30:52.589 INFO kablam! | Nov 06 13:30:52.589 INFO kablam! 99 | fn gets(&mut self, amount: usize) -> Result, RingBufferError> { Nov 06 13:30:52.589 INFO kablam! | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 06 13:30:52.589 INFO kablam! Nov 06 13:30:52.589 INFO kablam! warning: method is never used: `puts` Nov 06 13:30:52.589 INFO kablam! --> src/ring_buffer.rs:116:5 Nov 06 13:30:52.589 INFO kablam! | Nov 06 13:30:52.589 INFO kablam! 116 | fn puts(&mut self, data: &[u8]) -> Result { Nov 06 13:30:52.590 INFO kablam! | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 06 13:30:52.590 INFO kablam! Nov 06 13:30:52.590 INFO kablam! warning: method is never used: `commit_read` Nov 06 13:30:52.590 INFO kablam! --> src/ring_buffer.rs:121:5 Nov 06 13:30:52.590 INFO kablam! | Nov 06 13:30:52.590 INFO kablam! 121 | fn commit_read(&mut self, amount: usize) { Nov 06 13:30:52.590 INFO kablam! | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 06 13:30:52.590 INFO kablam! Nov 06 13:30:52.590 INFO kablam! warning: method is never used: `commit_write` Nov 06 13:30:52.590 INFO kablam! --> src/ring_buffer.rs:126:5 Nov 06 13:30:52.590 INFO kablam! | Nov 06 13:30:52.590 INFO kablam! 126 | fn commit_write(&mut self, amount: usize) { Nov 06 13:30:52.590 INFO kablam! | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 06 13:30:52.590 INFO kablam! Nov 06 13:30:52.631 INFO kablam! warning: comparison is useless due to type limits Nov 06 13:30:52.631 INFO kablam! --> src/ring_buffer.rs:111:17 Nov 06 13:30:52.631 INFO kablam! | Nov 06 13:30:52.631 INFO kablam! 111 | assert!(self.available_data() >= 0, "Error in read commit."); Nov 06 13:30:52.631 INFO kablam! | ^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 06 13:30:52.631 INFO kablam! | Nov 06 13:30:52.631 INFO kablam! = note: #[warn(unused_comparisons)] on by default Nov 06 13:30:52.631 INFO kablam! Nov 06 13:30:52.748 INFO kablam! warning: unused variable: `i` Nov 06 13:30:52.748 INFO kablam! --> src/ring_buffer.rs:24:13 Nov 06 13:30:52.748 INFO kablam! | Nov 06 13:30:52.748 INFO kablam! 24 | for i in 0..buffer.capacity() { Nov 06 13:30:52.748 INFO kablam! | ^ help: consider using `_i` instead Nov 06 13:30:52.748 INFO kablam! | Nov 06 13:30:52.748 INFO kablam! = note: #[warn(unused_variables)] on by default Nov 06 13:30:52.748 INFO kablam! Nov 06 13:30:52.748 INFO kablam! warning: unused variable: `but` Nov 06 13:30:52.748 INFO kablam! --> src/ring_buffer.rs:132:24 Nov 06 13:30:52.748 INFO kablam! | Nov 06 13:30:52.748 INFO kablam! 132 | fn read(&mut self, but: &mut [u8]) -> io::Result { Nov 06 13:30:52.748 INFO kablam! | ^^^ help: consider using `_but` instead Nov 06 13:30:52.748 INFO kablam! Nov 06 13:30:52.748 INFO kablam! warning: unused variable: `buf` Nov 06 13:30:52.748 INFO kablam! --> src/ring_buffer.rs:140:25 Nov 06 13:30:52.748 INFO kablam! | Nov 06 13:30:52.748 INFO kablam! 140 | fn write(&mut self, buf: &[u8]) -> io::Result { Nov 06 13:30:52.748 INFO kablam! | ^^^ help: consider using `_buf` instead Nov 06 13:30:52.748 INFO kablam! Nov 06 13:30:52.752 INFO kablam! warning: field is never used: `buffer` Nov 06 13:30:52.752 INFO kablam! --> src/ring_buffer.rs:14:5 Nov 06 13:30:52.752 INFO kablam! | Nov 06 13:30:52.752 INFO kablam! 14 | buffer: Box>, Nov 06 13:30:52.752 INFO kablam! | ^^^^^^^^^^^^^^^^^^^^ Nov 06 13:30:52.752 INFO kablam! | Nov 06 13:30:52.752 INFO kablam! = note: #[warn(dead_code)] on by default Nov 06 13:30:52.752 INFO kablam! Nov 06 13:30:52.752 INFO kablam! warning: field is never used: `capacity` Nov 06 13:30:52.752 INFO kablam! --> src/ring_buffer.rs:15:5 Nov 06 13:30:52.752 INFO kablam! | Nov 06 13:30:52.752 INFO kablam! 15 | capacity: usize, Nov 06 13:30:52.752 INFO kablam! | ^^^^^^^^^^^^^^^ Nov 06 13:30:52.752 INFO kablam! Nov 06 13:30:52.752 INFO kablam! warning: field is never used: `start` Nov 06 13:30:52.752 INFO kablam! --> src/ring_buffer.rs:16:5 Nov 06 13:30:52.752 INFO kablam! | Nov 06 13:30:52.752 INFO kablam! 16 | start: usize, Nov 06 13:30:52.753 INFO kablam! | ^^^^^^^^^^^^^ Nov 06 13:30:52.753 INFO kablam! Nov 06 13:30:52.753 INFO kablam! warning: field is never used: `end` Nov 06 13:30:52.753 INFO kablam! --> src/ring_buffer.rs:17:5 Nov 06 13:30:52.753 INFO kablam! | Nov 06 13:30:52.753 INFO kablam! 17 | end: usize, Nov 06 13:30:52.753 INFO kablam! | ^^^^^^^^^^^^^ Nov 06 13:30:52.753 INFO kablam! Nov 06 13:30:52.753 INFO kablam! warning: method is never used: `new` Nov 06 13:30:52.753 INFO kablam! --> src/ring_buffer.rs:21:5 Nov 06 13:30:52.753 INFO kablam! | Nov 06 13:30:52.753 INFO kablam! 21 | fn new(capacity: usize) -> RingBuffer { Nov 06 13:30:52.753 INFO kablam! | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 06 13:30:52.753 INFO kablam! Nov 06 13:30:52.753 INFO kablam! warning: method is never used: `read_buf_amount` Nov 06 13:30:52.753 INFO kablam! --> src/ring_buffer.rs:36:5 Nov 06 13:30:52.753 INFO kablam! | Nov 06 13:30:52.753 INFO kablam! 36 | fn read_buf_amount(&mut self, target: &mut [u8], amount: usize) -> Result { Nov 06 13:30:52.753 INFO kablam! | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 06 13:30:52.753 INFO kablam! Nov 06 13:30:52.753 INFO kablam! warning: method is never used: `write_buf_amount` Nov 06 13:30:52.753 INFO kablam! --> src/ring_buffer.rs:57:5 Nov 06 13:30:52.753 INFO kablam! | Nov 06 13:30:52.753 INFO kablam! 57 | fn write_buf_amount(&mut self, data: &[u8], amount: usize) -> Result { Nov 06 13:30:52.753 INFO kablam! | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 06 13:30:52.753 INFO kablam! Nov 06 13:30:52.753 INFO kablam! warning: method is never used: `is_empty` Nov 06 13:30:52.753 INFO kablam! --> src/ring_buffer.rs:80:5 Nov 06 13:30:52.753 INFO kablam! | Nov 06 13:30:52.753 INFO kablam! 80 | fn is_empty(&self) -> bool { Nov 06 13:30:52.753 INFO kablam! | ^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 06 13:30:52.753 INFO kablam! Nov 06 13:30:52.753 INFO kablam! warning: method is never used: `is_full` Nov 06 13:30:52.753 INFO kablam! --> src/ring_buffer.rs:85:5 Nov 06 13:30:52.753 INFO kablam! | Nov 06 13:30:52.753 INFO kablam! 85 | fn is_full(&self) -> bool { Nov 06 13:30:52.753 INFO kablam! | ^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 06 13:30:52.753 INFO kablam! Nov 06 13:30:52.753 INFO kablam! warning: method is never used: `available_data` Nov 06 13:30:52.753 INFO kablam! --> src/ring_buffer.rs:90:5 Nov 06 13:30:52.753 INFO kablam! | Nov 06 13:30:52.753 INFO kablam! 90 | fn available_data(&self) -> usize { Nov 06 13:30:52.753 INFO kablam! | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 06 13:30:52.753 INFO kablam! Nov 06 13:30:52.753 INFO kablam! warning: method is never used: `available_space` Nov 06 13:30:52.753 INFO kablam! --> src/ring_buffer.rs:95:5 Nov 06 13:30:52.753 INFO kablam! | Nov 06 13:30:52.753 INFO kablam! 95 | fn available_space(&self) -> usize { Nov 06 13:30:52.753 INFO kablam! | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 06 13:30:52.753 INFO kablam! Nov 06 13:30:52.753 INFO kablam! warning: method is never used: `gets` Nov 06 13:30:52.753 INFO kablam! --> src/ring_buffer.rs:99:5 Nov 06 13:30:52.753 INFO kablam! | Nov 06 13:30:52.753 INFO kablam! 99 | fn gets(&mut self, amount: usize) -> Result, RingBufferError> { Nov 06 13:30:52.753 INFO kablam! | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 06 13:30:52.753 INFO kablam! Nov 06 13:30:52.753 INFO kablam! warning: method is never used: `puts` Nov 06 13:30:52.753 INFO kablam! --> src/ring_buffer.rs:116:5 Nov 06 13:30:52.753 INFO kablam! | Nov 06 13:30:52.753 INFO kablam! 116 | fn puts(&mut self, data: &[u8]) -> Result { Nov 06 13:30:52.753 INFO kablam! | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 06 13:30:52.753 INFO kablam! Nov 06 13:30:52.753 INFO kablam! warning: method is never used: `commit_read` Nov 06 13:30:52.753 INFO kablam! --> src/ring_buffer.rs:121:5 Nov 06 13:30:52.753 INFO kablam! | Nov 06 13:30:52.753 INFO kablam! 121 | fn commit_read(&mut self, amount: usize) { Nov 06 13:30:52.753 INFO kablam! | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 06 13:30:52.753 INFO kablam! Nov 06 13:30:52.753 INFO kablam! warning: method is never used: `commit_write` Nov 06 13:30:52.753 INFO kablam! --> src/ring_buffer.rs:126:5 Nov 06 13:30:52.753 INFO kablam! | Nov 06 13:30:52.753 INFO kablam! 126 | fn commit_write(&mut self, amount: usize) { Nov 06 13:30:52.753 INFO kablam! | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 06 13:30:52.753 INFO kablam! Nov 06 13:30:52.766 INFO kablam! warning: comparison is useless due to type limits Nov 06 13:30:52.766 INFO kablam! --> src/ring_buffer.rs:111:17 Nov 06 13:30:52.766 INFO kablam! | Nov 06 13:30:52.766 INFO kablam! 111 | assert!(self.available_data() >= 0, "Error in read commit."); Nov 06 13:30:52.766 INFO kablam! | ^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 06 13:30:52.766 INFO kablam! | Nov 06 13:30:52.766 INFO kablam! = note: #[warn(unused_comparisons)] on by default Nov 06 13:30:52.766 INFO kablam! Nov 06 13:30:52.775 INFO kablam! Finished dev [unoptimized + debuginfo] target(s) in 0.67s Nov 06 13:30:52.780 INFO kablam! su: No module specific data is present Nov 06 13:30:53.556 INFO running `"docker" "rm" "-f" "989bcf0d23168fee4b32f08b76d52a18ea3ec7688c6758463e3cefa1c29a31fb"` Nov 06 13:30:53.839 INFO blam! 989bcf0d23168fee4b32f08b76d52a18ea3ec7688c6758463e3cefa1c29a31fb