[INFO] updating cached repository pontuslaestadius/ftp-rust [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/pontuslaestadius/ftp-rust [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/pontuslaestadius/ftp-rust" "work/ex/pr-59199/sources/master#bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7/gh/pontuslaestadius/ftp-rust"` [INFO] [stderr] Cloning into 'work/ex/pr-59199/sources/master#bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7/gh/pontuslaestadius/ftp-rust'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/pontuslaestadius/ftp-rust" "work/ex/pr-59199/sources/try#68fcf881bd1e4dbfc21e22f8c7a56b8a5d8e8f7b/gh/pontuslaestadius/ftp-rust"` [INFO] [stderr] Cloning into 'work/ex/pr-59199/sources/try#68fcf881bd1e4dbfc21e22f8c7a56b8a5d8e8f7b/gh/pontuslaestadius/ftp-rust'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 10ae254549c0d4c88f0f4e7c91e132405818891b [INFO] sha for GitHub repo pontuslaestadius/ftp-rust: 10ae254549c0d4c88f0f4e7c91e132405818891b [INFO] validating manifest of pontuslaestadius/ftp-rust on toolchain master#bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7 [INFO] running `"/mnt/crater-raid/crater/work/local/cargo-home/bin/cargo" "+bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of pontuslaestadius/ftp-rust on toolchain try#68fcf881bd1e4dbfc21e22f8c7a56b8a5d8e8f7b [INFO] running `"/mnt/crater-raid/crater/work/local/cargo-home/bin/cargo" "+68fcf881bd1e4dbfc21e22f8c7a56b8a5d8e8f7b-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing pontuslaestadius/ftp-rust [INFO] finished frobbing pontuslaestadius/ftp-rust [INFO] frobbed toml for pontuslaestadius/ftp-rust written to work/ex/pr-59199/sources/master#bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7/gh/pontuslaestadius/ftp-rust/Cargo.toml [INFO] started frobbing pontuslaestadius/ftp-rust [INFO] finished frobbing pontuslaestadius/ftp-rust [INFO] frobbed toml for pontuslaestadius/ftp-rust written to work/ex/pr-59199/sources/try#68fcf881bd1e4dbfc21e22f8c7a56b8a5d8e8f7b/gh/pontuslaestadius/ftp-rust/Cargo.toml [INFO] crate pontuslaestadius/ftp-rust already has a lockfile, it will not be regenerated [INFO] running `"/mnt/crater-raid/crater/work/local/cargo-home/bin/cargo" "+bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/crater-raid/crater/work/local/cargo-home/bin/cargo" "+68fcf881bd1e4dbfc21e22f8c7a56b8a5d8e8f7b-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] checking pontuslaestadius/ftp-rust against master#bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7 for pr-59199 [INFO] running `"docker" "create" "-v" "/mnt/crater-raid/crater/work/local/target-dirs/pr-59199/worker-6/master#bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7:/opt/crater/target:rw,Z" "-v" "/mnt/crater-raid/crater/work/ex/pr-59199/sources/master#bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7/gh/pontuslaestadius/ftp-rust:/opt/crater/workdir:ro,Z" "-v" "/mnt/crater-raid/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/crater-raid/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=forbid" "-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" "+bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7-alt" "check" "--frozen" "--all" "--all-targets"` [INFO] [stdout] ffb1b34433940431a6da9307ae7ca2071633d86a8d146f09963f8d8eebcaed3e [INFO] running `"docker" "start" "-a" "ffb1b34433940431a6da9307ae7ca2071633d86a8d146f09963f8d8eebcaed3e"` [INFO] [stderr] Checking ftp-rust v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused import: `File` [INFO] [stderr] --> src/ftp/mod.rs:4:15 [INFO] [stderr] | [INFO] [stderr] 4 | use std::fs::{File, OpenOptions}; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `File`, `OpenOptions` [INFO] [stderr] --> src/ftp/server/mod.rs:3:15 [INFO] [stderr] | [INFO] [stderr] 3 | use std::fs::{File, OpenOptions}; [INFO] [stderr] | ^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::time` [INFO] [stderr] --> src/ftp/server/mod.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::time; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::net::TcpStream` [INFO] [stderr] --> src/ftp/decode.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::net::TcpStream; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `OpenOptions` [INFO] [stderr] --> src/ftp/decode.rs:4:21 [INFO] [stderr] | [INFO] [stderr] 4 | use std::fs::{File, OpenOptions}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::net::TcpStream` [INFO] [stderr] --> src/ftp/encode.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::net::TcpStream; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `OpenOptions` [INFO] [stderr] --> src/ftp/encode.rs:4:21 [INFO] [stderr] | [INFO] [stderr] 4 | use std::fs::{File, OpenOptions}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `File` [INFO] [stderr] --> src/ftp/mod.rs:4:15 [INFO] [stderr] | [INFO] [stderr] 4 | use std::fs::{File, OpenOptions}; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `File`, `OpenOptions` [INFO] [stderr] --> src/ftp/server/mod.rs:3:15 [INFO] [stderr] | [INFO] [stderr] 3 | use std::fs::{File, OpenOptions}; [INFO] [stderr] | ^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::time` [INFO] [stderr] --> src/ftp/server/mod.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::time; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::net::TcpStream` [INFO] [stderr] --> src/ftp/decode.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::net::TcpStream; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `OpenOptions` [INFO] [stderr] --> src/ftp/decode.rs:4:21 [INFO] [stderr] | [INFO] [stderr] 4 | use std::fs::{File, OpenOptions}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::net::TcpStream` [INFO] [stderr] --> src/ftp/encode.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::net::TcpStream; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `OpenOptions` [INFO] [stderr] --> src/ftp/encode.rs:4:21 [INFO] [stderr] | [INFO] [stderr] 4 | use std::fs::{File, OpenOptions}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::prelude` [INFO] [stderr] --> src/ftp/server/mod.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::io::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `address` [INFO] [stderr] --> src/ftp/mod.rs:55:21 [INFO] [stderr] | [INFO] [stderr] 55 | pub fn start_server(address: &str, port: &str) { [INFO] [stderr] | ^^^^^^^ help: consider prefixing with an underscore: `_address` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `port` [INFO] [stderr] --> src/ftp/mod.rs:55:36 [INFO] [stderr] | [INFO] [stderr] 55 | pub fn start_server(address: &str, port: &str) { [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_port` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `string` [INFO] [stderr] --> src/ftp/server/mod.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | let mut string: String = String::new(); [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_string` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `c` [INFO] [stderr] --> src/ftp/server/mod.rs:28:13 [INFO] [stderr] | [INFO] [stderr] 28 | let mut c: usize; [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_c` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `stream` [INFO] [stderr] --> src/ftp/server/mod.rs:46:22 [INFO] [stderr] | [INFO] [stderr] 46 | fn notify_client_err(stream: &mut TcpStream, error: io::Error) { [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_stream` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `address` [INFO] [stderr] --> src/ftp/client/mod.rs:8:14 [INFO] [stderr] | [INFO] [stderr] 8 | pub fn start(address: &str) { [INFO] [stderr] | ^^^^^^^ help: consider prefixing with an underscore: `_address` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `client` [INFO] [stderr] --> src/ftp/client/mod.rs:30:26 [INFO] [stderr] | [INFO] [stderr] 30 | let (mut stream, client) = super::client::new(self.address)?; [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_client` [INFO] [stderr] [INFO] [stderr] warning: variable `decoded_size` is assigned to, but never used [INFO] [stderr] --> src/ftp/decode.rs:15:13 [INFO] [stderr] | [INFO] [stderr] 15 | let mut decoded_size: &str = ""; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_decoded_size` instead [INFO] [stderr] [INFO] [stderr] warning: variable `decoded_pktn` is assigned to, but never used [INFO] [stderr] --> src/ftp/decode.rs:16:13 [INFO] [stderr] | [INFO] [stderr] 16 | let mut decoded_pktn: &str = ""; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_decoded_pktn` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `decoded_size` is never read [INFO] [stderr] --> src/ftp/decode.rs:40:27 [INFO] [stderr] | [INFO] [stderr] 40 | "size" => decoded_size = value, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `decoded_pktn` is never read [INFO] [stderr] --> src/ftp/decode.rs:41:27 [INFO] [stderr] | [INFO] [stderr] 41 | "pktn" => decoded_pktn = value, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `size` [INFO] [stderr] --> src/ftp/encode.rs:31:9 [INFO] [stderr] | [INFO] [stderr] 31 | let size = content.len(); [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_size` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ftp/mod.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | let mut f = OpenOptions::new() [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/ftp/mod.rs:124:9 [INFO] [stderr] | [INFO] [stderr] 124 | let mut files = "examples/files/foo.txt"; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ftp/server/mod.rs:27:9 [INFO] [stderr] | [INFO] [stderr] 27 | let mut string: String = String::new(); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ftp/server/mod.rs:28:9 [INFO] [stderr] | [INFO] [stderr] 28 | let mut c: usize; [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ftp/client/mod.rs:51:9 [INFO] [stderr] | [INFO] [stderr] 51 | let mut stream = super::connect(address)?; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::prelude` [INFO] [stderr] --> src/ftp/server/mod.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::io::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ftp/decode.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | let mut rows = section2.next().unwrap().split(';'); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ftp/encode.rs:24:53 [INFO] [stderr] | [INFO] [stderr] 24 | pub fn from_meta_data(metadata: metadata::Metadata, mut content: &mut String) -> Result, io::Error> { [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ftp/client/mod.rs:25:13 [INFO] [stderr] | [INFO] [stderr] 25 | self.action(input.as_str()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ftp/encode.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | file.read_to_string(&mut content); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused variable: `address` [INFO] [stderr] --> src/ftp/mod.rs:55:21 [INFO] [stderr] | [INFO] [stderr] 55 | pub fn start_server(address: &str, port: &str) { [INFO] [stderr] | ^^^^^^^ help: consider prefixing with an underscore: `_address` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `port` [INFO] [stderr] --> src/ftp/mod.rs:55:36 [INFO] [stderr] | [INFO] [stderr] 55 | pub fn start_server(address: &str, port: &str) { [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_port` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `string` [INFO] [stderr] --> src/ftp/server/mod.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | let mut string: String = String::new(); [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_string` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `c` [INFO] [stderr] --> src/ftp/server/mod.rs:28:13 [INFO] [stderr] | [INFO] [stderr] 28 | let mut c: usize; [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_c` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `stream` [INFO] [stderr] --> src/ftp/server/mod.rs:46:22 [INFO] [stderr] | [INFO] [stderr] 46 | fn notify_client_err(stream: &mut TcpStream, error: io::Error) { [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_stream` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `address` [INFO] [stderr] --> src/ftp/client/mod.rs:8:14 [INFO] [stderr] | [INFO] [stderr] 8 | pub fn start(address: &str) { [INFO] [stderr] | ^^^^^^^ help: consider prefixing with an underscore: `_address` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `client` [INFO] [stderr] --> src/ftp/client/mod.rs:30:26 [INFO] [stderr] | [INFO] [stderr] 30 | let (mut stream, client) = super::client::new(self.address)?; [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_client` [INFO] [stderr] [INFO] [stderr] warning: variable `decoded_size` is assigned to, but never used [INFO] [stderr] --> src/ftp/decode.rs:15:13 [INFO] [stderr] | [INFO] [stderr] 15 | let mut decoded_size: &str = ""; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_decoded_size` instead [INFO] [stderr] [INFO] [stderr] warning: variable `decoded_pktn` is assigned to, but never used [INFO] [stderr] --> src/ftp/decode.rs:16:13 [INFO] [stderr] | [INFO] [stderr] 16 | let mut decoded_pktn: &str = ""; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_decoded_pktn` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `decoded_size` is never read [INFO] [stderr] --> src/ftp/decode.rs:40:27 [INFO] [stderr] | [INFO] [stderr] 40 | "size" => decoded_size = value, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `decoded_pktn` is never read [INFO] [stderr] --> src/ftp/decode.rs:41:27 [INFO] [stderr] | [INFO] [stderr] 41 | "pktn" => decoded_pktn = value, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `size` [INFO] [stderr] --> src/ftp/encode.rs:31:9 [INFO] [stderr] | [INFO] [stderr] 31 | let size = content.len(); [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_size` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ftp/mod.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | let mut f = OpenOptions::new() [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/ftp/mod.rs:124:9 [INFO] [stderr] | [INFO] [stderr] 124 | let mut files = "examples/files/foo.txt"; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ftp/server/mod.rs:27:9 [INFO] [stderr] | [INFO] [stderr] 27 | let mut string: String = String::new(); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ftp/server/mod.rs:28:9 [INFO] [stderr] | [INFO] [stderr] 28 | let mut c: usize; [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ftp/client/mod.rs:51:9 [INFO] [stderr] | [INFO] [stderr] 51 | let mut stream = super::connect(address)?; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ftp/decode.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | let mut rows = section2.next().unwrap().split(';'); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ftp/encode.rs:24:53 [INFO] [stderr] | [INFO] [stderr] 24 | pub fn from_meta_data(metadata: metadata::Metadata, mut content: &mut String) -> Result, io::Error> { [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ftp/client/mod.rs:25:13 [INFO] [stderr] | [INFO] [stderr] 25 | self.action(input.as_str()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ftp/encode.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | file.read_to_string(&mut content); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused import: `File` [INFO] [stderr] --> src/ftp/mod.rs:4:15 [INFO] [stderr] | [INFO] [stderr] 4 | use std::fs::{File, OpenOptions}; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `File`, `OpenOptions` [INFO] [stderr] --> src/ftp/server/mod.rs:3:15 [INFO] [stderr] | [INFO] [stderr] 3 | use std::fs::{File, OpenOptions}; [INFO] [stderr] | ^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::time` [INFO] [stderr] --> src/ftp/server/mod.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::time; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::net::TcpStream` [INFO] [stderr] --> src/ftp/decode.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::net::TcpStream; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `OpenOptions` [INFO] [stderr] --> src/ftp/decode.rs:4:21 [INFO] [stderr] | [INFO] [stderr] 4 | use std::fs::{File, OpenOptions}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::net::TcpStream` [INFO] [stderr] --> src/ftp/encode.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::net::TcpStream; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `OpenOptions` [INFO] [stderr] --> src/ftp/encode.rs:4:21 [INFO] [stderr] | [INFO] [stderr] 4 | use std::fs::{File, OpenOptions}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `File` [INFO] [stderr] --> src/ftp/mod.rs:4:15 [INFO] [stderr] | [INFO] [stderr] 4 | use std::fs::{File, OpenOptions}; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `File`, `OpenOptions` [INFO] [stderr] --> src/ftp/server/mod.rs:3:15 [INFO] [stderr] | [INFO] [stderr] 3 | use std::fs::{File, OpenOptions}; [INFO] [stderr] | ^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::time` [INFO] [stderr] --> src/ftp/server/mod.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::time; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::net::TcpStream` [INFO] [stderr] --> src/ftp/decode.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::net::TcpStream; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `OpenOptions` [INFO] [stderr] --> src/ftp/decode.rs:4:21 [INFO] [stderr] | [INFO] [stderr] 4 | use std::fs::{File, OpenOptions}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::net::TcpStream` [INFO] [stderr] --> src/ftp/encode.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::net::TcpStream; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `OpenOptions` [INFO] [stderr] --> src/ftp/encode.rs:4:21 [INFO] [stderr] | [INFO] [stderr] 4 | use std::fs::{File, OpenOptions}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::prelude` [INFO] [stderr] --> src/ftp/server/mod.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::io::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `address` [INFO] [stderr] --> src/ftp/mod.rs:55:21 [INFO] [stderr] | [INFO] [stderr] 55 | pub fn start_server(address: &str, port: &str) { [INFO] [stderr] | ^^^^^^^ help: consider prefixing with an underscore: `_address` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `port` [INFO] [stderr] --> src/ftp/mod.rs:55:36 [INFO] [stderr] | [INFO] [stderr] 55 | pub fn start_server(address: &str, port: &str) { [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_port` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `string` [INFO] [stderr] --> src/ftp/server/mod.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | let mut string: String = String::new(); [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_string` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `c` [INFO] [stderr] --> src/ftp/server/mod.rs:28:13 [INFO] [stderr] | [INFO] [stderr] 28 | let mut c: usize; [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_c` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `stream` [INFO] [stderr] --> src/ftp/server/mod.rs:46:22 [INFO] [stderr] | [INFO] [stderr] 46 | fn notify_client_err(stream: &mut TcpStream, error: io::Error) { [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_stream` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `address` [INFO] [stderr] --> src/ftp/client/mod.rs:8:14 [INFO] [stderr] | [INFO] [stderr] 8 | pub fn start(address: &str) { [INFO] [stderr] | ^^^^^^^ help: consider prefixing with an underscore: `_address` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `client` [INFO] [stderr] --> src/ftp/client/mod.rs:30:26 [INFO] [stderr] | [INFO] [stderr] 30 | let (mut stream, client) = super::client::new(self.address)?; [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_client` [INFO] [stderr] [INFO] [stderr] warning: variable `decoded_size` is assigned to, but never used [INFO] [stderr] --> src/ftp/decode.rs:15:13 [INFO] [stderr] | [INFO] [stderr] 15 | let mut decoded_size: &str = ""; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_decoded_size` instead [INFO] [stderr] [INFO] [stderr] warning: variable `decoded_pktn` is assigned to, but never used [INFO] [stderr] --> src/ftp/decode.rs:16:13 [INFO] [stderr] | [INFO] [stderr] 16 | let mut decoded_pktn: &str = ""; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_decoded_pktn` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `decoded_size` is never read [INFO] [stderr] --> src/ftp/decode.rs:40:27 [INFO] [stderr] | [INFO] [stderr] 40 | "size" => decoded_size = value, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `decoded_pktn` is never read [INFO] [stderr] --> src/ftp/decode.rs:41:27 [INFO] [stderr] | [INFO] [stderr] 41 | "pktn" => decoded_pktn = value, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `size` [INFO] [stderr] --> src/ftp/encode.rs:31:9 [INFO] [stderr] | [INFO] [stderr] 31 | let size = content.len(); [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_size` [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::prelude` [INFO] [stderr] --> src/ftp/server/mod.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::io::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ftp/mod.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | let mut f = OpenOptions::new() [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: unused variable: `address` [INFO] [stderr] --> src/ftp/mod.rs:55:21 [INFO] [stderr] | [INFO] [stderr] 55 | pub fn start_server(address: &str, port: &str) { [INFO] [stderr] | ^^^^^^^ help: consider prefixing with an underscore: `_address` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `port` [INFO] [stderr] --> src/ftp/mod.rs:55:36 [INFO] [stderr] | [INFO] [stderr] 55 | pub fn start_server(address: &str, port: &str) { [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_port` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `string` [INFO] [stderr] --> src/ftp/server/mod.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | let mut string: String = String::new(); [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_string` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `c` [INFO] [stderr] --> src/ftp/server/mod.rs:28:13 [INFO] [stderr] | [INFO] [stderr] 28 | let mut c: usize; [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_c` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `stream` [INFO] [stderr] --> src/ftp/server/mod.rs:46:22 [INFO] [stderr] | [INFO] [stderr] 46 | fn notify_client_err(stream: &mut TcpStream, error: io::Error) { [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_stream` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `address` [INFO] [stderr] --> src/ftp/client/mod.rs:8:14 [INFO] [stderr] | [INFO] [stderr] 8 | pub fn start(address: &str) { [INFO] [stderr] | ^^^^^^^ help: consider prefixing with an underscore: `_address` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `client` [INFO] [stderr] --> src/ftp/client/mod.rs:30:26 [INFO] [stderr] | [INFO] [stderr] 30 | let (mut stream, client) = super::client::new(self.address)?; [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_client` [INFO] [stderr] [INFO] [stderr] warning: variable `decoded_size` is assigned to, but never used [INFO] [stderr] --> src/ftp/decode.rs:15:13 [INFO] [stderr] | [INFO] [stderr] 15 | let mut decoded_size: &str = ""; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_decoded_size` instead [INFO] [stderr] [INFO] [stderr] warning: variable `decoded_pktn` is assigned to, but never used [INFO] [stderr] --> src/ftp/decode.rs:16:13 [INFO] [stderr] | [INFO] [stderr] 16 | let mut decoded_pktn: &str = ""; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_decoded_pktn` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `decoded_size` is never read [INFO] [stderr] --> src/ftp/decode.rs:40:27 [INFO] [stderr] | [INFO] [stderr] 40 | "size" => decoded_size = value, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `decoded_pktn` is never read [INFO] [stderr] --> src/ftp/decode.rs:41:27 [INFO] [stderr] | [INFO] [stderr] 41 | "pktn" => decoded_pktn = value, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `size` [INFO] [stderr] --> src/ftp/encode.rs:31:9 [INFO] [stderr] | [INFO] [stderr] 31 | let size = content.len(); [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_size` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ftp/mod.rs:124:9 [INFO] [stderr] | [INFO] [stderr] 124 | let mut files = "examples/files/foo.txt"; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ftp/mod.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | let mut f = OpenOptions::new() [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/ftp/server/mod.rs:27:9 [INFO] [stderr] | [INFO] [stderr] 27 | let mut string: String = String::new(); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ftp/server/mod.rs:28:9 [INFO] [stderr] | [INFO] [stderr] 28 | let mut c: usize; [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ftp/client/mod.rs:51:9 [INFO] [stderr] | [INFO] [stderr] 51 | let mut stream = super::connect(address)?; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ftp/mod.rs:124:9 [INFO] [stderr] | [INFO] [stderr] 124 | let mut files = "examples/files/foo.txt"; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ftp/decode.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | let mut rows = section2.next().unwrap().split(';'); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ftp/encode.rs:24:53 [INFO] [stderr] | [INFO] [stderr] 24 | pub fn from_meta_data(metadata: metadata::Metadata, mut content: &mut String) -> Result, io::Error> { [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ftp/server/mod.rs:27:9 [INFO] [stderr] | [INFO] [stderr] 27 | let mut string: String = String::new(); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ftp/server/mod.rs:28:9 [INFO] [stderr] | [INFO] [stderr] 28 | let mut c: usize; [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ftp/client/mod.rs:25:13 [INFO] [stderr] | [INFO] [stderr] 25 | self.action(input.as_str()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ftp/encode.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | file.read_to_string(&mut content); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ftp/client/mod.rs:51:9 [INFO] [stderr] | [INFO] [stderr] 51 | let mut stream = super::connect(address)?; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ftp/decode.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | let mut rows = section2.next().unwrap().split(';'); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ftp/encode.rs:24:53 [INFO] [stderr] | [INFO] [stderr] 24 | pub fn from_meta_data(metadata: metadata::Metadata, mut content: &mut String) -> Result, io::Error> { [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ftp/client/mod.rs:25:13 [INFO] [stderr] | [INFO] [stderr] 25 | self.action(input.as_str()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ftp/encode.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | file.read_to_string(&mut content); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.29s [INFO] running `"docker" "inspect" "ffb1b34433940431a6da9307ae7ca2071633d86a8d146f09963f8d8eebcaed3e"` [INFO] running `"docker" "rm" "-f" "ffb1b34433940431a6da9307ae7ca2071633d86a8d146f09963f8d8eebcaed3e"` [INFO] [stdout] ffb1b34433940431a6da9307ae7ca2071633d86a8d146f09963f8d8eebcaed3e