[INFO] fetching crate observable-property-tokio 0.3.0... [INFO] testing observable-property-tokio-0.3.0 against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-8 [INFO] extracting crate observable-property-tokio 0.3.0 into /workspace/builds/worker-3-tc1/source [INFO] started tweaking crates.io crate observable-property-tokio 0.3.0 [INFO] removed 0 missing examples [INFO] finished tweaking crates.io crate observable-property-tokio 0.3.0 [INFO] tweaked toml for crates.io crate observable-property-tokio 0.3.0 written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate observable-property-tokio 0.3.0 on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate observable-property-tokio 0.3.0 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" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 483664829fd0789ea6337dbe0afb7130037f99729d15c60e2972cd218dfbff09 [INFO] running `Command { std: "docker" "start" "-a" "483664829fd0789ea6337dbe0afb7130037f99729d15c60e2972cd218dfbff09", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "483664829fd0789ea6337dbe0afb7130037f99729d15c60e2972cd218dfbff09", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "483664829fd0789ea6337dbe0afb7130037f99729d15c60e2972cd218dfbff09", kill_on_drop: false }` [INFO] [stdout] 483664829fd0789ea6337dbe0afb7130037f99729d15c60e2972cd218dfbff09 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 1c7933453e435b0b856f58c84d969c35913c2c467753b58426845be1fdc1c3a8 [INFO] running `Command { std: "docker" "start" "-a" "1c7933453e435b0b856f58c84d969c35913c2c467753b58426845be1fdc1c3a8", kill_on_drop: false }` [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling parking_lot v0.12.4 [INFO] [stderr] Compiling tokio v1.47.1 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling observable-property-tokio v0.3.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.00s [INFO] running `Command { std: "docker" "inspect" "1c7933453e435b0b856f58c84d969c35913c2c467753b58426845be1fdc1c3a8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1c7933453e435b0b856f58c84d969c35913c2c467753b58426845be1fdc1c3a8", kill_on_drop: false }` [INFO] [stdout] 1c7933453e435b0b856f58c84d969c35913c2c467753b58426845be1fdc1c3a8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3367d9855be3f54792decc70ebc5694e864bf60e610ec1c4d3033adf60429dab [INFO] running `Command { std: "docker" "start" "-a" "3367d9855be3f54792decc70ebc5694e864bf60e610ec1c4d3033adf60429dab", kill_on_drop: false }` [INFO] [stderr] Compiling observable-property-tokio v0.3.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> examples/reference_and_async_filtered.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around closure body [INFO] [stdout] --> examples/reference_and_async_filtered.rs:85:44 [INFO] [stdout] | [INFO] [stdout] 85 | dataset.data = (0..10_000).map(|i| (i as f64 / 200.0)).collect(); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 85 - dataset.data = (0..10_000).map(|i| (i as f64 / 200.0)).collect(); [INFO] [stdout] 85 + dataset.data = (0..10_000).map(|i| i as f64 / 200.0 ).collect(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around closure body [INFO] [stdout] --> examples/reference_and_async_filtered.rs:96:44 [INFO] [stdout] | [INFO] [stdout] 96 | dataset.data = (0..10_000).map(|i| (i as f64 / 50.0)).collect(); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 96 - dataset.data = (0..10_000).map(|i| (i as f64 / 50.0)).collect(); [INFO] [stdout] 96 + dataset.data = (0..10_000).map(|i| i as f64 / 50.0 ).collect(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around closure body [INFO] [stdout] --> examples/reference_and_async_filtered.rs:112:44 [INFO] [stdout] | [INFO] [stdout] 112 | dataset.data = (0..10_000).map(|i| (i as f64 / 25.0)).collect(); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 112 - dataset.data = (0..10_000).map(|i| (i as f64 / 25.0)).collect(); [INFO] [stdout] 112 + dataset.data = (0..10_000).map(|i| i as f64 / 25.0 ).collect(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> examples/property_mapping.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `id` is never read [INFO] [stdout] --> examples/complex_data_type.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 6 | struct User { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] 7 | id: u64, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `User` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 2.11s [INFO] running `Command { std: "docker" "inspect" "3367d9855be3f54792decc70ebc5694e864bf60e610ec1c4d3033adf60429dab", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3367d9855be3f54792decc70ebc5694e864bf60e610ec1c4d3033adf60429dab", kill_on_drop: false }` [INFO] [stdout] 3367d9855be3f54792decc70ebc5694e864bf60e610ec1c4d3033adf60429dab [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 1e2b70404a0c91dd0fb2f5b1a1011c1a6de1278b9da050d60f85ee131fa5699a [INFO] running `Command { std: "docker" "start" "-a" "1e2b70404a0c91dd0fb2f5b1a1011c1a6de1278b9da050d60f85ee131fa5699a", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `std::sync::Arc` [INFO] [stderr] --> examples/property_mapping.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::sync::Arc; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: field `id` is never read [INFO] [stderr] --> examples/complex_data_type.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 6 | struct User { [INFO] [stderr] | ---- field in this struct [INFO] [stderr] 7 | id: u64, [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: `User` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::sync::Arc` [INFO] [stderr] --> examples/reference_and_async_filtered.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::sync::Arc; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around closure body [INFO] [stderr] --> examples/reference_and_async_filtered.rs:85:44 [INFO] [stderr] | [INFO] [stderr] 85 | dataset.data = (0..10_000).map(|i| (i as f64 / 200.0)).collect(); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 85 - dataset.data = (0..10_000).map(|i| (i as f64 / 200.0)).collect(); [INFO] [stderr] 85 + dataset.data = (0..10_000).map(|i| i as f64 / 200.0 ).collect(); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around closure body [INFO] [stderr] --> examples/reference_and_async_filtered.rs:96:44 [INFO] [stderr] | [INFO] [stderr] 96 | dataset.data = (0..10_000).map(|i| (i as f64 / 50.0)).collect(); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 96 - dataset.data = (0..10_000).map(|i| (i as f64 / 50.0)).collect(); [INFO] [stderr] 96 + dataset.data = (0..10_000).map(|i| i as f64 / 50.0 ).collect(); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around closure body [INFO] [stderr] --> examples/reference_and_async_filtered.rs:112:44 [INFO] [stderr] | [INFO] [stderr] 112 | dataset.data = (0..10_000).map(|i| (i as f64 / 25.0)).collect(); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 112 - dataset.data = (0..10_000).map(|i| (i as f64 / 25.0)).collect(); [INFO] [stderr] 112 + dataset.data = (0..10_000).map(|i| i as f64 / 25.0 ).collect(); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `observable-property-tokio` (example "property_mapping") generated 1 warning (run `cargo fix --example "property_mapping" -p observable-property-tokio` to apply 1 suggestion) [INFO] [stderr] warning: `observable-property-tokio` (example "complex_data_type") generated 1 warning [INFO] [stderr] warning: `observable-property-tokio` (example "reference_and_async_filtered") generated 4 warnings (run `cargo fix --example "reference_and_async_filtered" -p observable-property-tokio` to apply 4 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.07s [INFO] [stdout] [INFO] [stdout] running 31 tests [INFO] [stdout] test tests::test_complex_data_type ... ok [INFO] [stdout] test tests::test_concurrent_modifications ... ok [INFO] [stdout] test tests::test_cleanup_methods ... ok [INFO] [stdout] test tests::test_clone ... ok [INFO] [stdout] test tests::test_default ... ok [INFO] [stdout] test tests::test_filtered_observer ... ok [INFO] [stdout] test tests::test_filtered_subscription_auto_cleanup ... ok [INFO] [stdout] test tests::test_map ... ok [INFO] [stdout] test tests::test_multiple_observers ... ok [INFO] [stdout] test tests::test_new_and_get ... ok [INFO] [stdout] test tests::test_set ... ok [INFO] [stdout] test tests::test_observer_receives_correct_values ... ok [INFO] [stdout] test tests::test_subscribe_and_notify ... ok [INFO] [stdout] test tests::test_subscription_auto_cleanup ... ok [INFO] [stdout] test tests::test_observer_count ... ok [INFO] [stdout] test tests::test_subscription_with_property_drop ... ok [INFO] [stdout] test tests::test_try_unsubscribe ... ok [INFO] [stdout] test tests::test_set_async ... ok [INFO] [stdout] test tests::test_unsubscribe ... ok [INFO] [stdout] test tests::test_update ... ok [INFO] [stdout] test tests::test_update_async ... ok [INFO] [stdout] test tests::test_multiple_subscriptions ... ok [INFO] [stdout] test tests::test_get_ref ... ok [INFO] [stdout] test tests::test_observer_panic_handling ... ok [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/observable_property_tokio-df712fb18855fa7c) [INFO] [stdout] test tests::test_async_observers_with_async_set ... ok [INFO] [stdout] test tests::test_subscribe_async_filtered ... ok [INFO] [stdout] test tests::test_subscribe_async ... ok [INFO] [stdout] test tests::test_async_subscription_auto_cleanup ... ok [INFO] [stdout] test tests::test_many_observers ... ok [INFO] [stdout] test tests::test_waiting_for_observers ... ok [INFO] [stdout] test tests::test_async_filtered_subscription_auto_cleanup ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 31 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s [INFO] [stdout] [INFO] [stderr] Doc-tests observable_property_tokio [INFO] [stdout] [INFO] [stdout] running 25 tests [INFO] [stdout] test src/lib.rs - ObservableProperty::default (line 1097) ... ok [INFO] [stdout] test src/lib.rs - ObservableProperty::set (line 348) ... ok [INFO] [stdout] test src/lib.rs - ObservableProperty::subscribe_filtered (line 716) ... ok [INFO] [stdout] test src/lib.rs - ObservableProperty::get (line 294) ... ok [INFO] [stdout] test src/lib.rs - ObservableProperty::subscribe_async_filtered (line 832) ... ok [INFO] [stdout] test src/lib.rs - ObservableProperty::update (line 480) ... ok [INFO] [stdout] test src/lib.rs - ObservableProperty::subscribe (line 552) ... ok [INFO] [stdout] test src/lib.rs - ObservableProperty::unsubscribe (line 592) ... ok [INFO] [stdout] test src/lib.rs - (line 17) ... ok [INFO] [stdout] test src/lib.rs - ObservableProperty::set_async (line 402) ... ok [INFO] [stdout] test src/lib.rs - ObserverId::from (line 161) ... ok [INFO] [stdout] test src/lib.rs - usize::from (line 141) ... ok [INFO] [stdout] test src/lib.rs - PropertyError::from (line 1905) ... ok [INFO] [stdout] test src/lib.rs - ObservableProperty::get_ref (line 315) ... ok [INFO] [stdout] test src/lib.rs - ObservableProperty::subscribe_async (line 770) ... ok [INFO] [stdout] test src/lib.rs - ObservableProperty::new (line 268) ... ok [INFO] [stdout] test src/lib.rs - ObservableProperty::update_async (line 516) ... ok [INFO] [stdout] test src/lib.rs - ObservableProperty::try_unsubscribe (line 639) ... ok [INFO] [stdout] test src/lib.rs - ObservableProperty (line 193) ... ok [INFO] [stdout] test src/lib.rs - ObservableProperty::clone (line 1117) ... ok [INFO] [stdout] test src/lib.rs - ObservableProperty::clear_observers (line 960) ... ok [INFO] [stdout] test src/lib.rs - (line 46) ... ok [INFO] [stdout] test src/lib.rs - ObservableProperty::observer_count (line 670) ... ok [INFO] [stdout] test src/lib.rs - ObservableProperty::shutdown (line 1008) ... ok [INFO] [stdout] test src/lib.rs - ObservableProperty::map (line 904) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s [INFO] [stdout] [INFO] [stdout] all doctests ran in 2.83s; merged doctests compilation took 2.54s [INFO] running `Command { std: "docker" "inspect" "1e2b70404a0c91dd0fb2f5b1a1011c1a6de1278b9da050d60f85ee131fa5699a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1e2b70404a0c91dd0fb2f5b1a1011c1a6de1278b9da050d60f85ee131fa5699a", kill_on_drop: false }` [INFO] [stdout] 1e2b70404a0c91dd0fb2f5b1a1011c1a6de1278b9da050d60f85ee131fa5699a