[INFO] fetching crate tfhe-ark-bls12-381 0.4.0... [INFO] testing tfhe-ark-bls12-381-0.4.0 against 1.90.0 for beta-1.91-3 [INFO] extracting crate tfhe-ark-bls12-381 0.4.0 into /workspace/builds/worker-2-tc1/source [INFO] started tweaking crates.io crate tfhe-ark-bls12-381 0.4.0 [INFO] finished tweaking crates.io crate tfhe-ark-bls12-381 0.4.0 [INFO] tweaked toml for crates.io crate tfhe-ark-bls12-381 0.4.0 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate tfhe-ark-bls12-381 0.4.0 on toolchain 1.90.0 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 112 packages to latest compatible versions [INFO] [stderr] Adding ark-algebra-bench-templates v0.4.2 (available: v0.5.0) [INFO] [stderr] Adding ark-algebra-test-templates v0.4.2 (available: v0.5.0) [INFO] [stderr] Adding ark-serialize v0.4.2 (available: v0.5.0) [INFO] [stderr] Adding ark-std v0.4.0 (available: v0.5.0) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded ark-algebra-bench-templates v0.4.2 [INFO] [stderr] Downloaded tfhe-ark-poly v0.4.2 [INFO] [stderr] Downloaded tfhe-ark-ec v0.4.2 [INFO] [stderr] Downloaded tfhe-ark-ff v0.4.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 7a3edc0e50ae30d6fb9e9c7c369f4feb71cb600ef673880450ddc3c31c1073c4 [INFO] running `Command { std: "docker" "start" "-a" "7a3edc0e50ae30d6fb9e9c7c369f4feb71cb600ef673880450ddc3c31c1073c4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "7a3edc0e50ae30d6fb9e9c7c369f4feb71cb600ef673880450ddc3c31c1073c4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7a3edc0e50ae30d6fb9e9c7c369f4feb71cb600ef673880450ddc3c31c1073c4", kill_on_drop: false }` [INFO] [stdout] 7a3edc0e50ae30d6fb9e9c7c369f4feb71cb600ef673880450ddc3c31c1073c4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+1.90.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e275e54065ed6c04b1de3c58c634872a605f6edd8ffe7e55704030b4ef7062ae [INFO] running `Command { std: "docker" "start" "-a" "e275e54065ed6c04b1de3c58c634872a605f6edd8ffe7e55704030b4ef7062ae", kill_on_drop: false }` [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling syn v2.0.106 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling ark-serialize-derive v0.4.2 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling ark-ff-asm v0.4.2 [INFO] [stderr] Compiling derivative v2.2.0 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling itertools v0.12.1 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling ark-std v0.4.0 [INFO] [stderr] Compiling num-bigint v0.4.6 [INFO] [stderr] Compiling ark-serialize v0.4.2 [INFO] [stderr] Compiling ark-ff-macros v0.4.2 [INFO] [stderr] Compiling zeroize_derive v1.4.2 [INFO] [stderr] Compiling zeroize v1.8.2 [INFO] [stderr] Compiling tfhe-ark-ff v0.4.3 [INFO] [stderr] Compiling tfhe-ark-poly v0.4.2 [INFO] [stderr] Compiling tfhe-ark-ec v0.4.2 [INFO] [stderr] Compiling tfhe-ark-bls12-381 v0.4.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unexpected `cfg` condition value: `asm` [INFO] [stdout] --> src/fields/fr.rs:3:10 [INFO] [stdout] | [INFO] [stdout] 3 | #[derive(MontConfig)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: expected values for `feature` are: `curve`, `default`, `scalar_field`, and `std` [INFO] [stdout] = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `MontConfig` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the derive macro `MontConfig` may come from an old version of the `ark_ff_macros` crate, try updating your dependency with `cargo update -p ark_ff_macros` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | warnings, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` implied by `#[warn(warnings)]` [INFO] [stdout] = note: this warning originates in the derive macro `MontConfig` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `asm` [INFO] [stdout] --> src/fields/fq.rs:3:10 [INFO] [stdout] | [INFO] [stdout] 3 | #[derive(MontConfig)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: expected values for `feature` are: `curve`, `default`, `scalar_field`, and `std` [INFO] [stdout] = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `MontConfig` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the derive macro `MontConfig` may come from an old version of the `ark_ff_macros` crate, try updating your dependency with `cargo update -p ark_ff_macros` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: this warning originates in the derive macro `MontConfig` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/fields/fr.rs:3:10 [INFO] [stdout] | [INFO] [stdout] 3 | #[derive(MontConfig)] [INFO] [stdout] | ^--------- [INFO] [stdout] | | [INFO] [stdout] | `MontConfig` is not local [INFO] [stdout] | move the `impl` block outside of this function `frconfig___` [INFO] [stdout] ... [INFO] [stdout] 8 | pub struct FrConfig; [INFO] [stdout] | -------- `FrConfig` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `MontConfig` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `MontConfig` may come from an old version of the `ark_ff_macros` crate, try updating your dependency with `cargo update -p ark_ff_macros` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: `#[warn(non_local_definitions)]` implied by `#[warn(warnings)]` [INFO] [stdout] = note: this warning originates in the derive macro `MontConfig` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/fields/fq.rs:3:10 [INFO] [stdout] | [INFO] [stdout] 3 | #[derive(MontConfig)] [INFO] [stdout] | ^--------- [INFO] [stdout] | | [INFO] [stdout] | `MontConfig` is not local [INFO] [stdout] | move the `impl` block outside of this function `fqconfig___` [INFO] [stdout] ... [INFO] [stdout] 8 | pub struct FqConfig; [INFO] [stdout] | -------- `FqConfig` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `MontConfig` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `MontConfig` may come from an old version of the `ark_ff_macros` crate, try updating your dependency with `cargo update -p ark_ff_macros` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `MontConfig` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 28.50s [INFO] running `Command { std: "docker" "inspect" "e275e54065ed6c04b1de3c58c634872a605f6edd8ffe7e55704030b4ef7062ae", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e275e54065ed6c04b1de3c58c634872a605f6edd8ffe7e55704030b4ef7062ae", kill_on_drop: false }` [INFO] [stdout] e275e54065ed6c04b1de3c58c634872a605f6edd8ffe7e55704030b4ef7062ae [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+1.90.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9d3b2781f3950cfa09925e04a5d7d3b1481b3d89c30fc36fcd7605037aeb28ef [INFO] running `Command { std: "docker" "start" "-a" "9d3b2781f3950cfa09925e04a5d7d3b1481b3d89c30fc36fcd7605037aeb28ef", kill_on_drop: false }` [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling ark-std v0.4.0 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling hashbrown v0.13.2 [INFO] [stderr] Compiling itertools v0.12.1 [INFO] [stderr] Compiling half v2.6.0 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Compiling regex-automata v0.4.11 [INFO] [stderr] Compiling num-bigint v0.4.6 [INFO] [stderr] Compiling ciborium-ll v0.2.2 [INFO] [stderr] Compiling criterion-plot v0.5.0 [INFO] [stderr] Compiling clap v3.2.25 [INFO] [stderr] Compiling plotters v0.3.7 [INFO] [stderr] Compiling oorandom v11.1.5 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling ark-serialize v0.4.2 [INFO] [stderr] Compiling regex v1.11.3 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling ark-ff-macros v0.4.2 [INFO] [stderr] Compiling tinytemplate v1.2.1 [INFO] [stderr] Compiling ciborium v0.2.2 [INFO] [stderr] Compiling ark-ff v0.4.2 [INFO] [stderr] Compiling tfhe-ark-ff v0.4.3 [INFO] [stderr] Compiling criterion v0.4.0 [INFO] [stderr] Compiling tfhe-ark-poly v0.4.2 [INFO] [stderr] Compiling ark-poly v0.4.2 [INFO] [stderr] Compiling tfhe-ark-ec v0.4.2 [INFO] [stderr] Compiling ark-ec v0.4.2 [INFO] [stderr] Compiling tfhe-ark-bls12-381 v0.4.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unexpected `cfg` condition value: `asm` [INFO] [stdout] --> src/fields/fr.rs:3:10 [INFO] [stdout] | [INFO] [stdout] 3 | #[derive(MontConfig)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: expected values for `feature` are: `curve`, `default`, `scalar_field`, and `std` [INFO] [stdout] = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `MontConfig` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the derive macro `MontConfig` may come from an old version of the `ark_ff_macros` crate, try updating your dependency with `cargo update -p ark_ff_macros` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | warnings, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` implied by `#[warn(warnings)]` [INFO] [stdout] = note: this warning originates in the derive macro `MontConfig` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `asm` [INFO] [stdout] --> src/fields/fq.rs:3:10 [INFO] [stdout] | [INFO] [stdout] 3 | #[derive(MontConfig)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: expected values for `feature` are: `curve`, `default`, `scalar_field`, and `std` [INFO] [stdout] = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `MontConfig` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the derive macro `MontConfig` may come from an old version of the `ark_ff_macros` crate, try updating your dependency with `cargo update -p ark_ff_macros` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: this warning originates in the derive macro `MontConfig` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/fields/fr.rs:3:10 [INFO] [stdout] | [INFO] [stdout] 3 | #[derive(MontConfig)] [INFO] [stdout] | ^--------- [INFO] [stdout] | | [INFO] [stdout] | `MontConfig` is not local [INFO] [stdout] | move the `impl` block outside of this function `frconfig___` [INFO] [stdout] ... [INFO] [stdout] 8 | pub struct FrConfig; [INFO] [stdout] | -------- `FrConfig` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `MontConfig` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `MontConfig` may come from an old version of the `ark_ff_macros` crate, try updating your dependency with `cargo update -p ark_ff_macros` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: `#[warn(non_local_definitions)]` implied by `#[warn(warnings)]` [INFO] [stdout] = note: this warning originates in the derive macro `MontConfig` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/fields/fq.rs:3:10 [INFO] [stdout] | [INFO] [stdout] 3 | #[derive(MontConfig)] [INFO] [stdout] | ^--------- [INFO] [stdout] | | [INFO] [stdout] | `MontConfig` is not local [INFO] [stdout] | move the `impl` block outside of this function `fqconfig___` [INFO] [stdout] ... [INFO] [stdout] 8 | pub struct FqConfig; [INFO] [stdout] | -------- `FqConfig` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `MontConfig` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `MontConfig` may come from an old version of the `ark_ff_macros` crate, try updating your dependency with `cargo update -p ark_ff_macros` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `MontConfig` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling ark-algebra-test-templates v0.4.2 [INFO] [stderr] Compiling ark-algebra-bench-templates v0.4.2 [INFO] [stdout] error: no rules expected `glv` [INFO] [stdout] --> src/curves/tests/mod.rs:11:35 [INFO] [stdout] | [INFO] [stdout] 11 | test_group!(g1_glv; G1Projective; glv); [INFO] [stdout] | ^^^ no rules expected this token in macro call [INFO] [stdout] | [INFO] [stdout] note: while trying to match `msm` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ark-algebra-test-templates-0.4.2/src/groups.rs:164:17 [INFO] [stdout] | [INFO] [stdout] 164 | ($group:ty; msm) => { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: no rules expected `glv` [INFO] [stdout] --> src/curves/tests/mod.rs:12:35 [INFO] [stdout] | [INFO] [stdout] 12 | test_group!(g2_glv; G2Projective; glv); [INFO] [stdout] | ^^^ no rules expected this token in macro call [INFO] [stdout] | [INFO] [stdout] note: while trying to match `msm` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ark-algebra-test-templates-0.4.2/src/groups.rs:164:17 [INFO] [stdout] | [INFO] [stdout] 164 | ($group:ty; msm) => { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `tfhe-ark-bls12-381` (lib test) due to 2 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] running `Command { std: "docker" "inspect" "9d3b2781f3950cfa09925e04a5d7d3b1481b3d89c30fc36fcd7605037aeb28ef", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9d3b2781f3950cfa09925e04a5d7d3b1481b3d89c30fc36fcd7605037aeb28ef", kill_on_drop: false }` [INFO] [stdout] 9d3b2781f3950cfa09925e04a5d7d3b1481b3d89c30fc36fcd7605037aeb28ef