[INFO] updating cached repository danielschemmel/drsat [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/danielschemmel/drsat [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/danielschemmel/drsat" "work/ex/beta-1.38-1/sources/1.37.0/gh/danielschemmel/drsat"` [INFO] [stderr] Cloning into 'work/ex/beta-1.38-1/sources/1.37.0/gh/danielschemmel/drsat'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/danielschemmel/drsat" "work/ex/beta-1.38-1/sources/beta-2019-08-13/gh/danielschemmel/drsat"` [INFO] [stderr] Cloning into 'work/ex/beta-1.38-1/sources/beta-2019-08-13/gh/danielschemmel/drsat'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 9b61bf57d84caa5800084df3a4e587c74480b6c5 [INFO] sha for GitHub repo danielschemmel/drsat: 9b61bf57d84caa5800084df3a4e587c74480b6c5 [INFO] validating manifest of danielschemmel/drsat 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 danielschemmel/drsat 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 danielschemmel/drsat [INFO] finished frobbing danielschemmel/drsat [INFO] frobbed toml for danielschemmel/drsat written to work/ex/beta-1.38-1/sources/1.37.0/gh/danielschemmel/drsat/Cargo.toml [INFO] started frobbing danielschemmel/drsat [INFO] finished frobbing danielschemmel/drsat [INFO] frobbed toml for danielschemmel/drsat written to work/ex/beta-1.38-1/sources/beta-2019-08-13/gh/danielschemmel/drsat/Cargo.toml [INFO] crate danielschemmel/drsat 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] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+beta-2019-08-13" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] testing danielschemmel/drsat 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-0/1.37.0:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/beta-1.38-1/sources/1.37.0/gh/danielschemmel/drsat:/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] 20e5c3db01ab9c1c7db50d97d4783992888ab4066a8ba62d22c9e441b83a0077 [INFO] running `"docker" "start" "-a" "20e5c3db01ab9c1c7db50d97d4783992888ab4066a8ba62d22c9e441b83a0077"` [INFO] [stderr] Compiling cc v1.0.22 [INFO] [stderr] Compiling filetime v0.2.1 [INFO] [stderr] Compiling libz-sys v1.0.20 [INFO] [stderr] Compiling openssl-sys v0.9.35 [INFO] [stderr] Compiling cmake v0.1.33 [INFO] [stderr] Compiling backtrace-sys v0.1.24 [INFO] [stderr] Compiling curl-sys v0.4.8 [INFO] [stderr] Compiling miniz-sys v0.1.10 [INFO] [stderr] Compiling lzma-sys v0.1.10 [INFO] [stderr] Compiling bzip2-sys v0.1.6 [INFO] [stderr] Compiling flate2 v1.0.2 [INFO] [stderr] Compiling libssh2-sys v0.2.10 [INFO] [stderr] Compiling libgit2-sys v0.7.7 [INFO] [stderr] Compiling xz2 v0.1.5 [INFO] [stderr] Compiling bzip2 v0.3.3 [INFO] [stderr] Compiling backtrace v0.3.9 [INFO] [stderr] Compiling error-chain v0.12.0 [INFO] [stderr] Compiling git2 v0.7.5 [INFO] [stderr] Compiling drsat v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting [INFO] [stderr] --> build.rs:13:2 [INFO] [stderr] | [INFO] [stderr] 13 | error_chain! { [INFO] [stderr] | _____^ [INFO] [stderr] 14 | | foreign_links { [INFO] [stderr] 15 | | Io(::std::io::Error); [INFO] [stderr] 16 | | Git(::git2::Error); [INFO] [stderr] ... | [INFO] [stderr] 22 | | } [INFO] [stderr] 23 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting [INFO] [stderr] --> build.rs:13:2 [INFO] [stderr] | [INFO] [stderr] 13 | error_chain! { [INFO] [stderr] | _____^ [INFO] [stderr] 14 | | foreign_links { [INFO] [stderr] 15 | | Io(::std::io::Error); [INFO] [stderr] 16 | | Git(::git2::Error); [INFO] [stderr] ... | [INFO] [stderr] 22 | | } [INFO] [stderr] 23 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cnf/literal.rs:33:54 [INFO] [stderr] | [INFO] [stderr] 33 | pub fn print(&self, f: &mut io::Write, name: &T) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn io::Write` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(bare_trait_objects)] on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cnf/clause.rs:72:54 [INFO] [stderr] | [INFO] [stderr] 72 | pub fn print(&self, f: &mut io::Write, variable_names: &IndexedVec) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn io::Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cnf/problem/print.rs:8:35 [INFO] [stderr] | [INFO] [stderr] 8 | pub fn print(&self, writer: &mut io::Write) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn io::Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cnf/problem/print.rs:17:41 [INFO] [stderr] | [INFO] [stderr] 17 | pub fn print_model(&self, writer: &mut io::Write, indent: &str) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn io::Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cnf/problem/print.rs:26:43 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn print_clauses(&self, writer: &mut io::Write) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn io::Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cnf/problem/print.rs:39:50 [INFO] [stderr] | [INFO] [stderr] 39 | pub fn print_conflict_histo(&self, writer: &mut io::Write) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn io::Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cnf/problem/print.rs:51:42 [INFO] [stderr] | [INFO] [stderr] 51 | pub fn print_dimacs(&self, writer: &mut io::Write) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn io::Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cnf/util.rs:5:28 [INFO] [stderr] | [INFO] [stderr] 5 | pub fn print_stats(f: &mut io::Write, indent: &str) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn io::Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/driver/stats.rs:20:18 [INFO] [stderr] | [INFO] [stderr] 20 | fn print(f: &mut Write) -> Result<()> { [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/gp/ast/util.rs:4:28 [INFO] [stderr] | [INFO] [stderr] 4 | pub fn print_stats(f: &mut Write, indent: &str) -> Result<(), Error> { [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/io/open.rs:10:44 [INFO] [stderr] | [INFO] [stderr] 10 | pub fn open_file(path: &str) -> Result> { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/dimacs.rs:12:25 [INFO] [stderr] | [INFO] [stderr] 12 | fn skip_ws(reader: &mut BufRead) -> Result<()> { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/dimacs.rs:32:31 [INFO] [stderr] | [INFO] [stderr] 32 | fn skip_past_eol(reader: &mut BufRead) -> Result<()> { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/dimacs.rs:50:31 [INFO] [stderr] | [INFO] [stderr] 50 | fn skip_comments(reader: &mut BufRead) -> Result<()> { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/dimacs.rs:68:29 [INFO] [stderr] | [INFO] [stderr] 68 | fn parse_usize(reader: &mut BufRead) -> Result { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/dimacs.rs:107:30 [INFO] [stderr] | [INFO] [stderr] 107 | fn parse_header(reader: &mut BufRead) -> Result<(usize, usize)> { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/dimacs.rs:131:32 [INFO] [stderr] | [INFO] [stderr] 131 | fn parse_variable(reader: &mut BufRead) -> Result<(usize, bool)> { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/dimacs.rs:145:30 [INFO] [stderr] | [INFO] [stderr] 145 | fn parse_clause(reader: &mut BufRead, builder: &mut ProblemBuilder) -> Result<()> { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/dimacs.rs:163:27 [INFO] [stderr] | [INFO] [stderr] 163 | pub fn parse(reader: &mut BufRead) -> Result> { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/npn.rs:12:25 [INFO] [stderr] | [INFO] [stderr] 12 | fn skip_ws(reader: &mut BufRead) -> Result<()> { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/npn.rs:32:31 [INFO] [stderr] | [INFO] [stderr] 32 | fn skip_past_eol(reader: &mut BufRead) -> Result<()> { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/npn.rs:50:31 [INFO] [stderr] | [INFO] [stderr] 50 | fn skip_comments(reader: &mut BufRead) -> Result<()> { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/npn.rs:68:29 [INFO] [stderr] | [INFO] [stderr] 68 | fn parse_usize(reader: &mut BufRead) -> Result { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/npn.rs:107:30 [INFO] [stderr] | [INFO] [stderr] 107 | fn parse_header(reader: &mut BufRead) -> Result<(usize, usize)> { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/npn.rs:131:32 [INFO] [stderr] | [INFO] [stderr] 131 | fn parse_variable(reader: &mut BufRead) -> Result<(usize, bool)> { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/npn.rs:145:30 [INFO] [stderr] | [INFO] [stderr] 145 | fn parse_clause(reader: &mut BufRead, builder: &mut ProblemBuilder) -> Result<()> { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/npn.rs:163:27 [INFO] [stderr] | [INFO] [stderr] 163 | pub fn parse(reader: &mut BufRead) -> Result> { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/sudoku.rs:7:27 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn parse(reader: &mut Read, rows: usize, cols: usize) -> Result { [INFO] [stderr] | ^^^^ help: use `dyn`: `dyn Read` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/sudoku/board.rs:256:42 [INFO] [stderr] | [INFO] [stderr] 256 | pub fn print_dimacs(&self, writer: &mut io::Write) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn io::Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util/indexed_vec.rs:136:19 [INFO] [stderr] | [INFO] [stderr] 136 | (&self.data as &fmt::Debug).fmt(f) [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn fmt::Debug` [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting [INFO] [stderr] --> src/driver/errors.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | / error_chain! { [INFO] [stderr] 5 | | links { [INFO] [stderr] 6 | | Io(::io::errors::Error, ::io::errors::ErrorKind); [INFO] [stderr] 7 | | } [INFO] [stderr] ... | [INFO] [stderr] 17 | | } [INFO] [stderr] 18 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting [INFO] [stderr] --> src/driver/errors.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | / error_chain! { [INFO] [stderr] 5 | | links { [INFO] [stderr] 6 | | Io(::io::errors::Error, ::io::errors::ErrorKind); [INFO] [stderr] 7 | | } [INFO] [stderr] ... | [INFO] [stderr] 17 | | } [INFO] [stderr] 18 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting [INFO] [stderr] --> src/io/errors.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | / error_chain! { [INFO] [stderr] 4 | | foreign_links { [INFO] [stderr] 5 | | Io(io::Error); [INFO] [stderr] 6 | | } [INFO] [stderr] 7 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting [INFO] [stderr] --> src/parser/errors.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / error_chain! { [INFO] [stderr] 2 | | foreign_links { [INFO] [stderr] 3 | | Io(::std::io::Error); [INFO] [stderr] 4 | | } [INFO] [stderr] ... | [INFO] [stderr] 33 | | } [INFO] [stderr] 34 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cnf/problem/precompute.rs:6:19 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn precompute(mut variables: &mut IndexedVec, mut clauses: &mut Vec>) -> SolverResult { [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/cnf/problem/precompute.rs:6:73 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn precompute(mut variables: &mut IndexedVec, mut clauses: &mut Vec>) -> SolverResult { [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 3m 33s [INFO] running `"docker" "inspect" "20e5c3db01ab9c1c7db50d97d4783992888ab4066a8ba62d22c9e441b83a0077"` [INFO] running `"docker" "rm" "-f" "20e5c3db01ab9c1c7db50d97d4783992888ab4066a8ba62d22c9e441b83a0077"` [INFO] [stdout] 20e5c3db01ab9c1c7db50d97d4783992888ab4066a8ba62d22c9e441b83a0077 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/beta-1.38-1/worker-0/1.37.0:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/beta-1.38-1/sources/1.37.0/gh/danielschemmel/drsat:/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] 2569cc9c879dc48f078d607238a04b56b54ef76a8aa5c13ddfee2b17d9916661 [INFO] running `"docker" "start" "-a" "2569cc9c879dc48f078d607238a04b56b54ef76a8aa5c13ddfee2b17d9916661"` [INFO] [stderr] Compiling drsat v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cnf/literal.rs:33:54 [INFO] [stderr] | [INFO] [stderr] 33 | pub fn print(&self, f: &mut io::Write, name: &T) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn io::Write` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(bare_trait_objects)] on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cnf/clause.rs:72:54 [INFO] [stderr] | [INFO] [stderr] 72 | pub fn print(&self, f: &mut io::Write, variable_names: &IndexedVec) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn io::Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cnf/problem/print.rs:8:35 [INFO] [stderr] | [INFO] [stderr] 8 | pub fn print(&self, writer: &mut io::Write) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn io::Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cnf/problem/print.rs:17:41 [INFO] [stderr] | [INFO] [stderr] 17 | pub fn print_model(&self, writer: &mut io::Write, indent: &str) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn io::Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cnf/problem/print.rs:26:43 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn print_clauses(&self, writer: &mut io::Write) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn io::Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cnf/problem/print.rs:39:50 [INFO] [stderr] | [INFO] [stderr] 39 | pub fn print_conflict_histo(&self, writer: &mut io::Write) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn io::Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cnf/problem/print.rs:51:42 [INFO] [stderr] | [INFO] [stderr] 51 | pub fn print_dimacs(&self, writer: &mut io::Write) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn io::Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cnf/util.rs:5:28 [INFO] [stderr] | [INFO] [stderr] 5 | pub fn print_stats(f: &mut io::Write, indent: &str) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn io::Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/driver/stats.rs:20:18 [INFO] [stderr] | [INFO] [stderr] 20 | fn print(f: &mut Write) -> Result<()> { [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/gp/ast/util.rs:4:28 [INFO] [stderr] | [INFO] [stderr] 4 | pub fn print_stats(f: &mut Write, indent: &str) -> Result<(), Error> { [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/io/open.rs:10:44 [INFO] [stderr] | [INFO] [stderr] 10 | pub fn open_file(path: &str) -> Result> { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/dimacs.rs:12:25 [INFO] [stderr] | [INFO] [stderr] 12 | fn skip_ws(reader: &mut BufRead) -> Result<()> { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/dimacs.rs:32:31 [INFO] [stderr] | [INFO] [stderr] 32 | fn skip_past_eol(reader: &mut BufRead) -> Result<()> { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/dimacs.rs:50:31 [INFO] [stderr] | [INFO] [stderr] 50 | fn skip_comments(reader: &mut BufRead) -> Result<()> { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/dimacs.rs:68:29 [INFO] [stderr] | [INFO] [stderr] 68 | fn parse_usize(reader: &mut BufRead) -> Result { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/dimacs.rs:107:30 [INFO] [stderr] | [INFO] [stderr] 107 | fn parse_header(reader: &mut BufRead) -> Result<(usize, usize)> { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/dimacs.rs:131:32 [INFO] [stderr] | [INFO] [stderr] 131 | fn parse_variable(reader: &mut BufRead) -> Result<(usize, bool)> { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/dimacs.rs:145:30 [INFO] [stderr] | [INFO] [stderr] 145 | fn parse_clause(reader: &mut BufRead, builder: &mut ProblemBuilder) -> Result<()> { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/dimacs.rs:163:27 [INFO] [stderr] | [INFO] [stderr] 163 | pub fn parse(reader: &mut BufRead) -> Result> { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/npn.rs:12:25 [INFO] [stderr] | [INFO] [stderr] 12 | fn skip_ws(reader: &mut BufRead) -> Result<()> { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/npn.rs:32:31 [INFO] [stderr] | [INFO] [stderr] 32 | fn skip_past_eol(reader: &mut BufRead) -> Result<()> { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/npn.rs:50:31 [INFO] [stderr] | [INFO] [stderr] 50 | fn skip_comments(reader: &mut BufRead) -> Result<()> { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/npn.rs:68:29 [INFO] [stderr] | [INFO] [stderr] 68 | fn parse_usize(reader: &mut BufRead) -> Result { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/npn.rs:107:30 [INFO] [stderr] | [INFO] [stderr] 107 | fn parse_header(reader: &mut BufRead) -> Result<(usize, usize)> { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/npn.rs:131:32 [INFO] [stderr] | [INFO] [stderr] 131 | fn parse_variable(reader: &mut BufRead) -> Result<(usize, bool)> { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/npn.rs:145:30 [INFO] [stderr] | [INFO] [stderr] 145 | fn parse_clause(reader: &mut BufRead, builder: &mut ProblemBuilder) -> Result<()> { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/npn.rs:163:27 [INFO] [stderr] | [INFO] [stderr] 163 | pub fn parse(reader: &mut BufRead) -> Result> { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn BufRead` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser/sudoku.rs:7:27 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn parse(reader: &mut Read, rows: usize, cols: usize) -> Result { [INFO] [stderr] | ^^^^ help: use `dyn`: `dyn Read` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/sudoku/board.rs:256:42 [INFO] [stderr] | [INFO] [stderr] 256 | pub fn print_dimacs(&self, writer: &mut io::Write) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn io::Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util/indexed_vec.rs:136:19 [INFO] [stderr] | [INFO] [stderr] 136 | (&self.data as &fmt::Debug).fmt(f) [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn fmt::Debug` [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting [INFO] [stderr] --> src/driver/errors.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | / error_chain! { [INFO] [stderr] 5 | | links { [INFO] [stderr] 6 | | Io(::io::errors::Error, ::io::errors::ErrorKind); [INFO] [stderr] 7 | | } [INFO] [stderr] ... | [INFO] [stderr] 17 | | } [INFO] [stderr] 18 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting [INFO] [stderr] --> src/driver/errors.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | / error_chain! { [INFO] [stderr] 5 | | links { [INFO] [stderr] 6 | | Io(::io::errors::Error, ::io::errors::ErrorKind); [INFO] [stderr] 7 | | } [INFO] [stderr] ... | [INFO] [stderr] 17 | | } [INFO] [stderr] 18 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting [INFO] [stderr] --> src/io/errors.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | / error_chain! { [INFO] [stderr] 4 | | foreign_links { [INFO] [stderr] 5 | | Io(io::Error); [INFO] [stderr] 6 | | } [INFO] [stderr] 7 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting [INFO] [stderr] --> src/parser/errors.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / error_chain! { [INFO] [stderr] 2 | | foreign_links { [INFO] [stderr] 3 | | Io(::std::io::Error); [INFO] [stderr] 4 | | } [INFO] [stderr] ... | [INFO] [stderr] 33 | | } [INFO] [stderr] 34 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cnf/problem/precompute.rs:6:19 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn precompute(mut variables: &mut IndexedVec, mut clauses: &mut Vec>) -> SolverResult { [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/cnf/problem/precompute.rs:6:73 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn precompute(mut variables: &mut IndexedVec, mut clauses: &mut Vec>) -> SolverResult { [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 8.28s [INFO] running `"docker" "inspect" "2569cc9c879dc48f078d607238a04b56b54ef76a8aa5c13ddfee2b17d9916661"` [INFO] running `"docker" "rm" "-f" "2569cc9c879dc48f078d607238a04b56b54ef76a8aa5c13ddfee2b17d9916661"` [INFO] [stdout] 2569cc9c879dc48f078d607238a04b56b54ef76a8aa5c13ddfee2b17d9916661 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/beta-1.38-1/worker-0/1.37.0:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/beta-1.38-1/sources/1.37.0/gh/danielschemmel/drsat:/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] da87f2d63a4fded8c394825c9d466c308d16eda142aaf0bf996130c75eeda938 [INFO] running `"docker" "start" "-a" "da87f2d63a4fded8c394825c9d466c308d16eda142aaf0bf996130c75eeda938"` [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.08s [INFO] [stderr] Running /opt/crater/target/debug/deps/libdrsat-316c6d509b125459 [INFO] [stdout] [INFO] [stdout] running 43 tests [INFO] [stdout] test cnf::literal::tests::literal_test1 ... ok [INFO] [stdout] test cnf::literal::tests::literal_order1 ... ok [INFO] [stdout] test cnf::literal::tests::literal_test2 ... ok [INFO] [stdout] test cnf::literal::tests::literal_order2 ... ok [INFO] [stdout] test cnf::tests::sat1 ... ok [INFO] [stdout] test cnf::tests::sat2 ... ok [INFO] [stdout] test cnf::tests::unsat2 ... ok [INFO] [stdout] test cnf::tests::sat4 ... ok [INFO] [stdout] test sudoku::tests::invalid1_deduced ... ok [INFO] [stdout] test sudoku::tests::invalid1 ... ok [INFO] [stdout] test cnf::tests::unsat1 ... ok [INFO] [stdout] test cnf::tests::sat3 ... ok [INFO] [stdout] test sudoku::tests::invalid2_deduced ... ok [INFO] [stdout] test sudoku::tests::invalid3_deduced ... ok [INFO] [stdout] test sudoku::tests::simple2 ... ok [INFO] [stdout] test util::stopwatch::tests::test_format_duration_1 ... ok [INFO] [stdout] test sudoku::tests::simple1 ... ok [INFO] [stdout] test sudoku::tests::simple4_deduced ... ok [INFO] [stdout] test sudoku::tests::simple4 ... ok [INFO] [stdout] test util::stopwatch::tests::test_format_duration_11 ... ok [INFO] [stdout] test util::stopwatch::tests::test_format_duration_14 ... ok [INFO] [stdout] test util::stopwatch::tests::test_format_duration_12 ... ok [INFO] [stdout] test util::stopwatch::tests::test_format_duration_15 ... ok [INFO] [stdout] test util::stopwatch::tests::test_format_duration_13 ... ok [INFO] [stdout] test util::stopwatch::tests::test_format_duration_10 ... ok [INFO] [stdout] test sudoku::tests::simple3 ... ok [INFO] [stdout] test util::stopwatch::tests::test_format_duration_17 ... ok [INFO] [stdout] test util::stopwatch::tests::test_format_duration_18 ... ok [INFO] [stdout] test util::stopwatch::tests::test_format_duration_19 ... ok [INFO] [stdout] test util::stopwatch::tests::test_format_duration_20 ... ok [INFO] [stdout] test util::stopwatch::tests::test_format_duration_2 ... ok [INFO] [stdout] test util::stopwatch::tests::test_format_duration_16 ... ok [INFO] [stdout] test util::stopwatch::tests::test_format_duration_21 ... ok [INFO] [stdout] test util::stopwatch::tests::test_format_duration_22 ... ok [INFO] [stdout] test util::stopwatch::tests::test_format_duration_3 ... ok [INFO] [stdout] test util::stopwatch::tests::test_format_duration_5 ... ok [INFO] [stdout] test util::stopwatch::tests::test_format_duration_6 ... ok [INFO] [stdout] test util::stopwatch::tests::test_format_duration_7 ... ok [INFO] [stdout] test util::stopwatch::tests::test_format_duration_8 ... ok [INFO] [stdout] test util::stopwatch::tests::test_format_duration_9 ... ok [INFO] [stdout] test util::stopwatch::tests::test_format_duration_4 ... ok [INFO] [stdout] test sudoku::tests::invalid3 ... ok [INFO] [stderr] Running /opt/crater/target/debug/deps/comp-0a9887e0a816e58a [INFO] [stdout] test sudoku::tests::invalid2 ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 43 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Running /opt/crater/target/debug/deps/dimacs-5cb1595117b4b70c [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [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 [INFO] [stdout] [INFO] [stderr] Running /opt/crater/target/debug/deps/drsat-411730ed5938b913 [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 [INFO] [stdout] [INFO] [stderr] Running /opt/crater/target/debug/deps/npn-293e00ca49695e9e [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 [INFO] [stdout] [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 [INFO] [stdout] [INFO] [stderr] Running /opt/crater/target/debug/deps/sudoku-71d17cf8df70bd21 [INFO] [stderr] Doc-tests libdrsat [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 [INFO] [stdout] [INFO] running `"docker" "inspect" "da87f2d63a4fded8c394825c9d466c308d16eda142aaf0bf996130c75eeda938"` [INFO] running `"docker" "rm" "-f" "da87f2d63a4fded8c394825c9d466c308d16eda142aaf0bf996130c75eeda938"` [INFO] [stdout] da87f2d63a4fded8c394825c9d466c308d16eda142aaf0bf996130c75eeda938