[INFO] cloning repository https://github.com/DKolaya/rustling
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/DKolaya/rustling" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDKolaya%2Frustling", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDKolaya%2Frustling'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 764960ec2f357856dacfaa37077ad8920d982bfc
[INFO] checking DKolaya/rustling against try#73ffebff6f34db7eb167bf9edcf2afa19c3073e9 for pr-147841
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDKolaya%2Frustling" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:  48% (3193/6650)
Updating files:  49% (3259/6650)
Updating files:  50% (3325/6650)
Updating files:  51% (3392/6650)
Updating files:  52% (3458/6650)
Updating files:  53% (3525/6650)
Updating files:  54% (3591/6650)
Updating files:  55% (3658/6650)
Updating files:  55% (3714/6650)
Updating files:  56% (3724/6650)
Updating files:  57% (3791/6650)
Updating files:  58% (3857/6650)
Updating files:  59% (3924/6650)
Updating files:  60% (3990/6650)
Updating files:  60% (4000/6650)
Updating files:  61% (4057/6650)
Updating files:  62% (4123/6650)
Updating files:  63% (4190/6650)
Updating files:  64% (4256/6650)
Updating files:  65% (4323/6650)
Updating files:  66% (4389/6650)
Updating files:  67% (4456/6650)
Updating files:  68% (4522/6650)
Updating files:  69% (4589/6650)
Updating files:  70% (4655/6650)
Updating files:  71% (4722/6650)
Updating files:  72% (4788/6650)
Updating files:  73% (4855/6650)
Updating files:  74% (4921/6650)
Updating files:  75% (4988/6650)
Updating files:  76% (5054/6650)
Updating files:  77% (5121/6650)
Updating files:  78% (5187/6650)
Updating files:  79% (5254/6650)
Updating files:  80% (5320/6650)
Updating files:  81% (5387/6650)
Updating files:  82% (5453/6650)
Updating files:  83% (5520/6650)
Updating files:  84% (5586/6650)
Updating files:  85% (5653/6650)
Updating files:  86% (5719/6650)
Updating files:  87% (5786/6650)
Updating files:  88% (5852/6650)
Updating files:  89% (5919/6650)
Updating files:  90% (5985/6650)
Updating files:  91% (6052/6650)
Updating files:  92% (6118/6650)
Updating files:  93% (6185/6650)
Updating files:  94% (6251/6650)
Updating files:  95% (6318/6650)
Updating files:  96% (6384/6650)
Updating files:  97% (6451/6650)
Updating files:  98% (6517/6650)
Updating files:  99% (6584/6650)
Updating files:  99% (6595/6650)
Updating files: 100% (6650/6650)
Updating files: 100% (6650/6650), done.
[INFO] started tweaking git repo https://github.com/DKolaya/rustling
[INFO] finished tweaking git repo https://github.com/DKolaya/rustling
[INFO] tweaked toml for git repo https://github.com/DKolaya/rustling written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/DKolaya/rustling on toolchain 73ffebff6f34db7eb167bf9edcf2afa19c3073e9
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+73ffebff6f34db7eb167bf9edcf2afa19c3073e9" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/DKolaya/rustling already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+73ffebff6f34db7eb167bf9edcf2afa19c3073e9" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+73ffebff6f34db7eb167bf9edcf2afa19c3073e9" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2e70a4bfd676eaaa84abd19f1db2142aa08119dbcede260b6ea8d262af4c2302
[INFO] running `Command { std: "docker" "start" "-a" "2e70a4bfd676eaaa84abd19f1db2142aa08119dbcede260b6ea8d262af4c2302", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2e70a4bfd676eaaa84abd19f1db2142aa08119dbcede260b6ea8d262af4c2302", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2e70a4bfd676eaaa84abd19f1db2142aa08119dbcede260b6ea8d262af4c2302", kill_on_drop: false }`
[INFO] [stdout] 2e70a4bfd676eaaa84abd19f1db2142aa08119dbcede260b6ea8d262af4c2302
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+73ffebff6f34db7eb167bf9edcf2afa19c3073e9" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f0f66525e0c6654b974c0bd3c2b15662f14d5a39f03cef5f7dc0f1c1450810e9
[INFO] running `Command { std: "docker" "start" "-a" "f0f66525e0c6654b974c0bd3c2b15662f14d5a39f03cef5f7dc0f1c1450810e9", kill_on_drop: false }`
[INFO] [stderr]     Checking exercises v0.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `super::Command`
[INFO] [stdout]   --> exercises/quizzes/quiz2.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     use super::Command;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `transformer` in this scope
[INFO] [stdout]   --> exercises/quizzes/quiz2.rs:51:22
[INFO] [stdout]    |
[INFO] [stdout] 51 |         let output = transformer(input);
[INFO] [stdout]    |                      ^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0425`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `exercises` (bin "quiz2" test) due to 1 previous error; 1 warning emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> exercises/18_iterators/iterators5.rs:28:72
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn count_iterator(map: &HashMap<String, Progress>, value: Progress) -> usize {
[INFO] [stdout]    |    --------------                                                      ^^^^^ expected `usize`, found `()`
[INFO] [stdout]    |    |
[INFO] [stdout]    |    implicitly returns `()` as its body has no tail or `return` expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> exercises/18_iterators/iterators5.rs:47:92
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn count_collection_iterator(collection: &[HashMap<String, Progress>], value: Progress) -> usize {
[INFO] [stdout]    |    -------------------------                                                               ^^^^^ expected `usize`, found `()`
[INFO] [stdout]    |    |
[INFO] [stdout]    |    implicitly returns `()` as its body has no tail or `return` expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `exercises` (bin "iterators5" test) due to 2 previous errors
[INFO] [stdout] error: expected identifier, found `,`
[INFO] [stdout]   --> exercises/15_traits/traits4.rs:14:40
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn compare_license_types(software1: ???, software2: ???) -> bool {
[INFO] [stdout]    |                                        ^ expected identifier
[INFO] [stdout]    |
[INFO] [stdout] help: remove this comma
[INFO] [stdout]    |
[INFO] [stdout] 14 - fn compare_license_types(software1: ???, software2: ???) -> bool {
[INFO] [stdout] 14 + fn compare_license_types(software1: ??? software2: ???) -> bool {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected a trait, found type
[INFO] [stdout]   --> exercises/15_traits/traits4.rs:14:39
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn compare_license_types(software1: ???, software2: ???) -> bool {
[INFO] [stdout]    |                                       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected identifier, found `)`
[INFO] [stdout]   --> exercises/15_traits/traits4.rs:14:56
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn compare_license_types(software1: ???, software2: ???) -> bool {
[INFO] [stdout]    |                                                        ^ expected identifier
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]   --> exercises/13_error_handling/errors5.rs:53:44
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn main() {
[INFO] [stdout]    | --------- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout] 52 |     let pretend_user_input = "42";
[INFO] [stdout] 53 |     let x: i64 = pretend_user_input.parse()?;
[INFO] [stdout]    |                                            ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding return type
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn main() -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]    |           +++++++++++++++++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]   --> exercises/13_error_handling/errors5.rs:54:59
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn main() {
[INFO] [stdout]    | --------- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout] ...
[INFO] [stdout] 54 |     println!("output={:?}", PositiveNonzeroInteger::new(x)?);
[INFO] [stdout]    |                                                           ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding return type
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn main() -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]    |           +++++++++++++++++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `as_ref` found for type parameter `T` in the current scope
[INFO] [stdout]  --> exercises/23_conversions/as_ref_mut.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn byte_counter<T>(arg: T) -> usize {
[INFO] [stdout]   |                 - method `as_ref` not found for this type parameter
[INFO] [stdout] 9 |     arg.as_ref().len()
[INFO] [stdout]   |         ^^^^^^ method not found in `T`
[INFO] [stdout]   |
[INFO] [stdout]   = help: items from traits can only be used if the type parameter is bounded by the trait
[INFO] [stdout] help: the following trait defines an item `as_ref`, perhaps you need to restrict type parameter `T` with it:
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn byte_counter<T: AsRef</* T */>>(arg: T) -> usize {
[INFO] [stdout]   |                  ++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `software1` in this scope
[INFO] [stdout]   --> exercises/15_traits/traits4.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     software1.licensing_info() == software2.licensing_info()
[INFO] [stdout]    |     ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `software2` in this scope
[INFO] [stdout]   --> exercises/15_traits/traits4.rs:15:35
[INFO] [stdout]    |
[INFO] [stdout] 15 |     software1.licensing_info() == software2.licensing_info()
[INFO] [stdout]    |                                   ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `unwrap` found for unit type `()` in the current scope
[INFO] [stdout]   --> exercises/18_iterators/iterators3.rs:66:39
[INFO] [stdout]    |
[INFO] [stdout] 66 |         assert_eq!(result_with_list().unwrap(), [1, 11, 1426, 3]);
[INFO] [stdout]    |                                       ^^^^^^ method not found in `()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `as_ref` found for type parameter `T` in the current scope
[INFO] [stdout]   --> exercises/23_conversions/as_ref_mut.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn char_counter<T>(arg: T) -> usize {
[INFO] [stdout]    |                 - method `as_ref` not found for this type parameter
[INFO] [stdout] 15 |     arg.as_ref().chars().count()
[INFO] [stdout]    |         ^^^^^^ method not found in `T`
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the type parameter is bounded by the trait
[INFO] [stdout] help: the following trait defines an item `as_ref`, perhaps you need to restrict type parameter `T` with it:
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn char_counter<T: AsRef</* T */>>(arg: T) -> usize {
[INFO] [stdout]    |                  ++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> exercises/13_error_handling/errors5.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn main() {
[INFO] [stdout]    |          - expected `()` because of default return type
[INFO] [stdout] ...
[INFO] [stdout] 55 |     Ok(())
[INFO] [stdout]    |     ^^^^^^ expected `()`, found `Result<(), _>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected unit type `()`
[INFO] [stdout]                    found enum `Result<(), _>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arg`
[INFO] [stdout]   --> exercises/23_conversions/as_ref_mut.rs:20:14
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn num_sq<T>(arg: &mut T) {
[INFO] [stdout]    |              ^^^ help: if this is intentional, prefix it with an underscore: `_arg`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0599`.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> exercises/18_iterators/iterators3.rs:71:39
[INFO] [stdout]    |
[INFO] [stdout] 71 |         assert_eq!(list_of_results(), [Ok(1), Ok(11), Ok(1426), Ok(3)]);
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found `[Result<{integer}, _>; 4]`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected unit type `()`
[INFO] [stdout]                   found array `[Result<{integer}, _>; 4]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0425`.
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]  --> exercises/09_strings/strings2.rs:9:24
[INFO] [stdout]   |
[INFO] [stdout] 9 |     if is_a_color_word(word) {
[INFO] [stdout]   |        --------------- ^^^^ expected `&str`, found `String`
[INFO] [stdout]   |        |
[INFO] [stdout]   |        arguments to this function are incorrect
[INFO] [stdout]   |
[INFO] [stdout] note: function defined here
[INFO] [stdout]  --> exercises/09_strings/strings2.rs:2:4
[INFO] [stdout]   |
[INFO] [stdout] 2 | fn is_a_color_word(attempt: &str) -> bool {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^ -------------
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]   |
[INFO] [stdout] 9 |     if is_a_color_word(&word) {
[INFO] [stdout]   |                        +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `exercises` (bin "as_ref_mut" test) due to 2 previous errors; 1 warning emitted
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> exercises/18_iterators/iterators3.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn divide(a: i64, b: i64) -> Result<i64, DivisionError> {
[INFO] [stdout]    |           ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> exercises/18_iterators/iterators3.rs:13:19
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn divide(a: i64, b: i64) -> Result<i64, DivisionError> {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `division_results`
[INFO] [stdout]   --> exercises/18_iterators/iterators3.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let division_results = numbers.into_iter().map(|n| divide(n, 27));
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_division_results`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `division_results`
[INFO] [stdout]   --> exercises/18_iterators/iterators3.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let division_results = numbers.into_iter().map(|n| divide(n, 27));
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_division_results`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0308, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `exercises` (bin "errors5" test) due to 3 previous errors
[INFO] [stderr] error: could not compile `exercises` (bin "traits4" test) due to 5 previous errors
[INFO] [stderr] error: could not compile `exercises` (bin "iterators3" test) due to 2 previous errors; 4 warnings emitted
[INFO] [stderr] error: could not compile `exercises` (bin "strings2" test) due to 1 previous error
[INFO] running `Command { std: "docker" "inspect" "f0f66525e0c6654b974c0bd3c2b15662f14d5a39f03cef5f7dc0f1c1450810e9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f0f66525e0c6654b974c0bd3c2b15662f14d5a39f03cef5f7dc0f1c1450810e9", kill_on_drop: false }`
[INFO] [stdout] f0f66525e0c6654b974c0bd3c2b15662f14d5a39f03cef5f7dc0f1c1450810e9
