diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 2f68bd0..a49a92d 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -38,7 +38,7 @@ jobs:
- name: Run tests
run: cargo test -rv
- verify-proof:
+ verify-proofs-stone5-keccak-160-lsb:
runs-on: ubuntu-latest
strategy:
fail-fast: false
@@ -83,17 +83,57 @@ jobs:
${{ runner.os }}-cargo-build-
- name: Run verification
- run: cargo run -r --bin swiftness --features ${{ matrix.layout }},keccak --no-default-features -- --proof ${{ env.PROOFS_DIR }}/${{ matrix.layout }}/cairo0_example_proof.json
+ run: cargo run -r --bin swiftness --features ${{ matrix.layout }},stone5,keccak_160_lsb --no-default-features -- --proof ${{ env.PROOFS_DIR }}/${{ matrix.layout }}/cairo0_stone5_example_proof.json
+ working-directory: ${{ env.WORKING_DIR }}
+
+ verify-proof-stone6-blake2s-248-lsb:
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ layout: [ "dynamic" ]
+
+ env:
+ PROOFS_DIR: ${{ github.workspace }}/examples/proofs
+ WORKING_DIR: ${{ github.workspace }}/cli
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v3
+
+ - name: Setup Rust toolchain
+ uses: actions-rust-lang/setup-rust-toolchain@v1
+
+ - name: Cache Cargo registry
+ uses: actions/cache@v2
+ with:
+ path: |
+ ~/.cargo/registry
+ ~/.cargo/git
+ key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}
+ restore-keys: |
+ ${{ runner.os }}-cargo-registry-
+
+ - name: Cache Cargo build
+ uses: actions/cache@v2
+ with:
+ path: target
+ key: ${{ runner.os }}-cargo-build-${{ hashFiles('**/Cargo.lock') }}
+ restore-keys: |
+ ${{ runner.os }}-cargo-build-
+
+ - name: Run verification
+ run: cargo run -r --bin swiftness --features ${{ matrix.layout }},stone6,blake2s_248_lsb --no-default-features -- --proof ${{ env.PROOFS_DIR }}/${{ matrix.layout }}/cairo0_stone6_example_proof.json
working-directory: ${{ env.WORKING_DIR }}
no-std-build:
runs-on: ubuntu-latest
- needs: verify-proof
strategy:
fail-fast: false
matrix:
- layout: ["starknet_with_keccak",]
- hash: ["blake2s", "keccak"]
+ layout: ["dynamic"]
+ hash: ["blake2s_248_lsb"]
+ stone: ["stone5"]
target: ["armebv7r-none-eabi", "riscv64imac-unknown-none-elf", "aarch64-unknown-none-softfloat", "aarch64-unknown-none"]
env:
@@ -129,7 +169,7 @@ jobs:
working-directory: ${{ env.WORKING_DIR }}
- name: Build project
- run: cargo build -r --features ${{ matrix.layout }},${{ matrix.hash }} --no-default-features --target ${{ matrix.target }}
+ run: cargo build -r --features ${{ matrix.layout }},${{ matrix.hash }},${{ matrix.stone }} --no-default-features --target ${{ matrix.target }}
working-directory: ${{ env.WORKING_DIR }}
- name: Print binary metadata
diff --git a/Cargo.lock b/Cargo.lock
index 2ff57b0..3faaeac 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -534,12 +534,14 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
[[package]]
name = "swiftness_air"
-version = "0.0.8"
+version = "0.0.9"
dependencies = [
+ "num-bigint",
"serde",
"serde_with 3.9.0",
"starknet-core",
"starknet-crypto",
+ "starknet-types-core",
"swiftness_commitment",
"swiftness_transcript",
"thiserror",
@@ -548,9 +550,10 @@ dependencies = [
[[package]]
name = "swiftness_commitment"
-version = "0.0.8"
+version = "0.0.9"
dependencies = [
"blake2",
+ "num-bigint",
"serde",
"serde_with 3.9.0",
"sha3",
@@ -564,8 +567,9 @@ dependencies = [
[[package]]
name = "swiftness_fri"
-version = "0.0.8"
+version = "0.0.9"
dependencies = [
+ "num-bigint",
"serde",
"serde_with 3.9.0",
"sha3",
@@ -579,7 +583,7 @@ dependencies = [
[[package]]
name = "swiftness_pow"
-version = "0.0.8"
+version = "0.0.9"
dependencies = [
"blake2",
"serde",
@@ -593,7 +597,7 @@ dependencies = [
[[package]]
name = "swiftness_stark"
-version = "0.0.8"
+version = "0.0.9"
dependencies = [
"serde",
"serde_with 3.9.0",
@@ -610,7 +614,7 @@ dependencies = [
[[package]]
name = "swiftness_transcript"
-version = "0.0.8"
+version = "0.0.9"
dependencies = [
"starknet-crypto",
]
diff --git a/Cargo.toml b/Cargo.toml
index 4030834..57e09e0 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -24,10 +24,11 @@ edition = "2021"
license-file = "LICENSE"
readme = "README.md"
repository = "https://github.com/iosis-tech/swiftness"
-version = "0.0.8"
+version = "0.0.9"
[workspace.dependencies]
blake2 = { version = "0.10.6", default-features = false }
+num-bigint = { version = "0.4.6", default-features = false }
serde = { version = "1.0", default-features = false, features = ["derive"] }
serde_json = { version = "1.0.114", default-features = false }
serde_with = { version = "3.8.3", default-features = false, features = ["macros"] }
@@ -38,9 +39,9 @@ starknet-types-core = { version = "0.1.5", default-features = false }
thiserror = "1.0.61"
thiserror-no-std = "2.0.2"
-swiftness_air = { path = "crates/air", default-features = false, version = "0.0.8" }
-swiftness_commitment = { path = "crates/commitment", default-features = false, version = "0.0.8" }
-swiftness_fri = { path = "crates/fri", default-features = false, version = "0.0.8" }
-swiftness_pow = { path = "crates/pow", default-features = false, version = "0.0.8" }
-swiftness_stark = { path = "crates/stark", default-features = false, version = "0.0.8" }
-swiftness_transcript = { path = "crates/transcript", default-features = false, version = "0.0.8" }
+swiftness_air = { path = "crates/air", default-features = false, version = "0.0.9" }
+swiftness_commitment = { path = "crates/commitment", default-features = false, version = "0.0.9" }
+swiftness_fri = { path = "crates/fri", default-features = false, version = "0.0.9" }
+swiftness_pow = { path = "crates/pow", default-features = false, version = "0.0.9" }
+swiftness_stark = { path = "crates/stark", default-features = false, version = "0.0.9" }
+swiftness_transcript = { path = "crates/transcript", default-features = false, version = "0.0.9" }
diff --git a/README.md b/README.md
index c4f628b..e463d43 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
-![Version](https://img.shields.io/badge/v0.0.8-green?style=flat-square&logo=git&logoColor=white&label=version)
+![Version](https://img.shields.io/badge/v0.0.9-green?style=flat-square&logo=git&logoColor=white&label=version)
![Continuous Integration](https://img.shields.io/github/actions/workflow/status/iosis-tech/swiftness/ci.yml?style=flat-square&logo=githubactions&logoColor=white&label=Continuous%20Integration)
[![Crates.io Version](https://img.shields.io/crates/v/swiftness?style=flat-square&logo=lootcrate)](https://crates.io/crates/swiftness)
@@ -16,25 +16,8 @@ Swiftness is a Rust implementation of the Cairo-VM STARK verifier with layouts,
## Getting Started
### Verify an Example Proof
-
-1. **Install `swiftness`:**
-
- ```sh
- cargo install -f --path cli/ --features starknet_with_keccak,keccak --no-default-features
- ```
-
-2. **Verify the proof:**
-
- Ensure you use a proof corresponding to the layout and hash used to build the binary.
-
```sh
- swiftness --proof examples/proofs/starknet_with_keccak/cairo0_example_proof.json
- ```
-
-3. **Local Run:**
-
- ```sh
- cd cli && cargo run --release --bin swiftness --features starknet_with_keccak,keccak --no-default-features -- --proof ../examples/proofs/starknet_with_keccak/cairo0_example_proof.json
+ cd cli && cargo run --release --bin swiftness --features starknet_with_keccak,keccak_160_lsb,stone5 --no-default-features -- --proof ../examples/proofs/starknet_with_keccak/cairo0_stone5_example_proof.json
```
## Running Tests
@@ -54,15 +37,11 @@ cargo test
2. **Build WASM:**
```sh
- cd wasm_bindings && wasm-pack build --target web --features starknet_with_keccak,blake2s --no-default-features
+ cd wasm_bindings && wasm-pack build --target web --features recursive_with_poseidon,blake2s_248_lsb,stone5 --no-default-features
```
## Features
-### Usage
-
-- [x] CLI
-
### Implemented Layouts
- [x] dex
@@ -71,29 +50,26 @@ cargo test
- [x] small
- [x] starknet
- [x] starknet_with_keccak
+- [x] dynamic
### Commitment Hashes
-- [x] keccak
-- [x] blake2s
+- [x] keccak_160_lsb
+- [x] keccak_248_lsb
+- [x] blake2s_160_lsb
+- [x] blake2s_248_lsb
+
+### Stone Prover versions
+
+- [x] Stone5
+- [x] Stone6
### Web Support
- [x] WASM support
+- [x] NO_STD support
- [x] [Web Demo](https://demo.swiftness.iosis.tech/)
-- [x] NPM packages:
- - [swiftness-dex-blake2s](https://www.npmjs.com/package/swiftness-dex-blake2s)
- - [swiftness-dex-keccak](https://www.npmjs.com/package/swiftness-dex-keccak)
- - [swiftness-recursive-blake2s](https://www.npmjs.com/package/swiftness-recursive-blake2s)
- - [swiftness-recursive-keccak](https://www.npmjs.com/package/swiftness-recursive-keccak)
- - [swiftness-recursive-with-poseidon-blake2s](https://www.npmjs.com/package/swiftness-recursive-with-poseidon-blake2s)
- - [swiftness-recursive-with-poseidon-keccak](https://www.npmjs.com/package/swiftness-recursive-with-poseidon-keccak)
- - [swiftness-small-blake2s](https://www.npmjs.com/package/swiftness-small-blake2s)
- - [swiftness-small-keccak](https://www.npmjs.com/package/swiftness-small-keccak)
- - [swiftness-starknet-blake2s](https://www.npmjs.com/package/swiftness-starknet-blake2s)
- - [swiftness-starknet-keccak](https://www.npmjs.com/package/swiftness-starknet-keccak)
- - [swiftness-starknet-with-keccak-blake2s](https://www.npmjs.com/package/swiftness-starknet-with-keccak-blake2s)
- - [swiftness-starknet-with-keccak-keccak](https://www.npmjs.com/package/swiftness-starknet-with-keccak-keccak)
+- [x] [NPM packages](https://www.npmjs.com/search?q=swiftness)
### Other Platforms Support
diff --git a/cli/Cargo.lock b/cli/Cargo.lock
index 6978a18..c50c520 100644
--- a/cli/Cargo.lock
+++ b/cli/Cargo.lock
@@ -686,22 +686,27 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
[[package]]
name = "swiftness"
-version = "0.0.8"
+version = "0.0.9"
dependencies = [
"clap",
"swiftness_air",
+ "swiftness_commitment",
+ "swiftness_fri",
+ "swiftness_pow",
"swiftness_proof_parser",
"swiftness_stark",
]
[[package]]
name = "swiftness_air"
-version = "0.0.8"
+version = "0.0.9"
dependencies = [
+ "num-bigint",
"serde",
"serde_with 3.9.0",
"starknet-core",
"starknet-crypto",
+ "starknet-types-core",
"swiftness_commitment",
"swiftness_transcript",
"thiserror",
@@ -710,9 +715,10 @@ dependencies = [
[[package]]
name = "swiftness_commitment"
-version = "0.0.8"
+version = "0.0.9"
dependencies = [
"blake2",
+ "num-bigint",
"serde",
"serde_with 3.9.0",
"sha3",
@@ -726,8 +732,9 @@ dependencies = [
[[package]]
name = "swiftness_fri"
-version = "0.0.8"
+version = "0.0.9"
dependencies = [
+ "num-bigint",
"serde",
"serde_with 3.9.0",
"sha3",
@@ -741,7 +748,7 @@ dependencies = [
[[package]]
name = "swiftness_pow"
-version = "0.0.8"
+version = "0.0.9"
dependencies = [
"blake2",
"serde",
@@ -755,7 +762,7 @@ dependencies = [
[[package]]
name = "swiftness_proof_parser"
-version = "0.0.8"
+version = "0.0.9"
dependencies = [
"anyhow",
"clap",
@@ -763,19 +770,14 @@ dependencies = [
"regex",
"serde",
"serde_json",
+ "starknet-crypto",
"starknet-types-core",
- "swiftness_air",
- "swiftness_commitment",
- "swiftness_fri",
- "swiftness_pow",
- "swiftness_stark",
- "swiftness_transcript",
"thiserror",
]
[[package]]
name = "swiftness_stark"
-version = "0.0.8"
+version = "0.0.9"
dependencies = [
"serde",
"serde_with 3.9.0",
@@ -792,7 +794,7 @@ dependencies = [
[[package]]
name = "swiftness_transcript"
-version = "0.0.8"
+version = "0.0.9"
dependencies = [
"starknet-crypto",
]
diff --git a/cli/Cargo.toml b/cli/Cargo.toml
index bd5215a..2a9096e 100644
--- a/cli/Cargo.toml
+++ b/cli/Cargo.toml
@@ -5,23 +5,30 @@ edition = "2021"
license-file = "LICENSE"
readme = "../README.md"
repository = "https://github.com/iosis-tech/swiftness"
-version = "0.0.8"
+version = "0.0.9"
[dependencies]
clap = { version = "4.4.4", features = ["derive"] }
swiftness_air = { path = "../crates/air", default-features = false, features = [
"std",
-], version = "0.0.8" }
-swiftness_stark = { path = "../crates/stark", default-features = false, features = [
+], version = "0.0.9" }
+swiftness_commitment = { path = "../crates/commitment", default-features = false, features = [
+ "std",
+], version = "0.0.9" }
+swiftness_fri = { path = "../crates/fri", default-features = false, features = [
"std",
-], version = "0.0.8" }
-swiftness_proof_parser = { path = "../proof_parser", default-features = false, features = [
+], version = "0.0.9" }
+swiftness_pow = { path = "../crates/pow", default-features = false, features = [
+ "std",
+], version = "0.0.9" }
+swiftness_stark = { path = "../crates/stark", default-features = false, features = [
"std",
-], version = "0.0.8" }
+], version = "0.0.9" }
+swiftness_proof_parser = { path = "../proof_parser", version = "0.0.9" }
[features]
-default = ["recursive", "keccak"]
+default = ["recursive", "keccak_160_lsb", "stone5"]
dex = ["swiftness_air/dex", "swiftness_stark/dex"]
recursive = ["swiftness_air/recursive", "swiftness_stark/recursive"]
recursive_with_poseidon = [
@@ -34,13 +41,31 @@ starknet_with_keccak = [
"swiftness_air/starknet_with_keccak",
"swiftness_stark/starknet_with_keccak",
]
-keccak = [
- "swiftness_air/keccak",
- "swiftness_stark/keccak",
- "swiftness_proof_parser/keccak"
+dynamic = [
+ "swiftness_air/dynamic",
+ "swiftness_stark/dynamic",
+]
+stone5 = [
+ "swiftness_air/stone5",
+ "swiftness_stark/stone5",
+]
+stone6 = [
+ "swiftness_air/stone6",
+ "swiftness_stark/stone6",
+]
+keccak_160_lsb = [
+ "swiftness_air/keccak_160_lsb",
+ "swiftness_stark/keccak_160_lsb",
+]
+keccak_248_lsb = [
+ "swiftness_air/keccak_248_lsb",
+ "swiftness_stark/keccak_248_lsb",
]
-blake2s = [
- "swiftness_air/blake2s",
- "swiftness_stark/blake2s",
- "swiftness_proof_parser/blake2s"
+blake2s_160_lsb = [
+ "swiftness_air/blake2s_160_lsb",
+ "swiftness_stark/blake2s_160_lsb",
]
+blake2s_248_lsb = [
+ "swiftness_air/blake2s_248_lsb",
+ "swiftness_stark/blake2s_248_lsb",
+]
\ No newline at end of file
diff --git a/cli/src/lib.rs b/cli/src/lib.rs
index 7dd5486..1222f14 100644
--- a/cli/src/lib.rs
+++ b/cli/src/lib.rs
@@ -1,2 +1,5 @@
+pub mod transform;
+
pub use swiftness_proof_parser::*;
pub use swiftness_stark::*;
+pub use transform::TransformTo;
diff --git a/cli/src/main.rs b/cli/src/main.rs
index ec5d7f3..0b1e4c0 100644
--- a/cli/src/main.rs
+++ b/cli/src/main.rs
@@ -1,9 +1,15 @@
+pub mod transform;
+
+use clap::Parser;
use std::path::PathBuf;
pub use swiftness_proof_parser::*;
pub use swiftness_stark::*;
+pub use transform::TransformTo;
#[cfg(feature = "dex")]
use swiftness_air::layout::dex::Layout;
+#[cfg(feature = "dynamic")]
+use swiftness_air::layout::dynamic::Layout;
#[cfg(feature = "recursive")]
use swiftness_air::layout::recursive::Layout;
#[cfg(feature = "recursive_with_poseidon")]
@@ -15,8 +21,6 @@ use swiftness_air::layout::starknet::Layout;
#[cfg(feature = "starknet_with_keccak")]
use swiftness_air::layout::starknet_with_keccak::Layout;
-use clap::Parser;
-
#[derive(Parser)]
#[command(author, version, about)]
struct CairoVMVerifier {
@@ -27,7 +31,7 @@ struct CairoVMVerifier {
fn main() -> Result<(), Box
> {
let cli = CairoVMVerifier::parse();
- let stark_proof = parse(std::fs::read_to_string(cli.proof)?)?;
+ let stark_proof = parse(std::fs::read_to_string(cli.proof)?)?.transform_to();
let security_bits = stark_proof.config.security_bits();
let result = stark_proof.verify::(security_bits)?;
println!("{:?}", result);
diff --git a/cli/src/transform.rs b/cli/src/transform.rs
new file mode 100644
index 0000000..4679c5e
--- /dev/null
+++ b/cli/src/transform.rs
@@ -0,0 +1,271 @@
+use swiftness_air::{
+ dynamic::DynamicParams,
+ public_memory::PublicInput as PublicInputVerifier,
+ trace::{
+ config::Config as TraceConfigVerifier, Decommitment as TraceDecommitmentVerifier,
+ UnsentCommitment as TraceUnsentCommitmentVerifier, Witness as TraceWitnessVerifier,
+ },
+ types::{AddrValue, Page, SegmentInfo as SegmentInfoVerifier},
+};
+use swiftness_commitment::{
+ table::{
+ config::Config as TableConfigVerifier,
+ types::{
+ Decommitment as TableDecommitmentVerifier, Witness as TableCommitmentWitnessVerifier,
+ },
+ },
+ vector::{
+ config::Config as VectorConfigVerifier, types::Witness as VectorCommitmentWitnessVerifier,
+ },
+};
+use swiftness_fri::{
+ config::Config as FriConfigVerifier,
+ types::{
+ LayerWitness, UnsentCommitment as FriUnsentCommitmentVerifier,
+ Witness as FriWitnessVerifier,
+ },
+};
+use swiftness_pow::{
+ config::Config as PowConfigVerifier, pow::UnsentCommitment as PowUnsentCommitmentVerifier,
+};
+use swiftness_proof_parser::{self, stark_proof};
+use swiftness_stark::{
+ config::StarkConfig as StarkConfigVerifier,
+ types::{
+ StarkProof as StarkProofVerifier, StarkUnsentCommitment as StarkUnsentCommitmentVerifier,
+ StarkWitness as StarkWitnessVerifier,
+ },
+};
+
+pub trait TransformTo {
+ fn transform_to(self) -> T;
+}
+
+impl TransformTo for stark_proof::StarkProof {
+ fn transform_to(self) -> StarkProofVerifier {
+ StarkProofVerifier {
+ config: self.config.transform_to(),
+ public_input: self.public_input.transform_to(),
+ unsent_commitment: self.unsent_commitment.transform_to(),
+ witness: self.witness.transform_to(),
+ }
+ }
+}
+
+impl TransformTo for stark_proof::StarkConfig {
+ fn transform_to(self) -> StarkConfigVerifier {
+ StarkConfigVerifier {
+ traces: self.traces.transform_to(),
+ composition: self.composition.transform_to(),
+ fri: self.fri.transform_to(),
+ proof_of_work: self.proof_of_work.transform_to(),
+ log_trace_domain_size: self.log_trace_domain_size.into(),
+ n_queries: self.n_queries.into(),
+ log_n_cosets: self.log_n_cosets.into(),
+ n_verifier_friendly_commitment_layers: self
+ .n_verifier_friendly_commitment_layers
+ .into(),
+ }
+ }
+}
+
+impl TransformTo for stark_proof::ProofOfWorkConfig {
+ fn transform_to(self) -> PowConfigVerifier {
+ PowConfigVerifier { n_bits: self.n_bits as u8 }
+ }
+}
+
+impl TransformTo for stark_proof::FriConfig {
+ fn transform_to(self) -> FriConfigVerifier {
+ FriConfigVerifier {
+ log_input_size: self.log_input_size.into(),
+ n_layers: self.n_layers.into(),
+ inner_layers: self.inner_layers.into_iter().map(|x| x.transform_to()).collect(),
+ fri_step_sizes: self.fri_step_sizes.into_iter().map(|x| x.into()).collect(),
+ log_last_layer_degree_bound: self.log_last_layer_degree_bound.into(),
+ }
+ }
+}
+
+impl TransformTo for stark_proof::TracesConfig {
+ fn transform_to(self) -> TraceConfigVerifier {
+ TraceConfigVerifier {
+ original: self.original.transform_to(),
+ interaction: self.interaction.transform_to(),
+ }
+ }
+}
+
+impl TransformTo for stark_proof::TableCommitmentConfig {
+ fn transform_to(self) -> TableConfigVerifier {
+ TableConfigVerifier { n_columns: self.n_columns.into(), vector: self.vector.transform_to() }
+ }
+}
+
+impl TransformTo for stark_proof::VectorCommitmentConfig {
+ fn transform_to(self) -> VectorConfigVerifier {
+ VectorConfigVerifier {
+ height: self.height.into(),
+ n_verifier_friendly_commitment_layers: self
+ .n_verifier_friendly_commitment_layers
+ .into(),
+ }
+ }
+}
+
+impl TransformTo for stark_proof::PublicInput {
+ fn transform_to(self) -> PublicInputVerifier {
+ let dynamic_params = match self.dynamic_params.is_empty() {
+ true => None,
+ false => {
+ let params: Vec =
+ self.dynamic_params.values().map(|&f| f as usize).collect();
+ Some(DynamicParams::from(params))
+ }
+ };
+
+ PublicInputVerifier {
+ log_n_steps: self.log_n_steps.into(),
+ range_check_min: self.range_check_min.into(),
+ range_check_max: self.range_check_max.into(),
+ layout: self.layout.into(),
+ dynamic_params,
+ segments: self.segments.into_iter().map(|x| x.transform_to()).collect(),
+ padding_addr: self.padding_addr.into(),
+ padding_value: self.padding_value.into(),
+ main_page: Page(self.main_page.into_iter().map(|x| x.transform_to()).collect()),
+ continuous_page_headers: vec![],
+ }
+ }
+}
+
+impl TransformTo for stark_proof::SegmentInfo {
+ fn transform_to(self) -> SegmentInfoVerifier {
+ SegmentInfoVerifier { begin_addr: self.begin_addr.into(), stop_ptr: self.stop_ptr.into() }
+ }
+}
+
+impl TransformTo for stark_proof::PubilcMemoryCell {
+ fn transform_to(self) -> AddrValue {
+ AddrValue { address: self.address.into(), value: self.value.into() }
+ }
+}
+
+impl TransformTo for stark_proof::StarkUnsentCommitment {
+ fn transform_to(self) -> StarkUnsentCommitmentVerifier {
+ StarkUnsentCommitmentVerifier {
+ traces: self.traces.transform_to(),
+ composition: self.composition.into(),
+ oods_values: self.oods_values.into_iter().map(|x| x.into()).collect(),
+ fri: self.fri.transform_to(),
+ proof_of_work: self.proof_of_work.transform_to(),
+ }
+ }
+}
+
+impl TransformTo for stark_proof::TracesUnsentCommitment {
+ fn transform_to(self) -> TraceUnsentCommitmentVerifier {
+ TraceUnsentCommitmentVerifier {
+ original: self.original.into(),
+ interaction: self.interaction.into(),
+ }
+ }
+}
+
+impl TransformTo for stark_proof::FriUnsentCommitment {
+ fn transform_to(self) -> FriUnsentCommitmentVerifier {
+ FriUnsentCommitmentVerifier {
+ last_layer_coefficients: self
+ .last_layer_coefficients
+ .into_iter()
+ .map(|x| x.into())
+ .collect(),
+ inner_layers: self.inner_layers.into_iter().map(|x| x.into()).collect(),
+ }
+ }
+}
+
+impl TransformTo for stark_proof::ProofOfWorkUnsentCommitment {
+ fn transform_to(self) -> PowUnsentCommitmentVerifier {
+ PowUnsentCommitmentVerifier { nonce: self.nonce.to_u64_digits()[0] }
+ }
+}
+
+impl TransformTo for stark_proof::StarkWitness {
+ fn transform_to(self) -> StarkWitnessVerifier {
+ StarkWitnessVerifier {
+ traces_decommitment: self.traces_decommitment.transform_to(),
+ traces_witness: self.traces_witness.transform_to(),
+ composition_decommitment: self.composition_decommitment.transform_to(),
+ composition_witness: self.composition_witness.transform_to(),
+ fri_witness: self.fri_witness.transform_to(),
+ }
+ }
+}
+
+impl TransformTo for stark_proof::TracesDecommitment {
+ fn transform_to(self) -> TraceDecommitmentVerifier {
+ TraceDecommitmentVerifier {
+ original: self.original.transform_to(),
+ interaction: self.interaction.transform_to(),
+ }
+ }
+}
+
+impl TransformTo for stark_proof::TableDecommitment {
+ fn transform_to(self) -> TableDecommitmentVerifier {
+ TableDecommitmentVerifier { values: self.values.into_iter().map(|x| x.into()).collect() }
+ }
+}
+
+impl TransformTo for stark_proof::TracesWitness {
+ fn transform_to(self) -> TraceWitnessVerifier {
+ TraceWitnessVerifier {
+ original: self.original.transform_to(),
+ interaction: self.interaction.transform_to(),
+ }
+ }
+}
+
+impl TransformTo for stark_proof::TableCommitmentWitness {
+ fn transform_to(self) -> TableCommitmentWitnessVerifier {
+ TableCommitmentWitnessVerifier { vector: self.vector.transform_to() }
+ }
+}
+
+impl TransformTo for stark_proof::VectorCommitmentWitness {
+ fn transform_to(self) -> VectorCommitmentWitnessVerifier {
+ VectorCommitmentWitnessVerifier {
+ authentications: self.authentications.into_iter().map(|x| x.into()).collect(),
+ }
+ }
+}
+
+impl TransformTo for stark_proof::FriWitness {
+ fn transform_to(self) -> FriWitnessVerifier {
+ FriWitnessVerifier { layers: self.layers.into_iter().map(|x| x.transform_to()).collect() }
+ }
+}
+
+impl TransformTo for stark_proof::FriLayerWitness {
+ fn transform_to(self) -> LayerWitness {
+ LayerWitness {
+ leaves: self.leaves.into_iter().map(|x| x.into()).collect(),
+ table_witness: self.table_witness.transform_to(),
+ }
+ }
+}
+
+impl TransformTo for stark_proof::TableCommitmentWitnessFlat {
+ fn transform_to(self) -> TableCommitmentWitnessVerifier {
+ TableCommitmentWitnessVerifier { vector: self.vector.transform_to() }
+ }
+}
+
+impl TransformTo for stark_proof::VectorCommitmentWitnessFlat {
+ fn transform_to(self) -> VectorCommitmentWitnessVerifier {
+ VectorCommitmentWitnessVerifier {
+ authentications: self.authentications.into_iter().map(|x| x.into()).collect(),
+ }
+ }
+}
diff --git a/crates/air/Cargo.toml b/crates/air/Cargo.toml
index 98a9053..6ecd47c 100644
--- a/crates/air/Cargo.toml
+++ b/crates/air/Cargo.toml
@@ -8,7 +8,7 @@ repository.workspace = true
version.workspace = true
[features]
-default = ["std", "recursive", "keccak"]
+default = ["std", "recursive", "keccak_160_lsb", "stone5"]
std = [
"dep:thiserror",
"swiftness_commitment/std",
@@ -22,18 +22,21 @@ recursive_with_poseidon = []
small = []
starknet = []
starknet_with_keccak = []
-keccak = [
- "swiftness_commitment/keccak",
-]
-blake2s = [
- "swiftness_commitment/blake2s",
-]
+dynamic = []
+stone5 = []
+stone6 = []
+keccak_160_lsb = ["swiftness_commitment/keccak_160_lsb"]
+keccak_248_lsb = ["swiftness_commitment/keccak_248_lsb"]
+blake2s_160_lsb = ["swiftness_commitment/blake2s_160_lsb"]
+blake2s_248_lsb = ["swiftness_commitment/blake2s_248_lsb"]
[dependencies]
+num-bigint.workspace = true
serde_with.workspace = true
serde.workspace = true
starknet-core.workspace = true
starknet-crypto.workspace = true
+starknet-types-core.workspace = true
thiserror = { optional = true, workspace = true }
thiserror-no-std.workspace = true
diff --git a/crates/air/src/consts.rs b/crates/air/src/consts.rs
new file mode 100644
index 0000000..bb391ca
--- /dev/null
+++ b/crates/air/src/consts.rs
@@ -0,0 +1,96 @@
+use starknet_crypto::Felt;
+
+pub const FELT_0: Felt = Felt::from_hex_unchecked("0x0");
+pub const FELT_1: Felt = Felt::from_hex_unchecked("0x1");
+pub const FELT_2: Felt = Felt::from_hex_unchecked("0x2");
+pub const FELT_3: Felt = Felt::from_hex_unchecked("0x3");
+pub const FELT_4: Felt = Felt::from_hex_unchecked("0x4");
+pub const FELT_5: Felt = Felt::from_hex_unchecked("0x5");
+pub const FELT_6: Felt = Felt::from_hex_unchecked("0x6");
+pub const FELT_7: Felt = Felt::from_hex_unchecked("0x7");
+pub const FELT_8: Felt = Felt::from_hex_unchecked("0x8");
+pub const FELT_16: Felt = Felt::from_hex_unchecked("0x10");
+pub const FELT_66: Felt = Felt::from_hex_unchecked("0x42");
+pub const FELT_68: Felt = Felt::from_hex_unchecked("0x44");
+pub const FELT_16384: Felt = Felt::from_hex_unchecked("0x4000");
+pub const FELT_10: Felt = Felt::from_hex_unchecked("0xa");
+pub const FELT_11: Felt = Felt::from_hex_unchecked("0xb");
+pub const FELT_13: Felt = Felt::from_hex_unchecked("0xd");
+pub const FELT_15: Felt = Felt::from_hex_unchecked("0xf");
+pub const FELT_19: Felt = Felt::from_hex_unchecked("0x13");
+pub const FELT_21: Felt = Felt::from_hex_unchecked("0x15");
+pub const FELT_23: Felt = Felt::from_hex_unchecked("0x17");
+pub const FELT_25: Felt = Felt::from_hex_unchecked("0x19");
+pub const FELT_27: Felt = Felt::from_hex_unchecked("0x1b");
+pub const FELT_29: Felt = Felt::from_hex_unchecked("0x1d");
+pub const FELT_31: Felt = Felt::from_hex_unchecked("0x1f");
+pub const FELT_32: Felt = Felt::from_hex_unchecked("0x20");
+pub const FELT_61: Felt = Felt::from_hex_unchecked("0x3d");
+pub const FELT_63: Felt = Felt::from_hex_unchecked("0x3f");
+pub const FELT_64: Felt = Felt::from_hex_unchecked("0x40");
+pub const FELT_128: Felt = Felt::from_hex_unchecked("0x80");
+pub const FELT_251: Felt = Felt::from_hex_unchecked("0xfb");
+pub const FELT_255: Felt = Felt::from_hex_unchecked("0xff");
+pub const FELT_256: Felt = Felt::from_hex_unchecked("0x100");
+pub const FELT_512: Felt = Felt::from_hex_unchecked("0x200");
+pub const FELT_4096: Felt = Felt::from_hex_unchecked("0x1000");
+pub const FELT_524288: Felt = Felt::from_hex_unchecked("0x80000");
+pub const FELT_36893488147419103232: Felt = Felt::from_hex_unchecked("0x20000000000000000");
+pub const FELT_73786976294838206464: Felt = Felt::from_hex_unchecked("0x40000000000000000");
+pub const FELT_147573952589676412928: Felt = Felt::from_hex_unchecked("0x80000000000000000");
+pub const FELT_340282366920938463463374607431768211456: Felt =
+ Felt::from_hex_unchecked("0x100000000000000000000000000000000");
+pub const FELT_680564733841876926926749214863536422912: Felt =
+ Felt::from_hex_unchecked("0x200000000000000000000000000000000");
+pub const FELT_1361129467683753853853498429727072845824: Felt =
+ Felt::from_hex_unchecked("0x400000000000000000000000000000000");
+pub const FELT_2722258935367507707706996859454145691648: Felt =
+ Felt::from_hex_unchecked("0x800000000000000000000000000000000");
+pub const FELT_6277101735386680763835789423207666416102355444464034512896: Felt =
+ Felt::from_hex_unchecked("0x1000000000000000000000000000000000000000000000000");
+pub const FELT_12554203470773361527671578846415332832204710888928069025792: Felt =
+ Felt::from_hex_unchecked("0x2000000000000000000000000000000000000000000000000");
+pub const FELT_25108406941546723055343157692830665664409421777856138051584: Felt =
+ Felt::from_hex_unchecked("0x4000000000000000000000000000000000000000000000000");
+pub const FELT_50216813883093446110686315385661331328818843555712276103168: Felt =
+ Felt::from_hex_unchecked("0x8000000000000000000000000000000000000000000000000");
+pub const FELT_1606938044258990275541962092341162602522202993782792835301376: Felt =
+ Felt::from_hex_unchecked("0x100000000000000000000000000000000000000000000000000");
+pub const FELT_1229782938247303441: Felt = Felt::from_hex_unchecked("0x1111111111111111");
+pub const FELT_65536: Felt = Felt::from_hex_unchecked("0x10000");
+pub const FELT_4294967296: Felt = Felt::from_hex_unchecked("0x100000000");
+pub const FELT_281474976710656: Felt = Felt::from_hex_unchecked("0x1000000000000");
+pub const FELT_18446744073709551616: Felt = Felt::from_hex_unchecked("0x10000000000000000");
+pub const FELT_1208925819614629174706176: Felt =
+ Felt::from_hex_unchecked("0x100000000000000000000");
+pub const FELT_316912650057057350374175801344: Felt =
+ Felt::from_hex_unchecked("0x4000000000000000000000000");
+pub const FELT_79228162514264337593543950336: Felt =
+ Felt::from_hex_unchecked("0x1000000000000000000000000");
+pub const FELT_3138550867693340381917894711603833208051177722232017256448: Felt =
+ Felt::from_hex_unchecked("0x800000000000000000000000000000000000000000000000");
+pub const FELT_2950795762459345168613727575620414179244544320470208355568817838579231751791: Felt =
+ Felt::from_hex_unchecked("0x6861759EA556A2339DD92F9562A30B9E58E2AD98109AE4780B7FD8EAC77FE6F");
+pub const FELT_1587446564224215276866294500450702039420286416111469274423465069420553242820: Felt =
+ Felt::from_hex_unchecked("0x3827681995D5AF9FFC8397A3D00425A3DA43F76ABF28A64E4AB1A22F27508C4");
+pub const FELT_1645965921169490687904413452218868659025437693527479459426157555728339600137: Felt =
+ Felt::from_hex_unchecked("0x3A3956D2FAD44D0E7F760A2277DC7CB2CAC75DC279B2D687A0DBE17704A8309");
+pub const FELT_2121140748740143694053732746913428481442990369183417228688865837805149503386: Felt =
+ Felt::from_hex_unchecked("0x4B085EB1DF4258C3453CC97445954BF3433B6AB9DD5A99592864C00F54A3F9A");
+pub const FELT_3618502788666131213697322783095070105623107215331596699973092056135872020477: Felt =
+ Felt::from_hex_unchecked("0x800000000000010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD");
+pub const FELT_3618502788666131213697322783095070105623107215331596699973092056135872020479: Felt =
+ Felt::from_hex_unchecked("0x800000000000010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF");
+pub const FELT_2006642341318481906727563724340978325665491359415674592697055778067937914672: Felt =
+ Felt::from_hex_unchecked("0x46FB825257FEC76C50FE043684D4E6D2D2F2FDFE9B7C8D7128CA7ACC0F66F30");
+pub const FELT_1246177936547655338400308396717835700699368047388302793172818304164989556526: Felt =
+ Felt::from_hex_unchecked("0x2C14FCCABC26929170CC7AC9989C823608B9008BEF3B8E16B6089A5D33CD72E");
+pub const FELT_427751140904099001132521606468025610873158555767197326325930641757709538586: Felt =
+ Felt::from_hex_unchecked("0xF2193BA0C7EA33CE6222D9446C1E166202AE5461005292F4A2BCB93420151A");
+pub const FELT_18014398509481984: Felt = Felt::from_hex_unchecked("0x40000000000000");
+pub const FELT_560279373700919169769089400651532183647886248799764942664266404650165812023: Felt =
+ Felt::from_hex_unchecked("0x13D1B5CFD87693224F0AC561AB2C15CA53365D768311AF59CEFAF701BC53B37");
+pub const FELT_1401754474293352309994371631695783042590401941592571735921592823982231996415: Felt =
+ Felt::from_hex_unchecked("0x3195D6B2D930E71CEDE286D5B8B41D49296DDF222BCD3BF3717A12A9A6947FF");
+pub const FELT_49: Felt = Felt::from_hex_unchecked("0x31");
+pub const FELT_32768: Felt = Felt::from_hex_unchecked("0x8000");
diff --git a/crates/air/src/diluted.rs b/crates/air/src/diluted.rs
index 52afd48..aa88cad 100644
--- a/crates/air/src/diluted.rs
+++ b/crates/air/src/diluted.rs
@@ -1,3 +1,4 @@
+use crate::consts::{FELT_0, FELT_1, FELT_2};
use starknet_crypto::Felt;
// The cumulative value is defined using the next recursive formula:
@@ -24,15 +25,15 @@ use starknet_crypto::Felt;
//
// Now we can compute p_{n_bits} and q_{n_bits} in just n_bits recursive steps and we are done.
pub fn get_diluted_product(n_bits: Felt, spacing: Felt, z: Felt, alpha: Felt) -> Felt {
- let diff_multiplier = Felt::TWO.pow_felt(&spacing);
- let mut diff_x: Felt = diff_multiplier - 2;
- let mut x: Felt = Felt::ONE;
- let mut p: Felt = z + 1;
- let mut q: Felt = Felt::ONE;
+ let diff_multiplier = FELT_2.pow_felt(&spacing);
+ let mut diff_x: Felt = diff_multiplier - FELT_2;
+ let mut x: Felt = FELT_1;
+ let mut p: Felt = z + FELT_1;
+ let mut q: Felt = FELT_1;
- let mut i = Felt::ZERO;
+ let mut i = FELT_0;
loop {
- if i == n_bits - 1 {
+ if i == n_bits - FELT_1 {
break p + q * alpha;
}
@@ -43,6 +44,6 @@ pub fn get_diluted_product(n_bits: Felt, spacing: Felt, z: Felt, alpha: Felt) ->
q = q * y + x * x_p + q;
p *= y;
- i = i + 1;
+ i += FELT_1;
}
}
diff --git a/crates/air/src/domains.rs b/crates/air/src/domains.rs
index 8f29727..7ad14a6 100644
--- a/crates/air/src/domains.rs
+++ b/crates/air/src/domains.rs
@@ -31,12 +31,11 @@ impl StarkDomains {
log_eval_domain_size: log_trace_domain_size + log_n_cosets,
eval_domain_size: Felt::TWO.pow_felt(&log_eval_domain_size),
eval_generator: FIELD_GENERATOR.pow_felt(
- &STARK_PRIME_MINUS_ONE
- .field_div(&NonZeroFelt::from_felt_unchecked(eval_domain_size)),
+ &STARK_PRIME_MINUS_ONE.field_div(&NonZeroFelt::try_from(eval_domain_size).unwrap()),
),
trace_generator: FIELD_GENERATOR.pow_felt(
&STARK_PRIME_MINUS_ONE
- .field_div(&NonZeroFelt::from_felt_unchecked(trace_domain_size)),
+ .field_div(&NonZeroFelt::try_from(trace_domain_size).unwrap()),
),
trace_domain_size,
log_trace_domain_size,
diff --git a/crates/air/src/dynamic.rs b/crates/air/src/dynamic.rs
new file mode 100644
index 0000000..8a35c47
--- /dev/null
+++ b/crates/air/src/dynamic.rs
@@ -0,0 +1,1046 @@
+use serde::{Deserialize, Serialize};
+
+#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
+pub struct DynamicParams {
+ pub add_mod_a0_suboffset: usize,
+ pub add_mod_a1_suboffset: usize,
+ pub add_mod_a2_suboffset: usize,
+ pub add_mod_a3_suboffset: usize,
+ pub add_mod_a_offset_suboffset: usize,
+ pub add_mod_b0_suboffset: usize,
+ pub add_mod_b1_suboffset: usize,
+ pub add_mod_b2_suboffset: usize,
+ pub add_mod_b3_suboffset: usize,
+ pub add_mod_b_offset_suboffset: usize,
+ pub add_mod_c0_suboffset: usize,
+ pub add_mod_c1_suboffset: usize,
+ pub add_mod_c2_suboffset: usize,
+ pub add_mod_c3_suboffset: usize,
+ pub add_mod_c_offset_suboffset: usize,
+ pub add_mod_carry1_bit_column: usize,
+ pub add_mod_carry1_bit_offset: usize,
+ pub add_mod_carry1_sign_column: usize,
+ pub add_mod_carry1_sign_offset: usize,
+ pub add_mod_carry2_bit_column: usize,
+ pub add_mod_carry2_bit_offset: usize,
+ pub add_mod_carry2_sign_column: usize,
+ pub add_mod_carry2_sign_offset: usize,
+ pub add_mod_carry3_bit_column: usize,
+ pub add_mod_carry3_bit_offset: usize,
+ pub add_mod_carry3_sign_column: usize,
+ pub add_mod_carry3_sign_offset: usize,
+ pub add_mod_n_suboffset: usize,
+ pub add_mod_offsets_ptr_suboffset: usize,
+ pub add_mod_p0_suboffset: usize,
+ pub add_mod_p1_suboffset: usize,
+ pub add_mod_p2_suboffset: usize,
+ pub add_mod_p3_suboffset: usize,
+ pub add_mod_row_ratio: usize,
+ pub add_mod_sub_p_bit_column: usize,
+ pub add_mod_sub_p_bit_offset: usize,
+ pub add_mod_values_ptr_suboffset: usize,
+ pub bitwise_diluted_var_pool_suboffset: usize,
+ pub bitwise_row_ratio: usize,
+ pub bitwise_trim_unpacking192_suboffset: usize,
+ pub bitwise_trim_unpacking193_suboffset: usize,
+ pub bitwise_trim_unpacking194_suboffset: usize,
+ pub bitwise_trim_unpacking195_suboffset: usize,
+ pub bitwise_var_pool_suboffset: usize,
+ pub bitwise_x_or_y_suboffset: usize,
+ pub cpu_decode_mem_inst_suboffset: usize,
+ pub cpu_decode_off0_suboffset: usize,
+ pub cpu_decode_off1_suboffset: usize,
+ pub cpu_decode_off2_suboffset: usize,
+ pub cpu_decode_opcode_range_check_column_column: usize,
+ pub cpu_decode_opcode_range_check_column_offset: usize,
+ pub cpu_operands_mem_dst_suboffset: usize,
+ pub cpu_operands_mem_op0_suboffset: usize,
+ pub cpu_operands_mem_op1_suboffset: usize,
+ pub cpu_operands_ops_mul_column: usize,
+ pub cpu_operands_ops_mul_offset: usize,
+ pub cpu_operands_res_column: usize,
+ pub cpu_operands_res_offset: usize,
+ pub cpu_registers_ap_column: usize,
+ pub cpu_registers_ap_offset: usize,
+ pub cpu_registers_fp_column: usize,
+ pub cpu_registers_fp_offset: usize,
+ pub cpu_update_registers_update_pc_tmp0_column: usize,
+ pub cpu_update_registers_update_pc_tmp0_offset: usize,
+ pub cpu_update_registers_update_pc_tmp1_column: usize,
+ pub cpu_update_registers_update_pc_tmp1_offset: usize,
+ pub cpu_component_step: usize,
+ pub diluted_check_cumulative_value_column: usize,
+ pub diluted_check_cumulative_value_offset: usize,
+ pub diluted_check_permutation_cum_prod0_column: usize,
+ pub diluted_check_permutation_cum_prod0_offset: usize,
+ pub diluted_check_permuted_values_column: usize,
+ pub diluted_check_permuted_values_offset: usize,
+ pub diluted_pool_column: usize,
+ pub diluted_pool_offset: usize,
+ pub diluted_units_row_ratio: usize,
+ pub ec_op_doubled_points_x_column: usize,
+ pub ec_op_doubled_points_x_offset: usize,
+ pub ec_op_doubled_points_y_column: usize,
+ pub ec_op_doubled_points_y_offset: usize,
+ pub ec_op_doubling_slope_column: usize,
+ pub ec_op_doubling_slope_offset: usize,
+ pub ec_op_ec_subset_sum_bit_unpacking_prod_ones192_column: usize,
+ pub ec_op_ec_subset_sum_bit_unpacking_prod_ones192_offset: usize,
+ pub ec_op_ec_subset_sum_bit_unpacking_prod_ones196_column: usize,
+ pub ec_op_ec_subset_sum_bit_unpacking_prod_ones196_offset: usize,
+ pub ec_op_ec_subset_sum_partial_sum_x_column: usize,
+ pub ec_op_ec_subset_sum_partial_sum_x_offset: usize,
+ pub ec_op_ec_subset_sum_partial_sum_y_column: usize,
+ pub ec_op_ec_subset_sum_partial_sum_y_offset: usize,
+ pub ec_op_ec_subset_sum_selector_column: usize,
+ pub ec_op_ec_subset_sum_selector_offset: usize,
+ pub ec_op_ec_subset_sum_slope_column: usize,
+ pub ec_op_ec_subset_sum_slope_offset: usize,
+ pub ec_op_ec_subset_sum_x_diff_inv_column: usize,
+ pub ec_op_ec_subset_sum_x_diff_inv_offset: usize,
+ pub ec_op_m_suboffset: usize,
+ pub ec_op_p_x_suboffset: usize,
+ pub ec_op_p_y_suboffset: usize,
+ pub ec_op_q_x_suboffset: usize,
+ pub ec_op_q_y_suboffset: usize,
+ pub ec_op_r_x_suboffset: usize,
+ pub ec_op_r_y_suboffset: usize,
+ pub ec_op_builtin_row_ratio: usize,
+ pub ecdsa_message_suboffset: usize,
+ pub ecdsa_pubkey_suboffset: usize,
+ pub ecdsa_signature0_add_results_inv_column: usize,
+ pub ecdsa_signature0_add_results_inv_offset: usize,
+ pub ecdsa_signature0_add_results_slope_column: usize,
+ pub ecdsa_signature0_add_results_slope_offset: usize,
+ pub ecdsa_signature0_doubling_slope_column: usize,
+ pub ecdsa_signature0_doubling_slope_offset: usize,
+ pub ecdsa_signature0_exponentiate_generator_partial_sum_x_column: usize,
+ pub ecdsa_signature0_exponentiate_generator_partial_sum_x_offset: usize,
+ pub ecdsa_signature0_exponentiate_generator_partial_sum_y_column: usize,
+ pub ecdsa_signature0_exponentiate_generator_partial_sum_y_offset: usize,
+ pub ecdsa_signature0_exponentiate_generator_selector_column: usize,
+ pub ecdsa_signature0_exponentiate_generator_selector_offset: usize,
+ pub ecdsa_signature0_exponentiate_generator_slope_column: usize,
+ pub ecdsa_signature0_exponentiate_generator_slope_offset: usize,
+ pub ecdsa_signature0_exponentiate_generator_x_diff_inv_column: usize,
+ pub ecdsa_signature0_exponentiate_generator_x_diff_inv_offset: usize,
+ pub ecdsa_signature0_exponentiate_key_partial_sum_x_column: usize,
+ pub ecdsa_signature0_exponentiate_key_partial_sum_x_offset: usize,
+ pub ecdsa_signature0_exponentiate_key_partial_sum_y_column: usize,
+ pub ecdsa_signature0_exponentiate_key_partial_sum_y_offset: usize,
+ pub ecdsa_signature0_exponentiate_key_selector_column: usize,
+ pub ecdsa_signature0_exponentiate_key_selector_offset: usize,
+ pub ecdsa_signature0_exponentiate_key_slope_column: usize,
+ pub ecdsa_signature0_exponentiate_key_slope_offset: usize,
+ pub ecdsa_signature0_exponentiate_key_x_diff_inv_column: usize,
+ pub ecdsa_signature0_exponentiate_key_x_diff_inv_offset: usize,
+ pub ecdsa_signature0_extract_r_inv_column: usize,
+ pub ecdsa_signature0_extract_r_inv_offset: usize,
+ pub ecdsa_signature0_extract_r_slope_column: usize,
+ pub ecdsa_signature0_extract_r_slope_offset: usize,
+ pub ecdsa_signature0_key_points_x_column: usize,
+ pub ecdsa_signature0_key_points_x_offset: usize,
+ pub ecdsa_signature0_key_points_y_column: usize,
+ pub ecdsa_signature0_key_points_y_offset: usize,
+ pub ecdsa_signature0_q_x_squared_column: usize,
+ pub ecdsa_signature0_q_x_squared_offset: usize,
+ pub ecdsa_signature0_r_w_inv_column: usize,
+ pub ecdsa_signature0_r_w_inv_offset: usize,
+ pub ecdsa_signature0_z_inv_column: usize,
+ pub ecdsa_signature0_z_inv_offset: usize,
+ pub ecdsa_builtin_row_ratio: usize,
+ pub keccak_input_output_suboffset: usize,
+ pub keccak_keccak_diluted_column0_suboffset: usize,
+ pub keccak_keccak_diluted_column1_suboffset: usize,
+ pub keccak_keccak_diluted_column2_suboffset: usize,
+ pub keccak_keccak_diluted_column3_suboffset: usize,
+ pub keccak_keccak_parse_to_diluted_cumulative_sum_column: usize,
+ pub keccak_keccak_parse_to_diluted_cumulative_sum_offset: usize,
+ pub keccak_keccak_parse_to_diluted_final_reshaped_input_column: usize,
+ pub keccak_keccak_parse_to_diluted_final_reshaped_input_offset: usize,
+ pub keccak_keccak_parse_to_diluted_reshaped_intermediate_column: usize,
+ pub keccak_keccak_parse_to_diluted_reshaped_intermediate_offset: usize,
+ pub keccak_keccak_rotated_parity0_column: usize,
+ pub keccak_keccak_rotated_parity0_offset: usize,
+ pub keccak_keccak_rotated_parity1_column: usize,
+ pub keccak_keccak_rotated_parity1_offset: usize,
+ pub keccak_keccak_rotated_parity2_column: usize,
+ pub keccak_keccak_rotated_parity2_offset: usize,
+ pub keccak_keccak_rotated_parity3_column: usize,
+ pub keccak_keccak_rotated_parity3_offset: usize,
+ pub keccak_keccak_rotated_parity4_column: usize,
+ pub keccak_keccak_rotated_parity4_offset: usize,
+ pub keccak_row_ratio: usize,
+ pub mem_pool_addr_column: usize,
+ pub mem_pool_addr_offset: usize,
+ pub mem_pool_value_column: usize,
+ pub mem_pool_value_offset: usize,
+ pub memory_multi_column_perm_perm_cum_prod0_column: usize,
+ pub memory_multi_column_perm_perm_cum_prod0_offset: usize,
+ pub memory_sorted_addr_column: usize,
+ pub memory_sorted_addr_offset: usize,
+ pub memory_sorted_value_column: usize,
+ pub memory_sorted_value_offset: usize,
+ pub memory_units_row_ratio: usize,
+ pub mul_mod_a0_suboffset: usize,
+ pub mul_mod_a1_suboffset: usize,
+ pub mul_mod_a2_suboffset: usize,
+ pub mul_mod_a3_suboffset: usize,
+ pub mul_mod_a_offset_suboffset: usize,
+ pub mul_mod_b0_suboffset: usize,
+ pub mul_mod_b1_suboffset: usize,
+ pub mul_mod_b2_suboffset: usize,
+ pub mul_mod_b3_suboffset: usize,
+ pub mul_mod_b_offset_suboffset: usize,
+ pub mul_mod_c0_suboffset: usize,
+ pub mul_mod_c1_suboffset: usize,
+ pub mul_mod_c2_suboffset: usize,
+ pub mul_mod_c3_suboffset: usize,
+ pub mul_mod_c_offset_suboffset: usize,
+ pub mul_mod_carry0_part0_suboffset: usize,
+ pub mul_mod_carry0_part1_suboffset: usize,
+ pub mul_mod_carry0_part2_suboffset: usize,
+ pub mul_mod_carry0_part3_suboffset: usize,
+ pub mul_mod_carry0_part4_suboffset: usize,
+ pub mul_mod_carry0_part5_suboffset: usize,
+ pub mul_mod_carry0_part6_suboffset: usize,
+ pub mul_mod_carry1_part0_suboffset: usize,
+ pub mul_mod_carry1_part1_suboffset: usize,
+ pub mul_mod_carry1_part2_suboffset: usize,
+ pub mul_mod_carry1_part3_suboffset: usize,
+ pub mul_mod_carry1_part4_suboffset: usize,
+ pub mul_mod_carry1_part5_suboffset: usize,
+ pub mul_mod_carry1_part6_suboffset: usize,
+ pub mul_mod_carry2_part0_suboffset: usize,
+ pub mul_mod_carry2_part1_suboffset: usize,
+ pub mul_mod_carry2_part2_suboffset: usize,
+ pub mul_mod_carry2_part3_suboffset: usize,
+ pub mul_mod_carry2_part4_suboffset: usize,
+ pub mul_mod_carry2_part5_suboffset: usize,
+ pub mul_mod_carry2_part6_suboffset: usize,
+ pub mul_mod_carry3_part0_suboffset: usize,
+ pub mul_mod_carry3_part1_suboffset: usize,
+ pub mul_mod_carry3_part2_suboffset: usize,
+ pub mul_mod_carry3_part3_suboffset: usize,
+ pub mul_mod_carry3_part4_suboffset: usize,
+ pub mul_mod_carry3_part5_suboffset: usize,
+ pub mul_mod_carry3_part6_suboffset: usize,
+ pub mul_mod_carry4_part0_suboffset: usize,
+ pub mul_mod_carry4_part1_suboffset: usize,
+ pub mul_mod_carry4_part2_suboffset: usize,
+ pub mul_mod_carry4_part3_suboffset: usize,
+ pub mul_mod_carry4_part4_suboffset: usize,
+ pub mul_mod_carry4_part5_suboffset: usize,
+ pub mul_mod_carry4_part6_suboffset: usize,
+ pub mul_mod_carry5_part0_suboffset: usize,
+ pub mul_mod_carry5_part1_suboffset: usize,
+ pub mul_mod_carry5_part2_suboffset: usize,
+ pub mul_mod_carry5_part3_suboffset: usize,
+ pub mul_mod_carry5_part4_suboffset: usize,
+ pub mul_mod_carry5_part5_suboffset: usize,
+ pub mul_mod_carry5_part6_suboffset: usize,
+ pub mul_mod_n_suboffset: usize,
+ pub mul_mod_offsets_ptr_suboffset: usize,
+ pub mul_mod_p0_suboffset: usize,
+ pub mul_mod_p1_suboffset: usize,
+ pub mul_mod_p2_suboffset: usize,
+ pub mul_mod_p3_suboffset: usize,
+ pub mul_mod_p_multiplier0_part0_suboffset: usize,
+ pub mul_mod_p_multiplier0_part1_suboffset: usize,
+ pub mul_mod_p_multiplier0_part2_suboffset: usize,
+ pub mul_mod_p_multiplier0_part3_suboffset: usize,
+ pub mul_mod_p_multiplier0_part4_suboffset: usize,
+ pub mul_mod_p_multiplier0_part5_suboffset: usize,
+ pub mul_mod_p_multiplier1_part0_suboffset: usize,
+ pub mul_mod_p_multiplier1_part1_suboffset: usize,
+ pub mul_mod_p_multiplier1_part2_suboffset: usize,
+ pub mul_mod_p_multiplier1_part3_suboffset: usize,
+ pub mul_mod_p_multiplier1_part4_suboffset: usize,
+ pub mul_mod_p_multiplier1_part5_suboffset: usize,
+ pub mul_mod_p_multiplier2_part0_suboffset: usize,
+ pub mul_mod_p_multiplier2_part1_suboffset: usize,
+ pub mul_mod_p_multiplier2_part2_suboffset: usize,
+ pub mul_mod_p_multiplier2_part3_suboffset: usize,
+ pub mul_mod_p_multiplier2_part4_suboffset: usize,
+ pub mul_mod_p_multiplier2_part5_suboffset: usize,
+ pub mul_mod_p_multiplier3_part0_suboffset: usize,
+ pub mul_mod_p_multiplier3_part1_suboffset: usize,
+ pub mul_mod_p_multiplier3_part2_suboffset: usize,
+ pub mul_mod_p_multiplier3_part3_suboffset: usize,
+ pub mul_mod_p_multiplier3_part4_suboffset: usize,
+ pub mul_mod_p_multiplier3_part5_suboffset: usize,
+ pub mul_mod_row_ratio: usize,
+ pub mul_mod_values_ptr_suboffset: usize,
+ pub num_columns_first: usize,
+ pub num_columns_second: usize,
+ pub orig_public_memory_suboffset: usize,
+ pub pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones192_column: usize,
+ pub pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones192_offset: usize,
+ pub pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones196_column: usize,
+ pub pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones196_offset: usize,
+ pub pedersen_hash0_ec_subset_sum_partial_sum_x_column: usize,
+ pub pedersen_hash0_ec_subset_sum_partial_sum_x_offset: usize,
+ pub pedersen_hash0_ec_subset_sum_partial_sum_y_column: usize,
+ pub pedersen_hash0_ec_subset_sum_partial_sum_y_offset: usize,
+ pub pedersen_hash0_ec_subset_sum_selector_column: usize,
+ pub pedersen_hash0_ec_subset_sum_selector_offset: usize,
+ pub pedersen_hash0_ec_subset_sum_slope_column: usize,
+ pub pedersen_hash0_ec_subset_sum_slope_offset: usize,
+ pub pedersen_input0_suboffset: usize,
+ pub pedersen_input1_suboffset: usize,
+ pub pedersen_output_suboffset: usize,
+ pub pedersen_builtin_row_ratio: usize,
+ pub poseidon_param_0_input_output_suboffset: usize,
+ pub poseidon_param_1_input_output_suboffset: usize,
+ pub poseidon_param_2_input_output_suboffset: usize,
+ pub poseidon_poseidon_full_rounds_state0_column: usize,
+ pub poseidon_poseidon_full_rounds_state0_offset: usize,
+ pub poseidon_poseidon_full_rounds_state0_squared_column: usize,
+ pub poseidon_poseidon_full_rounds_state0_squared_offset: usize,
+ pub poseidon_poseidon_full_rounds_state1_column: usize,
+ pub poseidon_poseidon_full_rounds_state1_offset: usize,
+ pub poseidon_poseidon_full_rounds_state1_squared_column: usize,
+ pub poseidon_poseidon_full_rounds_state1_squared_offset: usize,
+ pub poseidon_poseidon_full_rounds_state2_column: usize,
+ pub poseidon_poseidon_full_rounds_state2_offset: usize,
+ pub poseidon_poseidon_full_rounds_state2_squared_column: usize,
+ pub poseidon_poseidon_full_rounds_state2_squared_offset: usize,
+ pub poseidon_poseidon_partial_rounds_state0_column: usize,
+ pub poseidon_poseidon_partial_rounds_state0_offset: usize,
+ pub poseidon_poseidon_partial_rounds_state0_squared_column: usize,
+ pub poseidon_poseidon_partial_rounds_state0_squared_offset: usize,
+ pub poseidon_poseidon_partial_rounds_state1_column: usize,
+ pub poseidon_poseidon_partial_rounds_state1_offset: usize,
+ pub poseidon_poseidon_partial_rounds_state1_squared_column: usize,
+ pub poseidon_poseidon_partial_rounds_state1_squared_offset: usize,
+ pub poseidon_row_ratio: usize,
+ pub range_check16_perm_cum_prod0_column: usize,
+ pub range_check16_perm_cum_prod0_offset: usize,
+ pub range_check16_sorted_column: usize,
+ pub range_check16_sorted_offset: usize,
+ pub range_check16_pool_column: usize,
+ pub range_check16_pool_offset: usize,
+ pub range_check96_builtin_inner_range_check0_suboffset: usize,
+ pub range_check96_builtin_inner_range_check1_suboffset: usize,
+ pub range_check96_builtin_inner_range_check2_suboffset: usize,
+ pub range_check96_builtin_inner_range_check3_suboffset: usize,
+ pub range_check96_builtin_inner_range_check4_suboffset: usize,
+ pub range_check96_builtin_inner_range_check5_suboffset: usize,
+ pub range_check96_builtin_mem_suboffset: usize,
+ pub range_check96_builtin_row_ratio: usize,
+ pub range_check_builtin_inner_range_check_suboffset: usize,
+ pub range_check_builtin_mem_suboffset: usize,
+ pub range_check_builtin_row_ratio: usize,
+ pub range_check_units_row_ratio: usize,
+ pub uses_add_mod_builtin: usize,
+ pub uses_bitwise_builtin: usize,
+ pub uses_ec_op_builtin: usize,
+ pub uses_ecdsa_builtin: usize,
+ pub uses_keccak_builtin: usize,
+ pub uses_mul_mod_builtin: usize,
+ pub uses_pedersen_builtin: usize,
+ pub uses_poseidon_builtin: usize,
+ pub uses_range_check96_builtin: usize,
+ pub uses_range_check_builtin: usize,
+}
+
+use alloc::vec::Vec;
+
+impl From> for DynamicParams {
+ fn from(vec: Vec) -> Self {
+ // Ensure the vector has the correct length
+ assert_eq!(vec.len(), 340, "Vector length does not match the number of fields");
+
+ Self {
+ add_mod_a0_suboffset: vec[0],
+ add_mod_a1_suboffset: vec[1],
+ add_mod_a2_suboffset: vec[2],
+ add_mod_a3_suboffset: vec[3],
+ add_mod_a_offset_suboffset: vec[4],
+ add_mod_b0_suboffset: vec[5],
+ add_mod_b1_suboffset: vec[6],
+ add_mod_b2_suboffset: vec[7],
+ add_mod_b3_suboffset: vec[8],
+ add_mod_b_offset_suboffset: vec[9],
+ add_mod_c0_suboffset: vec[10],
+ add_mod_c1_suboffset: vec[11],
+ add_mod_c2_suboffset: vec[12],
+ add_mod_c3_suboffset: vec[13],
+ add_mod_c_offset_suboffset: vec[14],
+ add_mod_carry1_bit_column: vec[15],
+ add_mod_carry1_bit_offset: vec[16],
+ add_mod_carry1_sign_column: vec[17],
+ add_mod_carry1_sign_offset: vec[18],
+ add_mod_carry2_bit_column: vec[19],
+ add_mod_carry2_bit_offset: vec[20],
+ add_mod_carry2_sign_column: vec[21],
+ add_mod_carry2_sign_offset: vec[22],
+ add_mod_carry3_bit_column: vec[23],
+ add_mod_carry3_bit_offset: vec[24],
+ add_mod_carry3_sign_column: vec[25],
+ add_mod_carry3_sign_offset: vec[26],
+ add_mod_n_suboffset: vec[27],
+ add_mod_offsets_ptr_suboffset: vec[28],
+ add_mod_p0_suboffset: vec[29],
+ add_mod_p1_suboffset: vec[30],
+ add_mod_p2_suboffset: vec[31],
+ add_mod_p3_suboffset: vec[32],
+ add_mod_row_ratio: vec[33],
+ add_mod_sub_p_bit_column: vec[34],
+ add_mod_sub_p_bit_offset: vec[35],
+ add_mod_values_ptr_suboffset: vec[36],
+ bitwise_diluted_var_pool_suboffset: vec[37],
+ bitwise_row_ratio: vec[38],
+ bitwise_trim_unpacking192_suboffset: vec[39],
+ bitwise_trim_unpacking193_suboffset: vec[40],
+ bitwise_trim_unpacking194_suboffset: vec[41],
+ bitwise_trim_unpacking195_suboffset: vec[42],
+ bitwise_var_pool_suboffset: vec[43],
+ bitwise_x_or_y_suboffset: vec[44],
+ cpu_decode_mem_inst_suboffset: vec[45],
+ cpu_decode_off0_suboffset: vec[46],
+ cpu_decode_off1_suboffset: vec[47],
+ cpu_decode_off2_suboffset: vec[48],
+ cpu_decode_opcode_range_check_column_column: vec[49],
+ cpu_decode_opcode_range_check_column_offset: vec[50],
+ cpu_operands_mem_dst_suboffset: vec[51],
+ cpu_operands_mem_op0_suboffset: vec[52],
+ cpu_operands_mem_op1_suboffset: vec[53],
+ cpu_operands_ops_mul_column: vec[54],
+ cpu_operands_ops_mul_offset: vec[55],
+ cpu_operands_res_column: vec[56],
+ cpu_operands_res_offset: vec[57],
+ cpu_registers_ap_column: vec[58],
+ cpu_registers_ap_offset: vec[59],
+ cpu_registers_fp_column: vec[60],
+ cpu_registers_fp_offset: vec[61],
+ cpu_update_registers_update_pc_tmp0_column: vec[62],
+ cpu_update_registers_update_pc_tmp0_offset: vec[63],
+ cpu_update_registers_update_pc_tmp1_column: vec[64],
+ cpu_update_registers_update_pc_tmp1_offset: vec[65],
+ cpu_component_step: vec[66],
+ diluted_check_cumulative_value_column: vec[67],
+ diluted_check_cumulative_value_offset: vec[68],
+ diluted_check_permutation_cum_prod0_column: vec[69],
+ diluted_check_permutation_cum_prod0_offset: vec[70],
+ diluted_check_permuted_values_column: vec[71],
+ diluted_check_permuted_values_offset: vec[72],
+ diluted_pool_column: vec[73],
+ diluted_pool_offset: vec[74],
+ diluted_units_row_ratio: vec[75],
+ ec_op_doubled_points_x_column: vec[76],
+ ec_op_doubled_points_x_offset: vec[77],
+ ec_op_doubled_points_y_column: vec[78],
+ ec_op_doubled_points_y_offset: vec[79],
+ ec_op_doubling_slope_column: vec[80],
+ ec_op_doubling_slope_offset: vec[81],
+ ec_op_ec_subset_sum_bit_unpacking_prod_ones192_column: vec[82],
+ ec_op_ec_subset_sum_bit_unpacking_prod_ones192_offset: vec[83],
+ ec_op_ec_subset_sum_bit_unpacking_prod_ones196_column: vec[84],
+ ec_op_ec_subset_sum_bit_unpacking_prod_ones196_offset: vec[85],
+ ec_op_ec_subset_sum_partial_sum_x_column: vec[86],
+ ec_op_ec_subset_sum_partial_sum_x_offset: vec[87],
+ ec_op_ec_subset_sum_partial_sum_y_column: vec[88],
+ ec_op_ec_subset_sum_partial_sum_y_offset: vec[89],
+ ec_op_ec_subset_sum_selector_column: vec[90],
+ ec_op_ec_subset_sum_selector_offset: vec[91],
+ ec_op_ec_subset_sum_slope_column: vec[92],
+ ec_op_ec_subset_sum_slope_offset: vec[93],
+ ec_op_ec_subset_sum_x_diff_inv_column: vec[94],
+ ec_op_ec_subset_sum_x_diff_inv_offset: vec[95],
+ ec_op_m_suboffset: vec[96],
+ ec_op_p_x_suboffset: vec[97],
+ ec_op_p_y_suboffset: vec[98],
+ ec_op_q_x_suboffset: vec[99],
+ ec_op_q_y_suboffset: vec[100],
+ ec_op_r_x_suboffset: vec[101],
+ ec_op_r_y_suboffset: vec[102],
+ ec_op_builtin_row_ratio: vec[103],
+ ecdsa_message_suboffset: vec[104],
+ ecdsa_pubkey_suboffset: vec[105],
+ ecdsa_signature0_add_results_inv_column: vec[106],
+ ecdsa_signature0_add_results_inv_offset: vec[107],
+ ecdsa_signature0_add_results_slope_column: vec[108],
+ ecdsa_signature0_add_results_slope_offset: vec[109],
+ ecdsa_signature0_doubling_slope_column: vec[110],
+ ecdsa_signature0_doubling_slope_offset: vec[111],
+ ecdsa_signature0_exponentiate_generator_partial_sum_x_column: vec[112],
+ ecdsa_signature0_exponentiate_generator_partial_sum_x_offset: vec[113],
+ ecdsa_signature0_exponentiate_generator_partial_sum_y_column: vec[114],
+ ecdsa_signature0_exponentiate_generator_partial_sum_y_offset: vec[115],
+ ecdsa_signature0_exponentiate_generator_selector_column: vec[116],
+ ecdsa_signature0_exponentiate_generator_selector_offset: vec[117],
+ ecdsa_signature0_exponentiate_generator_slope_column: vec[118],
+ ecdsa_signature0_exponentiate_generator_slope_offset: vec[119],
+ ecdsa_signature0_exponentiate_generator_x_diff_inv_column: vec[120],
+ ecdsa_signature0_exponentiate_generator_x_diff_inv_offset: vec[121],
+ ecdsa_signature0_exponentiate_key_partial_sum_x_column: vec[122],
+ ecdsa_signature0_exponentiate_key_partial_sum_x_offset: vec[123],
+ ecdsa_signature0_exponentiate_key_partial_sum_y_column: vec[124],
+ ecdsa_signature0_exponentiate_key_partial_sum_y_offset: vec[125],
+ ecdsa_signature0_exponentiate_key_selector_column: vec[126],
+ ecdsa_signature0_exponentiate_key_selector_offset: vec[127],
+ ecdsa_signature0_exponentiate_key_slope_column: vec[128],
+ ecdsa_signature0_exponentiate_key_slope_offset: vec[129],
+ ecdsa_signature0_exponentiate_key_x_diff_inv_column: vec[130],
+ ecdsa_signature0_exponentiate_key_x_diff_inv_offset: vec[131],
+ ecdsa_signature0_extract_r_inv_column: vec[132],
+ ecdsa_signature0_extract_r_inv_offset: vec[133],
+ ecdsa_signature0_extract_r_slope_column: vec[134],
+ ecdsa_signature0_extract_r_slope_offset: vec[135],
+ ecdsa_signature0_key_points_x_column: vec[136],
+ ecdsa_signature0_key_points_x_offset: vec[137],
+ ecdsa_signature0_key_points_y_column: vec[138],
+ ecdsa_signature0_key_points_y_offset: vec[139],
+ ecdsa_signature0_q_x_squared_column: vec[140],
+ ecdsa_signature0_q_x_squared_offset: vec[141],
+ ecdsa_signature0_r_w_inv_column: vec[142],
+ ecdsa_signature0_r_w_inv_offset: vec[143],
+ ecdsa_signature0_z_inv_column: vec[144],
+ ecdsa_signature0_z_inv_offset: vec[145],
+ ecdsa_builtin_row_ratio: vec[146],
+ keccak_input_output_suboffset: vec[147],
+ keccak_keccak_diluted_column0_suboffset: vec[148],
+ keccak_keccak_diluted_column1_suboffset: vec[149],
+ keccak_keccak_diluted_column2_suboffset: vec[150],
+ keccak_keccak_diluted_column3_suboffset: vec[151],
+ keccak_keccak_parse_to_diluted_cumulative_sum_column: vec[152],
+ keccak_keccak_parse_to_diluted_cumulative_sum_offset: vec[153],
+ keccak_keccak_parse_to_diluted_final_reshaped_input_column: vec[154],
+ keccak_keccak_parse_to_diluted_final_reshaped_input_offset: vec[155],
+ keccak_keccak_parse_to_diluted_reshaped_intermediate_column: vec[156],
+ keccak_keccak_parse_to_diluted_reshaped_intermediate_offset: vec[157],
+ keccak_keccak_rotated_parity0_column: vec[158],
+ keccak_keccak_rotated_parity0_offset: vec[159],
+ keccak_keccak_rotated_parity1_column: vec[160],
+ keccak_keccak_rotated_parity1_offset: vec[161],
+ keccak_keccak_rotated_parity2_column: vec[162],
+ keccak_keccak_rotated_parity2_offset: vec[163],
+ keccak_keccak_rotated_parity3_column: vec[164],
+ keccak_keccak_rotated_parity3_offset: vec[165],
+ keccak_keccak_rotated_parity4_column: vec[166],
+ keccak_keccak_rotated_parity4_offset: vec[167],
+ keccak_row_ratio: vec[168],
+ mem_pool_addr_column: vec[169],
+ mem_pool_addr_offset: vec[170],
+ mem_pool_value_column: vec[171],
+ mem_pool_value_offset: vec[172],
+ memory_multi_column_perm_perm_cum_prod0_column: vec[173],
+ memory_multi_column_perm_perm_cum_prod0_offset: vec[174],
+ memory_sorted_addr_column: vec[175],
+ memory_sorted_addr_offset: vec[176],
+ memory_sorted_value_column: vec[177],
+ memory_sorted_value_offset: vec[178],
+ memory_units_row_ratio: vec[179],
+ mul_mod_a0_suboffset: vec[180],
+ mul_mod_a1_suboffset: vec[181],
+ mul_mod_a2_suboffset: vec[182],
+ mul_mod_a3_suboffset: vec[183],
+ mul_mod_a_offset_suboffset: vec[184],
+ mul_mod_b0_suboffset: vec[185],
+ mul_mod_b1_suboffset: vec[186],
+ mul_mod_b2_suboffset: vec[187],
+ mul_mod_b3_suboffset: vec[188],
+ mul_mod_b_offset_suboffset: vec[189],
+ mul_mod_c0_suboffset: vec[190],
+ mul_mod_c1_suboffset: vec[191],
+ mul_mod_c2_suboffset: vec[192],
+ mul_mod_c3_suboffset: vec[193],
+ mul_mod_c_offset_suboffset: vec[194],
+ mul_mod_carry0_part0_suboffset: vec[195],
+ mul_mod_carry0_part1_suboffset: vec[196],
+ mul_mod_carry0_part2_suboffset: vec[197],
+ mul_mod_carry0_part3_suboffset: vec[198],
+ mul_mod_carry0_part4_suboffset: vec[199],
+ mul_mod_carry0_part5_suboffset: vec[200],
+ mul_mod_carry0_part6_suboffset: vec[201],
+ mul_mod_carry1_part0_suboffset: vec[202],
+ mul_mod_carry1_part1_suboffset: vec[203],
+ mul_mod_carry1_part2_suboffset: vec[204],
+ mul_mod_carry1_part3_suboffset: vec[205],
+ mul_mod_carry1_part4_suboffset: vec[206],
+ mul_mod_carry1_part5_suboffset: vec[207],
+ mul_mod_carry1_part6_suboffset: vec[208],
+ mul_mod_carry2_part0_suboffset: vec[209],
+ mul_mod_carry2_part1_suboffset: vec[210],
+ mul_mod_carry2_part2_suboffset: vec[211],
+ mul_mod_carry2_part3_suboffset: vec[212],
+ mul_mod_carry2_part4_suboffset: vec[213],
+ mul_mod_carry2_part5_suboffset: vec[214],
+ mul_mod_carry2_part6_suboffset: vec[215],
+ mul_mod_carry3_part0_suboffset: vec[216],
+ mul_mod_carry3_part1_suboffset: vec[217],
+ mul_mod_carry3_part2_suboffset: vec[218],
+ mul_mod_carry3_part3_suboffset: vec[219],
+ mul_mod_carry3_part4_suboffset: vec[220],
+ mul_mod_carry3_part5_suboffset: vec[221],
+ mul_mod_carry3_part6_suboffset: vec[222],
+ mul_mod_carry4_part0_suboffset: vec[223],
+ mul_mod_carry4_part1_suboffset: vec[224],
+ mul_mod_carry4_part2_suboffset: vec[225],
+ mul_mod_carry4_part3_suboffset: vec[226],
+ mul_mod_carry4_part4_suboffset: vec[227],
+ mul_mod_carry4_part5_suboffset: vec[228],
+ mul_mod_carry4_part6_suboffset: vec[229],
+ mul_mod_carry5_part0_suboffset: vec[230],
+ mul_mod_carry5_part1_suboffset: vec[231],
+ mul_mod_carry5_part2_suboffset: vec[232],
+ mul_mod_carry5_part3_suboffset: vec[233],
+ mul_mod_carry5_part4_suboffset: vec[234],
+ mul_mod_carry5_part5_suboffset: vec[235],
+ mul_mod_carry5_part6_suboffset: vec[236],
+ mul_mod_n_suboffset: vec[237],
+ mul_mod_offsets_ptr_suboffset: vec[238],
+ mul_mod_p0_suboffset: vec[239],
+ mul_mod_p1_suboffset: vec[240],
+ mul_mod_p2_suboffset: vec[241],
+ mul_mod_p3_suboffset: vec[242],
+ mul_mod_p_multiplier0_part0_suboffset: vec[243],
+ mul_mod_p_multiplier0_part1_suboffset: vec[244],
+ mul_mod_p_multiplier0_part2_suboffset: vec[245],
+ mul_mod_p_multiplier0_part3_suboffset: vec[246],
+ mul_mod_p_multiplier0_part4_suboffset: vec[247],
+ mul_mod_p_multiplier0_part5_suboffset: vec[248],
+ mul_mod_p_multiplier1_part0_suboffset: vec[249],
+ mul_mod_p_multiplier1_part1_suboffset: vec[250],
+ mul_mod_p_multiplier1_part2_suboffset: vec[251],
+ mul_mod_p_multiplier1_part3_suboffset: vec[252],
+ mul_mod_p_multiplier1_part4_suboffset: vec[253],
+ mul_mod_p_multiplier1_part5_suboffset: vec[254],
+ mul_mod_p_multiplier2_part0_suboffset: vec[255],
+ mul_mod_p_multiplier2_part1_suboffset: vec[256],
+ mul_mod_p_multiplier2_part2_suboffset: vec[257],
+ mul_mod_p_multiplier2_part3_suboffset: vec[258],
+ mul_mod_p_multiplier2_part4_suboffset: vec[259],
+ mul_mod_p_multiplier2_part5_suboffset: vec[260],
+ mul_mod_p_multiplier3_part0_suboffset: vec[261],
+ mul_mod_p_multiplier3_part1_suboffset: vec[262],
+ mul_mod_p_multiplier3_part2_suboffset: vec[263],
+ mul_mod_p_multiplier3_part3_suboffset: vec[264],
+ mul_mod_p_multiplier3_part4_suboffset: vec[265],
+ mul_mod_p_multiplier3_part5_suboffset: vec[266],
+ mul_mod_row_ratio: vec[267],
+ mul_mod_values_ptr_suboffset: vec[268],
+ num_columns_first: vec[269],
+ num_columns_second: vec[270],
+ orig_public_memory_suboffset: vec[271],
+ pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones192_column: vec[272],
+ pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones192_offset: vec[273],
+ pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones196_column: vec[274],
+ pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones196_offset: vec[275],
+ pedersen_hash0_ec_subset_sum_partial_sum_x_column: vec[276],
+ pedersen_hash0_ec_subset_sum_partial_sum_x_offset: vec[277],
+ pedersen_hash0_ec_subset_sum_partial_sum_y_column: vec[278],
+ pedersen_hash0_ec_subset_sum_partial_sum_y_offset: vec[279],
+ pedersen_hash0_ec_subset_sum_selector_column: vec[280],
+ pedersen_hash0_ec_subset_sum_selector_offset: vec[281],
+ pedersen_hash0_ec_subset_sum_slope_column: vec[282],
+ pedersen_hash0_ec_subset_sum_slope_offset: vec[283],
+ pedersen_input0_suboffset: vec[284],
+ pedersen_input1_suboffset: vec[285],
+ pedersen_output_suboffset: vec[286],
+ pedersen_builtin_row_ratio: vec[287],
+ poseidon_param_0_input_output_suboffset: vec[288],
+ poseidon_param_1_input_output_suboffset: vec[289],
+ poseidon_param_2_input_output_suboffset: vec[290],
+ poseidon_poseidon_full_rounds_state0_column: vec[291],
+ poseidon_poseidon_full_rounds_state0_offset: vec[292],
+ poseidon_poseidon_full_rounds_state0_squared_column: vec[293],
+ poseidon_poseidon_full_rounds_state0_squared_offset: vec[294],
+ poseidon_poseidon_full_rounds_state1_column: vec[295],
+ poseidon_poseidon_full_rounds_state1_offset: vec[296],
+ poseidon_poseidon_full_rounds_state1_squared_column: vec[297],
+ poseidon_poseidon_full_rounds_state1_squared_offset: vec[298],
+ poseidon_poseidon_full_rounds_state2_column: vec[299],
+ poseidon_poseidon_full_rounds_state2_offset: vec[300],
+ poseidon_poseidon_full_rounds_state2_squared_column: vec[301],
+ poseidon_poseidon_full_rounds_state2_squared_offset: vec[302],
+ poseidon_poseidon_partial_rounds_state0_column: vec[303],
+ poseidon_poseidon_partial_rounds_state0_offset: vec[304],
+ poseidon_poseidon_partial_rounds_state0_squared_column: vec[305],
+ poseidon_poseidon_partial_rounds_state0_squared_offset: vec[306],
+ poseidon_poseidon_partial_rounds_state1_column: vec[307],
+ poseidon_poseidon_partial_rounds_state1_offset: vec[308],
+ poseidon_poseidon_partial_rounds_state1_squared_column: vec[309],
+ poseidon_poseidon_partial_rounds_state1_squared_offset: vec[310],
+ poseidon_row_ratio: vec[311],
+ range_check16_perm_cum_prod0_column: vec[312],
+ range_check16_perm_cum_prod0_offset: vec[313],
+ range_check16_sorted_column: vec[314],
+ range_check16_sorted_offset: vec[315],
+ range_check16_pool_column: vec[316],
+ range_check16_pool_offset: vec[317],
+ range_check96_builtin_inner_range_check0_suboffset: vec[318],
+ range_check96_builtin_inner_range_check1_suboffset: vec[319],
+ range_check96_builtin_inner_range_check2_suboffset: vec[320],
+ range_check96_builtin_inner_range_check3_suboffset: vec[321],
+ range_check96_builtin_inner_range_check4_suboffset: vec[322],
+ range_check96_builtin_inner_range_check5_suboffset: vec[323],
+ range_check96_builtin_mem_suboffset: vec[324],
+ range_check96_builtin_row_ratio: vec[325],
+ range_check_builtin_inner_range_check_suboffset: vec[326],
+ range_check_builtin_mem_suboffset: vec[327],
+ range_check_builtin_row_ratio: vec[328],
+ range_check_units_row_ratio: vec[329],
+ uses_add_mod_builtin: vec[330],
+ uses_bitwise_builtin: vec[331],
+ uses_ec_op_builtin: vec[332],
+ uses_ecdsa_builtin: vec[333],
+ uses_keccak_builtin: vec[334],
+ uses_mul_mod_builtin: vec[335],
+ uses_pedersen_builtin: vec[336],
+ uses_poseidon_builtin: vec[337],
+ uses_range_check96_builtin: vec[338],
+ uses_range_check_builtin: vec[339],
+ }
+ }
+}
+
+use alloc::vec;
+
+impl From for Vec {
+ fn from(val: DynamicParams) -> Self {
+ vec![
+ val.add_mod_a0_suboffset,
+ val.add_mod_a1_suboffset,
+ val.add_mod_a2_suboffset,
+ val.add_mod_a3_suboffset,
+ val.add_mod_a_offset_suboffset,
+ val.add_mod_b0_suboffset,
+ val.add_mod_b1_suboffset,
+ val.add_mod_b2_suboffset,
+ val.add_mod_b3_suboffset,
+ val.add_mod_b_offset_suboffset,
+ val.add_mod_c0_suboffset,
+ val.add_mod_c1_suboffset,
+ val.add_mod_c2_suboffset,
+ val.add_mod_c3_suboffset,
+ val.add_mod_c_offset_suboffset,
+ val.add_mod_carry1_bit_column,
+ val.add_mod_carry1_bit_offset,
+ val.add_mod_carry1_sign_column,
+ val.add_mod_carry1_sign_offset,
+ val.add_mod_carry2_bit_column,
+ val.add_mod_carry2_bit_offset,
+ val.add_mod_carry2_sign_column,
+ val.add_mod_carry2_sign_offset,
+ val.add_mod_carry3_bit_column,
+ val.add_mod_carry3_bit_offset,
+ val.add_mod_carry3_sign_column,
+ val.add_mod_carry3_sign_offset,
+ val.add_mod_n_suboffset,
+ val.add_mod_offsets_ptr_suboffset,
+ val.add_mod_p0_suboffset,
+ val.add_mod_p1_suboffset,
+ val.add_mod_p2_suboffset,
+ val.add_mod_p3_suboffset,
+ val.add_mod_row_ratio,
+ val.add_mod_sub_p_bit_column,
+ val.add_mod_sub_p_bit_offset,
+ val.add_mod_values_ptr_suboffset,
+ val.bitwise_diluted_var_pool_suboffset,
+ val.bitwise_row_ratio,
+ val.bitwise_trim_unpacking192_suboffset,
+ val.bitwise_trim_unpacking193_suboffset,
+ val.bitwise_trim_unpacking194_suboffset,
+ val.bitwise_trim_unpacking195_suboffset,
+ val.bitwise_var_pool_suboffset,
+ val.bitwise_x_or_y_suboffset,
+ val.cpu_decode_mem_inst_suboffset,
+ val.cpu_decode_off0_suboffset,
+ val.cpu_decode_off1_suboffset,
+ val.cpu_decode_off2_suboffset,
+ val.cpu_decode_opcode_range_check_column_column,
+ val.cpu_decode_opcode_range_check_column_offset,
+ val.cpu_operands_mem_dst_suboffset,
+ val.cpu_operands_mem_op0_suboffset,
+ val.cpu_operands_mem_op1_suboffset,
+ val.cpu_operands_ops_mul_column,
+ val.cpu_operands_ops_mul_offset,
+ val.cpu_operands_res_column,
+ val.cpu_operands_res_offset,
+ val.cpu_registers_ap_column,
+ val.cpu_registers_ap_offset,
+ val.cpu_registers_fp_column,
+ val.cpu_registers_fp_offset,
+ val.cpu_update_registers_update_pc_tmp0_column,
+ val.cpu_update_registers_update_pc_tmp0_offset,
+ val.cpu_update_registers_update_pc_tmp1_column,
+ val.cpu_update_registers_update_pc_tmp1_offset,
+ val.cpu_component_step,
+ val.diluted_check_cumulative_value_column,
+ val.diluted_check_cumulative_value_offset,
+ val.diluted_check_permutation_cum_prod0_column,
+ val.diluted_check_permutation_cum_prod0_offset,
+ val.diluted_check_permuted_values_column,
+ val.diluted_check_permuted_values_offset,
+ val.diluted_pool_column,
+ val.diluted_pool_offset,
+ val.diluted_units_row_ratio,
+ val.ec_op_doubled_points_x_column,
+ val.ec_op_doubled_points_x_offset,
+ val.ec_op_doubled_points_y_column,
+ val.ec_op_doubled_points_y_offset,
+ val.ec_op_doubling_slope_column,
+ val.ec_op_doubling_slope_offset,
+ val.ec_op_ec_subset_sum_bit_unpacking_prod_ones192_column,
+ val.ec_op_ec_subset_sum_bit_unpacking_prod_ones192_offset,
+ val.ec_op_ec_subset_sum_bit_unpacking_prod_ones196_column,
+ val.ec_op_ec_subset_sum_bit_unpacking_prod_ones196_offset,
+ val.ec_op_ec_subset_sum_partial_sum_x_column,
+ val.ec_op_ec_subset_sum_partial_sum_x_offset,
+ val.ec_op_ec_subset_sum_partial_sum_y_column,
+ val.ec_op_ec_subset_sum_partial_sum_y_offset,
+ val.ec_op_ec_subset_sum_selector_column,
+ val.ec_op_ec_subset_sum_selector_offset,
+ val.ec_op_ec_subset_sum_slope_column,
+ val.ec_op_ec_subset_sum_slope_offset,
+ val.ec_op_ec_subset_sum_x_diff_inv_column,
+ val.ec_op_ec_subset_sum_x_diff_inv_offset,
+ val.ec_op_m_suboffset,
+ val.ec_op_p_x_suboffset,
+ val.ec_op_p_y_suboffset,
+ val.ec_op_q_x_suboffset,
+ val.ec_op_q_y_suboffset,
+ val.ec_op_r_x_suboffset,
+ val.ec_op_r_y_suboffset,
+ val.ec_op_builtin_row_ratio,
+ val.ecdsa_message_suboffset,
+ val.ecdsa_pubkey_suboffset,
+ val.ecdsa_signature0_add_results_inv_column,
+ val.ecdsa_signature0_add_results_inv_offset,
+ val.ecdsa_signature0_add_results_slope_column,
+ val.ecdsa_signature0_add_results_slope_offset,
+ val.ecdsa_signature0_doubling_slope_column,
+ val.ecdsa_signature0_doubling_slope_offset,
+ val.ecdsa_signature0_exponentiate_generator_partial_sum_x_column,
+ val.ecdsa_signature0_exponentiate_generator_partial_sum_x_offset,
+ val.ecdsa_signature0_exponentiate_generator_partial_sum_y_column,
+ val.ecdsa_signature0_exponentiate_generator_partial_sum_y_offset,
+ val.ecdsa_signature0_exponentiate_generator_selector_column,
+ val.ecdsa_signature0_exponentiate_generator_selector_offset,
+ val.ecdsa_signature0_exponentiate_generator_slope_column,
+ val.ecdsa_signature0_exponentiate_generator_slope_offset,
+ val.ecdsa_signature0_exponentiate_generator_x_diff_inv_column,
+ val.ecdsa_signature0_exponentiate_generator_x_diff_inv_offset,
+ val.ecdsa_signature0_exponentiate_key_partial_sum_x_column,
+ val.ecdsa_signature0_exponentiate_key_partial_sum_x_offset,
+ val.ecdsa_signature0_exponentiate_key_partial_sum_y_column,
+ val.ecdsa_signature0_exponentiate_key_partial_sum_y_offset,
+ val.ecdsa_signature0_exponentiate_key_selector_column,
+ val.ecdsa_signature0_exponentiate_key_selector_offset,
+ val.ecdsa_signature0_exponentiate_key_slope_column,
+ val.ecdsa_signature0_exponentiate_key_slope_offset,
+ val.ecdsa_signature0_exponentiate_key_x_diff_inv_column,
+ val.ecdsa_signature0_exponentiate_key_x_diff_inv_offset,
+ val.ecdsa_signature0_extract_r_inv_column,
+ val.ecdsa_signature0_extract_r_inv_offset,
+ val.ecdsa_signature0_extract_r_slope_column,
+ val.ecdsa_signature0_extract_r_slope_offset,
+ val.ecdsa_signature0_key_points_x_column,
+ val.ecdsa_signature0_key_points_x_offset,
+ val.ecdsa_signature0_key_points_y_column,
+ val.ecdsa_signature0_key_points_y_offset,
+ val.ecdsa_signature0_q_x_squared_column,
+ val.ecdsa_signature0_q_x_squared_offset,
+ val.ecdsa_signature0_r_w_inv_column,
+ val.ecdsa_signature0_r_w_inv_offset,
+ val.ecdsa_signature0_z_inv_column,
+ val.ecdsa_signature0_z_inv_offset,
+ val.ecdsa_builtin_row_ratio,
+ val.keccak_input_output_suboffset,
+ val.keccak_keccak_diluted_column0_suboffset,
+ val.keccak_keccak_diluted_column1_suboffset,
+ val.keccak_keccak_diluted_column2_suboffset,
+ val.keccak_keccak_diluted_column3_suboffset,
+ val.keccak_keccak_parse_to_diluted_cumulative_sum_column,
+ val.keccak_keccak_parse_to_diluted_cumulative_sum_offset,
+ val.keccak_keccak_parse_to_diluted_final_reshaped_input_column,
+ val.keccak_keccak_parse_to_diluted_final_reshaped_input_offset,
+ val.keccak_keccak_parse_to_diluted_reshaped_intermediate_column,
+ val.keccak_keccak_parse_to_diluted_reshaped_intermediate_offset,
+ val.keccak_keccak_rotated_parity0_column,
+ val.keccak_keccak_rotated_parity0_offset,
+ val.keccak_keccak_rotated_parity1_column,
+ val.keccak_keccak_rotated_parity1_offset,
+ val.keccak_keccak_rotated_parity2_column,
+ val.keccak_keccak_rotated_parity2_offset,
+ val.keccak_keccak_rotated_parity3_column,
+ val.keccak_keccak_rotated_parity3_offset,
+ val.keccak_keccak_rotated_parity4_column,
+ val.keccak_keccak_rotated_parity4_offset,
+ val.keccak_row_ratio,
+ val.mem_pool_addr_column,
+ val.mem_pool_addr_offset,
+ val.mem_pool_value_column,
+ val.mem_pool_value_offset,
+ val.memory_multi_column_perm_perm_cum_prod0_column,
+ val.memory_multi_column_perm_perm_cum_prod0_offset,
+ val.memory_sorted_addr_column,
+ val.memory_sorted_addr_offset,
+ val.memory_sorted_value_column,
+ val.memory_sorted_value_offset,
+ val.memory_units_row_ratio,
+ val.mul_mod_a0_suboffset,
+ val.mul_mod_a1_suboffset,
+ val.mul_mod_a2_suboffset,
+ val.mul_mod_a3_suboffset,
+ val.mul_mod_a_offset_suboffset,
+ val.mul_mod_b0_suboffset,
+ val.mul_mod_b1_suboffset,
+ val.mul_mod_b2_suboffset,
+ val.mul_mod_b3_suboffset,
+ val.mul_mod_b_offset_suboffset,
+ val.mul_mod_c0_suboffset,
+ val.mul_mod_c1_suboffset,
+ val.mul_mod_c2_suboffset,
+ val.mul_mod_c3_suboffset,
+ val.mul_mod_c_offset_suboffset,
+ val.mul_mod_carry0_part0_suboffset,
+ val.mul_mod_carry0_part1_suboffset,
+ val.mul_mod_carry0_part2_suboffset,
+ val.mul_mod_carry0_part3_suboffset,
+ val.mul_mod_carry0_part4_suboffset,
+ val.mul_mod_carry0_part5_suboffset,
+ val.mul_mod_carry0_part6_suboffset,
+ val.mul_mod_carry1_part0_suboffset,
+ val.mul_mod_carry1_part1_suboffset,
+ val.mul_mod_carry1_part2_suboffset,
+ val.mul_mod_carry1_part3_suboffset,
+ val.mul_mod_carry1_part4_suboffset,
+ val.mul_mod_carry1_part5_suboffset,
+ val.mul_mod_carry1_part6_suboffset,
+ val.mul_mod_carry2_part0_suboffset,
+ val.mul_mod_carry2_part1_suboffset,
+ val.mul_mod_carry2_part2_suboffset,
+ val.mul_mod_carry2_part3_suboffset,
+ val.mul_mod_carry2_part4_suboffset,
+ val.mul_mod_carry2_part5_suboffset,
+ val.mul_mod_carry2_part6_suboffset,
+ val.mul_mod_carry3_part0_suboffset,
+ val.mul_mod_carry3_part1_suboffset,
+ val.mul_mod_carry3_part2_suboffset,
+ val.mul_mod_carry3_part3_suboffset,
+ val.mul_mod_carry3_part4_suboffset,
+ val.mul_mod_carry3_part5_suboffset,
+ val.mul_mod_carry3_part6_suboffset,
+ val.mul_mod_carry4_part0_suboffset,
+ val.mul_mod_carry4_part1_suboffset,
+ val.mul_mod_carry4_part2_suboffset,
+ val.mul_mod_carry4_part3_suboffset,
+ val.mul_mod_carry4_part4_suboffset,
+ val.mul_mod_carry4_part5_suboffset,
+ val.mul_mod_carry4_part6_suboffset,
+ val.mul_mod_carry5_part0_suboffset,
+ val.mul_mod_carry5_part1_suboffset,
+ val.mul_mod_carry5_part2_suboffset,
+ val.mul_mod_carry5_part3_suboffset,
+ val.mul_mod_carry5_part4_suboffset,
+ val.mul_mod_carry5_part5_suboffset,
+ val.mul_mod_carry5_part6_suboffset,
+ val.mul_mod_n_suboffset,
+ val.mul_mod_offsets_ptr_suboffset,
+ val.mul_mod_p0_suboffset,
+ val.mul_mod_p1_suboffset,
+ val.mul_mod_p2_suboffset,
+ val.mul_mod_p3_suboffset,
+ val.mul_mod_p_multiplier0_part0_suboffset,
+ val.mul_mod_p_multiplier0_part1_suboffset,
+ val.mul_mod_p_multiplier0_part2_suboffset,
+ val.mul_mod_p_multiplier0_part3_suboffset,
+ val.mul_mod_p_multiplier0_part4_suboffset,
+ val.mul_mod_p_multiplier0_part5_suboffset,
+ val.mul_mod_p_multiplier1_part0_suboffset,
+ val.mul_mod_p_multiplier1_part1_suboffset,
+ val.mul_mod_p_multiplier1_part2_suboffset,
+ val.mul_mod_p_multiplier1_part3_suboffset,
+ val.mul_mod_p_multiplier1_part4_suboffset,
+ val.mul_mod_p_multiplier1_part5_suboffset,
+ val.mul_mod_p_multiplier2_part0_suboffset,
+ val.mul_mod_p_multiplier2_part1_suboffset,
+ val.mul_mod_p_multiplier2_part2_suboffset,
+ val.mul_mod_p_multiplier2_part3_suboffset,
+ val.mul_mod_p_multiplier2_part4_suboffset,
+ val.mul_mod_p_multiplier2_part5_suboffset,
+ val.mul_mod_p_multiplier3_part0_suboffset,
+ val.mul_mod_p_multiplier3_part1_suboffset,
+ val.mul_mod_p_multiplier3_part2_suboffset,
+ val.mul_mod_p_multiplier3_part3_suboffset,
+ val.mul_mod_p_multiplier3_part4_suboffset,
+ val.mul_mod_p_multiplier3_part5_suboffset,
+ val.mul_mod_row_ratio,
+ val.mul_mod_values_ptr_suboffset,
+ val.num_columns_first,
+ val.num_columns_second,
+ val.orig_public_memory_suboffset,
+ val.pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones192_column,
+ val.pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones192_offset,
+ val.pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones196_column,
+ val.pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones196_offset,
+ val.pedersen_hash0_ec_subset_sum_partial_sum_x_column,
+ val.pedersen_hash0_ec_subset_sum_partial_sum_x_offset,
+ val.pedersen_hash0_ec_subset_sum_partial_sum_y_column,
+ val.pedersen_hash0_ec_subset_sum_partial_sum_y_offset,
+ val.pedersen_hash0_ec_subset_sum_selector_column,
+ val.pedersen_hash0_ec_subset_sum_selector_offset,
+ val.pedersen_hash0_ec_subset_sum_slope_column,
+ val.pedersen_hash0_ec_subset_sum_slope_offset,
+ val.pedersen_input0_suboffset,
+ val.pedersen_input1_suboffset,
+ val.pedersen_output_suboffset,
+ val.pedersen_builtin_row_ratio,
+ val.poseidon_param_0_input_output_suboffset,
+ val.poseidon_param_1_input_output_suboffset,
+ val.poseidon_param_2_input_output_suboffset,
+ val.poseidon_poseidon_full_rounds_state0_column,
+ val.poseidon_poseidon_full_rounds_state0_offset,
+ val.poseidon_poseidon_full_rounds_state0_squared_column,
+ val.poseidon_poseidon_full_rounds_state0_squared_offset,
+ val.poseidon_poseidon_full_rounds_state1_column,
+ val.poseidon_poseidon_full_rounds_state1_offset,
+ val.poseidon_poseidon_full_rounds_state1_squared_column,
+ val.poseidon_poseidon_full_rounds_state1_squared_offset,
+ val.poseidon_poseidon_full_rounds_state2_column,
+ val.poseidon_poseidon_full_rounds_state2_offset,
+ val.poseidon_poseidon_full_rounds_state2_squared_column,
+ val.poseidon_poseidon_full_rounds_state2_squared_offset,
+ val.poseidon_poseidon_partial_rounds_state0_column,
+ val.poseidon_poseidon_partial_rounds_state0_offset,
+ val.poseidon_poseidon_partial_rounds_state0_squared_column,
+ val.poseidon_poseidon_partial_rounds_state0_squared_offset,
+ val.poseidon_poseidon_partial_rounds_state1_column,
+ val.poseidon_poseidon_partial_rounds_state1_offset,
+ val.poseidon_poseidon_partial_rounds_state1_squared_column,
+ val.poseidon_poseidon_partial_rounds_state1_squared_offset,
+ val.poseidon_row_ratio,
+ val.range_check16_perm_cum_prod0_column,
+ val.range_check16_perm_cum_prod0_offset,
+ val.range_check16_sorted_column,
+ val.range_check16_sorted_offset,
+ val.range_check16_pool_column,
+ val.range_check16_pool_offset,
+ val.range_check96_builtin_inner_range_check0_suboffset,
+ val.range_check96_builtin_inner_range_check1_suboffset,
+ val.range_check96_builtin_inner_range_check2_suboffset,
+ val.range_check96_builtin_inner_range_check3_suboffset,
+ val.range_check96_builtin_inner_range_check4_suboffset,
+ val.range_check96_builtin_inner_range_check5_suboffset,
+ val.range_check96_builtin_mem_suboffset,
+ val.range_check96_builtin_row_ratio,
+ val.range_check_builtin_inner_range_check_suboffset,
+ val.range_check_builtin_mem_suboffset,
+ val.range_check_builtin_row_ratio,
+ val.range_check_units_row_ratio,
+ val.uses_add_mod_builtin,
+ val.uses_bitwise_builtin,
+ val.uses_ec_op_builtin,
+ val.uses_ecdsa_builtin,
+ val.uses_keccak_builtin,
+ val.uses_mul_mod_builtin,
+ val.uses_pedersen_builtin,
+ val.uses_poseidon_builtin,
+ val.uses_range_check96_builtin,
+ val.uses_range_check_builtin,
+ ]
+ }
+}
diff --git a/crates/air/src/fixtures/public_input.rs b/crates/air/src/fixtures/public_input.rs
index 5d7fe42..6708879 100644
--- a/crates/air/src/fixtures/public_input.rs
+++ b/crates/air/src/fixtures/public_input.rs
@@ -11,7 +11,7 @@ pub fn get() -> PublicInput {
range_check_min: Felt::from_hex_unchecked("0x7ffa"),
range_check_max: Felt::from_hex_unchecked("0x8001"),
layout: Felt::from_hex_unchecked("0x726563757273697665"),
- dynamic_params: vec![],
+ dynamic_params: None,
segments: vec![
SegmentInfo {
begin_addr: Felt::from_hex_unchecked("0x1"),
diff --git a/crates/air/src/layout/dex/autogenerated.rs b/crates/air/src/layout/dex/autogenerated.rs
index 0cf365e..3b960f1 100644
--- a/crates/air/src/layout/dex/autogenerated.rs
+++ b/crates/air/src/layout/dex/autogenerated.rs
@@ -1,5 +1,5 @@
use super::global_values::GlobalValues;
-use crate::layout::LayoutTrait;
+use crate::layout::{LayoutTrait, StaticLayoutTrait};
use starknet_core::types::NonZeroFelt;
use starknet_crypto::Felt;
@@ -1371,7 +1371,7 @@ pub fn eval_composition_polynomial_inner(
total_sum
}
-pub fn eval_oods_polynomial_inner(
+pub fn eval_oods_polynomial_inner(
column_values: &[Felt],
oods_values: &[Felt],
constraint_coefficients: &[Felt],
diff --git a/crates/air/src/layout/dex/mod.rs b/crates/air/src/layout/dex/mod.rs
index 7533ad7..067dd57 100644
--- a/crates/air/src/layout/dex/mod.rs
+++ b/crates/air/src/layout/dex/mod.rs
@@ -2,6 +2,7 @@ pub mod autogenerated;
pub mod global_values;
use crate::{
+ consts::*,
layout::stark_curve,
periodic_columns::{eval_ecdsa_x, eval_ecdsa_y, eval_pedersen_x, eval_pedersen_y},
public_memory::{PublicInput, INITIAL_PC, MAX_ADDRESS, MAX_LOG_N_STEPS, MAX_RANGE_CHECK},
@@ -14,7 +15,10 @@ use starknet_crypto::{pedersen_hash, Felt};
use swiftness_commitment::table::{commit::table_commit, decommit::table_decommit};
use swiftness_transcript::ensure;
-use super::{CompositionPolyEvalError, LayoutTrait, PublicInputError};
+use super::{
+ CompositionPolyEvalError, GenericLayoutTrait, LayoutTrait, OodsPolyEvalError, PublicInputError,
+ StaticLayoutTrait,
+};
pub const CPU_COMPONENT_HEIGHT: usize = 16;
pub const CPU_COMPONENT_STEP: usize = 1;
@@ -47,8 +51,11 @@ pub const RANGE_CHECK_N_PARTS: usize = 8;
pub mod segments {
pub const ECDSA: usize = 5;
+ pub const EXECUTION: usize = 1;
pub const N_SEGMENTS: usize = 6;
+ pub const OUTPUT: usize = 2;
pub const PEDERSEN: usize = 3;
+ pub const PROGRAM: usize = 0;
pub const RANGE_CHECK: usize = 4;
}
@@ -72,12 +79,24 @@ pub const BUILTINS: [Felt; 4] =
pub struct Layout {}
+impl StaticLayoutTrait for Layout {
+ const NUM_COLUMNS_FIRST: usize = 21;
+ const NUM_COLUMNS_SECOND: usize = 1;
+}
+
+impl GenericLayoutTrait for Layout {
+ fn get_num_columns_first(_public_input: &PublicInput) -> Option {
+ Some(Self::NUM_COLUMNS_FIRST)
+ }
+ fn get_num_columns_second(_public_input: &PublicInput) -> Option {
+ Some(Self::NUM_COLUMNS_SECOND)
+ }
+}
+
impl LayoutTrait for Layout {
const CONSTRAINT_DEGREE: usize = 2;
const MASK_SIZE: usize = 200;
const N_CONSTRAINTS: usize = 179;
- const NUM_COLUMNS_FIRST: usize = 21;
- const NUM_COLUMNS_SECOND: usize = 1;
type InteractionElements = InteractionElements;
fn eval_composition_polynomial(
@@ -93,8 +112,8 @@ impl LayoutTrait for Layout {
let memory_alpha = interaction_elements.memory_multi_column_perm_hash_interaction_elm0;
// Public memory
- let public_memory_column_size = trace_domain_size
- .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(PUBLIC_MEMORY_STEP)));
+ let public_memory_column_size =
+ trace_domain_size.field_div(&NonZeroFelt::try_from(Felt::from(PUBLIC_MEMORY_STEP))?);
assert!(public_memory_column_size < u128::MAX.into());
let public_memory_prod_ratio = public_input.get_public_memory_product_ratio(
memory_z,
@@ -104,18 +123,18 @@ impl LayoutTrait for Layout {
// Periodic columns
let n_steps = Felt::TWO.pow_felt(&public_input.log_n_steps);
- let n_pedersen_hash_copies = n_steps.field_div(&NonZeroFelt::from_felt_unchecked(
- Felt::from(PEDERSEN_BUILTIN_RATIO * PEDERSEN_BUILTIN_REPETITIONS),
- ));
+ let n_pedersen_hash_copies = n_steps.field_div(&NonZeroFelt::try_from(
+ Felt::from(PEDERSEN_BUILTIN_RATIO) * Felt::from(PEDERSEN_BUILTIN_REPETITIONS),
+ )?);
// TODO fix to ensure!
assert!(n_pedersen_hash_copies < u128::MAX.into());
let pedersen_point = point.pow_felt(&n_pedersen_hash_copies);
let pedersen_points_x = eval_pedersen_x(pedersen_point);
let pedersen_points_y = eval_pedersen_y(pedersen_point);
- let n_ecdsa_signature_copies = n_steps.field_div(&NonZeroFelt::from_felt_unchecked(
- Felt::from(ECDSA_BUILTIN_RATIO * ECDSA_BUILTIN_REPETITIONS),
- ));
+ let n_ecdsa_signature_copies = n_steps.field_div(&NonZeroFelt::try_from(
+ Felt::from(ECDSA_BUILTIN_RATIO) * Felt::from(ECDSA_BUILTIN_REPETITIONS),
+ )?);
assert!(n_ecdsa_signature_copies < u128::MAX.into());
let ecdsa_point = point.pow_felt(&n_ecdsa_signature_copies);
let ecdsa_generator_points_x = eval_ecdsa_x(ecdsa_point);
@@ -125,31 +144,23 @@ impl LayoutTrait for Layout {
trace_length: *trace_domain_size,
initial_pc: public_input
.segments
- .get(crate::layout::segments::PROGRAM)
- .ok_or(CompositionPolyEvalError::SegmentMissing {
- segment: crate::layout::segments::PROGRAM,
- })?
+ .get(segments::PROGRAM)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::PROGRAM })?
.begin_addr,
final_pc: public_input
.segments
- .get(crate::layout::segments::PROGRAM)
- .ok_or(CompositionPolyEvalError::SegmentMissing {
- segment: crate::layout::segments::PROGRAM,
- })?
+ .get(segments::PROGRAM)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::PROGRAM })?
.stop_ptr,
initial_ap: public_input
.segments
- .get(crate::layout::segments::EXECUTION)
- .ok_or(CompositionPolyEvalError::SegmentMissing {
- segment: crate::layout::segments::EXECUTION,
- })?
+ .get(segments::EXECUTION)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::EXECUTION })?
.begin_addr,
final_ap: public_input
.segments
- .get(crate::layout::segments::EXECUTION)
- .ok_or(CompositionPolyEvalError::SegmentMissing {
- segment: crate::layout::segments::EXECUTION,
- })?
+ .get(segments::EXECUTION)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::EXECUTION })?
.stop_ptr,
initial_pedersen_addr: public_input
.segments
@@ -168,8 +179,8 @@ impl LayoutTrait for Layout {
.begin_addr,
range_check_min: public_input.range_check_min,
range_check_max: public_input.range_check_max,
- offset_size: Felt::from(0x10000), // 2**16
- half_offset_size: Felt::from(0x8000), // 2**15
+ offset_size: FELT_65536,
+ half_offset_size: FELT_32768,
pedersen_shift_point: EcPoint { x: SHIFT_POINT_X, y: SHIFT_POINT_Y },
ecdsa_sig_config: EcdsaSigConfig {
alpha: stark_curve::ALPHA,
@@ -185,7 +196,7 @@ impl LayoutTrait for Layout {
range_check16_perm_interaction_elm: interaction_elements
.range_check16_perm_interaction_elm,
memory_multi_column_perm_perm_public_memory_prod: public_memory_prod_ratio,
- range_check16_perm_public_memory_prod: Felt::from(1),
+ range_check16_perm_public_memory_prod: FELT_1,
};
Ok(autogenerated::eval_composition_polynomial_inner(
@@ -197,21 +208,22 @@ impl LayoutTrait for Layout {
))
}
fn eval_oods_polynomial(
+ _public_input: &PublicInput,
column_values: &[Felt],
oods_values: &[Felt],
constraint_coefficients: &[Felt],
point: &Felt,
oods_point: &Felt,
trace_generator: &Felt,
- ) -> Felt {
- autogenerated::eval_oods_polynomial_inner::(
+ ) -> Result {
+ Ok(autogenerated::eval_oods_polynomial_inner::(
column_values,
oods_values,
constraint_coefficients,
point,
oods_point,
trace_generator,
- )
+ ))
}
fn traces_commit(
transcript: &mut swiftness_transcript::transcript::Transcript,
@@ -263,7 +275,12 @@ impl LayoutTrait for Layout {
PublicInputError::TraceLengthInvalid
);
- ensure!(Felt::ZERO <= public_input.range_check_min, PublicInputError::RangeCheckInvalid);
+ ensure!(
+ public_input.segments.len() == segments::N_SEGMENTS,
+ PublicInputError::InvalidSegments
+ );
+
+ ensure!(FELT_0 <= public_input.range_check_min, PublicInputError::RangeCheckInvalid);
ensure!(
public_input.range_check_min < public_input.range_check_max,
PublicInputError::RangeCheckInvalid
@@ -277,20 +294,18 @@ impl LayoutTrait for Layout {
let output_uses = public_input
.segments
- .get(crate::layout::segments::OUTPUT)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::OUTPUT })?
+ .get(segments::OUTPUT)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
.stop_ptr
- public_input
.segments
- .get(crate::layout::segments::OUTPUT)
- .ok_or(PublicInputError::SegmentMissing {
- segment: crate::layout::segments::OUTPUT,
- })?
+ .get(segments::OUTPUT)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
.begin_addr;
- ensure!(output_uses < u128::MAX.into(), PublicInputError::UsesInvalid);
+ ensure!(output_uses <= u128::MAX.into(), PublicInputError::UsesInvalid);
- let pedersen_copies = trace_length
- .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(PEDERSEN_BUILTIN_ROW_RATIO)));
+ let pedersen_copies =
+ trace_length.field_div(&NonZeroFelt::try_from(Felt::from(PEDERSEN_BUILTIN_ROW_RATIO))?);
let pedersen_uses = (public_input
.segments
.get(segments::PEDERSEN)
@@ -301,12 +316,11 @@ impl LayoutTrait for Layout {
.get(segments::PEDERSEN)
.ok_or(PublicInputError::SegmentMissing { segment: segments::PEDERSEN })?
.begin_addr)
- .field_div(&NonZeroFelt::from_felt_unchecked(Felt::THREE));
- ensure!(pedersen_uses < pedersen_copies, PublicInputError::UsesInvalid);
+ .field_div(&NonZeroFelt::from_felt_unchecked(FELT_3));
+ ensure!(pedersen_uses <= pedersen_copies, PublicInputError::UsesInvalid);
- let range_check_copies = trace_length.field_div(&NonZeroFelt::from_felt_unchecked(
- Felt::from(RANGE_CHECK_BUILTIN_ROW_RATIO),
- ));
+ let range_check_copies = trace_length
+ .field_div(&NonZeroFelt::try_from(Felt::from(RANGE_CHECK_BUILTIN_ROW_RATIO))?);
let range_check_uses = public_input
.segments
.get(segments::RANGE_CHECK)
@@ -317,10 +331,10 @@ impl LayoutTrait for Layout {
.get(segments::RANGE_CHECK)
.ok_or(PublicInputError::SegmentMissing { segment: segments::RANGE_CHECK })?
.begin_addr;
- ensure!(range_check_uses < range_check_copies, PublicInputError::UsesInvalid);
+ ensure!(range_check_uses <= range_check_copies, PublicInputError::UsesInvalid);
- let ecdsa_copies = trace_length
- .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(ECDSA_BUILTIN_ROW_RATIO)));
+ let ecdsa_copies =
+ trace_length.field_div(&NonZeroFelt::try_from(Felt::from(ECDSA_BUILTIN_ROW_RATIO))?);
let ecdsa_uses = (public_input
.segments
.get(segments::ECDSA)
@@ -329,12 +343,10 @@ impl LayoutTrait for Layout {
- public_input
.segments
.get(segments::ECDSA)
- .ok_or(PublicInputError::SegmentMissing {
- segment: crate::layout::segments::OUTPUT,
- })?
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::ECDSA })?
.begin_addr)
- .field_div(&NonZeroFelt::from_felt_unchecked(Felt::TWO));
- ensure!(ecdsa_uses < ecdsa_copies, PublicInputError::UsesInvalid);
+ .field_div(&NonZeroFelt::from_felt_unchecked(FELT_2));
+ ensure!(ecdsa_uses <= ecdsa_copies, PublicInputError::UsesInvalid);
Ok(())
}
@@ -342,29 +354,29 @@ impl LayoutTrait for Layout {
let public_segments = &public_input.segments;
let initial_pc = public_segments
- .get(crate::layout::segments::PROGRAM)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::PROGRAM)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::PROGRAM })?
.begin_addr;
let final_pc = public_segments
- .get(crate::layout::segments::PROGRAM)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::PROGRAM)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::PROGRAM })?
.stop_ptr;
let initial_ap = public_segments
- .get(crate::layout::segments::EXECUTION)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::EXECUTION)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::EXECUTION })?
.begin_addr;
let initial_fp = initial_ap;
let final_ap = public_segments
- .get(crate::layout::segments::EXECUTION)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::EXECUTION)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::EXECUTION })?
.stop_ptr;
let output_start = public_segments
- .get(crate::layout::segments::OUTPUT)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::OUTPUT)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
.begin_addr;
let output_stop = public_segments
- .get(crate::layout::segments::OUTPUT)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::OUTPUT)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
.stop_ptr;
ensure!(initial_ap < MAX_ADDRESS, PublicInputError::MaxSteps);
@@ -380,24 +392,23 @@ impl LayoutTrait for Layout {
.collect::>();
ensure!(initial_pc == INITIAL_PC, PublicInputError::MaxSteps);
- ensure!(final_pc == INITIAL_PC + 4, PublicInputError::MaxSteps);
+ ensure!(final_pc == INITIAL_PC + FELT_4, PublicInputError::MaxSteps);
- let program_end_pc = initial_fp - 2;
+ let program_end_pc = initial_fp - FELT_2;
let program: Vec<&Felt> = memory
.iter()
- .skip(initial_pc.to_bigint().try_into().unwrap())
+ .skip(initial_pc.to_bigint().try_into()?)
.step_by(2)
- .take((program_end_pc - Felt::ONE).to_bigint().try_into().unwrap())
+ .take((program_end_pc - FELT_1).to_bigint().try_into()?)
.collect();
- let hash = program.iter().fold(Felt::ZERO, |acc, &e| pedersen_hash(&acc, e));
+ let hash = program.iter().fold(FELT_0, |acc, &e| pedersen_hash(&acc, e));
let program_hash = pedersen_hash(&hash, &Felt::from(program.len()));
- let output_len: usize = (output_stop - output_start).to_bigint().try_into().unwrap();
+ let output_len: usize = (output_stop - output_start).to_bigint().try_into()?;
let output = &memory[memory.len() - output_len * 2..];
- let hash =
- output.iter().skip(1).step_by(2).fold(Felt::ZERO, |acc, e| pedersen_hash(&acc, e));
+ let hash = output.iter().skip(1).step_by(2).fold(FELT_0, |acc, e| pedersen_hash(&acc, e));
let output_hash = pedersen_hash(&hash, &Felt::from(output_len));
Ok((program_hash, output_hash))
diff --git a/crates/air/src/layout/dynamic/autogenerated.rs b/crates/air/src/layout/dynamic/autogenerated.rs
new file mode 100644
index 0000000..6ed62de
--- /dev/null
+++ b/crates/air/src/layout/dynamic/autogenerated.rs
@@ -0,0 +1,7 @@
+pub mod autogenerated_asserts;
+pub mod autogenerated_composition;
+pub mod autogenerated_oods;
+
+pub use autogenerated_asserts::check_asserts;
+pub use autogenerated_composition::eval_composition_polynomial_inner;
+pub use autogenerated_oods::eval_oods_polynomial_inner;
diff --git a/crates/air/src/layout/dynamic/autogenerated/autogenerated_asserts.rs b/crates/air/src/layout/dynamic/autogenerated/autogenerated_asserts.rs
new file mode 100644
index 0000000..f374fdd
--- /dev/null
+++ b/crates/air/src/layout/dynamic/autogenerated/autogenerated_asserts.rs
@@ -0,0 +1,3767 @@
+use starknet_crypto::Felt;
+use swiftness_transcript::{ensure, felt};
+
+use crate::{
+ consts::*,
+ domains::StarkDomains,
+ dynamic::DynamicParams,
+ layout::{safe_div, safe_mult, CheckAssertsError},
+};
+
+pub const FELT_USIZE_MAX: Felt = Felt::from_hex_unchecked("0xFFFFFFFFFFFFFFFF");
+
+pub fn is_power_of_2(x: Felt) -> bool {
+ x != FELT_0 && (x.to_bigint() & (x - FELT_1).to_bigint()) == FELT_0.to_bigint()
+}
+
+pub fn check_asserts(
+ dynamic_params: &DynamicParams,
+ stark_domains: &StarkDomains,
+) -> Result<(), CheckAssertsError> {
+ let trace_length = stark_domains.trace_domain_size;
+
+ // Coset step (dynamicparam(diluted_units_row_ratio)) must be a power of two.
+ let mut x: Felt = felt!(dynamic_params.diluted_units_row_ratio);
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Dimension should be a power of FELT_2.
+ x = safe_div(trace_length, felt!(dynamic_params.diluted_units_row_ratio))?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Index out of range.
+ x = (safe_div(trace_length, felt!(dynamic_params.diluted_units_row_ratio))?) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Coset step (memberexpression(trace_length)) must be a power of two.
+ x = trace_length;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Index should be non negative.
+ x = safe_div(trace_length, felt!(dynamic_params.diluted_units_row_ratio))?;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Coset step (dynamicparam(range_check_units_row_ratio)) must be a power of two.
+ x = felt!(dynamic_params.range_check_units_row_ratio);
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Dimension should be a power of FELT_2.
+ x = safe_div(trace_length, felt!(dynamic_params.range_check_units_row_ratio))?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Index out of range.
+ x = (safe_div(trace_length, felt!(dynamic_params.range_check_units_row_ratio))?) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Index should be non negative.
+ x = safe_div(trace_length, felt!(dynamic_params.range_check_units_row_ratio))?;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Coset step ((FELT_8) * (dynamicparam(memory_units_row_ratio))) must be a power of two.
+ x = safe_mult(FELT_8, felt!(dynamic_params.memory_units_row_ratio))?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Dimension should be a power of FELT_2.
+ x = safe_div(trace_length, safe_mult(FELT_8, felt!(dynamic_params.memory_units_row_ratio))?)?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Coset step (dynamicparam(memory_units_row_ratio)) must be a power of two.
+ x = felt!(dynamic_params.memory_units_row_ratio);
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Dimension should be a power of FELT_2.
+ x = safe_div(trace_length, felt!(dynamic_params.memory_units_row_ratio))?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Index out of range.
+ x = (safe_div(trace_length, felt!(dynamic_params.memory_units_row_ratio))?) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Index should be non negative.
+ x = safe_div(trace_length, felt!(dynamic_params.memory_units_row_ratio))?;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Coset step ((FELT_16) * (dynamicparam(cpu_component_step))) must be a power of two.
+ x = safe_mult(FELT_16, felt!(dynamic_params.cpu_component_step))?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Dimension should be a power of FELT_2.
+ x = safe_div(trace_length, safe_mult(FELT_16, felt!(dynamic_params.cpu_component_step))?)?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Step must not exceed dimension.
+ x = (safe_div(trace_length, safe_mult(FELT_16, felt!(dynamic_params.cpu_component_step))?)?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Coset step (dynamicparam(cpu_component_step)) must be a power of two.
+ x = felt!(dynamic_params.cpu_component_step);
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Index out of range.
+ x = safe_div(trace_length, safe_mult(FELT_16, felt!(dynamic_params.cpu_component_step))?)?;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Cpu_component_step is out of range.
+ x = FELT_256 - felt!(dynamic_params.cpu_component_step);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Memory_units_row_ratio is out of range.
+ x = (safe_mult(FELT_16, felt!(dynamic_params.cpu_component_step))?)
+ - (safe_mult(FELT_4, felt!(dynamic_params.memory_units_row_ratio))?);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of cpu/decode/mem_inst must be nonnegative.
+ x = felt!(dynamic_params.cpu_decode_mem_inst_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of cpu/decode/mem_inst is too big.
+ x = trace_length - felt!(dynamic_params.cpu_decode_mem_inst_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of cpu/decode/mem_inst is too big.
+ x = (safe_mult(FELT_16, felt!(dynamic_params.cpu_component_step))?)
+ - (safe_mult(
+ felt!(dynamic_params.cpu_decode_mem_inst_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of cpu/decode/off0 must be nonnegative.
+ x = felt!(dynamic_params.cpu_decode_off0_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of cpu/decode/off0 is too big.
+ x = trace_length - felt!(dynamic_params.cpu_decode_off0_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of cpu/decode/off0 is too big.
+ x = (safe_mult(FELT_16, felt!(dynamic_params.cpu_component_step))?)
+ - (safe_mult(
+ felt!(dynamic_params.cpu_decode_off0_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of cpu/decode/off1 must be nonnegative.
+ x = felt!(dynamic_params.cpu_decode_off1_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of cpu/decode/off1 is too big.
+ x = trace_length - felt!(dynamic_params.cpu_decode_off1_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of cpu/decode/off1 is too big.
+ x = (safe_mult(FELT_16, felt!(dynamic_params.cpu_component_step))?)
+ - (safe_mult(
+ felt!(dynamic_params.cpu_decode_off1_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of cpu/decode/off2 must be nonnegative.
+ x = felt!(dynamic_params.cpu_decode_off2_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of cpu/decode/off2 is too big.
+ x = trace_length - felt!(dynamic_params.cpu_decode_off2_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of cpu/decode/off2 is too big.
+ x = (safe_mult(FELT_16, felt!(dynamic_params.cpu_component_step))?)
+ - (safe_mult(
+ felt!(dynamic_params.cpu_decode_off2_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of cpu/operands/mem_dst must be nonnegative.
+ x = felt!(dynamic_params.cpu_operands_mem_dst_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of cpu/operands/mem_dst is too big.
+ x = trace_length - felt!(dynamic_params.cpu_operands_mem_dst_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of cpu/operands/mem_dst is too big.
+ x = (safe_mult(FELT_16, felt!(dynamic_params.cpu_component_step))?)
+ - (safe_mult(
+ felt!(dynamic_params.cpu_operands_mem_dst_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of cpu/operands/mem_op0 must be nonnegative.
+ x = felt!(dynamic_params.cpu_operands_mem_op0_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of cpu/operands/mem_op0 is too big.
+ x = trace_length - felt!(dynamic_params.cpu_operands_mem_op0_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of cpu/operands/mem_op0 is too big.
+ x = (safe_mult(FELT_16, felt!(dynamic_params.cpu_component_step))?)
+ - (safe_mult(
+ felt!(dynamic_params.cpu_operands_mem_op0_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of cpu/operands/mem_op1 must be nonnegative.
+ x = felt!(dynamic_params.cpu_operands_mem_op1_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of cpu/operands/mem_op1 is too big.
+ x = trace_length - felt!(dynamic_params.cpu_operands_mem_op1_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of cpu/operands/mem_op1 is too big.
+ x = (safe_mult(FELT_16, felt!(dynamic_params.cpu_component_step))?)
+ - (safe_mult(
+ felt!(dynamic_params.cpu_operands_mem_op1_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of orig/public_memory must be nonnegative.
+ x = felt!(dynamic_params.orig_public_memory_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of orig/public_memory is too big.
+ x = trace_length - felt!(dynamic_params.orig_public_memory_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of orig/public_memory is too big.
+ x = (safe_mult(FELT_8, felt!(dynamic_params.memory_units_row_ratio))?)
+ - (safe_mult(
+ felt!(dynamic_params.orig_public_memory_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Uses_pedersen_builtin should be a boolean.
+ ensure!(
+ (safe_mult(
+ felt!(dynamic_params.uses_pedersen_builtin),
+ felt!(dynamic_params.uses_pedersen_builtin)
+ )?) - felt!(dynamic_params.uses_pedersen_builtin)
+ == FELT_0,
+ CheckAssertsError::NotBoolean
+ );
+ // Uses_range_check_builtin should be a boolean.
+ ensure!(
+ (safe_mult(
+ felt!(dynamic_params.uses_range_check_builtin),
+ felt!(dynamic_params.uses_range_check_builtin)
+ )?) - felt!(dynamic_params.uses_range_check_builtin)
+ == FELT_0,
+ CheckAssertsError::NotBoolean
+ );
+ // Uses_ecdsa_builtin should be a boolean.
+ ensure!(
+ (safe_mult(
+ felt!(dynamic_params.uses_ecdsa_builtin),
+ felt!(dynamic_params.uses_ecdsa_builtin)
+ )?) - felt!(dynamic_params.uses_ecdsa_builtin)
+ == FELT_0,
+ CheckAssertsError::NotBoolean
+ );
+ // Uses_bitwise_builtin should be a boolean.
+ ensure!(
+ (safe_mult(
+ felt!(dynamic_params.uses_bitwise_builtin),
+ felt!(dynamic_params.uses_bitwise_builtin)
+ )?) - felt!(dynamic_params.uses_bitwise_builtin)
+ == FELT_0,
+ CheckAssertsError::NotBoolean
+ );
+ // Uses_ec_op_builtin should be a boolean.
+ ensure!(
+ (safe_mult(
+ felt!(dynamic_params.uses_ec_op_builtin),
+ felt!(dynamic_params.uses_ec_op_builtin)
+ )?) - felt!(dynamic_params.uses_ec_op_builtin)
+ == FELT_0,
+ CheckAssertsError::NotBoolean
+ );
+ // Uses_keccak_builtin should be a boolean.
+ ensure!(
+ (safe_mult(
+ felt!(dynamic_params.uses_keccak_builtin),
+ felt!(dynamic_params.uses_keccak_builtin)
+ )?) - felt!(dynamic_params.uses_keccak_builtin)
+ == FELT_0,
+ CheckAssertsError::NotBoolean
+ );
+ // Uses_poseidon_builtin should be a boolean.
+ ensure!(
+ (safe_mult(
+ felt!(dynamic_params.uses_poseidon_builtin),
+ felt!(dynamic_params.uses_poseidon_builtin)
+ )?) - felt!(dynamic_params.uses_poseidon_builtin)
+ == FELT_0,
+ CheckAssertsError::NotBoolean
+ );
+ // Uses_range_check96_builtin should be a boolean.
+ ensure!(
+ (safe_mult(
+ felt!(dynamic_params.uses_range_check96_builtin),
+ felt!(dynamic_params.uses_range_check96_builtin)
+ )?) - felt!(dynamic_params.uses_range_check96_builtin)
+ == FELT_0,
+ CheckAssertsError::NotBoolean
+ );
+ // Uses_add_mod_builtin should be a boolean.
+ ensure!(
+ (safe_mult(
+ felt!(dynamic_params.uses_add_mod_builtin),
+ felt!(dynamic_params.uses_add_mod_builtin)
+ )?) - felt!(dynamic_params.uses_add_mod_builtin)
+ == FELT_0,
+ CheckAssertsError::NotBoolean
+ );
+ // Uses_mul_mod_builtin should be a boolean.
+ ensure!(
+ (safe_mult(
+ felt!(dynamic_params.uses_mul_mod_builtin),
+ felt!(dynamic_params.uses_mul_mod_builtin)
+ )?) - felt!(dynamic_params.uses_mul_mod_builtin)
+ == FELT_0,
+ CheckAssertsError::NotBoolean
+ );
+ // Num_columns_first is out of range.
+ x = FELT_65536 - felt!(dynamic_params.num_columns_first) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Num_columns_second is out of range.
+ x = FELT_65536 - felt!(dynamic_params.num_columns_second) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.mem_pool_addr_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.mem_pool_addr_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.mem_pool_addr_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.mem_pool_addr_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.mem_pool_value_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.mem_pool_value_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.mem_pool_value_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.mem_pool_value_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.range_check16_pool_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.range_check16_pool_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.range_check16_pool_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.range_check16_pool_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.cpu_decode_opcode_range_check_column_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.cpu_decode_opcode_range_check_column_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.cpu_decode_opcode_range_check_column_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.cpu_decode_opcode_range_check_column_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.cpu_registers_ap_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.cpu_registers_ap_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.cpu_registers_ap_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.cpu_registers_ap_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.cpu_registers_fp_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.cpu_registers_fp_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.cpu_registers_fp_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.cpu_registers_fp_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.cpu_operands_ops_mul_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.cpu_operands_ops_mul_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.cpu_operands_ops_mul_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.cpu_operands_ops_mul_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.cpu_operands_res_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.cpu_operands_res_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.cpu_operands_res_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.cpu_operands_res_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.cpu_update_registers_update_pc_tmp0_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.cpu_update_registers_update_pc_tmp0_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.cpu_update_registers_update_pc_tmp0_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.cpu_update_registers_update_pc_tmp0_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.cpu_update_registers_update_pc_tmp1_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.cpu_update_registers_update_pc_tmp1_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.cpu_update_registers_update_pc_tmp1_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.cpu_update_registers_update_pc_tmp1_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.memory_sorted_addr_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.memory_sorted_addr_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.memory_sorted_addr_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.memory_sorted_addr_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.memory_sorted_value_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.memory_sorted_value_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.memory_sorted_value_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.memory_sorted_value_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.range_check16_sorted_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.range_check16_sorted_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.range_check16_sorted_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.range_check16_sorted_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.diluted_pool_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.diluted_pool_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.diluted_pool_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.diluted_pool_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.diluted_check_permuted_values_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.diluted_check_permuted_values_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.diluted_check_permuted_values_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.diluted_check_permuted_values_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.pedersen_hash0_ec_subset_sum_partial_sum_x_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.pedersen_hash0_ec_subset_sum_partial_sum_x_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.pedersen_hash0_ec_subset_sum_partial_sum_x_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length
+ - felt!(dynamic_params.pedersen_hash0_ec_subset_sum_partial_sum_x_offset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.pedersen_hash0_ec_subset_sum_partial_sum_y_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.pedersen_hash0_ec_subset_sum_partial_sum_y_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.pedersen_hash0_ec_subset_sum_partial_sum_y_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length
+ - felt!(dynamic_params.pedersen_hash0_ec_subset_sum_partial_sum_y_offset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.pedersen_hash0_ec_subset_sum_slope_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.pedersen_hash0_ec_subset_sum_slope_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.pedersen_hash0_ec_subset_sum_slope_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.pedersen_hash0_ec_subset_sum_slope_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.pedersen_hash0_ec_subset_sum_selector_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.pedersen_hash0_ec_subset_sum_selector_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.pedersen_hash0_ec_subset_sum_selector_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.pedersen_hash0_ec_subset_sum_selector_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones196_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones196_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones196_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length
+ - felt!(dynamic_params.pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones196_offset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones192_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones192_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones192_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length
+ - felt!(dynamic_params.pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones192_offset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.ecdsa_signature0_key_points_x_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.ecdsa_signature0_key_points_x_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.ecdsa_signature0_key_points_x_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.ecdsa_signature0_key_points_x_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.ecdsa_signature0_key_points_y_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.ecdsa_signature0_key_points_y_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.ecdsa_signature0_key_points_y_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.ecdsa_signature0_key_points_y_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.ecdsa_signature0_doubling_slope_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.ecdsa_signature0_doubling_slope_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.ecdsa_signature0_doubling_slope_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.ecdsa_signature0_doubling_slope_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.ecdsa_signature0_exponentiate_generator_partial_sum_x_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.ecdsa_signature0_exponentiate_generator_partial_sum_x_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.ecdsa_signature0_exponentiate_generator_partial_sum_x_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length
+ - felt!(dynamic_params.ecdsa_signature0_exponentiate_generator_partial_sum_x_offset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.ecdsa_signature0_exponentiate_generator_partial_sum_y_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.ecdsa_signature0_exponentiate_generator_partial_sum_y_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.ecdsa_signature0_exponentiate_generator_partial_sum_y_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length
+ - felt!(dynamic_params.ecdsa_signature0_exponentiate_generator_partial_sum_y_offset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.ecdsa_signature0_exponentiate_generator_slope_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.ecdsa_signature0_exponentiate_generator_slope_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.ecdsa_signature0_exponentiate_generator_slope_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length
+ - felt!(dynamic_params.ecdsa_signature0_exponentiate_generator_slope_offset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.ecdsa_signature0_exponentiate_generator_selector_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.ecdsa_signature0_exponentiate_generator_selector_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.ecdsa_signature0_exponentiate_generator_selector_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length
+ - felt!(dynamic_params.ecdsa_signature0_exponentiate_generator_selector_offset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.ecdsa_signature0_exponentiate_generator_x_diff_inv_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.ecdsa_signature0_exponentiate_generator_x_diff_inv_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.ecdsa_signature0_exponentiate_generator_x_diff_inv_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length
+ - felt!(dynamic_params.ecdsa_signature0_exponentiate_generator_x_diff_inv_offset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.ecdsa_signature0_exponentiate_key_partial_sum_x_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.ecdsa_signature0_exponentiate_key_partial_sum_x_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.ecdsa_signature0_exponentiate_key_partial_sum_x_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length
+ - felt!(dynamic_params.ecdsa_signature0_exponentiate_key_partial_sum_x_offset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.ecdsa_signature0_exponentiate_key_partial_sum_y_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.ecdsa_signature0_exponentiate_key_partial_sum_y_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.ecdsa_signature0_exponentiate_key_partial_sum_y_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length
+ - felt!(dynamic_params.ecdsa_signature0_exponentiate_key_partial_sum_y_offset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.ecdsa_signature0_exponentiate_key_slope_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.ecdsa_signature0_exponentiate_key_slope_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.ecdsa_signature0_exponentiate_key_slope_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length
+ - felt!(dynamic_params.ecdsa_signature0_exponentiate_key_slope_offset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.ecdsa_signature0_exponentiate_key_selector_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.ecdsa_signature0_exponentiate_key_selector_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.ecdsa_signature0_exponentiate_key_selector_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length
+ - felt!(dynamic_params.ecdsa_signature0_exponentiate_key_selector_offset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.ecdsa_signature0_exponentiate_key_x_diff_inv_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.ecdsa_signature0_exponentiate_key_x_diff_inv_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.ecdsa_signature0_exponentiate_key_x_diff_inv_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length
+ - felt!(dynamic_params.ecdsa_signature0_exponentiate_key_x_diff_inv_offset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.ecdsa_signature0_add_results_slope_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.ecdsa_signature0_add_results_slope_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.ecdsa_signature0_add_results_slope_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.ecdsa_signature0_add_results_slope_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.ecdsa_signature0_add_results_inv_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.ecdsa_signature0_add_results_inv_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.ecdsa_signature0_add_results_inv_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.ecdsa_signature0_add_results_inv_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.ecdsa_signature0_extract_r_slope_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.ecdsa_signature0_extract_r_slope_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.ecdsa_signature0_extract_r_slope_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.ecdsa_signature0_extract_r_slope_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.ecdsa_signature0_extract_r_inv_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.ecdsa_signature0_extract_r_inv_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.ecdsa_signature0_extract_r_inv_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.ecdsa_signature0_extract_r_inv_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.ecdsa_signature0_z_inv_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.ecdsa_signature0_z_inv_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.ecdsa_signature0_z_inv_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.ecdsa_signature0_z_inv_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.ecdsa_signature0_r_w_inv_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.ecdsa_signature0_r_w_inv_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.ecdsa_signature0_r_w_inv_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.ecdsa_signature0_r_w_inv_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.ecdsa_signature0_q_x_squared_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.ecdsa_signature0_q_x_squared_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.ecdsa_signature0_q_x_squared_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.ecdsa_signature0_q_x_squared_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.ec_op_doubled_points_x_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.ec_op_doubled_points_x_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.ec_op_doubled_points_x_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.ec_op_doubled_points_x_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.ec_op_doubled_points_y_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.ec_op_doubled_points_y_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.ec_op_doubled_points_y_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.ec_op_doubled_points_y_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.ec_op_doubling_slope_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.ec_op_doubling_slope_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.ec_op_doubling_slope_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.ec_op_doubling_slope_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.ec_op_ec_subset_sum_partial_sum_x_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.ec_op_ec_subset_sum_partial_sum_x_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.ec_op_ec_subset_sum_partial_sum_x_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.ec_op_ec_subset_sum_partial_sum_x_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.ec_op_ec_subset_sum_partial_sum_y_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.ec_op_ec_subset_sum_partial_sum_y_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.ec_op_ec_subset_sum_partial_sum_y_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.ec_op_ec_subset_sum_partial_sum_y_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.ec_op_ec_subset_sum_slope_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.ec_op_ec_subset_sum_slope_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.ec_op_ec_subset_sum_slope_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.ec_op_ec_subset_sum_slope_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.ec_op_ec_subset_sum_selector_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.ec_op_ec_subset_sum_selector_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.ec_op_ec_subset_sum_selector_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.ec_op_ec_subset_sum_selector_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.ec_op_ec_subset_sum_x_diff_inv_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.ec_op_ec_subset_sum_x_diff_inv_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.ec_op_ec_subset_sum_x_diff_inv_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.ec_op_ec_subset_sum_x_diff_inv_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.ec_op_ec_subset_sum_bit_unpacking_prod_ones196_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.ec_op_ec_subset_sum_bit_unpacking_prod_ones196_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.ec_op_ec_subset_sum_bit_unpacking_prod_ones196_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length
+ - felt!(dynamic_params.ec_op_ec_subset_sum_bit_unpacking_prod_ones196_offset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.ec_op_ec_subset_sum_bit_unpacking_prod_ones192_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.ec_op_ec_subset_sum_bit_unpacking_prod_ones192_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.ec_op_ec_subset_sum_bit_unpacking_prod_ones192_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length
+ - felt!(dynamic_params.ec_op_ec_subset_sum_bit_unpacking_prod_ones192_offset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length
+ - felt!(dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_offset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length
+ - felt!(dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_offset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length
+ - felt!(dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_offset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.keccak_keccak_rotated_parity0_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.keccak_keccak_rotated_parity0_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.keccak_keccak_rotated_parity0_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.keccak_keccak_rotated_parity0_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.keccak_keccak_rotated_parity1_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.keccak_keccak_rotated_parity1_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.keccak_keccak_rotated_parity1_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.keccak_keccak_rotated_parity1_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.keccak_keccak_rotated_parity2_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.keccak_keccak_rotated_parity2_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.keccak_keccak_rotated_parity2_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.keccak_keccak_rotated_parity2_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.keccak_keccak_rotated_parity3_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.keccak_keccak_rotated_parity3_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.keccak_keccak_rotated_parity3_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.keccak_keccak_rotated_parity3_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.keccak_keccak_rotated_parity4_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.keccak_keccak_rotated_parity4_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.keccak_keccak_rotated_parity4_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.keccak_keccak_rotated_parity4_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.poseidon_poseidon_full_rounds_state0_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.poseidon_poseidon_full_rounds_state0_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.poseidon_poseidon_full_rounds_state0_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.poseidon_poseidon_full_rounds_state0_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.poseidon_poseidon_full_rounds_state1_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.poseidon_poseidon_full_rounds_state1_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.poseidon_poseidon_full_rounds_state1_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.poseidon_poseidon_full_rounds_state1_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.poseidon_poseidon_full_rounds_state2_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.poseidon_poseidon_full_rounds_state2_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.poseidon_poseidon_full_rounds_state2_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.poseidon_poseidon_full_rounds_state2_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.poseidon_poseidon_full_rounds_state0_squared_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.poseidon_poseidon_full_rounds_state0_squared_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.poseidon_poseidon_full_rounds_state0_squared_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length
+ - felt!(dynamic_params.poseidon_poseidon_full_rounds_state0_squared_offset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.poseidon_poseidon_full_rounds_state1_squared_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.poseidon_poseidon_full_rounds_state1_squared_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.poseidon_poseidon_full_rounds_state1_squared_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length
+ - felt!(dynamic_params.poseidon_poseidon_full_rounds_state1_squared_offset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.poseidon_poseidon_full_rounds_state2_squared_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.poseidon_poseidon_full_rounds_state2_squared_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.poseidon_poseidon_full_rounds_state2_squared_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length
+ - felt!(dynamic_params.poseidon_poseidon_full_rounds_state2_squared_offset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.poseidon_poseidon_partial_rounds_state0_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.poseidon_poseidon_partial_rounds_state0_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.poseidon_poseidon_partial_rounds_state0_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length
+ - felt!(dynamic_params.poseidon_poseidon_partial_rounds_state0_offset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.poseidon_poseidon_partial_rounds_state1_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.poseidon_poseidon_partial_rounds_state1_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.poseidon_poseidon_partial_rounds_state1_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length
+ - felt!(dynamic_params.poseidon_poseidon_partial_rounds_state1_offset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.poseidon_poseidon_partial_rounds_state0_squared_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.poseidon_poseidon_partial_rounds_state0_squared_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.poseidon_poseidon_partial_rounds_state0_squared_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length
+ - felt!(dynamic_params.poseidon_poseidon_partial_rounds_state0_squared_offset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.poseidon_poseidon_partial_rounds_state1_squared_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.poseidon_poseidon_partial_rounds_state1_squared_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.poseidon_poseidon_partial_rounds_state1_squared_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length
+ - felt!(dynamic_params.poseidon_poseidon_partial_rounds_state1_squared_offset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.add_mod_sub_p_bit_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.add_mod_sub_p_bit_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.add_mod_sub_p_bit_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.add_mod_sub_p_bit_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.add_mod_carry1_bit_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.add_mod_carry1_bit_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.add_mod_carry1_bit_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.add_mod_carry1_bit_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.add_mod_carry2_bit_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.add_mod_carry2_bit_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.add_mod_carry2_bit_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.add_mod_carry2_bit_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.add_mod_carry3_bit_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.add_mod_carry3_bit_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.add_mod_carry3_bit_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.add_mod_carry3_bit_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.add_mod_carry1_sign_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.add_mod_carry1_sign_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.add_mod_carry1_sign_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.add_mod_carry1_sign_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.add_mod_carry2_sign_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.add_mod_carry2_sign_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.add_mod_carry2_sign_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.add_mod_carry2_sign_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.add_mod_carry3_sign_column);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first)
+ - felt!(dynamic_params.add_mod_carry3_sign_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.add_mod_carry3_sign_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.add_mod_carry3_sign_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.memory_multi_column_perm_perm_cum_prod0_column)
+ - felt!(dynamic_params.num_columns_first);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first) + felt!(dynamic_params.num_columns_second)
+ - felt!(dynamic_params.memory_multi_column_perm_perm_cum_prod0_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.memory_multi_column_perm_perm_cum_prod0_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length
+ - felt!(dynamic_params.memory_multi_column_perm_perm_cum_prod0_offset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.range_check16_perm_cum_prod0_column)
+ - felt!(dynamic_params.num_columns_first);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first) + felt!(dynamic_params.num_columns_second)
+ - felt!(dynamic_params.range_check16_perm_cum_prod0_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.range_check16_perm_cum_prod0_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.range_check16_perm_cum_prod0_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.diluted_check_cumulative_value_column)
+ - felt!(dynamic_params.num_columns_first);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first) + felt!(dynamic_params.num_columns_second)
+ - felt!(dynamic_params.diluted_check_cumulative_value_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.diluted_check_cumulative_value_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.diluted_check_cumulative_value_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.diluted_check_permutation_cum_prod0_column)
+ - felt!(dynamic_params.num_columns_first);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Column index out of range.
+ x = felt!(dynamic_params.num_columns_first) + felt!(dynamic_params.num_columns_second)
+ - felt!(dynamic_params.diluted_check_permutation_cum_prod0_column)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be nonnegative.
+ x = felt!(dynamic_params.diluted_check_permutation_cum_prod0_offset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset must be smaller than trace length.
+ x = trace_length - felt!(dynamic_params.diluted_check_permutation_cum_prod0_offset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+
+ if felt!(dynamic_params.uses_pedersen_builtin) != FELT_0 {
+ // Row ratio should be a power of FELT_2, smaller than trace length.
+ x = felt!(dynamic_params.pedersen_builtin_row_ratio);
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Dimension should be a power of FELT_2.
+ x = safe_div(trace_length, felt!(dynamic_params.pedersen_builtin_row_ratio))?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Coset step ((dynamicparam(pedersen_builtin_row_ratio)) / (FELT_512)) must be a power of two.
+ x = safe_div(felt!(dynamic_params.pedersen_builtin_row_ratio), FELT_512)?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Coset step ((dynamicparam(pedersen_builtin_row_ratio)) / (FELT_2)) must be a power of two.
+ x = safe_div(felt!(dynamic_params.pedersen_builtin_row_ratio), FELT_2)?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Step must not exceed dimension.
+ x = (safe_div(trace_length, felt!(dynamic_params.pedersen_builtin_row_ratio))?) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Index should be non negative.
+ x = safe_div(trace_length, felt!(dynamic_params.pedersen_builtin_row_ratio))?;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Coset step (memberexpression(trace_length)) must be a power of two.
+ x = trace_length;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Offset of pedersen/input0 must be nonnegative.
+ x = felt!(dynamic_params.pedersen_input0_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of pedersen/input0 is too big.
+ x = trace_length - felt!(dynamic_params.pedersen_input0_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of pedersen/input0 is too big.
+ x = felt!(dynamic_params.pedersen_builtin_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.pedersen_input0_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of pedersen/input1 must be nonnegative.
+ x = felt!(dynamic_params.pedersen_input1_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of pedersen/input1 is too big.
+ x = trace_length - felt!(dynamic_params.pedersen_input1_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of pedersen/input1 is too big.
+ x = felt!(dynamic_params.pedersen_builtin_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.pedersen_input1_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of pedersen/output must be nonnegative.
+ x = felt!(dynamic_params.pedersen_output_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of pedersen/output is too big.
+ x = trace_length - felt!(dynamic_params.pedersen_output_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of pedersen/output is too big.
+ x = felt!(dynamic_params.pedersen_builtin_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.pedersen_output_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ }
+ if felt!(dynamic_params.uses_range_check_builtin) != FELT_0 {
+ // Coset step (memberexpression(trace_length)) must be a power of two.
+ x = trace_length;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Row ratio should be a power of FELT_2, smaller than trace length.
+ x = felt!(dynamic_params.range_check_builtin_row_ratio);
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Dimension should be a power of FELT_2.
+ x = safe_div(trace_length, felt!(dynamic_params.range_check_builtin_row_ratio))?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Step must not exceed dimension.
+ x = (safe_div(trace_length, felt!(dynamic_params.range_check_builtin_row_ratio))?) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Index should be non negative.
+ x = safe_div(trace_length, felt!(dynamic_params.range_check_builtin_row_ratio))?;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Coset step ((dynamicparam(range_check_builtin_row_ratio)) / (FELT_8)) must be a power of two.
+ x = safe_div(felt!(dynamic_params.range_check_builtin_row_ratio), FELT_8)?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Offset of range_check_builtin/mem must be nonnegative.
+ x = felt!(dynamic_params.range_check_builtin_mem_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of range_check_builtin/mem is too big.
+ x = trace_length - felt!(dynamic_params.range_check_builtin_mem_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of range_check_builtin/mem is too big.
+ x = felt!(dynamic_params.range_check_builtin_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.range_check_builtin_mem_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of range_check_builtin/inner_range_check must be nonnegative.
+ x = felt!(dynamic_params.range_check_builtin_inner_range_check_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of range_check_builtin/inner_range_check is too big.
+ x = trace_length
+ - felt!(dynamic_params.range_check_builtin_inner_range_check_suboffset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of range_check_builtin/inner_range_check is too big.
+ x = (safe_div(felt!(dynamic_params.range_check_builtin_row_ratio), FELT_8)?)
+ - (safe_mult(
+ felt!(dynamic_params.range_check_builtin_inner_range_check_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ }
+ if felt!(dynamic_params.uses_ecdsa_builtin) != FELT_0 {
+ // Row ratio should be a power of FELT_2, smaller than trace length.
+ x = felt!(dynamic_params.ecdsa_builtin_row_ratio);
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Dimension should be a power of FELT_2.
+ x = safe_div(trace_length, felt!(dynamic_params.ecdsa_builtin_row_ratio))?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Coset step ((dynamicparam(ecdsa_builtin_row_ratio)) / (FELT_512)) must be a power of two.
+ x = safe_div(felt!(dynamic_params.ecdsa_builtin_row_ratio), FELT_512)?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Step must not exceed dimension.
+ x = (safe_div(trace_length, felt!(dynamic_params.ecdsa_builtin_row_ratio))?) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Index should be non negative.
+ x = safe_div(trace_length, felt!(dynamic_params.ecdsa_builtin_row_ratio))?;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Coset step ((dynamicparam(ecdsa_builtin_row_ratio)) / (FELT_256)) must be a power of two.
+ x = safe_div(felt!(dynamic_params.ecdsa_builtin_row_ratio), FELT_256)?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Coset step (memberexpression(trace_length)) must be a power of two.
+ x = trace_length;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Coset step ((dynamicparam(ecdsa_builtin_row_ratio)) / (FELT_2)) must be a power of two.
+ x = safe_div(felt!(dynamic_params.ecdsa_builtin_row_ratio), FELT_2)?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Offset of ecdsa/pubkey must be nonnegative.
+ x = felt!(dynamic_params.ecdsa_pubkey_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of ecdsa/pubkey is too big.
+ x = trace_length - felt!(dynamic_params.ecdsa_pubkey_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of ecdsa/pubkey is too big.
+ x = felt!(dynamic_params.ecdsa_builtin_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.ecdsa_pubkey_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of ecdsa/message must be nonnegative.
+ x = felt!(dynamic_params.ecdsa_message_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of ecdsa/message is too big.
+ x = trace_length - felt!(dynamic_params.ecdsa_message_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of ecdsa/message is too big.
+ x = felt!(dynamic_params.ecdsa_builtin_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.ecdsa_message_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ }
+ if felt!(dynamic_params.uses_bitwise_builtin) != FELT_0 {
+ // Row ratio should be a power of FELT_2, smaller than trace length.
+ x = felt!(dynamic_params.bitwise_row_ratio);
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Dimension should be a power of FELT_2.
+ x = safe_div(trace_length, felt!(dynamic_params.bitwise_row_ratio))?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Coset step ((dynamicparam(bitwise_row_ratio)) / (FELT_64)) must be a power of two.
+ x = safe_div(felt!(dynamic_params.bitwise_row_ratio), FELT_64)?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Coset step ((dynamicparam(bitwise_row_ratio)) / (FELT_4)) must be a power of two.
+ x = safe_div(felt!(dynamic_params.bitwise_row_ratio), FELT_4)?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Index out of range.
+ x = (safe_div(trace_length, felt!(dynamic_params.bitwise_row_ratio))?) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Index should be non negative.
+ x = safe_div(trace_length, felt!(dynamic_params.bitwise_row_ratio))?;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Coset step (memberexpression(trace_length)) must be a power of two.
+ x = trace_length;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Offset of bitwise/var_pool must be nonnegative.
+ x = felt!(dynamic_params.bitwise_var_pool_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of bitwise/var_pool is too big.
+ x = trace_length - felt!(dynamic_params.bitwise_var_pool_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of bitwise/var_pool is too big.
+ x = (safe_div(felt!(dynamic_params.bitwise_row_ratio), FELT_4)?)
+ - (safe_mult(
+ felt!(dynamic_params.bitwise_var_pool_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of bitwise/x_or_y must be nonnegative.
+ x = felt!(dynamic_params.bitwise_x_or_y_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of bitwise/x_or_y is too big.
+ x = trace_length - felt!(dynamic_params.bitwise_x_or_y_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of bitwise/x_or_y is too big.
+ x = felt!(dynamic_params.bitwise_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.bitwise_x_or_y_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of bitwise/diluted_var_pool must be nonnegative.
+ x = felt!(dynamic_params.bitwise_diluted_var_pool_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of bitwise/diluted_var_pool is too big.
+ x = trace_length - felt!(dynamic_params.bitwise_diluted_var_pool_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of bitwise/diluted_var_pool is too big.
+ x = (safe_div(felt!(dynamic_params.bitwise_row_ratio), FELT_64)?)
+ - (safe_mult(
+ felt!(dynamic_params.bitwise_diluted_var_pool_suboffset),
+ felt!(dynamic_params.diluted_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of bitwise/trim_unpacking192 must be nonnegative.
+ x = felt!(dynamic_params.bitwise_trim_unpacking192_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of bitwise/trim_unpacking192 is too big.
+ x = trace_length - felt!(dynamic_params.bitwise_trim_unpacking192_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of bitwise/trim_unpacking192 is too big.
+ x = felt!(dynamic_params.bitwise_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.bitwise_trim_unpacking192_suboffset),
+ felt!(dynamic_params.diluted_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of bitwise/trim_unpacking193 must be nonnegative.
+ x = felt!(dynamic_params.bitwise_trim_unpacking193_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of bitwise/trim_unpacking193 is too big.
+ x = trace_length - felt!(dynamic_params.bitwise_trim_unpacking193_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of bitwise/trim_unpacking193 is too big.
+ x = felt!(dynamic_params.bitwise_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.bitwise_trim_unpacking193_suboffset),
+ felt!(dynamic_params.diluted_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of bitwise/trim_unpacking194 must be nonnegative.
+ x = felt!(dynamic_params.bitwise_trim_unpacking194_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of bitwise/trim_unpacking194 is too big.
+ x = trace_length - felt!(dynamic_params.bitwise_trim_unpacking194_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of bitwise/trim_unpacking194 is too big.
+ x = felt!(dynamic_params.bitwise_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.bitwise_trim_unpacking194_suboffset),
+ felt!(dynamic_params.diluted_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of bitwise/trim_unpacking195 must be nonnegative.
+ x = felt!(dynamic_params.bitwise_trim_unpacking195_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of bitwise/trim_unpacking195 is too big.
+ x = trace_length - felt!(dynamic_params.bitwise_trim_unpacking195_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of bitwise/trim_unpacking195 is too big.
+ x = felt!(dynamic_params.bitwise_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.bitwise_trim_unpacking195_suboffset),
+ felt!(dynamic_params.diluted_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ }
+ if felt!(dynamic_params.uses_ec_op_builtin) != FELT_0 {
+ // Row ratio should be a power of FELT_2, smaller than trace length.
+ x = felt!(dynamic_params.ec_op_builtin_row_ratio);
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Dimension should be a power of FELT_2.
+ x = safe_div(trace_length, felt!(dynamic_params.ec_op_builtin_row_ratio))?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Coset step ((dynamicparam(ec_op_builtin_row_ratio)) / (FELT_256)) must be a power of two.
+ x = safe_div(felt!(dynamic_params.ec_op_builtin_row_ratio), FELT_256)?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Index out of range.
+ x = (safe_div(trace_length, felt!(dynamic_params.ec_op_builtin_row_ratio))?) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Index should be non negative.
+ x = safe_div(trace_length, felt!(dynamic_params.ec_op_builtin_row_ratio))?;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Coset step (memberexpression(trace_length)) must be a power of two.
+ x = trace_length;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Offset of ec_op/p_x must be nonnegative.
+ x = felt!(dynamic_params.ec_op_p_x_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of ec_op/p_x is too big.
+ x = trace_length - felt!(dynamic_params.ec_op_p_x_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of ec_op/p_x is too big.
+ x = felt!(dynamic_params.ec_op_builtin_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.ec_op_p_x_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of ec_op/p_y must be nonnegative.
+ x = felt!(dynamic_params.ec_op_p_y_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of ec_op/p_y is too big.
+ x = trace_length - felt!(dynamic_params.ec_op_p_y_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of ec_op/p_y is too big.
+ x = felt!(dynamic_params.ec_op_builtin_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.ec_op_p_y_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of ec_op/q_x must be nonnegative.
+ x = felt!(dynamic_params.ec_op_q_x_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of ec_op/q_x is too big.
+ x = trace_length - felt!(dynamic_params.ec_op_q_x_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of ec_op/q_x is too big.
+ x = felt!(dynamic_params.ec_op_builtin_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.ec_op_q_x_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of ec_op/q_y must be nonnegative.
+ x = felt!(dynamic_params.ec_op_q_y_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of ec_op/q_y is too big.
+ x = trace_length - felt!(dynamic_params.ec_op_q_y_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of ec_op/q_y is too big.
+ x = felt!(dynamic_params.ec_op_builtin_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.ec_op_q_y_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of ec_op/m must be nonnegative.
+ x = felt!(dynamic_params.ec_op_m_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of ec_op/m is too big.
+ x = trace_length - felt!(dynamic_params.ec_op_m_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of ec_op/m is too big.
+ x = felt!(dynamic_params.ec_op_builtin_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.ec_op_m_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of ec_op/r_x must be nonnegative.
+ x = felt!(dynamic_params.ec_op_r_x_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of ec_op/r_x is too big.
+ x = trace_length - felt!(dynamic_params.ec_op_r_x_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of ec_op/r_x is too big.
+ x = felt!(dynamic_params.ec_op_builtin_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.ec_op_r_x_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of ec_op/r_y must be nonnegative.
+ x = felt!(dynamic_params.ec_op_r_y_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of ec_op/r_y is too big.
+ x = trace_length - felt!(dynamic_params.ec_op_r_y_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of ec_op/r_y is too big.
+ x = felt!(dynamic_params.ec_op_builtin_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.ec_op_r_y_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ }
+ if felt!(dynamic_params.uses_keccak_builtin) != FELT_0 {
+ // Coset step ((dynamicparam(keccak_row_ratio)) / (FELT_4096)) must be a power of two.
+ x = safe_div(felt!(dynamic_params.keccak_row_ratio), FELT_4096)?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Dimension should be a power of FELT_2.
+ x = safe_div(trace_length, safe_mult(FELT_16, felt!(dynamic_params.keccak_row_ratio))?)?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Coset step ((dynamicparam(keccak_row_ratio)) / (FELT_128)) must be a power of two.
+ x = safe_div(felt!(dynamic_params.keccak_row_ratio), FELT_128)?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Coset step ((dynamicparam(keccak_row_ratio)) / (FELT_32768)) must be a power of two.
+ x = safe_div(felt!(dynamic_params.keccak_row_ratio), FELT_32768)?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Row ratio should be a power of FELT_2, smaller than trace length.
+ x = felt!(dynamic_params.keccak_row_ratio);
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Coset step ((dynamicparam(keccak_row_ratio)) / (FELT_16)) must be a power of two.
+ x = safe_div(felt!(dynamic_params.keccak_row_ratio), FELT_16)?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Dimension should be a power of FELT_2.
+ x = safe_div(safe_mult(FELT_16, trace_length)?, felt!(dynamic_params.keccak_row_ratio))?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Index out of range.
+ x = (safe_div(safe_mult(FELT_16, trace_length)?, felt!(dynamic_params.keccak_row_ratio))?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Index should be non negative.
+ x = safe_div(safe_mult(FELT_16, trace_length)?, felt!(dynamic_params.keccak_row_ratio))?;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Coset step (memberexpression(trace_length)) must be a power of two.
+ x = trace_length;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Offset of keccak/input_output must be nonnegative.
+ x = felt!(dynamic_params.keccak_input_output_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of keccak/input_output is too big.
+ x = trace_length - felt!(dynamic_params.keccak_input_output_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of keccak/input_output is too big.
+ x = (safe_div(felt!(dynamic_params.keccak_row_ratio), FELT_16)?)
+ - (safe_mult(
+ felt!(dynamic_params.keccak_input_output_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of keccak/keccak/diluted_column0 must be nonnegative.
+ x = felt!(dynamic_params.keccak_keccak_diluted_column0_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of keccak/keccak/diluted_column0 is too big.
+ x = trace_length - felt!(dynamic_params.keccak_keccak_diluted_column0_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of keccak/keccak/diluted_column0 is too big.
+ x = (safe_div(felt!(dynamic_params.keccak_row_ratio), FELT_4096)?)
+ - (safe_mult(
+ felt!(dynamic_params.keccak_keccak_diluted_column0_suboffset),
+ felt!(dynamic_params.diluted_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of keccak/keccak/diluted_column1 must be nonnegative.
+ x = felt!(dynamic_params.keccak_keccak_diluted_column1_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of keccak/keccak/diluted_column1 is too big.
+ x = trace_length - felt!(dynamic_params.keccak_keccak_diluted_column1_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of keccak/keccak/diluted_column1 is too big.
+ x = (safe_div(felt!(dynamic_params.keccak_row_ratio), FELT_4096)?)
+ - (safe_mult(
+ felt!(dynamic_params.keccak_keccak_diluted_column1_suboffset),
+ felt!(dynamic_params.diluted_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of keccak/keccak/diluted_column2 must be nonnegative.
+ x = felt!(dynamic_params.keccak_keccak_diluted_column2_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of keccak/keccak/diluted_column2 is too big.
+ x = trace_length - felt!(dynamic_params.keccak_keccak_diluted_column2_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of keccak/keccak/diluted_column2 is too big.
+ x = (safe_div(felt!(dynamic_params.keccak_row_ratio), FELT_4096)?)
+ - (safe_mult(
+ felt!(dynamic_params.keccak_keccak_diluted_column2_suboffset),
+ felt!(dynamic_params.diluted_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of keccak/keccak/diluted_column3 must be nonnegative.
+ x = felt!(dynamic_params.keccak_keccak_diluted_column3_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of keccak/keccak/diluted_column3 is too big.
+ x = trace_length - felt!(dynamic_params.keccak_keccak_diluted_column3_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of keccak/keccak/diluted_column3 is too big.
+ x = (safe_div(felt!(dynamic_params.keccak_row_ratio), FELT_4096)?)
+ - (safe_mult(
+ felt!(dynamic_params.keccak_keccak_diluted_column3_suboffset),
+ felt!(dynamic_params.diluted_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ }
+ if felt!(dynamic_params.uses_poseidon_builtin) != FELT_0 {
+ // Row ratio should be a power of FELT_2, smaller than trace length.
+ x = felt!(dynamic_params.poseidon_row_ratio);
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Dimension should be a power of FELT_2.
+ x = safe_div(trace_length, felt!(dynamic_params.poseidon_row_ratio))?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Coset step ((dynamicparam(poseidon_row_ratio)) / (FELT_32)) must be a power of two.
+ x = safe_div(felt!(dynamic_params.poseidon_row_ratio), FELT_32)?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Coset step ((dynamicparam(poseidon_row_ratio)) / (FELT_8)) must be a power of two.
+ x = safe_div(felt!(dynamic_params.poseidon_row_ratio), FELT_8)?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Coset step ((dynamicparam(poseidon_row_ratio)) / (FELT_64)) must be a power of two.
+ x = safe_div(felt!(dynamic_params.poseidon_row_ratio), FELT_64)?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Coset step ((dynamicparam(poseidon_row_ratio)) / (FELT_2)) must be a power of two.
+ x = safe_div(felt!(dynamic_params.poseidon_row_ratio), FELT_2)?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Dimension should be a power of FELT_2.
+ x = safe_div(safe_mult(FELT_2, trace_length)?, felt!(dynamic_params.poseidon_row_ratio))?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Index out of range.
+ x = (safe_div(safe_mult(FELT_2, trace_length)?, felt!(dynamic_params.poseidon_row_ratio))?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Index should be non negative.
+ x = safe_div(safe_mult(FELT_2, trace_length)?, felt!(dynamic_params.poseidon_row_ratio))?;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Coset step (memberexpression(trace_length)) must be a power of two.
+ x = trace_length;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Offset of poseidon/param_0/input_output must be nonnegative.
+ x = felt!(dynamic_params.poseidon_param_0_input_output_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of poseidon/param_0/input_output is too big.
+ x = trace_length - felt!(dynamic_params.poseidon_param_0_input_output_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of poseidon/param_0/input_output is too big.
+ x = (safe_div(felt!(dynamic_params.poseidon_row_ratio), FELT_2)?)
+ - (safe_mult(
+ felt!(dynamic_params.poseidon_param_0_input_output_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of poseidon/param_1/input_output must be nonnegative.
+ x = felt!(dynamic_params.poseidon_param_1_input_output_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of poseidon/param_1/input_output is too big.
+ x = trace_length - felt!(dynamic_params.poseidon_param_1_input_output_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of poseidon/param_1/input_output is too big.
+ x = (safe_div(felt!(dynamic_params.poseidon_row_ratio), FELT_2)?)
+ - (safe_mult(
+ felt!(dynamic_params.poseidon_param_1_input_output_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of poseidon/param_2/input_output must be nonnegative.
+ x = felt!(dynamic_params.poseidon_param_2_input_output_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of poseidon/param_2/input_output is too big.
+ x = trace_length - felt!(dynamic_params.poseidon_param_2_input_output_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of poseidon/param_2/input_output is too big.
+ x = (safe_div(felt!(dynamic_params.poseidon_row_ratio), FELT_2)?)
+ - (safe_mult(
+ felt!(dynamic_params.poseidon_param_2_input_output_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ }
+ if felt!(dynamic_params.uses_range_check96_builtin) != FELT_0 {
+ // Coset step (memberexpression(trace_length)) must be a power of two.
+ x = trace_length;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Row ratio should be a power of FELT_2, smaller than trace length.
+ x = felt!(dynamic_params.range_check96_builtin_row_ratio);
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Dimension should be a power of FELT_2.
+ x = safe_div(trace_length, felt!(dynamic_params.range_check96_builtin_row_ratio))?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Step must not exceed dimension.
+ x = (safe_div(trace_length, felt!(dynamic_params.range_check96_builtin_row_ratio))?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Index should be non negative.
+ x = safe_div(trace_length, felt!(dynamic_params.range_check96_builtin_row_ratio))?;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of range_check96_builtin/mem must be nonnegative.
+ x = felt!(dynamic_params.range_check96_builtin_mem_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of range_check96_builtin/mem is too big.
+ x = trace_length - felt!(dynamic_params.range_check96_builtin_mem_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of range_check96_builtin/mem is too big.
+ x = felt!(dynamic_params.range_check96_builtin_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.range_check96_builtin_mem_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of range_check96_builtin/inner_range_check0 must be nonnegative.
+ x = felt!(dynamic_params.range_check96_builtin_inner_range_check0_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of range_check96_builtin/inner_range_check0 is too big.
+ x = trace_length
+ - felt!(dynamic_params.range_check96_builtin_inner_range_check0_suboffset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of range_check96_builtin/inner_range_check0 is too big.
+ x = felt!(dynamic_params.range_check96_builtin_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.range_check96_builtin_inner_range_check0_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of range_check96_builtin/inner_range_check1 must be nonnegative.
+ x = felt!(dynamic_params.range_check96_builtin_inner_range_check1_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of range_check96_builtin/inner_range_check1 is too big.
+ x = trace_length
+ - felt!(dynamic_params.range_check96_builtin_inner_range_check1_suboffset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of range_check96_builtin/inner_range_check1 is too big.
+ x = felt!(dynamic_params.range_check96_builtin_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.range_check96_builtin_inner_range_check1_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of range_check96_builtin/inner_range_check2 must be nonnegative.
+ x = felt!(dynamic_params.range_check96_builtin_inner_range_check2_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of range_check96_builtin/inner_range_check2 is too big.
+ x = trace_length
+ - felt!(dynamic_params.range_check96_builtin_inner_range_check2_suboffset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of range_check96_builtin/inner_range_check2 is too big.
+ x = felt!(dynamic_params.range_check96_builtin_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.range_check96_builtin_inner_range_check2_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of range_check96_builtin/inner_range_check3 must be nonnegative.
+ x = felt!(dynamic_params.range_check96_builtin_inner_range_check3_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of range_check96_builtin/inner_range_check3 is too big.
+ x = trace_length
+ - felt!(dynamic_params.range_check96_builtin_inner_range_check3_suboffset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of range_check96_builtin/inner_range_check3 is too big.
+ x = felt!(dynamic_params.range_check96_builtin_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.range_check96_builtin_inner_range_check3_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of range_check96_builtin/inner_range_check4 must be nonnegative.
+ x = felt!(dynamic_params.range_check96_builtin_inner_range_check4_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of range_check96_builtin/inner_range_check4 is too big.
+ x = trace_length
+ - felt!(dynamic_params.range_check96_builtin_inner_range_check4_suboffset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of range_check96_builtin/inner_range_check4 is too big.
+ x = felt!(dynamic_params.range_check96_builtin_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.range_check96_builtin_inner_range_check4_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of range_check96_builtin/inner_range_check5 must be nonnegative.
+ x = felt!(dynamic_params.range_check96_builtin_inner_range_check5_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of range_check96_builtin/inner_range_check5 is too big.
+ x = trace_length
+ - felt!(dynamic_params.range_check96_builtin_inner_range_check5_suboffset)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of range_check96_builtin/inner_range_check5 is too big.
+ x = felt!(dynamic_params.range_check96_builtin_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.range_check96_builtin_inner_range_check5_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ }
+ if felt!(dynamic_params.uses_add_mod_builtin) != FELT_0 {
+ // Row ratio should be a power of FELT_2, smaller than trace length.
+ x = felt!(dynamic_params.add_mod_row_ratio);
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Dimension should be a power of FELT_2.
+ x = safe_div(trace_length, felt!(dynamic_params.add_mod_row_ratio))?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Index out of range.
+ x = (safe_div(trace_length, felt!(dynamic_params.add_mod_row_ratio))?) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Index should be non negative.
+ x = safe_div(trace_length, felt!(dynamic_params.add_mod_row_ratio))?;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Coset step (memberexpression(trace_length)) must be a power of two.
+ x = trace_length;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Offset of add_mod/p0 must be nonnegative.
+ x = felt!(dynamic_params.add_mod_p0_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/p0 is too big.
+ x = trace_length - felt!(dynamic_params.add_mod_p0_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/p0 is too big.
+ x = felt!(dynamic_params.add_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.add_mod_p0_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/p1 must be nonnegative.
+ x = felt!(dynamic_params.add_mod_p1_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/p1 is too big.
+ x = trace_length - felt!(dynamic_params.add_mod_p1_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/p1 is too big.
+ x = felt!(dynamic_params.add_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.add_mod_p1_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/p2 must be nonnegative.
+ x = felt!(dynamic_params.add_mod_p2_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/p2 is too big.
+ x = trace_length - felt!(dynamic_params.add_mod_p2_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/p2 is too big.
+ x = felt!(dynamic_params.add_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.add_mod_p2_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/p3 must be nonnegative.
+ x = felt!(dynamic_params.add_mod_p3_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/p3 is too big.
+ x = trace_length - felt!(dynamic_params.add_mod_p3_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/p3 is too big.
+ x = felt!(dynamic_params.add_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.add_mod_p3_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/values_ptr must be nonnegative.
+ x = felt!(dynamic_params.add_mod_values_ptr_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/values_ptr is too big.
+ x = trace_length - felt!(dynamic_params.add_mod_values_ptr_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/values_ptr is too big.
+ x = felt!(dynamic_params.add_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.add_mod_values_ptr_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/offsets_ptr must be nonnegative.
+ x = felt!(dynamic_params.add_mod_offsets_ptr_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/offsets_ptr is too big.
+ x = trace_length - felt!(dynamic_params.add_mod_offsets_ptr_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/offsets_ptr is too big.
+ x = felt!(dynamic_params.add_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.add_mod_offsets_ptr_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/n must be nonnegative.
+ x = felt!(dynamic_params.add_mod_n_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/n is too big.
+ x = trace_length - felt!(dynamic_params.add_mod_n_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/n is too big.
+ x = felt!(dynamic_params.add_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.add_mod_n_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/a_offset must be nonnegative.
+ x = felt!(dynamic_params.add_mod_a_offset_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/a_offset is too big.
+ x = trace_length - felt!(dynamic_params.add_mod_a_offset_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/a_offset is too big.
+ x = felt!(dynamic_params.add_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.add_mod_a_offset_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/b_offset must be nonnegative.
+ x = felt!(dynamic_params.add_mod_b_offset_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/b_offset is too big.
+ x = trace_length - felt!(dynamic_params.add_mod_b_offset_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/b_offset is too big.
+ x = felt!(dynamic_params.add_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.add_mod_b_offset_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/c_offset must be nonnegative.
+ x = felt!(dynamic_params.add_mod_c_offset_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/c_offset is too big.
+ x = trace_length - felt!(dynamic_params.add_mod_c_offset_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/c_offset is too big.
+ x = felt!(dynamic_params.add_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.add_mod_c_offset_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/a0 must be nonnegative.
+ x = felt!(dynamic_params.add_mod_a0_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/a0 is too big.
+ x = trace_length - felt!(dynamic_params.add_mod_a0_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/a0 is too big.
+ x = felt!(dynamic_params.add_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.add_mod_a0_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/a1 must be nonnegative.
+ x = felt!(dynamic_params.add_mod_a1_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/a1 is too big.
+ x = trace_length - felt!(dynamic_params.add_mod_a1_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/a1 is too big.
+ x = felt!(dynamic_params.add_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.add_mod_a1_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/a2 must be nonnegative.
+ x = felt!(dynamic_params.add_mod_a2_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/a2 is too big.
+ x = trace_length - felt!(dynamic_params.add_mod_a2_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/a2 is too big.
+ x = felt!(dynamic_params.add_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.add_mod_a2_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/a3 must be nonnegative.
+ x = felt!(dynamic_params.add_mod_a3_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/a3 is too big.
+ x = trace_length - felt!(dynamic_params.add_mod_a3_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/a3 is too big.
+ x = felt!(dynamic_params.add_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.add_mod_a3_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/b0 must be nonnegative.
+ x = felt!(dynamic_params.add_mod_b0_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/b0 is too big.
+ x = trace_length - felt!(dynamic_params.add_mod_b0_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/b0 is too big.
+ x = felt!(dynamic_params.add_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.add_mod_b0_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/b1 must be nonnegative.
+ x = felt!(dynamic_params.add_mod_b1_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/b1 is too big.
+ x = trace_length - felt!(dynamic_params.add_mod_b1_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/b1 is too big.
+ x = felt!(dynamic_params.add_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.add_mod_b1_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/b2 must be nonnegative.
+ x = felt!(dynamic_params.add_mod_b2_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/b2 is too big.
+ x = trace_length - felt!(dynamic_params.add_mod_b2_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/b2 is too big.
+ x = felt!(dynamic_params.add_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.add_mod_b2_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/b3 must be nonnegative.
+ x = felt!(dynamic_params.add_mod_b3_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/b3 is too big.
+ x = trace_length - felt!(dynamic_params.add_mod_b3_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/b3 is too big.
+ x = felt!(dynamic_params.add_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.add_mod_b3_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/c0 must be nonnegative.
+ x = felt!(dynamic_params.add_mod_c0_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/c0 is too big.
+ x = trace_length - felt!(dynamic_params.add_mod_c0_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/c0 is too big.
+ x = felt!(dynamic_params.add_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.add_mod_c0_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/c1 must be nonnegative.
+ x = felt!(dynamic_params.add_mod_c1_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/c1 is too big.
+ x = trace_length - felt!(dynamic_params.add_mod_c1_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/c1 is too big.
+ x = felt!(dynamic_params.add_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.add_mod_c1_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/c2 must be nonnegative.
+ x = felt!(dynamic_params.add_mod_c2_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/c2 is too big.
+ x = trace_length - felt!(dynamic_params.add_mod_c2_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/c2 is too big.
+ x = felt!(dynamic_params.add_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.add_mod_c2_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/c3 must be nonnegative.
+ x = felt!(dynamic_params.add_mod_c3_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/c3 is too big.
+ x = trace_length - felt!(dynamic_params.add_mod_c3_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of add_mod/c3 is too big.
+ x = felt!(dynamic_params.add_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.add_mod_c3_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ }
+ if felt!(dynamic_params.uses_mul_mod_builtin) != FELT_0 {
+ // Row ratio should be a power of FELT_2, smaller than trace length.
+ x = felt!(dynamic_params.mul_mod_row_ratio);
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Dimension should be a power of FELT_2.
+ x = safe_div(trace_length, felt!(dynamic_params.mul_mod_row_ratio))?;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Index out of range.
+ x = (safe_div(trace_length, felt!(dynamic_params.mul_mod_row_ratio))?) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Index should be non negative.
+ x = safe_div(trace_length, felt!(dynamic_params.mul_mod_row_ratio))?;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Coset step (memberexpression(trace_length)) must be a power of two.
+ x = trace_length;
+ ensure!(is_power_of_2(x), CheckAssertsError::NotPowerOfTwo);
+ // Offset of mul_mod/p0 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_p0_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p0 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_p0_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p0 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_p0_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p1 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_p1_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p1 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_p1_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p1 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_p1_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p2 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_p2_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p2 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_p2_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p2 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_p2_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p3 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_p3_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p3 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_p3_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p3 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_p3_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/values_ptr must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_values_ptr_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/values_ptr is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_values_ptr_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/values_ptr is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_values_ptr_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/offsets_ptr must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_offsets_ptr_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/offsets_ptr is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_offsets_ptr_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/offsets_ptr is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_offsets_ptr_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/n must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_n_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/n is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_n_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/n is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_n_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/a_offset must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_a_offset_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/a_offset is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_a_offset_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/a_offset is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_a_offset_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/b_offset must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_b_offset_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/b_offset is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_b_offset_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/b_offset is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_b_offset_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/c_offset must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_c_offset_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/c_offset is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_c_offset_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/c_offset is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_c_offset_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/a0 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_a0_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/a0 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_a0_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/a0 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_a0_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/a1 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_a1_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/a1 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_a1_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/a1 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_a1_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/a2 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_a2_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/a2 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_a2_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/a2 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_a2_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/a3 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_a3_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/a3 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_a3_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/a3 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_a3_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/b0 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_b0_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/b0 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_b0_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/b0 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_b0_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/b1 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_b1_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/b1 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_b1_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/b1 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_b1_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/b2 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_b2_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/b2 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_b2_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/b2 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_b2_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/b3 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_b3_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/b3 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_b3_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/b3 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_b3_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/c0 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_c0_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/c0 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_c0_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/c0 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_c0_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/c1 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_c1_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/c1 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_c1_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/c1 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_c1_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/c2 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_c2_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/c2 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_c2_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/c2 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_c2_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/c3 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_c3_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/c3 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_c3_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/c3 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_c3_suboffset),
+ felt!(dynamic_params.memory_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier0/part0 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_p_multiplier0_part0_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier0/part0 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_p_multiplier0_part0_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier0/part0 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_p_multiplier0_part0_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier0/part1 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_p_multiplier0_part1_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier0/part1 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_p_multiplier0_part1_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier0/part1 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_p_multiplier0_part1_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier0/part2 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_p_multiplier0_part2_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier0/part2 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_p_multiplier0_part2_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier0/part2 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_p_multiplier0_part2_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier0/part3 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_p_multiplier0_part3_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier0/part3 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_p_multiplier0_part3_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier0/part3 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_p_multiplier0_part3_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier0/part4 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_p_multiplier0_part4_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier0/part4 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_p_multiplier0_part4_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier0/part4 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_p_multiplier0_part4_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier0/part5 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_p_multiplier0_part5_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier0/part5 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_p_multiplier0_part5_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier0/part5 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_p_multiplier0_part5_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier1/part0 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_p_multiplier1_part0_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier1/part0 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_p_multiplier1_part0_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier1/part0 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_p_multiplier1_part0_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier1/part1 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_p_multiplier1_part1_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier1/part1 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_p_multiplier1_part1_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier1/part1 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_p_multiplier1_part1_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier1/part2 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_p_multiplier1_part2_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier1/part2 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_p_multiplier1_part2_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier1/part2 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_p_multiplier1_part2_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier1/part3 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_p_multiplier1_part3_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier1/part3 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_p_multiplier1_part3_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier1/part3 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_p_multiplier1_part3_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier1/part4 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_p_multiplier1_part4_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier1/part4 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_p_multiplier1_part4_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier1/part4 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_p_multiplier1_part4_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier1/part5 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_p_multiplier1_part5_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier1/part5 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_p_multiplier1_part5_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier1/part5 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_p_multiplier1_part5_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier2/part0 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_p_multiplier2_part0_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier2/part0 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_p_multiplier2_part0_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier2/part0 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_p_multiplier2_part0_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier2/part1 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_p_multiplier2_part1_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier2/part1 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_p_multiplier2_part1_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier2/part1 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_p_multiplier2_part1_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier2/part2 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_p_multiplier2_part2_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier2/part2 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_p_multiplier2_part2_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier2/part2 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_p_multiplier2_part2_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier2/part3 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_p_multiplier2_part3_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier2/part3 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_p_multiplier2_part3_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier2/part3 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_p_multiplier2_part3_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier2/part4 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_p_multiplier2_part4_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier2/part4 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_p_multiplier2_part4_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier2/part4 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_p_multiplier2_part4_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier2/part5 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_p_multiplier2_part5_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier2/part5 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_p_multiplier2_part5_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier2/part5 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_p_multiplier2_part5_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier3/part0 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_p_multiplier3_part0_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier3/part0 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_p_multiplier3_part0_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier3/part0 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_p_multiplier3_part0_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier3/part1 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_p_multiplier3_part1_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier3/part1 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_p_multiplier3_part1_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier3/part1 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_p_multiplier3_part1_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier3/part2 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_p_multiplier3_part2_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier3/part2 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_p_multiplier3_part2_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier3/part2 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_p_multiplier3_part2_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier3/part3 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_p_multiplier3_part3_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier3/part3 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_p_multiplier3_part3_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier3/part3 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_p_multiplier3_part3_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier3/part4 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_p_multiplier3_part4_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier3/part4 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_p_multiplier3_part4_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier3/part4 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_p_multiplier3_part4_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier3/part5 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_p_multiplier3_part5_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier3/part5 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_p_multiplier3_part5_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/p_multiplier3/part5 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_p_multiplier3_part5_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry0/part0 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry0_part0_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry0/part0 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry0_part0_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry0/part0 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry0_part0_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry0/part1 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry0_part1_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry0/part1 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry0_part1_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry0/part1 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry0_part1_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry0/part2 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry0_part2_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry0/part2 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry0_part2_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry0/part2 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry0_part2_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry0/part3 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry0_part3_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry0/part3 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry0_part3_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry0/part3 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry0_part3_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry0/part4 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry0_part4_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry0/part4 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry0_part4_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry0/part4 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry0_part4_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry0/part5 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry0_part5_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry0/part5 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry0_part5_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry0/part5 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry0_part5_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry0/part6 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry0_part6_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry0/part6 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry0_part6_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry0/part6 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry0_part6_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry1/part0 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry1_part0_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry1/part0 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry1_part0_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry1/part0 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry1_part0_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry1/part1 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry1_part1_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry1/part1 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry1_part1_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry1/part1 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry1_part1_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry1/part2 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry1_part2_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry1/part2 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry1_part2_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry1/part2 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry1_part2_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry1/part3 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry1_part3_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry1/part3 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry1_part3_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry1/part3 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry1_part3_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry1/part4 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry1_part4_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry1/part4 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry1_part4_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry1/part4 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry1_part4_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry1/part5 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry1_part5_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry1/part5 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry1_part5_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry1/part5 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry1_part5_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry1/part6 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry1_part6_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry1/part6 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry1_part6_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry1/part6 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry1_part6_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry2/part0 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry2_part0_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry2/part0 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry2_part0_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry2/part0 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry2_part0_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry2/part1 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry2_part1_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry2/part1 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry2_part1_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry2/part1 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry2_part1_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry2/part2 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry2_part2_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry2/part2 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry2_part2_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry2/part2 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry2_part2_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry2/part3 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry2_part3_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry2/part3 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry2_part3_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry2/part3 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry2_part3_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry2/part4 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry2_part4_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry2/part4 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry2_part4_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry2/part4 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry2_part4_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry2/part5 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry2_part5_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry2/part5 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry2_part5_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry2/part5 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry2_part5_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry2/part6 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry2_part6_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry2/part6 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry2_part6_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry2/part6 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry2_part6_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry3/part0 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry3_part0_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry3/part0 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry3_part0_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry3/part0 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry3_part0_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry3/part1 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry3_part1_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry3/part1 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry3_part1_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry3/part1 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry3_part1_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry3/part2 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry3_part2_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry3/part2 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry3_part2_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry3/part2 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry3_part2_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry3/part3 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry3_part3_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry3/part3 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry3_part3_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry3/part3 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry3_part3_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry3/part4 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry3_part4_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry3/part4 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry3_part4_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry3/part4 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry3_part4_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry3/part5 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry3_part5_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry3/part5 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry3_part5_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry3/part5 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry3_part5_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry3/part6 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry3_part6_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry3/part6 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry3_part6_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry3/part6 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry3_part6_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry4/part0 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry4_part0_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry4/part0 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry4_part0_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry4/part0 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry4_part0_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry4/part1 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry4_part1_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry4/part1 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry4_part1_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry4/part1 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry4_part1_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry4/part2 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry4_part2_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry4/part2 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry4_part2_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry4/part2 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry4_part2_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry4/part3 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry4_part3_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry4/part3 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry4_part3_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry4/part3 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry4_part3_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry4/part4 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry4_part4_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry4/part4 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry4_part4_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry4/part4 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry4_part4_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry4/part5 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry4_part5_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry4/part5 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry4_part5_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry4/part5 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry4_part5_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry4/part6 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry4_part6_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry4/part6 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry4_part6_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry4/part6 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry4_part6_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry5/part0 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry5_part0_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry5/part0 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry5_part0_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry5/part0 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry5_part0_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry5/part1 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry5_part1_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry5/part1 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry5_part1_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry5/part1 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry5_part1_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry5/part2 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry5_part2_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry5/part2 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry5_part2_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry5/part2 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry5_part2_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry5/part3 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry5_part3_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry5/part3 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry5_part3_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry5/part3 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry5_part3_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry5/part4 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry5_part4_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry5/part4 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry5_part4_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry5/part4 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry5_part4_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry5/part5 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry5_part5_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry5/part5 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry5_part5_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry5/part5 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry5_part5_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry5/part6 must be nonnegative.
+ x = felt!(dynamic_params.mul_mod_carry5_part6_suboffset);
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry5/part6 is too big.
+ x = trace_length - felt!(dynamic_params.mul_mod_carry5_part6_suboffset) - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ // Offset of mul_mod/carry5/part6 is too big.
+ x = felt!(dynamic_params.mul_mod_row_ratio)
+ - (safe_mult(
+ felt!(dynamic_params.mul_mod_carry5_part6_suboffset),
+ felt!(dynamic_params.range_check_units_row_ratio),
+ )?)
+ - FELT_1;
+ ensure!(x < FELT_USIZE_MAX, CheckAssertsError::OutOfRange);
+ }
+ Ok(())
+}
diff --git a/crates/air/src/layout/dynamic/autogenerated/autogenerated_composition.rs b/crates/air/src/layout/dynamic/autogenerated/autogenerated_composition.rs
new file mode 100644
index 0000000..07a201b
--- /dev/null
+++ b/crates/air/src/layout/dynamic/autogenerated/autogenerated_composition.rs
@@ -0,0 +1,15451 @@
+use crate::{
+ consts::*,
+ dynamic::DynamicParams,
+ layout::{dynamic::GlobalValues, safe_div, CompositionPolyEvalError},
+};
+use starknet_crypto::Felt;
+use starknet_types_core::felt::NonZeroFelt;
+
+pub fn eval_composition_polynomial_inner(
+ mask_values: &[Felt],
+ constraint_coefficients: &[Felt],
+ point: &Felt,
+ trace_generator: &Felt,
+ global_values: &GlobalValues,
+ dynamic_params: &DynamicParams,
+) -> Result {
+ // Fetch dynamic params.
+ let add_mod_row_ratio = Felt::from(dynamic_params.add_mod_row_ratio);
+ let bitwise_row_ratio = Felt::from(dynamic_params.bitwise_row_ratio);
+ let cpu_component_step = Felt::from(dynamic_params.cpu_component_step);
+ let diluted_units_row_ratio = Felt::from(dynamic_params.diluted_units_row_ratio);
+ let ec_op_builtin_row_ratio = Felt::from(dynamic_params.ec_op_builtin_row_ratio);
+ let ecdsa_builtin_row_ratio = Felt::from(dynamic_params.ecdsa_builtin_row_ratio);
+ let keccak_row_ratio = Felt::from(dynamic_params.keccak_row_ratio);
+ let memory_units_row_ratio = Felt::from(dynamic_params.memory_units_row_ratio);
+ let mul_mod_row_ratio = Felt::from(dynamic_params.mul_mod_row_ratio);
+ let pedersen_builtin_row_ratio = Felt::from(dynamic_params.pedersen_builtin_row_ratio);
+ let poseidon_row_ratio = Felt::from(dynamic_params.poseidon_row_ratio);
+ let range_check96_builtin_row_ratio =
+ Felt::from(dynamic_params.range_check96_builtin_row_ratio);
+ let range_check_builtin_row_ratio = Felt::from(dynamic_params.range_check_builtin_row_ratio);
+ let range_check_units_row_ratio = Felt::from(dynamic_params.range_check_units_row_ratio);
+ let uses_add_mod_builtin = dynamic_params.uses_add_mod_builtin;
+ let uses_bitwise_builtin = dynamic_params.uses_bitwise_builtin;
+ let uses_ec_op_builtin = dynamic_params.uses_ec_op_builtin;
+ let uses_ecdsa_builtin = dynamic_params.uses_ecdsa_builtin;
+ let uses_keccak_builtin = dynamic_params.uses_keccak_builtin;
+ let uses_mul_mod_builtin = dynamic_params.uses_mul_mod_builtin;
+ let uses_pedersen_builtin = dynamic_params.uses_pedersen_builtin;
+ let uses_poseidon_builtin = dynamic_params.uses_poseidon_builtin;
+ let uses_range_check96_builtin = dynamic_params.uses_range_check96_builtin;
+ let uses_range_check_builtin = dynamic_params.uses_range_check_builtin;
+
+ // Compute powers.
+ let pow0: Felt =
+ point.pow_felt(&(safe_div(global_values.trace_length, range_check_units_row_ratio)?));
+ let pow1: Felt =
+ point.pow_felt(&(safe_div(global_values.trace_length, FELT_8 * memory_units_row_ratio)?));
+ let pow2: Felt =
+ point.pow_felt(&(safe_div(global_values.trace_length, memory_units_row_ratio)?));
+ let pow3: Felt =
+ point.pow_felt(&(safe_div(global_values.trace_length, diluted_units_row_ratio)?));
+ let pow4: Felt =
+ point.pow_felt(&(safe_div(global_values.trace_length, FELT_16 * cpu_component_step)?));
+ let pow5: Felt = point.pow_felt(&(safe_div(global_values.trace_length, cpu_component_step)?));
+ let pow6: Felt =
+ trace_generator.pow_felt(&(global_values.trace_length - diluted_units_row_ratio));
+ let pow7: Felt =
+ trace_generator.pow_felt(&(global_values.trace_length - range_check_units_row_ratio));
+ let pow8: Felt =
+ trace_generator.pow_felt(&(global_values.trace_length - memory_units_row_ratio));
+ let pow9: Felt =
+ trace_generator.pow_felt(&(global_values.trace_length - FELT_16 * cpu_component_step));
+ let pow10: Felt =
+ trace_generator.pow_felt(&(safe_div(FELT_15 * global_values.trace_length, FELT_16)?));
+
+ // Compute domains.
+ let domain0 = pow5 - FELT_1;
+ let domain1 = pow4 - pow10;
+ let domain2 = pow4 - FELT_1;
+ let domain3 = pow3 - FELT_1;
+ let domain4 = pow2 - FELT_1;
+ let domain5 = pow1 - FELT_1;
+ let domain6 = pow0 - FELT_1;
+ let domain7 = point - pow9;
+ let domain8 = point - FELT_1;
+ let domain9 = point - pow8;
+ let domain10 = point - pow7;
+ let domain11 = point - pow6;
+ let mut domain12: Felt = FELT_0;
+ let mut domain13: Felt = FELT_0;
+ let mut domain14: Felt = FELT_0;
+ let mut domain15: Felt = FELT_0;
+ let mut domain16: Felt = FELT_0;
+ let mut domain17: Felt = FELT_0;
+ let mut domain18: Felt = FELT_0;
+ let mut domain19: Felt = FELT_0;
+ let mut domain20: Felt = FELT_0;
+ let mut domain21: Felt = FELT_0;
+ let mut domain22: Felt = FELT_0;
+ let mut domain23: Felt = FELT_0;
+ let mut domain24: Felt = FELT_0;
+ let mut domain25: Felt = FELT_0;
+ let mut domain26: Felt = FELT_0;
+ let mut domain27: Felt = FELT_0;
+ let mut domain28: Felt = FELT_0;
+ let mut domain29: Felt = FELT_0;
+ let mut domain30: Felt = FELT_0;
+ let mut domain31: Felt = FELT_0;
+ let mut domain32: Felt = FELT_0;
+ let mut domain33: Felt = FELT_0;
+ let mut domain34: Felt = FELT_0;
+ let mut domain35: Felt = FELT_0;
+ let mut domain36: Felt = FELT_0;
+ let mut domain37: Felt = FELT_0;
+ let mut domain38: Felt = FELT_0;
+ let mut domain39: Felt = FELT_0;
+ let mut domain40: Felt = FELT_0;
+ let mut domain41: Felt = FELT_0;
+ let mut domain42: Felt = FELT_0;
+ let mut domain43: Felt = FELT_0;
+ let mut domain44: Felt = FELT_0;
+ let mut domain45: Felt = FELT_0;
+ let domain46: Felt;
+ let mut domain47: Felt = FELT_0;
+ let mut domain48: Felt = FELT_0;
+ let domain49: Felt;
+ let mut domain50: Felt = FELT_0;
+ let mut domain51: Felt = FELT_0;
+ let mut domain52: Felt = FELT_0;
+ let domain53: Felt;
+ let domain54: Felt;
+ let mut domain55: Felt = FELT_0;
+ let mut domain56: Felt = FELT_0;
+ let mut domain57: Felt = FELT_0;
+ let domain58: Felt;
+ let domain59: Felt;
+ let domain60: Felt;
+ let mut domain61: Felt = FELT_0;
+ let domain62: Felt;
+ let domain63: Felt;
+ let mut domain64: Felt = FELT_0;
+ let mut domain65: Felt = FELT_0;
+ let domain66: Felt;
+ let mut domain67: Felt = FELT_0;
+ let domain68: Felt;
+ let domain69: Felt;
+ let mut domain70: Felt = FELT_0;
+ let domain71: Felt;
+ let mut domain72: Felt = FELT_0;
+ let domain73: Felt;
+ let domain74: Felt;
+ let domain75: Felt;
+ let mut domain76: Felt = FELT_0;
+ let domain77: Felt;
+ let domain78: Felt;
+ let domain79: Felt;
+ let domain80: Felt;
+ let mut domain81: Felt = FELT_0;
+ let domain82: Felt;
+ let domain83: Felt;
+ let domain84: Felt;
+ let domain85: Felt;
+ let domain86: Felt;
+ let domain87: Felt;
+ let domain88: Felt;
+ let domain89: Felt;
+ let domain90: Felt;
+ let mut domain91: Felt = FELT_0;
+ let domain92: Felt;
+ let mut domain93: Felt = FELT_0;
+ let domain94: Felt;
+ let domain95: Felt;
+ let mut domain96: Felt = FELT_0;
+ let mut domain97: Felt = FELT_0;
+ let mut domain98: Felt = FELT_0;
+ let domain99: Felt;
+ let domain100: Felt;
+ let domain101: Felt;
+ let domain102: Felt;
+ let mut domain103: Felt = FELT_0;
+ let domain104: Felt;
+ let domain105: Felt;
+ let domain106: Felt;
+ let domain107: Felt;
+ let domain108: Felt;
+ let mut domain109: Felt = FELT_0;
+ let domain110: Felt;
+ let domain111: Felt;
+ let domain112: Felt;
+ let domain113: Felt;
+ let domain114: Felt;
+ let domain115: Felt;
+ let domain116: Felt;
+ let domain117: Felt;
+ let domain118: Felt;
+ let domain119: Felt;
+ let mut domain120: Felt = FELT_0;
+ let domain121: Felt;
+ let mut domain122: Felt = FELT_0;
+ let domain123: Felt;
+ let domain124: Felt;
+ let mut domain125: Felt = FELT_0;
+ let mut domain126: Felt = FELT_0;
+ let mut domain127: Felt = FELT_0;
+ let mut domain128: Felt = FELT_0;
+ let domain129: Felt;
+ let mut domain130: Felt = FELT_0;
+ let mut domain131: Felt = FELT_0;
+ let domain132: Felt;
+ let mut domain133: Felt = FELT_0;
+ let mut domain134: Felt = FELT_0;
+ let mut domain135: Felt = FELT_0;
+ let domain136: Felt;
+ let mut domain137: Felt = FELT_0;
+ let domain138: Felt;
+ let mut domain139: Felt = FELT_0;
+ let mut domain140: Felt = FELT_0;
+ let mut domain141: Felt = FELT_0;
+ let mut domain142: Felt = FELT_0;
+ let mut domain143: Felt = FELT_0;
+ let mut domain144: Felt = FELT_0;
+ let mut domain145: Felt = FELT_0;
+ let mut domain146: Felt = FELT_0;
+ let mut domain147: Felt = FELT_0;
+ let mut domain148: Felt = FELT_0;
+ let mut domain149: Felt = FELT_0;
+ let mut domain150: Felt = FELT_0;
+ let mut domain151: Felt = FELT_0;
+ let mut domain152: Felt = FELT_0;
+ let mut domain153: Felt = FELT_0;
+ let mut domain154: Felt = FELT_0;
+ let mut domain155: Felt = FELT_0;
+ let mut domain156: Felt = FELT_0;
+ let mut domain157: Felt = FELT_0;
+ let mut domain158: Felt = FELT_0;
+ let mut domain159: Felt = FELT_0;
+ let mut domain160: Felt = FELT_0;
+ let mut domain161: Felt = FELT_0;
+ let mut domain162: Felt = FELT_0;
+ let mut domain163: Felt = FELT_0;
+ let mut domain164: Felt = FELT_0;
+ let mut domain165: Felt = FELT_0;
+ let mut domain166: Felt = FELT_0;
+ let mut domain167: Felt = FELT_0;
+ let mut domain168: Felt = FELT_0;
+ let mut domain169: Felt = FELT_0;
+ let mut domain170: Felt = FELT_0;
+ let domain171: Felt;
+ let mut domain172: Felt = FELT_0;
+ let mut domain173: Felt = FELT_0;
+ let mut domain174: Felt = FELT_0;
+ let mut domain175: Felt = FELT_0;
+ let mut domain176: Felt = FELT_0;
+ let mut domain177: Felt = FELT_0;
+ let mut domain178: Felt = FELT_0;
+ let mut domain179: Felt = FELT_0;
+ let mut domain180: Felt = FELT_0;
+ let mut domain181: Felt = FELT_0;
+ let mut domain182: Felt = FELT_0;
+ let mut domain183: Felt = FELT_0;
+
+ let pow11: Felt;
+ let pow12: Felt;
+ if uses_add_mod_builtin != 0 {
+ let temp11 = point.pow_felt(&(safe_div(global_values.trace_length, add_mod_row_ratio)?));
+ pow11 = temp11;
+ let temp12 = trace_generator.pow_felt(&(global_values.trace_length - add_mod_row_ratio));
+ pow12 = temp12;
+
+ domain12 = pow11 - 1;
+ domain13 = point - 1;
+ domain14 = point - pow12;
+ }
+ let pow13: Felt;
+ let pow14: Felt;
+ let pow15: Felt;
+ let pow16: Felt;
+ let pow17: Felt;
+ let pow18: Felt;
+ let pow19: Felt;
+ let pow20: Felt;
+ let pow21: Felt;
+ let pow22: Felt;
+ let pow23: Felt;
+ let pow24: Felt;
+ let pow25: Felt;
+ let pow26: Felt;
+ let pow27: Felt;
+ let pow28: Felt;
+ let pow29: Felt;
+ let pow30: Felt;
+ let pow31: Felt;
+ if uses_bitwise_builtin != 0 {
+ let temp13 = point.pow_felt(&(safe_div(global_values.trace_length, bitwise_row_ratio)?));
+ pow13 = temp13;
+ let temp14 =
+ point.pow_felt(&(safe_div(FELT_4 * global_values.trace_length, bitwise_row_ratio)?));
+ pow14 = temp14;
+ let temp15 = trace_generator.pow_felt(&(global_values.trace_length - bitwise_row_ratio));
+ pow15 = temp15;
+ let temp16 = trace_generator.pow_felt(&(safe_div(global_values.trace_length, FELT_64)?));
+ pow16 = temp16;
+ pow17 = pow16 * pow16; // trace_generator.pow_felt(&(safe_div(global_values.trace_length, 32))).
+ pow18 = pow16 * pow17; // trace_generator.pow_felt(&(safe_div(((Felt::from(3) * global_values.trace_length)), 64))).
+ pow19 = pow16 * pow18; // trace_generator.pow_felt(&(safe_div(global_values.trace_length, 16))).
+ pow20 = pow16 * pow19; // trace_generator.pow_felt(&(safe_div(((Felt::from(5) * global_values.trace_length)), 64))).
+ pow21 = pow16 * pow20; // trace_generator.pow_felt(&(safe_div(((Felt::from(3) * global_values.trace_length)), 32))).
+ pow22 = pow16 * pow21; // trace_generator.pow_felt(&(safe_div(((Felt::from(7) * global_values.trace_length)), 64))).
+ pow23 = pow16 * pow22; // trace_generator.pow_felt(&(safe_div(global_values.trace_length, 8))).
+ pow24 = pow16 * pow23; // trace_generator.pow_felt(&(safe_div(((Felt::from(9) * global_values.trace_length)), 64))).
+ pow25 = pow16 * pow24; // trace_generator.pow_felt(&(safe_div(((Felt::from(5) * global_values.trace_length)), 32))).
+ pow26 = pow16 * pow25; // trace_generator.pow_felt(&(safe_div(((Felt::from(11) * global_values.trace_length)), 64))).
+ pow27 = pow16 * pow26; // trace_generator.pow_felt(&(safe_div(((Felt::from(3) * global_values.trace_length)), 16))).
+ pow28 = pow16 * pow27; // trace_generator.pow_felt(&(safe_div(((Felt::from(13) * global_values.trace_length)), 64))).
+ pow29 = pow16 * pow28; // trace_generator.pow_felt(&(safe_div(((Felt::from(7) * global_values.trace_length)), 32))).
+ pow30 = pow16 * pow29; // trace_generator.pow_felt(&(safe_div(((Felt::from(15) * global_values.trace_length)), 64))).
+ let temp31 =
+ trace_generator.pow_felt(&(safe_div(FELT_3 * global_values.trace_length, FELT_4)?));
+ pow31 = temp31;
+
+ domain15 = pow14 - FELT_1;
+ domain16 = pow13 - pow31;
+ domain17 = pow13 - FELT_1;
+ let mut temp = pow13 - pow16;
+ temp *= pow13 - pow17;
+ temp *= pow13 - pow18;
+ temp *= pow13 - pow19;
+ temp *= pow13 - pow20;
+ temp *= pow13 - pow21;
+ temp *= pow13 - pow22;
+ temp *= pow13 - pow23;
+ temp *= pow13 - pow24;
+ temp *= pow13 - pow25;
+ temp *= pow13 - pow26;
+ temp *= pow13 - pow27;
+ temp *= pow13 - pow28;
+ temp *= pow13 - pow29;
+ temp *= pow13 - pow30;
+ domain18 = temp * (domain17);
+ domain19 = point - FELT_1;
+ domain20 = point - pow15;
+ };
+ let pow32: Felt;
+ let pow33: Felt;
+ let pow34: Felt;
+ let pow35: Felt;
+ let pow36: Felt;
+ if uses_ec_op_builtin != 0 {
+ let temp32 =
+ point.pow_felt(&(safe_div(global_values.trace_length, ec_op_builtin_row_ratio)?));
+ pow32 = temp32;
+ let temp33 = point
+ .pow_felt(&(safe_div(FELT_256 * global_values.trace_length, ec_op_builtin_row_ratio)?));
+ pow33 = temp33;
+ let temp34 =
+ trace_generator.pow_felt(&(global_values.trace_length - ec_op_builtin_row_ratio));
+ pow34 = temp34;
+ let temp35 =
+ trace_generator.pow_felt(&(safe_div(FELT_63 * global_values.trace_length, FELT_64)?));
+ pow35 = temp35;
+ let temp36 =
+ trace_generator.pow_felt(&(safe_div(FELT_255 * global_values.trace_length, FELT_256)?));
+ pow36 = temp36;
+
+ domain21 = pow33 - 1;
+ domain22 = pow32 - 1;
+ domain23 = pow32 - pow36;
+ domain24 = pow32 - pow35;
+ domain25 = point - 1;
+ domain26 = point - pow34;
+ }
+ let pow37: Felt;
+ let pow38: Felt;
+ let pow39: Felt;
+ let pow40: Felt;
+ let pow41: Felt;
+ let pow42: Felt;
+ let pow43: Felt;
+ if uses_ecdsa_builtin != 0 {
+ let temp37 =
+ point.pow_felt(&(safe_div(global_values.trace_length, ecdsa_builtin_row_ratio)?));
+ pow37 = temp37;
+ pow38 = pow37 * pow37; // point.pow_felt(&(safe_div(((Felt::from(2) * global_values.trace_length)), ecdsa_builtin_row_ratio))).
+ let temp39 = point
+ .pow_felt(&(safe_div(FELT_256 * global_values.trace_length, ecdsa_builtin_row_ratio)?));
+ pow39 = temp39;
+ pow40 = pow39 * pow39; // point.pow_felt(&(safe_div(((Felt::from(512) * global_values.trace_length)), ecdsa_builtin_row_ratio))).
+ let temp41 =
+ trace_generator.pow_felt(&(global_values.trace_length - ecdsa_builtin_row_ratio));
+ pow41 = temp41;
+ let temp42 =
+ trace_generator.pow_felt(&(safe_div(FELT_251 * global_values.trace_length, FELT_256)?));
+ pow42 = temp42;
+ let temp43 =
+ trace_generator.pow_felt(&(safe_div(FELT_255 * global_values.trace_length, FELT_256)?));
+ pow43 = temp43;
+
+ domain27 = pow40 - 1;
+ domain28 = pow39 - 1;
+ domain29 = pow38 - pow43;
+ domain30 = pow38 - pow42;
+ domain31 = pow38 - 1;
+ domain32 = pow37 - pow43;
+ domain33 = pow37 - pow42;
+ domain34 = pow37 - 1;
+ domain35 = point - 1;
+ domain36 = point - pow41;
+ };
+ let pow44: Felt;
+ let pow45: Felt;
+ let pow46: Felt;
+ let pow47: Felt;
+ let pow48: Felt;
+ let pow49: Felt;
+ let pow50: Felt;
+ let pow51: Felt;
+ let pow52: Felt;
+ let pow53: Felt;
+ let pow54: Felt;
+ let pow55: Felt;
+ let pow56: Felt;
+ let pow57: Felt;
+ let pow58: Felt;
+ let pow59: Felt;
+ let pow60: Felt;
+ let pow61: Felt;
+ let pow62: Felt;
+ let pow63: Felt;
+ let pow64: Felt;
+ let pow65: Felt;
+ let pow66: Felt;
+ let pow67: Felt;
+ let pow68: Felt;
+ let pow69: Felt;
+ let pow70: Felt;
+ let pow71: Felt;
+ let pow72: Felt;
+ let pow73: Felt;
+ let pow74: Felt;
+ let pow75: Felt;
+ let pow76: Felt;
+ let pow77: Felt;
+ let pow78: Felt;
+ let pow79: Felt;
+ let pow80: Felt;
+ let pow81: Felt;
+ let pow82: Felt;
+ let pow83: Felt;
+ let pow84: Felt;
+ let pow85: Felt;
+ let pow86: Felt;
+ let pow87: Felt;
+ let pow88: Felt;
+ let pow89: Felt;
+ let pow90: Felt;
+ let pow91: Felt;
+ let pow92: Felt;
+ let pow93: Felt;
+ let pow94: Felt;
+ let pow95: Felt;
+ let pow96: Felt;
+ let pow97: Felt;
+ let pow98: Felt;
+ let pow99: Felt;
+ let pow100: Felt;
+ let pow101: Felt;
+ let pow102: Felt;
+ let pow103: Felt;
+ let pow104: Felt;
+ let pow105: Felt;
+ let pow106: Felt;
+ let pow107: Felt;
+ let pow108: Felt;
+ let pow109: Felt;
+ let pow110: Felt;
+ let pow111: Felt;
+ let pow112: Felt;
+ let pow113: Felt;
+ let pow114: Felt;
+ let pow115: Felt;
+ let pow116: Felt;
+ let pow117: Felt;
+ let pow118: Felt;
+ let pow119: Felt;
+ let pow120: Felt;
+ let pow121: Felt;
+ let pow122: Felt;
+ let pow123: Felt;
+ let pow124: Felt;
+ let pow125: Felt;
+ let pow126: Felt;
+ let pow127: Felt;
+ let pow128: Felt;
+ let pow129: Felt;
+ let pow130: Felt;
+ let pow131: Felt;
+ let pow132: Felt;
+ let pow133: Felt;
+ let pow134: Felt;
+ let pow135: Felt;
+ let pow136: Felt;
+ let pow137: Felt;
+ let pow138: Felt;
+ let pow139: Felt;
+ let pow140: Felt;
+ let pow141: Felt;
+ let pow142: Felt;
+ let pow143: Felt;
+ let pow144: Felt;
+ let pow145: Felt;
+ let pow146: Felt;
+ let pow147: Felt;
+ let pow148: Felt;
+ let pow149: Felt;
+ let pow150: Felt;
+ let pow151: Felt;
+ let pow152: Felt;
+ let pow153: Felt;
+ let pow154: Felt;
+ let pow155: Felt;
+ let pow156: Felt;
+ let pow157: Felt;
+ let pow158: Felt;
+ let pow159: Felt;
+ let pow160: Felt;
+ let pow161: Felt;
+ let pow162: Felt;
+ let pow163: Felt;
+ let pow164: Felt;
+ let pow165: Felt;
+ let pow166: Felt;
+ let pow167: Felt;
+ let pow168: Felt;
+ let pow169: Felt;
+ let pow170: Felt;
+ let pow171: Felt;
+ let pow172: Felt;
+ let pow173: Felt;
+ let pow174: Felt;
+ let pow175: Felt;
+ let pow176: Felt;
+ let pow177: Felt;
+ let pow178: Felt;
+ let pow179: Felt;
+ let pow180: Felt;
+ let pow181: Felt;
+ let pow182: Felt;
+ let pow183: Felt;
+ let pow184: Felt;
+ let pow185: Felt;
+ let pow186: Felt;
+ let pow187: Felt;
+ let pow188: Felt;
+ let pow189: Felt;
+ let pow190: Felt;
+ let pow191: Felt;
+ let pow192: Felt;
+ let pow193: Felt;
+ let pow194: Felt;
+ let pow195: Felt;
+ let pow196: Felt;
+ let pow197: Felt;
+ let pow198: Felt;
+ let pow199: Felt;
+ let pow200: Felt;
+ let pow201: Felt;
+ let pow202: Felt;
+ let pow203: Felt;
+ let pow204: Felt;
+ let pow205: Felt;
+ let pow206: Felt;
+ let pow207: Felt;
+ let pow208: Felt;
+ let pow209: Felt;
+ let pow210: Felt;
+ let pow211: Felt;
+ let pow212: Felt;
+ let pow213: Felt;
+ let pow214: Felt;
+ let pow215: Felt;
+ let pow216: Felt;
+ let pow217: Felt;
+ let pow218: Felt;
+ let pow219: Felt;
+ let pow220: Felt;
+ let pow221: Felt;
+ let pow222: Felt;
+ let pow223: Felt;
+ let pow224: Felt;
+ let pow225: Felt;
+ let pow226: Felt;
+ let pow227: Felt;
+ let pow228: Felt;
+ let pow229: Felt;
+ let pow230: Felt;
+ let pow231: Felt;
+ let pow232: Felt;
+ let pow233: Felt;
+ let pow234: Felt;
+ let pow235: Felt;
+ let pow236: Felt;
+ let pow237: Felt;
+ let pow238: Felt;
+ let pow239: Felt;
+ let pow240: Felt;
+ let pow241: Felt;
+ let pow242: Felt;
+ let pow243: Felt;
+ let pow244: Felt;
+ let pow245: Felt;
+ let pow246: Felt;
+ let pow247: Felt;
+ let pow248: Felt;
+ let pow249: Felt;
+ let pow250: Felt;
+ let pow251: Felt;
+ let pow252: Felt;
+ let pow253: Felt;
+ let pow254: Felt;
+ let pow255: Felt;
+ let pow256: Felt;
+ let pow257: Felt;
+ let pow258: Felt;
+ let pow259: Felt;
+ let pow260: Felt;
+ let pow261: Felt;
+ let pow262: Felt;
+ let pow263: Felt;
+ let pow264: Felt;
+ let pow265: Felt;
+ let pow266: Felt;
+ let pow267: Felt;
+ let pow268: Felt;
+ let pow269: Felt;
+ let pow270: Felt;
+ let pow271: Felt;
+ let pow272: Felt;
+ let pow273: Felt;
+ let pow274: Felt;
+ let pow275: Felt;
+ let pow276: Felt;
+ let pow277: Felt;
+ let pow278: Felt;
+ let pow279: Felt;
+ let pow280: Felt;
+ let pow281: Felt;
+ let pow282: Felt;
+ let pow283: Felt;
+ let pow284: Felt;
+ let pow285: Felt;
+ let pow286: Felt;
+ let pow287: Felt;
+ let pow288: Felt;
+ let pow289: Felt;
+ let pow290: Felt;
+ let pow291: Felt;
+ let pow292: Felt;
+ let pow293: Felt;
+ let pow294: Felt;
+ let pow295: Felt;
+ let pow296: Felt;
+ let pow297: Felt;
+ let pow298: Felt;
+ let pow299: Felt;
+ let pow300: Felt;
+ let pow301: Felt;
+ let pow302: Felt;
+ let pow303: Felt;
+ let pow304: Felt;
+ let pow305: Felt;
+ let pow306: Felt;
+ let pow307: Felt;
+ let pow308: Felt;
+ let pow309: Felt;
+ let pow310: Felt;
+ let pow311: Felt;
+ let pow312: Felt;
+ let pow313: Felt;
+ let pow314: Felt;
+ let pow315: Felt;
+ let pow316: Felt;
+ let pow317: Felt;
+ let pow318: Felt;
+ let pow319: Felt;
+ let pow320: Felt;
+ let pow321: Felt;
+ let pow322: Felt;
+ let pow323: Felt;
+ let pow324: Felt;
+ let pow325: Felt;
+ let pow326: Felt;
+ let pow327: Felt;
+ let pow328: Felt;
+ let pow329: Felt;
+ let pow330: Felt;
+ let pow331: Felt;
+ let pow332: Felt;
+ let pow333: Felt;
+ let pow334: Felt;
+ let pow335: Felt;
+ let pow336: Felt;
+ let pow337: Felt;
+ let pow338: Felt;
+ let pow339: Felt;
+ let pow340: Felt;
+ let pow341: Felt;
+ let pow342: Felt;
+ let pow343: Felt;
+ let pow344: Felt;
+ let pow345: Felt;
+ let pow346: Felt;
+ let pow347: Felt;
+ let pow348: Felt;
+ let pow349: Felt;
+ let pow350: Felt;
+ let pow351: Felt;
+ let pow352: Felt;
+ let pow353: Felt;
+ let pow354: Felt;
+ let pow355: Felt;
+ let pow356: Felt;
+ let pow357: Felt;
+ let pow358: Felt;
+ let pow359: Felt;
+ let pow360: Felt;
+ let pow361: Felt;
+ let pow362: Felt;
+ let pow363: Felt;
+ let pow364: Felt;
+ let pow365: Felt;
+ let pow366: Felt;
+ let pow367: Felt;
+ let pow368: Felt;
+ let pow369: Felt;
+ let pow370: Felt;
+ let pow371: Felt;
+ let pow372: Felt;
+ let pow373: Felt;
+ let pow374: Felt;
+ let pow375: Felt;
+ let pow376: Felt;
+ let pow377: Felt;
+ let pow378: Felt;
+ let pow379: Felt;
+ let pow380: Felt;
+ let pow381: Felt;
+ let pow382: Felt;
+ let pow383: Felt;
+ let pow384: Felt;
+ let pow385: Felt;
+ let pow386: Felt;
+ let pow387: Felt;
+ let pow388: Felt;
+ let pow389: Felt;
+ let pow390: Felt;
+ let pow391: Felt;
+ let pow392: Felt;
+ let pow393: Felt;
+ let pow394: Felt;
+ let pow395: Felt;
+ let pow396: Felt;
+ let pow397: Felt;
+ let pow398: Felt;
+ let pow399: Felt;
+ let pow400: Felt;
+ let pow401: Felt;
+ let pow402: Felt;
+ let pow403: Felt;
+ let pow404: Felt;
+ let pow405: Felt;
+ let pow406: Felt;
+ let pow407: Felt;
+ let pow408: Felt;
+ let pow409: Felt;
+ let pow410: Felt;
+ let pow411: Felt;
+ let pow412: Felt;
+ let pow413: Felt;
+ let pow414: Felt;
+ let pow415: Felt;
+ let pow416: Felt;
+ let pow417: Felt;
+ let pow418: Felt;
+ let pow419: Felt;
+ let pow420: Felt;
+ let pow421: Felt;
+ let pow422: Felt;
+ let pow423: Felt;
+ let pow424: Felt;
+ let pow425: Felt;
+ let pow426: Felt;
+ let pow427: Felt;
+ let pow428: Felt;
+ let pow429: Felt;
+ let pow430: Felt;
+ let pow431: Felt;
+ let pow432: Felt;
+ let pow433: Felt;
+ let pow434: Felt;
+ let pow435: Felt;
+ let pow436: Felt;
+ let pow437: Felt;
+ let pow438: Felt;
+ let pow439: Felt;
+ let pow440: Felt;
+ let pow441: Felt;
+ let pow442: Felt;
+ let pow443: Felt;
+ let pow444: Felt;
+ let pow445: Felt;
+ let pow446: Felt;
+ let pow447: Felt;
+ let pow448: Felt;
+ let pow449: Felt;
+ let pow450: Felt;
+ let pow451: Felt;
+ let pow452: Felt;
+ let pow453: Felt;
+ let pow454: Felt;
+ let pow455: Felt;
+ let pow456: Felt;
+ let pow457: Felt;
+ let pow458: Felt;
+ let pow459: Felt;
+ let pow460: Felt;
+ let pow461: Felt;
+ let pow462: Felt;
+ let pow463: Felt;
+ let pow464: Felt;
+ let pow465: Felt;
+ let pow466: Felt;
+ let pow467: Felt;
+ let pow468: Felt;
+ let pow469: Felt;
+ let pow470: Felt;
+ let pow471: Felt;
+ let pow472: Felt;
+ let pow473: Felt;
+ let pow474: Felt;
+ let pow475: Felt;
+ let pow476: Felt;
+ let pow477: Felt;
+ let pow478: Felt;
+ let pow479: Felt;
+ let pow480: Felt;
+ let pow481: Felt;
+ let pow482: Felt;
+ let pow483: Felt;
+ let pow484: Felt;
+ let pow485: Felt;
+ let pow486: Felt;
+ let pow487: Felt;
+ let pow488: Felt;
+ let pow489: Felt;
+ let pow490: Felt;
+ let pow491: Felt;
+ let pow492: Felt;
+ let pow493: Felt;
+ let pow494: Felt;
+ let pow495: Felt;
+ let pow496: Felt;
+ let pow497: Felt;
+ let pow498: Felt;
+ let pow499: Felt;
+ let pow500: Felt;
+ let pow501: Felt;
+ let pow502: Felt;
+ let pow503: Felt;
+ let pow504: Felt;
+ let pow505: Felt;
+ let pow506: Felt;
+ let pow507: Felt;
+ let pow508: Felt;
+ let pow509: Felt;
+ let pow510: Felt;
+ let pow511: Felt;
+ let pow512: Felt;
+ let pow513: Felt;
+ let pow514: Felt;
+ let pow515: Felt;
+ let pow516: Felt;
+ let pow517: Felt;
+ let pow518: Felt;
+ let pow519: Felt;
+ let pow520: Felt;
+ let pow521: Felt;
+ let pow522: Felt;
+ let pow523: Felt;
+ let pow524: Felt;
+ let pow525: Felt;
+ let pow526: Felt;
+ let pow527: Felt;
+ let pow528: Felt;
+ let pow529: Felt;
+ let pow530: Felt;
+ let pow531: Felt;
+ let pow532: Felt;
+ let pow533: Felt;
+ let pow534: Felt;
+ let pow535: Felt;
+ let pow536: Felt;
+ let pow537: Felt;
+ let pow538: Felt;
+ let pow539: Felt;
+ let pow540: Felt;
+ let pow541: Felt;
+ let pow542: Felt;
+ let pow543: Felt;
+ let pow544: Felt;
+ let pow545: Felt;
+ let pow546: Felt;
+ let pow547: Felt;
+ let pow548: Felt;
+ let pow549: Felt;
+ let pow550: Felt;
+ let pow551: Felt;
+ let pow552: Felt;
+ let pow553: Felt;
+ let pow554: Felt;
+ let pow555: Felt;
+ let pow556: Felt;
+ let pow557: Felt;
+ let pow558: Felt;
+ let pow559: Felt;
+ let pow560: Felt;
+ let pow561: Felt;
+ let pow562: Felt;
+ let pow563: Felt;
+ let pow564: Felt;
+ let pow565: Felt;
+ let pow566: Felt;
+ let pow567: Felt;
+ let pow568: Felt;
+ let pow569: Felt;
+ let pow570: Felt;
+ let pow571: Felt;
+ let pow572: Felt;
+ let pow573: Felt;
+ let pow574: Felt;
+ let pow575: Felt;
+ let pow576: Felt;
+ let pow577: Felt;
+ let pow578: Felt;
+ let pow579: Felt;
+ let pow580: Felt;
+ let pow581: Felt;
+ let pow582: Felt;
+ let pow583: Felt;
+ let pow584: Felt;
+ let pow585: Felt;
+ let pow586: Felt;
+ let pow587: Felt;
+ let pow588: Felt;
+ let pow589: Felt;
+ let pow590: Felt;
+ let pow591: Felt;
+ let pow592: Felt;
+ let pow593: Felt;
+ let pow594: Felt;
+ let pow595: Felt;
+ let pow596: Felt;
+ let pow597: Felt;
+ let pow598: Felt;
+ let pow599: Felt;
+ let pow600: Felt;
+ let pow601: Felt;
+ let pow602: Felt;
+ let pow603: Felt;
+ let pow604: Felt;
+ let pow605: Felt;
+ let pow606: Felt;
+ let pow607: Felt;
+ let pow608: Felt;
+ let pow609: Felt;
+ let pow610: Felt;
+ let pow611: Felt;
+ let pow612: Felt;
+ let pow613: Felt;
+ let pow614: Felt;
+ let pow615: Felt;
+ let pow616: Felt;
+ let pow617: Felt;
+ let pow618: Felt;
+ let pow619: Felt;
+ let pow620: Felt;
+ let pow621: Felt;
+ let pow622: Felt;
+ let pow623: Felt;
+ let pow624: Felt;
+ let pow625: Felt;
+ let pow626: Felt;
+ let pow627: Felt;
+ let pow628: Felt;
+ let pow629: Felt;
+ let pow630: Felt;
+ let pow631: Felt;
+ let pow632: Felt;
+ let pow633: Felt;
+ let pow634: Felt;
+ let pow635: Felt;
+ let pow636: Felt;
+ let pow637: Felt;
+ let pow638: Felt;
+ let pow639: Felt;
+ let pow640: Felt;
+ let pow641: Felt;
+ let pow642: Felt;
+ let pow643: Felt;
+ let pow644: Felt;
+ let pow645: Felt;
+ let pow646: Felt;
+ let pow647: Felt;
+ let pow648: Felt;
+ let pow649: Felt;
+ let pow650: Felt;
+ let pow651: Felt;
+ let pow652: Felt;
+ let pow653: Felt;
+ let pow654: Felt;
+ let pow655: Felt;
+ let pow656: Felt;
+ let pow657: Felt;
+ let pow658: Felt;
+ let pow659: Felt;
+ let pow660: Felt;
+ let pow661: Felt;
+ let pow662: Felt;
+ let pow663: Felt;
+ let pow664: Felt;
+ let pow665: Felt;
+ let pow666: Felt;
+ let pow667: Felt;
+ let pow668: Felt;
+ let pow669: Felt;
+ let pow670: Felt;
+ let pow671: Felt;
+ let pow672: Felt;
+ let pow673: Felt;
+ let pow674: Felt;
+ let pow675: Felt;
+ let pow676: Felt;
+ let pow677: Felt;
+ let pow678: Felt;
+ let pow679: Felt;
+ let pow680: Felt;
+ let pow681: Felt;
+ let pow682: Felt;
+ let pow683: Felt;
+ let pow684: Felt;
+ let pow685: Felt;
+ let pow686: Felt;
+ let pow687: Felt;
+ let pow688: Felt;
+ let pow689: Felt;
+ let pow690: Felt;
+ let pow691: Felt;
+ let pow692: Felt;
+ let pow693: Felt;
+ let pow694: Felt;
+ let pow695: Felt;
+ let pow696: Felt;
+ let pow697: Felt;
+ let pow698: Felt;
+ let pow699: Felt;
+ let pow700: Felt;
+ let pow701: Felt;
+ let pow702: Felt;
+ let pow703: Felt;
+ let pow704: Felt;
+ let pow705: Felt;
+ let pow706: Felt;
+ let pow707: Felt;
+ let pow708: Felt;
+ let pow709: Felt;
+ let pow710: Felt;
+ let pow711: Felt;
+ let pow712: Felt;
+ let pow713: Felt;
+ let pow714: Felt;
+ let pow715: Felt;
+ let pow716: Felt;
+ let pow717: Felt;
+ let pow718: Felt;
+ let pow719: Felt;
+ let pow720: Felt;
+ let pow721: Felt;
+ let pow722: Felt;
+ let pow723: Felt;
+ let pow724: Felt;
+ let pow725: Felt;
+ let pow726: Felt;
+ let pow727: Felt;
+ let pow728: Felt;
+ let pow729: Felt;
+ let pow730: Felt;
+ let pow731: Felt;
+ let pow732: Felt;
+ let pow733: Felt;
+ let pow734: Felt;
+ let pow735: Felt;
+ let pow736: Felt;
+ let pow737: Felt;
+ let pow738: Felt;
+ let pow739: Felt;
+ let pow740: Felt;
+ let pow741: Felt;
+ let pow742: Felt;
+ let pow743: Felt;
+ let pow744: Felt;
+ let pow745: Felt;
+ let pow746: Felt;
+ let pow747: Felt;
+ let pow748: Felt;
+ let pow749: Felt;
+ let pow750: Felt;
+ let pow751: Felt;
+ let pow752: Felt;
+ let pow753: Felt;
+ let pow754: Felt;
+ let pow755: Felt;
+ let pow756: Felt;
+ let pow757: Felt;
+ let pow758: Felt;
+ let pow759: Felt;
+ let pow760: Felt;
+ let pow761: Felt;
+ let pow762: Felt;
+ let pow763: Felt;
+ let pow764: Felt;
+ let pow765: Felt;
+ let pow766: Felt;
+ let pow767: Felt;
+ let pow768: Felt;
+ let pow769: Felt;
+ let pow770: Felt;
+ let pow771: Felt;
+ let pow772: Felt;
+ let pow773: Felt;
+ let pow774: Felt;
+ let pow775: Felt;
+ let pow776: Felt;
+ let pow777: Felt;
+ let pow778: Felt;
+ let pow779: Felt;
+ let pow780: Felt;
+ let pow781: Felt;
+ let pow782: Felt;
+ let pow783: Felt;
+ let pow784: Felt;
+ let pow785: Felt;
+ let pow786: Felt;
+ let pow787: Felt;
+ let pow788: Felt;
+ let pow789: Felt;
+ let pow790: Felt;
+ let pow791: Felt;
+ let pow792: Felt;
+ let pow793: Felt;
+ let pow794: Felt;
+ let pow795: Felt;
+ let pow796: Felt;
+ let pow797: Felt;
+ let pow798: Felt;
+ let pow799: Felt;
+ let pow800: Felt;
+ let pow801: Felt;
+ let pow802: Felt;
+ let pow803: Felt;
+ let pow804: Felt;
+ let pow805: Felt;
+ let pow806: Felt;
+ let pow807: Felt;
+ let pow808: Felt;
+ let pow809: Felt;
+ let pow810: Felt;
+ let pow811: Felt;
+ let pow812: Felt;
+ let pow813: Felt;
+ let pow814: Felt;
+ let pow815: Felt;
+ let pow816: Felt;
+ let pow817: Felt;
+ let pow818: Felt;
+ let pow819: Felt;
+ let pow820: Felt;
+ let pow821: Felt;
+ let pow822: Felt;
+ let pow823: Felt;
+ let pow824: Felt;
+ let pow825: Felt;
+ let pow826: Felt;
+ let pow827: Felt;
+ let pow828: Felt;
+ let pow829: Felt;
+ let pow830: Felt;
+ let pow831: Felt;
+ let pow832: Felt;
+ let pow833: Felt;
+ let pow834: Felt;
+ let pow835: Felt;
+ let pow836: Felt;
+ let pow837: Felt;
+ let pow838: Felt;
+ let pow839: Felt;
+ let pow840: Felt;
+ let pow841: Felt;
+ let pow842: Felt;
+ let pow843: Felt;
+ let pow844: Felt;
+ let pow845: Felt;
+ let pow846: Felt;
+ let pow847: Felt;
+ let pow848: Felt;
+ let pow849: Felt;
+ let pow850: Felt;
+ let pow851: Felt;
+ let pow852: Felt;
+ let pow853: Felt;
+ let pow854: Felt;
+ let pow855: Felt;
+ let pow856: Felt;
+ let pow857: Felt;
+ let pow858: Felt;
+ let pow859: Felt;
+ let pow860: Felt;
+ let pow861: Felt;
+ let pow862: Felt;
+ let pow863: Felt;
+ let pow864: Felt;
+ let pow865: Felt;
+ let pow866: Felt;
+ let pow867: Felt;
+ let pow868: Felt;
+ let pow869: Felt;
+ let pow870: Felt;
+ let pow871: Felt;
+ let pow872: Felt;
+ let pow873: Felt;
+ let pow874: Felt;
+ let pow875: Felt;
+ let pow876: Felt;
+ let pow877: Felt;
+ let pow878: Felt;
+ let pow879: Felt;
+ let pow880: Felt;
+ let pow881: Felt;
+ let pow882: Felt;
+ let pow883: Felt;
+ let pow884: Felt;
+ let pow885: Felt;
+ let pow886: Felt;
+ let pow887: Felt;
+ let pow888: Felt;
+ let pow889: Felt;
+ let pow890: Felt;
+ let pow891: Felt;
+ let pow892: Felt;
+ let pow893: Felt;
+ let pow894: Felt;
+ let pow895: Felt;
+ let pow896: Felt;
+ let pow897: Felt;
+ let pow898: Felt;
+ let pow899: Felt;
+ let pow900: Felt;
+ let pow901: Felt;
+ let pow902: Felt;
+ let pow903: Felt;
+ let pow904: Felt;
+ let pow905: Felt;
+ let pow906: Felt;
+ let pow907: Felt;
+ let pow908: Felt;
+ let pow909: Felt;
+ let pow910: Felt;
+ let pow911: Felt;
+ let pow912: Felt;
+ let pow913: Felt;
+ let pow914: Felt;
+ let pow915: Felt;
+ let pow916: Felt;
+ let pow917: Felt;
+ let pow918: Felt;
+ let pow919: Felt;
+ let pow920: Felt;
+ let pow921: Felt;
+ let pow922: Felt;
+ let pow923: Felt;
+ let pow924: Felt;
+ let pow925: Felt;
+ let pow926: Felt;
+ let pow927: Felt;
+ let pow928: Felt;
+ let pow929: Felt;
+ let pow930: Felt;
+ let pow931: Felt;
+ let pow932: Felt;
+ let pow933: Felt;
+ let pow934: Felt;
+ let pow935: Felt;
+ let pow936: Felt;
+ let pow937: Felt;
+ let pow938: Felt;
+ let pow939: Felt;
+ let pow940: Felt;
+ let pow941: Felt;
+ let pow942: Felt;
+ let pow943: Felt;
+ let pow944: Felt;
+ let pow945: Felt;
+ let pow946: Felt;
+ let pow947: Felt;
+ let pow948: Felt;
+ let pow949: Felt;
+ let pow950: Felt;
+ let pow951: Felt;
+ let pow952: Felt;
+ let pow953: Felt;
+ let pow954: Felt;
+ let pow955: Felt;
+ let pow956: Felt;
+ let pow957: Felt;
+ let pow958: Felt;
+ let pow959: Felt;
+ let pow960: Felt;
+ let pow961: Felt;
+ let pow962: Felt;
+ let pow963: Felt;
+ let pow964: Felt;
+ let pow965: Felt;
+ let pow966: Felt;
+ let pow967: Felt;
+ let pow968: Felt;
+ let pow969: Felt;
+ let pow970: Felt;
+ let pow971: Felt;
+ let pow972: Felt;
+ let pow973: Felt;
+ let pow974: Felt;
+ let pow975: Felt;
+ let pow976: Felt;
+ let pow977: Felt;
+ let pow978: Felt;
+ let pow979: Felt;
+ let pow980: Felt;
+ let pow981: Felt;
+ let pow982: Felt;
+ let pow983: Felt;
+ let pow984: Felt;
+ let pow985: Felt;
+ let pow986: Felt;
+ let pow987: Felt;
+ let pow988: Felt;
+ let pow989: Felt;
+ let pow990: Felt;
+ let pow991: Felt;
+ let pow992: Felt;
+ let pow993: Felt;
+ let pow994: Felt;
+ let pow995: Felt;
+ let pow996: Felt;
+ let pow997: Felt;
+ let pow998: Felt;
+ let pow999: Felt;
+ let pow1000: Felt;
+ let pow1001: Felt;
+ let pow1002: Felt;
+ let pow1003: Felt;
+ let pow1004: Felt;
+ let pow1005: Felt;
+ let pow1006: Felt;
+ let pow1007: Felt;
+ let pow1008: Felt;
+ let pow1009: Felt;
+ let pow1010: Felt;
+ let pow1011: Felt;
+ let pow1012: Felt;
+ let pow1013: Felt;
+ let pow1014: Felt;
+ let pow1015: Felt;
+ let pow1016: Felt;
+ let pow1017: Felt;
+ let pow1018: Felt;
+ let pow1019: Felt;
+ let pow1020: Felt;
+ let pow1021: Felt;
+ let pow1022: Felt;
+ let pow1023: Felt;
+ let pow1024: Felt;
+ let pow1025: Felt;
+ let pow1026: Felt;
+ let pow1027: Felt;
+ let pow1028: Felt;
+ let pow1029: Felt;
+ let pow1030: Felt;
+ let pow1031: Felt;
+ let pow1032: Felt;
+ let pow1033: Felt;
+ let pow1034: Felt;
+ let pow1035: Felt;
+ let pow1036: Felt;
+ let pow1037: Felt;
+ let pow1038: Felt;
+ let pow1039: Felt;
+ let pow1040: Felt;
+ let pow1041: Felt;
+ let pow1042: Felt;
+ let pow1043: Felt;
+ let pow1044: Felt;
+ let pow1045: Felt;
+ let pow1046: Felt;
+ let pow1047: Felt;
+ let pow1048: Felt;
+ let pow1049: Felt;
+ let pow1050: Felt;
+ let pow1051: Felt;
+ let pow1052: Felt;
+ let pow1053: Felt;
+ let pow1054: Felt;
+ let pow1055: Felt;
+ let pow1056: Felt;
+ let pow1057: Felt;
+ let pow1058: Felt;
+ let pow1059: Felt;
+ let pow1060: Felt;
+ let pow1061: Felt;
+ let pow1062: Felt;
+ let pow1063: Felt;
+ let pow1064: Felt;
+ let pow1065: Felt;
+ let pow1066: Felt;
+ let pow1067: Felt;
+ let pow1068: Felt;
+ let pow1069: Felt;
+ let pow1070: Felt;
+ let pow1071: Felt;
+ let pow1072: Felt;
+ let pow1073: Felt;
+ let pow1074: Felt;
+ let pow1075: Felt;
+ let pow1076: Felt;
+ let pow1077: Felt;
+ let pow1078: Felt;
+ let pow1079: Felt;
+ let pow1080: Felt;
+ let pow1081: Felt;
+ let pow1082: Felt;
+ let pow1083: Felt;
+ let pow1084: Felt;
+ let pow1085: Felt;
+ let pow1086: Felt;
+ let pow1087: Felt;
+ let pow1088: Felt;
+ let pow1089: Felt;
+ let pow1090: Felt;
+ let pow1091: Felt;
+ let pow1092: Felt;
+ let pow1093: Felt;
+ let pow1094: Felt;
+ let pow1095: Felt;
+ let pow1096: Felt;
+ let pow1097: Felt;
+ let pow1098: Felt;
+ let pow1099: Felt;
+ let pow1100: Felt;
+ let pow1101: Felt;
+ let pow1102: Felt;
+ let pow1103: Felt;
+ let pow1104: Felt;
+ let pow1105: Felt;
+ let pow1106: Felt;
+ let pow1107: Felt;
+ let pow1108: Felt;
+ let pow1109: Felt;
+ let pow1110: Felt;
+ let pow1111: Felt;
+ let pow1112: Felt;
+ let pow1113: Felt;
+ let pow1114: Felt;
+ let pow1115: Felt;
+ let pow1116: Felt;
+ let pow1117: Felt;
+ let pow1118: Felt;
+ let pow1119: Felt;
+ let pow1120: Felt;
+ let pow1121: Felt;
+ let pow1122: Felt;
+ let pow1123: Felt;
+ let pow1124: Felt;
+ let pow1125: Felt;
+ let pow1126: Felt;
+ let pow1127: Felt;
+ let pow1128: Felt;
+ let pow1129: Felt;
+ let pow1130: Felt;
+ let pow1131: Felt;
+ let pow1132: Felt;
+ let pow1133: Felt;
+ let pow1134: Felt;
+ let pow1135: Felt;
+ let pow1136: Felt;
+ let pow1137: Felt;
+ let pow1138: Felt;
+ let pow1139: Felt;
+ let pow1140: Felt;
+ let pow1141: Felt;
+ let pow1142: Felt;
+ let pow1143: Felt;
+ let pow1144: Felt;
+ let pow1145: Felt;
+ let pow1146: Felt;
+ let pow1147: Felt;
+ let pow1148: Felt;
+ let pow1149: Felt;
+ let pow1150: Felt;
+ let pow1151: Felt;
+ let pow1152: Felt;
+ let pow1153: Felt;
+ let pow1154: Felt;
+ let pow1155: Felt;
+ let pow1156: Felt;
+ let pow1157: Felt;
+ let pow1158: Felt;
+ let pow1159: Felt;
+ let pow1160: Felt;
+ let pow1161: Felt;
+ let pow1162: Felt;
+ let pow1163: Felt;
+ let pow1164: Felt;
+ let pow1165: Felt;
+ let pow1166: Felt;
+ let pow1167: Felt;
+ let pow1168: Felt;
+ let pow1169: Felt;
+ let pow1170: Felt;
+ let pow1171: Felt;
+ let pow1172: Felt;
+ let pow1173: Felt;
+ let pow1174: Felt;
+ let pow1175: Felt;
+ let pow1176: Felt;
+ let pow1177: Felt;
+ let pow1178: Felt;
+ let pow1179: Felt;
+ let pow1180: Felt;
+ let pow1181: Felt;
+ let pow1182: Felt;
+ let pow1183: Felt;
+ let pow1184: Felt;
+ let pow1185: Felt;
+ let pow1186: Felt;
+ let pow1187: Felt;
+ let pow1188: Felt;
+ let pow1189: Felt;
+ let pow1190: Felt;
+ let pow1191: Felt;
+ let pow1192: Felt;
+ let pow1193: Felt;
+ let pow1194: Felt;
+ let pow1195: Felt;
+ let pow1196: Felt;
+ let pow1197: Felt;
+ let pow1198: Felt;
+ let pow1199: Felt;
+ let pow1200: Felt;
+ let pow1201: Felt;
+ let pow1202: Felt;
+ let pow1203: Felt;
+ let pow1204: Felt;
+ let pow1205: Felt;
+ let pow1206: Felt;
+ let pow1207: Felt;
+ let pow1208: Felt;
+ let pow1209: Felt;
+ let pow1210: Felt;
+ let pow1211: Felt;
+ let pow1212: Felt;
+ let pow1213: Felt;
+ let pow1214: Felt;
+ let pow1215: Felt;
+ let pow1216: Felt;
+ let pow1217: Felt;
+ let pow1218: Felt;
+ let pow1219: Felt;
+ let pow1220: Felt;
+ let pow1221: Felt;
+ let pow1222: Felt;
+ let pow1223: Felt;
+ let pow1224: Felt;
+ let pow1225: Felt;
+ let pow1226: Felt;
+ let pow1227: Felt;
+ let pow1228: Felt;
+ let pow1229: Felt;
+ let pow1230: Felt;
+ let pow1231: Felt;
+ let pow1232: Felt;
+ let pow1233: Felt;
+ let pow1234: Felt;
+ let pow1235: Felt;
+ let pow1236: Felt;
+ let pow1237: Felt;
+ let pow1238: Felt;
+ let pow1239: Felt;
+ let pow1240: Felt;
+ let pow1241: Felt;
+ let pow1242: Felt;
+ let pow1243: Felt;
+ let pow1244: Felt;
+ let pow1245: Felt;
+ let pow1246: Felt;
+ let pow1247: Felt;
+ let pow1248: Felt;
+ let pow1249: Felt;
+ let pow1250: Felt;
+ let pow1251: Felt;
+ let pow1252: Felt;
+ let pow1253: Felt;
+ let pow1254: Felt;
+ let pow1255: Felt;
+ let pow1256: Felt;
+ let pow1257: Felt;
+ let pow1258: Felt;
+ let pow1259: Felt;
+ let pow1260: Felt;
+ let pow1261: Felt;
+ let pow1262: Felt;
+ let pow1263: Felt;
+ let pow1264: Felt;
+ let pow1265: Felt;
+ let pow1266: Felt;
+ let pow1267: Felt;
+ let pow1268: Felt;
+ let pow1269: Felt;
+ let pow1270: Felt;
+ let pow1271: Felt;
+ let pow1272: Felt;
+ let pow1273: Felt;
+ let pow1274: Felt;
+ let pow1275: Felt;
+ let pow1276: Felt;
+ let pow1277: Felt;
+ let pow1278: Felt;
+ let pow1279: Felt;
+ let pow1280: Felt;
+ let pow1281: Felt;
+ let pow1282: Felt;
+ let pow1283: Felt;
+ let pow1284: Felt;
+ let pow1285: Felt;
+ let pow1286: Felt;
+ let pow1287: Felt;
+ let pow1288: Felt;
+ let pow1289: Felt;
+ let pow1290: Felt;
+ let pow1291: Felt;
+ let pow1292: Felt;
+ let pow1293: Felt;
+ let pow1294: Felt;
+ let pow1295: Felt;
+ let pow1296: Felt;
+ let pow1297: Felt;
+ let pow1298: Felt;
+ let pow1299: Felt;
+ let pow1300: Felt;
+ let pow1301: Felt;
+ let pow1302: Felt;
+ let pow1303: Felt;
+ let pow1304: Felt;
+ let pow1305: Felt;
+ let pow1306: Felt;
+ let pow1307: Felt;
+ let pow1308: Felt;
+ let pow1309: Felt;
+ let pow1310: Felt;
+ let pow1311: Felt;
+ let pow1312: Felt;
+ let pow1313: Felt;
+ let pow1314: Felt;
+ let pow1315: Felt;
+ let pow1316: Felt;
+ let pow1317: Felt;
+ let pow1318: Felt;
+ let pow1319: Felt;
+ let pow1320: Felt;
+ let pow1321: Felt;
+ let pow1322: Felt;
+ let pow1323: Felt;
+ let pow1324: Felt;
+ let pow1325: Felt;
+ let pow1326: Felt;
+ let pow1327: Felt;
+ let pow1328: Felt;
+ let pow1329: Felt;
+ let pow1330: Felt;
+ let pow1331: Felt;
+ let pow1332: Felt;
+ let pow1333: Felt;
+ let pow1334: Felt;
+ let pow1335: Felt;
+ let pow1336: Felt;
+ let pow1337: Felt;
+ let pow1338: Felt;
+ let pow1339: Felt;
+ let pow1340: Felt;
+ let pow1341: Felt;
+ let pow1342: Felt;
+ let pow1343: Felt;
+ let pow1344: Felt;
+ let pow1345: Felt;
+ let pow1346: Felt;
+ let pow1347: Felt;
+ let pow1348: Felt;
+ let pow1349: Felt;
+ let pow1350: Felt;
+ let pow1351: Felt;
+ let pow1352: Felt;
+ let pow1353: Felt;
+ let pow1354: Felt;
+ let pow1355: Felt;
+ let pow1356: Felt;
+ let pow1357: Felt;
+ let pow1358: Felt;
+ let pow1359: Felt;
+ let pow1360: Felt;
+ let pow1361: Felt;
+ let pow1362: Felt;
+ let pow1363: Felt;
+ let pow1364: Felt;
+ let pow1365: Felt;
+ let pow1366: Felt;
+ let pow1367: Felt;
+ let pow1368: Felt;
+ let pow1369: Felt;
+ let pow1370: Felt;
+ let pow1371: Felt;
+ let pow1372: Felt;
+ let pow1373: Felt;
+ let pow1374: Felt;
+ let pow1375: Felt;
+ let pow1376: Felt;
+ let pow1377: Felt;
+ let pow1378: Felt;
+ let pow1379: Felt;
+ let pow1380: Felt;
+ let pow1381: Felt;
+ let pow1382: Felt;
+ let pow1383: Felt;
+ let pow1384: Felt;
+ let pow1385: Felt;
+ let pow1386: Felt;
+ let pow1387: Felt;
+ let pow1388: Felt;
+ let pow1389: Felt;
+ let pow1390: Felt;
+ let pow1391: Felt;
+ let pow1392: Felt;
+ let pow1393: Felt;
+ let pow1394: Felt;
+ let pow1395: Felt;
+ let pow1396: Felt;
+ let pow1397: Felt;
+ let pow1398: Felt;
+ let pow1399: Felt;
+ let pow1400: Felt;
+ let pow1401: Felt;
+ let pow1402: Felt;
+ let pow1403: Felt;
+ let pow1404: Felt;
+ let pow1405: Felt;
+ let pow1406: Felt;
+ let pow1407: Felt;
+ let pow1408: Felt;
+ let pow1409: Felt;
+ let pow1410: Felt;
+ let pow1411: Felt;
+ let pow1412: Felt;
+ let pow1413: Felt;
+ let pow1414: Felt;
+ let pow1415: Felt;
+ let pow1416: Felt;
+ let pow1417: Felt;
+ let pow1418: Felt;
+ let pow1419: Felt;
+ let pow1420: Felt;
+ let pow1421: Felt;
+ let pow1422: Felt;
+ let pow1423: Felt;
+ let pow1424: Felt;
+ let pow1425: Felt;
+ let pow1426: Felt;
+ let pow1427: Felt;
+ let pow1428: Felt;
+ let pow1429: Felt;
+ let pow1430: Felt;
+ let pow1431: Felt;
+ let pow1432: Felt;
+ let pow1433: Felt;
+ let pow1434: Felt;
+ let pow1435: Felt;
+ let pow1436: Felt;
+ let pow1437: Felt;
+ let pow1438: Felt;
+ let pow1439: Felt;
+ let pow1440: Felt;
+ let pow1441: Felt;
+ let pow1442: Felt;
+ let pow1443: Felt;
+ let pow1444: Felt;
+ let pow1445: Felt;
+ let pow1446: Felt;
+ let pow1447: Felt;
+ let pow1448: Felt;
+ let pow1449: Felt;
+ let pow1450: Felt;
+ let pow1451: Felt;
+ let pow1452: Felt;
+ let pow1453: Felt;
+ let pow1454: Felt;
+ let pow1455: Felt;
+ let pow1456: Felt;
+ let pow1457: Felt;
+ let pow1458: Felt;
+ let pow1459: Felt;
+ let pow1460: Felt;
+ let pow1461: Felt;
+ let pow1462: Felt;
+ let pow1463: Felt;
+ let pow1464: Felt;
+ let pow1465: Felt;
+ let pow1466: Felt;
+ let pow1467: Felt;
+ let pow1468: Felt;
+ let pow1469: Felt;
+ let pow1470: Felt;
+ let pow1471: Felt;
+ let pow1472: Felt;
+ let pow1473: Felt;
+ let pow1474: Felt;
+ let pow1475: Felt;
+ let pow1476: Felt;
+ let pow1477: Felt;
+ let pow1478: Felt;
+ let pow1479: Felt;
+ let pow1480: Felt;
+ let pow1481: Felt;
+ let pow1482: Felt;
+ let pow1483: Felt;
+ let pow1484: Felt;
+ let pow1485: Felt;
+ let pow1486: Felt;
+ let pow1487: Felt;
+ let pow1488: Felt;
+ let pow1489: Felt;
+ let pow1490: Felt;
+ let pow1491: Felt;
+ let pow1492: Felt;
+ let pow1493: Felt;
+ let pow1494: Felt;
+ let pow1495: Felt;
+ let pow1496: Felt;
+ let pow1497: Felt;
+ let pow1498: Felt;
+ let pow1499: Felt;
+ let pow1500: Felt;
+ let pow1501: Felt;
+ let pow1502: Felt;
+ let pow1503: Felt;
+ let pow1504: Felt;
+ let pow1505: Felt;
+ let pow1506: Felt;
+ let pow1507: Felt;
+ let pow1508: Felt;
+ let pow1509: Felt;
+ let pow1510: Felt;
+ let pow1511: Felt;
+ let pow1512: Felt;
+ let pow1513: Felt;
+ let pow1514: Felt;
+ let pow1515: Felt;
+ let pow1516: Felt;
+ let pow1517: Felt;
+ let pow1518: Felt;
+ let pow1519: Felt;
+ let pow1520: Felt;
+ let pow1521: Felt;
+ let pow1522: Felt;
+ let pow1523: Felt;
+ let pow1524: Felt;
+ let pow1525: Felt;
+ let pow1526: Felt;
+ let pow1527: Felt;
+ let pow1528: Felt;
+ let pow1529: Felt;
+ let pow1530: Felt;
+ let pow1531: Felt;
+ let pow1532: Felt;
+ let pow1533: Felt;
+ let pow1534: Felt;
+ let pow1535: Felt;
+ let pow1536: Felt;
+ let pow1537: Felt;
+ let pow1538: Felt;
+ let pow1539: Felt;
+ let pow1540: Felt;
+ let pow1541: Felt;
+ let pow1542: Felt;
+ let pow1543: Felt;
+ let pow1544: Felt;
+ let pow1545: Felt;
+ let pow1546: Felt;
+ let pow1547: Felt;
+ let pow1548: Felt;
+ let pow1549: Felt;
+ let pow1550: Felt;
+ let pow1551: Felt;
+ let pow1552: Felt;
+ let pow1553: Felt;
+ let pow1554: Felt;
+ let pow1555: Felt;
+ let pow1556: Felt;
+ let pow1557: Felt;
+ let pow1558: Felt;
+ let pow1559: Felt;
+ let pow1560: Felt;
+ let pow1561: Felt;
+ let pow1562: Felt;
+ let pow1563: Felt;
+ let pow1564: Felt;
+ let pow1565: Felt;
+ let pow1566: Felt;
+ let pow1567: Felt;
+ let pow1568: Felt;
+ let pow1569: Felt;
+ let pow1570: Felt;
+ let pow1571: Felt;
+ let pow1572: Felt;
+ let pow1573: Felt;
+ let pow1574: Felt;
+ let pow1575: Felt;
+ let pow1576: Felt;
+ let pow1577: Felt;
+ let pow1578: Felt;
+ let pow1579: Felt;
+ let pow1580: Felt;
+ let pow1581: Felt;
+ let pow1582: Felt;
+ let pow1583: Felt;
+ let pow1584: Felt;
+ let pow1585: Felt;
+ let pow1586: Felt;
+ let pow1587: Felt;
+ let pow1588: Felt;
+ let pow1589: Felt;
+ let pow1590: Felt;
+ let pow1591: Felt;
+ let pow1592: Felt;
+ let pow1593: Felt;
+ let pow1594: Felt;
+ let pow1595: Felt;
+ let pow1596: Felt;
+ let pow1597: Felt;
+ let pow1598: Felt;
+ let pow1599: Felt;
+ let pow1600: Felt;
+ let pow1601: Felt;
+ let pow1602: Felt;
+ let pow1603: Felt;
+ let pow1604: Felt;
+ let pow1605: Felt;
+ let pow1606: Felt;
+ let pow1607: Felt;
+ let pow1608: Felt;
+ let pow1609: Felt;
+ let pow1610: Felt;
+ let pow1611: Felt;
+ let pow1612: Felt;
+ let pow1613: Felt;
+ let pow1614: Felt;
+ let pow1615: Felt;
+ let pow1616: Felt;
+ let pow1617: Felt;
+ let pow1618: Felt;
+ let pow1619: Felt;
+ let pow1620: Felt;
+ let pow1621: Felt;
+ let pow1622: Felt;
+ let pow1623: Felt;
+ let pow1624: Felt;
+ let pow1625: Felt;
+ let pow1626: Felt;
+ let pow1627: Felt;
+ let pow1628: Felt;
+ let pow1629: Felt;
+ let pow1630: Felt;
+ let pow1631: Felt;
+ let pow1632: Felt;
+ let pow1633: Felt;
+ let pow1634: Felt;
+ let pow1635: Felt;
+ let pow1636: Felt;
+ let pow1637: Felt;
+ let pow1638: Felt;
+ let pow1639: Felt;
+ let pow1640: Felt;
+ let pow1641: Felt;
+ let pow1642: Felt;
+ let pow1643: Felt;
+ let pow1644: Felt;
+ let pow1645: Felt;
+ let pow1646: Felt;
+ let pow1647: Felt;
+ let pow1648: Felt;
+ let pow1649: Felt;
+ let pow1650: Felt;
+ let pow1651: Felt;
+ let pow1652: Felt;
+ let pow1653: Felt;
+ let pow1654: Felt;
+ let pow1655: Felt;
+ let pow1656: Felt;
+ let pow1657: Felt;
+ let pow1658: Felt;
+ let pow1659: Felt;
+ let pow1660: Felt;
+ let pow1661: Felt;
+ let pow1662: Felt;
+ let pow1663: Felt;
+ let pow1664: Felt;
+ let pow1665: Felt;
+ let pow1666: Felt;
+ let pow1667: Felt;
+ let pow1668: Felt;
+ let pow1669: Felt;
+ let pow1670: Felt;
+ let pow1671: Felt;
+ let pow1672: Felt;
+ let pow1673: Felt;
+ let pow1674: Felt;
+ let pow1675: Felt;
+ let pow1676: Felt;
+ let pow1677: Felt;
+ let pow1678: Felt;
+ let pow1679: Felt;
+ let pow1680: Felt;
+ let pow1681: Felt;
+ let pow1682: Felt;
+ let pow1683: Felt;
+ let pow1684: Felt;
+ let pow1685: Felt;
+ let pow1686: Felt;
+ let pow1687: Felt;
+ let pow1688: Felt;
+ let pow1689: Felt;
+ let pow1690: Felt;
+ let pow1691: Felt;
+ let pow1692: Felt;
+ let pow1693: Felt;
+ let pow1694: Felt;
+ let pow1695: Felt;
+ let pow1696: Felt;
+ let pow1697: Felt;
+ let pow1698: Felt;
+ let pow1699: Felt;
+ let pow1700: Felt;
+ let pow1701: Felt;
+ let pow1702: Felt;
+ let pow1703: Felt;
+ let pow1704: Felt;
+ let pow1705: Felt;
+ let pow1706: Felt;
+ let pow1707: Felt;
+ let pow1708: Felt;
+ let pow1709: Felt;
+ let pow1710: Felt;
+ let pow1711: Felt;
+ let pow1712: Felt;
+ let pow1713: Felt;
+ let pow1714: Felt;
+ let pow1715: Felt;
+ let pow1716: Felt;
+ let pow1717: Felt;
+ let pow1718: Felt;
+ let pow1719: Felt;
+ let pow1720: Felt;
+ let pow1721: Felt;
+ let pow1722: Felt;
+ let pow1723: Felt;
+ let pow1724: Felt;
+ let pow1725: Felt;
+ let pow1726: Felt;
+ let pow1727: Felt;
+ let pow1728: Felt;
+ let pow1729: Felt;
+ let pow1730: Felt;
+ let pow1731: Felt;
+ let pow1732: Felt;
+ let pow1733: Felt;
+ let pow1734: Felt;
+ let pow1735: Felt;
+ let pow1736: Felt;
+ let pow1737: Felt;
+ let pow1738: Felt;
+ let pow1739: Felt;
+ let pow1740: Felt;
+ let pow1741: Felt;
+ let pow1742: Felt;
+ let pow1743: Felt;
+ let pow1744: Felt;
+ let pow1745: Felt;
+ let pow1746: Felt;
+ let pow1747: Felt;
+ let pow1748: Felt;
+ let pow1749: Felt;
+ let pow1750: Felt;
+ let pow1751: Felt;
+ let pow1752: Felt;
+ let pow1753: Felt;
+ let pow1754: Felt;
+ let pow1755: Felt;
+ let pow1756: Felt;
+ let pow1757: Felt;
+ let pow1758: Felt;
+ let pow1759: Felt;
+ let pow1760: Felt;
+ let pow1761: Felt;
+ let pow1762: Felt;
+ let pow1763: Felt;
+ let pow1764: Felt;
+ let pow1765: Felt;
+ let pow1766: Felt;
+ let pow1767: Felt;
+ let pow1768: Felt;
+ let pow1769: Felt;
+ let pow1770: Felt;
+ let pow1771: Felt;
+ let pow1772: Felt;
+ let pow1773: Felt;
+ let pow1774: Felt;
+ let pow1775: Felt;
+ let pow1776: Felt;
+ let pow1777: Felt;
+ let pow1778: Felt;
+ let pow1779: Felt;
+ let pow1780: Felt;
+ let pow1781: Felt;
+ let pow1782: Felt;
+ let pow1783: Felt;
+ let pow1784: Felt;
+ let pow1785: Felt;
+ let pow1786: Felt;
+ let pow1787: Felt;
+ let pow1788: Felt;
+ let pow1789: Felt;
+ let pow1790: Felt;
+ let pow1791: Felt;
+ let pow1792: Felt;
+ let pow1793: Felt;
+ let pow1794: Felt;
+ let pow1795: Felt;
+ let pow1796: Felt;
+ let pow1797: Felt;
+ let pow1798: Felt;
+ let pow1799: Felt;
+ let pow1800: Felt;
+ let pow1801: Felt;
+ let pow1802: Felt;
+ let pow1803: Felt;
+ let pow1804: Felt;
+ let pow1805: Felt;
+ let pow1806: Felt;
+ let pow1807: Felt;
+ let pow1808: Felt;
+ let pow1809: Felt;
+ let pow1810: Felt;
+ let pow1811: Felt;
+ let pow1812: Felt;
+ let pow1813: Felt;
+ let pow1814: Felt;
+ let pow1815: Felt;
+ let pow1816: Felt;
+ let pow1817: Felt;
+ let pow1818: Felt;
+ let pow1819: Felt;
+ let pow1820: Felt;
+ let pow1821: Felt;
+ let pow1822: Felt;
+ let pow1823: Felt;
+ let pow1824: Felt;
+ let pow1825: Felt;
+ let pow1826: Felt;
+ let pow1827: Felt;
+ let pow1828: Felt;
+ let pow1829: Felt;
+ let pow1830: Felt;
+ let pow1831: Felt;
+ let pow1832: Felt;
+ let pow1833: Felt;
+ let pow1834: Felt;
+ let pow1835: Felt;
+ let pow1836: Felt;
+ let pow1837: Felt;
+ let pow1838: Felt;
+ let pow1839: Felt;
+ let pow1840: Felt;
+ let pow1841: Felt;
+ let pow1842: Felt;
+ let pow1843: Felt;
+ let pow1844: Felt;
+ let pow1845: Felt;
+ let pow1846: Felt;
+ let pow1847: Felt;
+ let pow1848: Felt;
+ let pow1849: Felt;
+ let pow1850: Felt;
+ let pow1851: Felt;
+ let pow1852: Felt;
+ let pow1853: Felt;
+ let pow1854: Felt;
+ let pow1855: Felt;
+ let pow1856: Felt;
+ let pow1857: Felt;
+ let pow1858: Felt;
+ let pow1859: Felt;
+ let pow1860: Felt;
+ let pow1861: Felt;
+ let pow1862: Felt;
+ let pow1863: Felt;
+ let pow1864: Felt;
+ let pow1865: Felt;
+ let pow1866: Felt;
+ let pow1867: Felt;
+ let pow1868: Felt;
+ let pow1869: Felt;
+ let pow1870: Felt;
+ let pow1871: Felt;
+ let pow1872: Felt;
+ let pow1873: Felt;
+ let pow1874: Felt;
+ let pow1875: Felt;
+ let pow1876: Felt;
+ let pow1877: Felt;
+ let pow1878: Felt;
+ let pow1879: Felt;
+ let pow1880: Felt;
+ let pow1881: Felt;
+ let pow1882: Felt;
+ let pow1883: Felt;
+ let pow1884: Felt;
+ let pow1885: Felt;
+ let pow1886: Felt;
+ let pow1887: Felt;
+ let pow1888: Felt;
+ let pow1889: Felt;
+ let pow1890: Felt;
+ let pow1891: Felt;
+ let pow1892: Felt;
+ let pow1893: Felt;
+ let pow1894: Felt;
+ let pow1895: Felt;
+ let pow1896: Felt;
+ let pow1897: Felt;
+ let pow1898: Felt;
+ let pow1899: Felt;
+ let pow1900: Felt;
+ let pow1901: Felt;
+ let pow1902: Felt;
+ let pow1903: Felt;
+ let pow1904: Felt;
+ let pow1905: Felt;
+ let pow1906: Felt;
+ let pow1907: Felt;
+ let pow1908: Felt;
+ let pow1909: Felt;
+ let pow1910: Felt;
+ let pow1911: Felt;
+ let pow1912: Felt;
+ let pow1913: Felt;
+ let pow1914: Felt;
+ let pow1915: Felt;
+ let pow1916: Felt;
+ let pow1917: Felt;
+ let pow1918: Felt;
+ let pow1919: Felt;
+ let pow1920: Felt;
+ let pow1921: Felt;
+ let pow1922: Felt;
+ let pow1923: Felt;
+ let pow1924: Felt;
+ let pow1925: Felt;
+ let pow1926: Felt;
+ let pow1927: Felt;
+ let pow1928: Felt;
+ let pow1929: Felt;
+ let pow1930: Felt;
+ let pow1931: Felt;
+ let pow1932: Felt;
+ let pow1933: Felt;
+ let pow1934: Felt;
+ let pow1935: Felt;
+ let pow1936: Felt;
+ let pow1937: Felt;
+ let pow1938: Felt;
+ let pow1939: Felt;
+ let pow1940: Felt;
+ let pow1941: Felt;
+ let pow1942: Felt;
+ let pow1943: Felt;
+ let pow1944: Felt;
+ let pow1945: Felt;
+ let pow1946: Felt;
+ let pow1947: Felt;
+ let pow1948: Felt;
+ let pow1949: Felt;
+ let pow1950: Felt;
+ let pow1951: Felt;
+ let pow1952: Felt;
+ let pow1953: Felt;
+ let pow1954: Felt;
+ let pow1955: Felt;
+ let pow1956: Felt;
+ let pow1957: Felt;
+ let pow1958: Felt;
+ let pow1959: Felt;
+ let pow1960: Felt;
+ let pow1961: Felt;
+ let pow1962: Felt;
+ let pow1963: Felt;
+ let pow1964: Felt;
+ let pow1965: Felt;
+ let pow1966: Felt;
+ let pow1967: Felt;
+ let pow1968: Felt;
+ let pow1969: Felt;
+ let pow1970: Felt;
+ let pow1971: Felt;
+ let pow1972: Felt;
+ let pow1973: Felt;
+ let pow1974: Felt;
+ let pow1975: Felt;
+ let pow1976: Felt;
+ let pow1977: Felt;
+ let pow1978: Felt;
+ let pow1979: Felt;
+ let pow1980: Felt;
+ let pow1981: Felt;
+ let pow1982: Felt;
+ let pow1983: Felt;
+ let pow1984: Felt;
+ let pow1985: Felt;
+ let pow1986: Felt;
+ let pow1987: Felt;
+ let pow1988: Felt;
+ let pow1989: Felt;
+ let pow1990: Felt;
+ let pow1991: Felt;
+ let pow1992: Felt;
+ let pow1993: Felt;
+ let pow1994: Felt;
+ let pow1995: Felt;
+ let pow1996: Felt;
+ let pow1997: Felt;
+ let pow1998: Felt;
+ let pow1999: Felt;
+ let pow2000: Felt;
+ let pow2001: Felt;
+ let pow2002: Felt;
+ let pow2003: Felt;
+ let pow2004: Felt;
+ let pow2005: Felt;
+ let pow2006: Felt;
+ let pow2007: Felt;
+ let pow2008: Felt;
+ let pow2009: Felt;
+ let pow2010: Felt;
+ let pow2011: Felt;
+ let pow2012: Felt;
+ let pow2013: Felt;
+ let pow2014: Felt;
+ let pow2015: Felt;
+ let pow2016: Felt;
+ let pow2017: Felt;
+ let pow2018: Felt;
+ let pow2019: Felt;
+ let pow2020: Felt;
+ let pow2021: Felt;
+ let pow2022: Felt;
+ let pow2023: Felt;
+ let pow2024: Felt;
+ let pow2025: Felt;
+ let pow2026: Felt;
+ let pow2027: Felt;
+ let pow2028: Felt;
+ let pow2029: Felt;
+ let pow2030: Felt;
+ let pow2031: Felt;
+ let pow2032: Felt;
+ let pow2033: Felt;
+ let pow2034: Felt;
+ let pow2035: Felt;
+ let pow2036: Felt;
+ let pow2037: Felt;
+ let pow2038: Felt;
+ let pow2039: Felt;
+ let pow2040: Felt;
+ let pow2041: Felt;
+ let pow2042: Felt;
+ let pow2043: Felt;
+ let pow2044: Felt;
+ let pow2045: Felt;
+ let pow2046: Felt;
+ let pow2047: Felt;
+ let pow2048: Felt;
+ let pow2049: Felt;
+ let pow2050: Felt;
+ let pow2051: Felt;
+ let pow2052: Felt;
+ let pow2053: Felt;
+ let pow2054: Felt;
+ let pow2055: Felt;
+ let pow2056: Felt;
+ let pow2057: Felt;
+ let pow2058: Felt;
+ let pow2059: Felt;
+ let pow2060: Felt;
+ let pow2061: Felt;
+ let pow2062: Felt;
+ let pow2063: Felt;
+ let pow2064: Felt;
+ let pow2065: Felt;
+ let pow2066: Felt;
+ let pow2067: Felt;
+ let pow2068: Felt;
+ let pow2069: Felt;
+ let pow2070: Felt;
+ let pow2071: Felt;
+ let pow2072: Felt;
+ let pow2073: Felt;
+ let pow2074: Felt;
+ let pow2075: Felt;
+ let pow2076: Felt;
+ let pow2077: Felt;
+ let pow2078: Felt;
+ let pow2079: Felt;
+ let pow2080: Felt;
+ let pow2081: Felt;
+ let pow2082: Felt;
+ let pow2083: Felt;
+ let pow2084: Felt;
+ let pow2085: Felt;
+ let pow2086: Felt;
+ let pow2087: Felt;
+ let pow2088: Felt;
+ let pow2089: Felt;
+ let pow2090: Felt;
+ let pow2091: Felt;
+ let pow2092: Felt;
+ let pow2093: Felt;
+ let pow2094: Felt;
+ let pow2095: Felt;
+ let pow2096: Felt;
+ let pow2097: Felt;
+ let pow2098: Felt;
+ let pow2099: Felt;
+ let pow2100: Felt;
+ let pow2101: Felt;
+ let pow2102: Felt;
+ let pow2103: Felt;
+ let pow2104: Felt;
+ let pow2105: Felt;
+ let pow2106: Felt;
+ let pow2107: Felt;
+ let pow2108: Felt;
+ let pow2109: Felt;
+ let pow2110: Felt;
+ let pow2111: Felt;
+ let pow2112: Felt;
+ let pow2113: Felt;
+ let pow2114: Felt;
+ let pow2115: Felt;
+ let pow2116: Felt;
+ let pow2117: Felt;
+ let pow2118: Felt;
+ let pow2119: Felt;
+ let pow2120: Felt;
+ let pow2121: Felt;
+ let pow2122: Felt;
+ let pow2123: Felt;
+ let pow2124: Felt;
+ let pow2125: Felt;
+ let pow2126: Felt;
+ let pow2127: Felt;
+ let pow2128: Felt;
+ let pow2129: Felt;
+ let pow2130: Felt;
+ let pow2131: Felt;
+ let pow2132: Felt;
+ let pow2133: Felt;
+ let pow2134: Felt;
+ let pow2135: Felt;
+ let pow2136: Felt;
+ let pow2137: Felt;
+ let pow2138: Felt;
+ let pow2139: Felt;
+ let pow2140: Felt;
+ let pow2141: Felt;
+ let pow2142: Felt;
+ let pow2143: Felt;
+ let pow2144: Felt;
+ let pow2145: Felt;
+ let pow2146: Felt;
+ let pow2147: Felt;
+ let pow2148: Felt;
+ let pow2149: Felt;
+ let pow2150: Felt;
+ let pow2151: Felt;
+ let pow2152: Felt;
+ let pow2153: Felt;
+ let pow2154: Felt;
+ let pow2155: Felt;
+ let pow2156: Felt;
+ let pow2157: Felt;
+ let pow2158: Felt;
+ let pow2159: Felt;
+ let pow2160: Felt;
+ let pow2161: Felt;
+ let pow2162: Felt;
+ let pow2163: Felt;
+ let pow2164: Felt;
+ let pow2165: Felt;
+ let pow2166: Felt;
+ let pow2167: Felt;
+ let pow2168: Felt;
+ let pow2169: Felt;
+ let pow2170: Felt;
+ let pow2171: Felt;
+ let pow2172: Felt;
+ let pow2173: Felt;
+ let pow2174: Felt;
+ let pow2175: Felt;
+ let pow2176: Felt;
+ let pow2177: Felt;
+ let pow2178: Felt;
+ let pow2179: Felt;
+ let pow2180: Felt;
+ let pow2181: Felt;
+ let pow2182: Felt;
+ let pow2183: Felt;
+ let pow2184: Felt;
+ let pow2185: Felt;
+ let pow2186: Felt;
+ let pow2187: Felt;
+ let pow2188: Felt;
+ let pow2189: Felt;
+ let pow2190: Felt;
+ let pow2191: Felt;
+ let pow2192: Felt;
+ let pow2193: Felt;
+ let pow2194: Felt;
+ let pow2195: Felt;
+ let pow2196: Felt;
+ let pow2197: Felt;
+ let pow2198: Felt;
+ let pow2199: Felt;
+ let pow2200: Felt;
+ let pow2201: Felt;
+ let pow2202: Felt;
+ let pow2203: Felt;
+ let pow2204: Felt;
+ let pow2205: Felt;
+ let pow2206: Felt;
+ let pow2207: Felt;
+ let pow2208: Felt;
+ let pow2209: Felt;
+ let pow2210: Felt;
+ let pow2211: Felt;
+ let pow2212: Felt;
+ let pow2213: Felt;
+ let pow2214: Felt;
+ let pow2215: Felt;
+ let pow2216: Felt;
+ let pow2217: Felt;
+ let pow2218: Felt;
+ let pow2219: Felt;
+ let pow2220: Felt;
+ let pow2221: Felt;
+ let pow2222: Felt;
+ let pow2223: Felt;
+ let pow2224: Felt;
+ let pow2225: Felt;
+ let pow2226: Felt;
+ let pow2227: Felt;
+ let pow2228: Felt;
+ let pow2229: Felt;
+ let pow2230: Felt;
+ let pow2231: Felt;
+ let pow2232: Felt;
+ let pow2233: Felt;
+ let pow2234: Felt;
+ let pow2235: Felt;
+ let pow2236: Felt;
+ let pow2237: Felt;
+ let pow2238: Felt;
+ let pow2239: Felt;
+ let pow2240: Felt;
+ let pow2241: Felt;
+ let pow2242: Felt;
+ let pow2243: Felt;
+ let pow2244: Felt;
+ let pow2245: Felt;
+ let pow2246: Felt;
+ let pow2247: Felt;
+ let pow2248: Felt;
+ let pow2249: Felt;
+ let pow2250: Felt;
+ let pow2251: Felt;
+ let pow2252: Felt;
+ let pow2253: Felt;
+ let pow2254: Felt;
+ let pow2255: Felt;
+ let pow2256: Felt;
+ let pow2257: Felt;
+ let pow2258: Felt;
+ let pow2259: Felt;
+ let pow2260: Felt;
+ let pow2261: Felt;
+ let pow2262: Felt;
+ let pow2263: Felt;
+ let pow2264: Felt;
+ let pow2265: Felt;
+ let pow2266: Felt;
+ let pow2267: Felt;
+ let pow2268: Felt;
+ let pow2269: Felt;
+ let pow2270: Felt;
+ let pow2271: Felt;
+ let pow2272: Felt;
+ let pow2273: Felt;
+ let pow2274: Felt;
+ let pow2275: Felt;
+ let pow2276: Felt;
+ let pow2277: Felt;
+ let pow2278: Felt;
+ let pow2279: Felt;
+ let pow2280: Felt;
+ let pow2281: Felt;
+ let pow2282: Felt;
+ let pow2283: Felt;
+ let pow2284: Felt;
+ let pow2285: Felt;
+ let pow2286: Felt;
+ let pow2287: Felt;
+ let pow2288: Felt;
+ let pow2289: Felt;
+ let pow2290: Felt;
+ let pow2291: Felt;
+ let pow2292: Felt;
+ let pow2293: Felt;
+ let pow2294: Felt;
+ let pow2295: Felt;
+ let pow2296: Felt;
+ let pow2297: Felt;
+ let pow2298: Felt;
+ let pow2299: Felt;
+ let pow2300: Felt;
+ let pow2301: Felt;
+ let pow2302: Felt;
+ let pow2303: Felt;
+ let pow2304: Felt;
+ let pow2305: Felt;
+ let pow2306: Felt;
+ let pow2307: Felt;
+ let pow2308: Felt;
+ let pow2309: Felt;
+ let pow2310: Felt;
+ let pow2311: Felt;
+ let pow2312: Felt;
+ let pow2313: Felt;
+ let pow2314: Felt;
+ let pow2315: Felt;
+ let pow2316: Felt;
+ let pow2317: Felt;
+ let pow2318: Felt;
+ let pow2319: Felt;
+ let pow2320: Felt;
+ let pow2321: Felt;
+ let pow2322: Felt;
+ let pow2323: Felt;
+ let pow2324: Felt;
+ let pow2325: Felt;
+ let pow2326: Felt;
+ let pow2327: Felt;
+ let pow2328: Felt;
+ let pow2329: Felt;
+ let pow2330: Felt;
+ let pow2331: Felt;
+ let pow2332: Felt;
+ let pow2333: Felt;
+ let pow2334: Felt;
+ let pow2335: Felt;
+ let pow2336: Felt;
+ let pow2337: Felt;
+ let pow2338: Felt;
+ let pow2339: Felt;
+ let pow2340: Felt;
+ let pow2341: Felt;
+ let pow2342: Felt;
+ let pow2343: Felt;
+ let pow2344: Felt;
+ let pow2345: Felt;
+ let pow2346: Felt;
+ let pow2347: Felt;
+ let pow2348: Felt;
+ let pow2349: Felt;
+ let pow2350: Felt;
+ let pow2351: Felt;
+ let pow2352: Felt;
+ let pow2353: Felt;
+ let pow2354: Felt;
+ let pow2355: Felt;
+ let pow2356: Felt;
+ let pow2357: Felt;
+ let pow2358: Felt;
+ let pow2359: Felt;
+ let pow2360: Felt;
+ let pow2361: Felt;
+ let pow2362: Felt;
+ let pow2363: Felt;
+ let pow2364: Felt;
+ let pow2365: Felt;
+ let pow2366: Felt;
+ let pow2367: Felt;
+ let pow2368: Felt;
+ let pow2369: Felt;
+ let pow2370: Felt;
+ let pow2371: Felt;
+ let pow2372: Felt;
+ let pow2373: Felt;
+ let pow2374: Felt;
+ let pow2375: Felt;
+ let pow2376: Felt;
+ let pow2377: Felt;
+ let pow2378: Felt;
+ let pow2379: Felt;
+ let pow2380: Felt;
+ let pow2381: Felt;
+ let pow2382: Felt;
+ let pow2383: Felt;
+ let pow2384: Felt;
+ let pow2385: Felt;
+ let pow2386: Felt;
+ let pow2387: Felt;
+ let pow2388: Felt;
+ let pow2389: Felt;
+ let pow2390: Felt;
+ let pow2391: Felt;
+ let pow2392: Felt;
+ let pow2393: Felt;
+ let pow2394: Felt;
+ let pow2395: Felt;
+ let pow2396: Felt;
+ let pow2397: Felt;
+ let pow2398: Felt;
+ let pow2399: Felt;
+ let pow2400: Felt;
+ let pow2401: Felt;
+ let pow2402: Felt;
+ let pow2403: Felt;
+ let pow2404: Felt;
+ let pow2405: Felt;
+ let pow2406: Felt;
+ let pow2407: Felt;
+ let pow2408: Felt;
+ let pow2409: Felt;
+ let pow2410: Felt;
+ let pow2411: Felt;
+ let pow2412: Felt;
+ let pow2413: Felt;
+ let pow2414: Felt;
+ let pow2415: Felt;
+ let pow2416: Felt;
+ let pow2417: Felt;
+ let pow2418: Felt;
+ let pow2419: Felt;
+ let pow2420: Felt;
+ let pow2421: Felt;
+ let pow2422: Felt;
+ let pow2423: Felt;
+ let pow2424: Felt;
+ let pow2425: Felt;
+ let pow2426: Felt;
+ let pow2427: Felt;
+ let pow2428: Felt;
+ let pow2429: Felt;
+ let pow2430: Felt;
+ let pow2431: Felt;
+ let pow2432: Felt;
+ let pow2433: Felt;
+ let pow2434: Felt;
+ let pow2435: Felt;
+ let pow2436: Felt;
+ let pow2437: Felt;
+ let pow2438: Felt;
+ let pow2439: Felt;
+ let pow2440: Felt;
+ let pow2441: Felt;
+ let pow2442: Felt;
+ let pow2443: Felt;
+ let pow2444: Felt;
+ let pow2445: Felt;
+ let pow2446: Felt;
+ let pow2447: Felt;
+ let pow2448: Felt;
+ let pow2449: Felt;
+ let pow2450: Felt;
+ let pow2451: Felt;
+ let pow2452: Felt;
+ let pow2453: Felt;
+ let pow2454: Felt;
+ let pow2455: Felt;
+ let pow2456: Felt;
+ let pow2457: Felt;
+ let pow2458: Felt;
+ let pow2459: Felt;
+ let pow2460: Felt;
+ let pow2461: Felt;
+ let pow2462: Felt;
+ let pow2463: Felt;
+ let pow2464: Felt;
+ let pow2465: Felt;
+ let pow2466: Felt;
+ let pow2467: Felt;
+ let pow2468: Felt;
+ let pow2469: Felt;
+ let pow2470: Felt;
+ let pow2471: Felt;
+ let pow2472: Felt;
+ let pow2473: Felt;
+ let pow2474: Felt;
+ let pow2475: Felt;
+ let pow2476: Felt;
+ let pow2477: Felt;
+ let pow2478: Felt;
+ let pow2479: Felt;
+ let pow2480: Felt;
+ let pow2481: Felt;
+ let pow2482: Felt;
+ let pow2483: Felt;
+ let pow2484: Felt;
+ let pow2485: Felt;
+ let pow2486: Felt;
+ let pow2487: Felt;
+ let pow2488: Felt;
+ let pow2489: Felt;
+ let pow2490: Felt;
+ let pow2491: Felt;
+ let pow2492: Felt;
+ let pow2493: Felt;
+ let pow2494: Felt;
+ let pow2495: Felt;
+ let pow2496: Felt;
+ let pow2497: Felt;
+ let pow2498: Felt;
+ let pow2499: Felt;
+ let pow2500: Felt;
+ let pow2501: Felt;
+ let pow2502: Felt;
+ let pow2503: Felt;
+ let pow2504: Felt;
+ let pow2505: Felt;
+ let pow2506: Felt;
+ let pow2507: Felt;
+ let pow2508: Felt;
+ let pow2509: Felt;
+ let pow2510: Felt;
+ let pow2511: Felt;
+ let pow2512: Felt;
+ let pow2513: Felt;
+ let pow2514: Felt;
+ let pow2515: Felt;
+ let pow2516: Felt;
+ let pow2517: Felt;
+ let pow2518: Felt;
+ let pow2519: Felt;
+ let pow2520: Felt;
+ let pow2521: Felt;
+ let pow2522: Felt;
+ let pow2523: Felt;
+ let pow2524: Felt;
+ let pow2525: Felt;
+ let pow2526: Felt;
+ let pow2527: Felt;
+ let pow2528: Felt;
+ let pow2529: Felt;
+ let pow2530: Felt;
+ let pow2531: Felt;
+ let pow2532: Felt;
+ let pow2533: Felt;
+ let pow2534: Felt;
+ let pow2535: Felt;
+ let pow2536: Felt;
+ let pow2537: Felt;
+ let pow2538: Felt;
+ let pow2539: Felt;
+ let pow2540: Felt;
+ let pow2541: Felt;
+ let pow2542: Felt;
+ let pow2543: Felt;
+ let pow2544: Felt;
+ let pow2545: Felt;
+ let pow2546: Felt;
+ let pow2547: Felt;
+ let pow2548: Felt;
+ let pow2549: Felt;
+ let pow2550: Felt;
+ let pow2551: Felt;
+ let pow2552: Felt;
+ let pow2553: Felt;
+ let pow2554: Felt;
+ let pow2555: Felt;
+ let pow2556: Felt;
+ let pow2557: Felt;
+ let pow2558: Felt;
+ let pow2559: Felt;
+ let pow2560: Felt;
+ let pow2561: Felt;
+ let pow2562: Felt;
+ let pow2563: Felt;
+ let pow2564: Felt;
+ let pow2565: Felt;
+ let pow2566: Felt;
+ let pow2567: Felt;
+ let pow2568: Felt;
+ let pow2569: Felt;
+ let pow2570: Felt;
+ let pow2571: Felt;
+ let pow2572: Felt;
+ let pow2573: Felt;
+ let pow2574: Felt;
+ let pow2575: Felt;
+ let pow2576: Felt;
+ let pow2577: Felt;
+ let pow2578: Felt;
+ let pow2579: Felt;
+ let pow2580: Felt;
+ let pow2581: Felt;
+ let pow2582: Felt;
+ let pow2583: Felt;
+ let pow2584: Felt;
+ let pow2585: Felt;
+ let pow2586: Felt;
+ let pow2587: Felt;
+ let pow2588: Felt;
+ let pow2589: Felt;
+ let pow2590: Felt;
+ let pow2591: Felt;
+ let pow2592: Felt;
+ let pow2593: Felt;
+ let pow2594: Felt;
+ let pow2595: Felt;
+ let pow2596: Felt;
+ let pow2597: Felt;
+ let pow2598: Felt;
+ let pow2599: Felt;
+ let pow2600: Felt;
+ let pow2601: Felt;
+ let pow2602: Felt;
+ let pow2603: Felt;
+ let pow2604: Felt;
+ let pow2605: Felt;
+ let pow2606: Felt;
+ let pow2607: Felt;
+ let pow2608: Felt;
+ let pow2609: Felt;
+ let pow2610: Felt;
+ let pow2611: Felt;
+ let pow2612: Felt;
+ let pow2613: Felt;
+ let pow2614: Felt;
+ let pow2615: Felt;
+ let pow2616: Felt;
+ let pow2617: Felt;
+ let pow2618: Felt;
+ let pow2619: Felt;
+ let pow2620: Felt;
+ let pow2621: Felt;
+ let pow2622: Felt;
+ let pow2623: Felt;
+ let pow2624: Felt;
+ let pow2625: Felt;
+ let pow2626: Felt;
+ let pow2627: Felt;
+ let pow2628: Felt;
+ let pow2629: Felt;
+ let pow2630: Felt;
+ let pow2631: Felt;
+ let pow2632: Felt;
+ let pow2633: Felt;
+ let pow2634: Felt;
+ let pow2635: Felt;
+ let pow2636: Felt;
+ let pow2637: Felt;
+ let pow2638: Felt;
+ let pow2639: Felt;
+ let pow2640: Felt;
+ let pow2641: Felt;
+ let pow2642: Felt;
+ let pow2643: Felt;
+ let pow2644: Felt;
+ let pow2645: Felt;
+ let pow2646: Felt;
+ let pow2647: Felt;
+ let pow2648: Felt;
+ let pow2649: Felt;
+ let pow2650: Felt;
+ let pow2651: Felt;
+ let pow2652: Felt;
+ let pow2653: Felt;
+ let pow2654: Felt;
+ let pow2655: Felt;
+ let pow2656: Felt;
+ let pow2657: Felt;
+ let pow2658: Felt;
+ let pow2659: Felt;
+ let pow2660: Felt;
+ let pow2661: Felt;
+ let pow2662: Felt;
+ let pow2663: Felt;
+ let pow2664: Felt;
+ let pow2665: Felt;
+ let pow2666: Felt;
+ let pow2667: Felt;
+ let pow2668: Felt;
+ let pow2669: Felt;
+ let pow2670: Felt;
+ let pow2671: Felt;
+ let pow2672: Felt;
+ let pow2673: Felt;
+ let pow2674: Felt;
+ let pow2675: Felt;
+ let pow2676: Felt;
+ let pow2677: Felt;
+ let pow2678: Felt;
+ let pow2679: Felt;
+ let pow2680: Felt;
+ let pow2681: Felt;
+ let pow2682: Felt;
+ let pow2683: Felt;
+ let pow2684: Felt;
+ let pow2685: Felt;
+ let pow2686: Felt;
+ let pow2687: Felt;
+ let pow2688: Felt;
+ let pow2689: Felt;
+ let pow2690: Felt;
+ let pow2691: Felt;
+ let pow2692: Felt;
+ let pow2693: Felt;
+ let pow2694: Felt;
+ let pow2695: Felt;
+ let pow2696: Felt;
+ let pow2697: Felt;
+ let pow2698: Felt;
+ let pow2699: Felt;
+ let pow2700: Felt;
+ let pow2701: Felt;
+ let pow2702: Felt;
+ let pow2703: Felt;
+ let pow2704: Felt;
+ let pow2705: Felt;
+ let pow2706: Felt;
+ let pow2707: Felt;
+ let pow2708: Felt;
+ let pow2709: Felt;
+ let pow2710: Felt;
+ let pow2711: Felt;
+ let pow2712: Felt;
+ let pow2713: Felt;
+ let pow2714: Felt;
+ let pow2715: Felt;
+ let pow2716: Felt;
+ let pow2717: Felt;
+ let pow2718: Felt;
+ let pow2719: Felt;
+ let pow2720: Felt;
+ let pow2721: Felt;
+ let pow2722: Felt;
+ let pow2723: Felt;
+ let pow2724: Felt;
+ let pow2725: Felt;
+ let pow2726: Felt;
+ let pow2727: Felt;
+ let pow2728: Felt;
+ let pow2729: Felt;
+ let pow2730: Felt;
+ let pow2731: Felt;
+ let pow2732: Felt;
+ let pow2733: Felt;
+ let pow2734: Felt;
+ let pow2735: Felt;
+ let pow2736: Felt;
+ let pow2737: Felt;
+ let pow2738: Felt;
+ let pow2739: Felt;
+ let pow2740: Felt;
+ let pow2741: Felt;
+ let pow2742: Felt;
+ let pow2743: Felt;
+ let pow2744: Felt;
+ let pow2745: Felt;
+ let pow2746: Felt;
+ let pow2747: Felt;
+ let pow2748: Felt;
+ let pow2749: Felt;
+ let pow2750: Felt;
+ let pow2751: Felt;
+ let pow2752: Felt;
+ let pow2753: Felt;
+ let pow2754: Felt;
+ let pow2755: Felt;
+ let pow2756: Felt;
+ let pow2757: Felt;
+ let pow2758: Felt;
+ let pow2759: Felt;
+ let pow2760: Felt;
+ let pow2761: Felt;
+ let pow2762: Felt;
+ let pow2763: Felt;
+ let pow2764: Felt;
+ let pow2765: Felt;
+ let pow2766: Felt;
+ let pow2767: Felt;
+ let pow2768: Felt;
+ let pow2769: Felt;
+ let pow2770: Felt;
+ let pow2771: Felt;
+ let pow2772: Felt;
+ let pow2773: Felt;
+ let pow2774: Felt;
+ let pow2775: Felt;
+ let pow2776: Felt;
+ let pow2777: Felt;
+ let pow2778: Felt;
+ let pow2779: Felt;
+ let pow2780: Felt;
+ let pow2781: Felt;
+ let pow2782: Felt;
+ let pow2783: Felt;
+ let pow2784: Felt;
+ let pow2785: Felt;
+ let pow2786: Felt;
+ let pow2787: Felt;
+ let pow2788: Felt;
+ let pow2789: Felt;
+ let pow2790: Felt;
+ let pow2791: Felt;
+ let pow2792: Felt;
+ let pow2793: Felt;
+ let pow2794: Felt;
+ let pow2795: Felt;
+ let pow2796: Felt;
+ let pow2797: Felt;
+ let pow2798: Felt;
+ let pow2799: Felt;
+ let pow2800: Felt;
+ let pow2801: Felt;
+ let pow2802: Felt;
+ let pow2803: Felt;
+ let pow2804: Felt;
+ let pow2805: Felt;
+ let pow2806: Felt;
+ let pow2807: Felt;
+ let pow2808: Felt;
+ let pow2809: Felt;
+ let pow2810: Felt;
+ let pow2811: Felt;
+ let pow2812: Felt;
+ let pow2813: Felt;
+ let pow2814: Felt;
+ let pow2815: Felt;
+ let pow2816: Felt;
+ let pow2817: Felt;
+ let pow2818: Felt;
+ let pow2819: Felt;
+ let pow2820: Felt;
+ let pow2821: Felt;
+ let pow2822: Felt;
+ let pow2823: Felt;
+ let pow2824: Felt;
+ let pow2825: Felt;
+ let pow2826: Felt;
+ let pow2827: Felt;
+ let pow2828: Felt;
+ let pow2829: Felt;
+ let pow2830: Felt;
+ let pow2831: Felt;
+ let pow2832: Felt;
+ let pow2833: Felt;
+ let pow2834: Felt;
+ let pow2835: Felt;
+ let pow2836: Felt;
+ let pow2837: Felt;
+ let pow2838: Felt;
+ let pow2839: Felt;
+ let pow2840: Felt;
+ let pow2841: Felt;
+ let pow2842: Felt;
+ let pow2843: Felt;
+ let pow2844: Felt;
+ let pow2845: Felt;
+ let pow2846: Felt;
+ let pow2847: Felt;
+ let pow2848: Felt;
+ let pow2849: Felt;
+ let pow2850: Felt;
+ let pow2851: Felt;
+ let pow2852: Felt;
+ let pow2853: Felt;
+ let pow2854: Felt;
+ let pow2855: Felt;
+ let pow2856: Felt;
+ let pow2857: Felt;
+ let pow2858: Felt;
+ let pow2859: Felt;
+ let pow2860: Felt;
+ let pow2861: Felt;
+ let pow2862: Felt;
+ let pow2863: Felt;
+ let pow2864: Felt;
+ let pow2865: Felt;
+ let pow2866: Felt;
+ let pow2867: Felt;
+ let pow2868: Felt;
+ let pow2869: Felt;
+ let pow2870: Felt;
+ let pow2871: Felt;
+ let pow2872: Felt;
+ let pow2873: Felt;
+ let pow2874: Felt;
+ let pow2875: Felt;
+ let pow2876: Felt;
+ let pow2877: Felt;
+ let pow2878: Felt;
+ let pow2879: Felt;
+ let pow2880: Felt;
+ let pow2881: Felt;
+ let pow2882: Felt;
+ let pow2883: Felt;
+ let pow2884: Felt;
+ let pow2885: Felt;
+ let pow2886: Felt;
+ let pow2887: Felt;
+ let pow2888: Felt;
+ let pow2889: Felt;
+ let pow2890: Felt;
+ let pow2891: Felt;
+ let pow2892: Felt;
+ let pow2893: Felt;
+ let pow2894: Felt;
+ let pow2895: Felt;
+ let pow2896: Felt;
+ let pow2897: Felt;
+ let pow2898: Felt;
+ let pow2899: Felt;
+ let pow2900: Felt;
+ let pow2901: Felt;
+ let pow2902: Felt;
+ let pow2903: Felt;
+ let pow2904: Felt;
+ let pow2905: Felt;
+ let pow2906: Felt;
+ let pow2907: Felt;
+ let pow2908: Felt;
+ let pow2909: Felt;
+ let pow2910: Felt;
+ let pow2911: Felt;
+ let pow2912: Felt;
+ let pow2913: Felt;
+ let pow2914: Felt;
+ let pow2915: Felt;
+ let pow2916: Felt;
+ let pow2917: Felt;
+ let pow2918: Felt;
+ let pow2919: Felt;
+ let pow2920: Felt;
+ let pow2921: Felt;
+ let pow2922: Felt;
+ let pow2923: Felt;
+ let pow2924: Felt;
+ let pow2925: Felt;
+ let pow2926: Felt;
+ let pow2927: Felt;
+ let pow2928: Felt;
+ let pow2929: Felt;
+ let pow2930: Felt;
+ let pow2931: Felt;
+ let pow2932: Felt;
+ let pow2933: Felt;
+ let pow2934: Felt;
+ let pow2935: Felt;
+ let pow2936: Felt;
+ let pow2937: Felt;
+ let pow2938: Felt;
+ let pow2939: Felt;
+ let pow2940: Felt;
+ let pow2941: Felt;
+ let pow2942: Felt;
+ let pow2943: Felt;
+ let pow2944: Felt;
+ let pow2945: Felt;
+ let pow2946: Felt;
+ let pow2947: Felt;
+ let pow2948: Felt;
+ let pow2949: Felt;
+ let pow2950: Felt;
+ let pow2951: Felt;
+ let pow2952: Felt;
+ let pow2953: Felt;
+ let pow2954: Felt;
+ let pow2955: Felt;
+ let pow2956: Felt;
+ let pow2957: Felt;
+ let pow2958: Felt;
+ let pow2959: Felt;
+ let pow2960: Felt;
+ let pow2961: Felt;
+ let pow2962: Felt;
+ let pow2963: Felt;
+ let pow2964: Felt;
+ let pow2965: Felt;
+ let pow2966: Felt;
+ let pow2967: Felt;
+ let pow2968: Felt;
+ let pow2969: Felt;
+ let pow2970: Felt;
+ let pow2971: Felt;
+ let pow2972: Felt;
+ let pow2973: Felt;
+ let pow2974: Felt;
+ let pow2975: Felt;
+ let pow2976: Felt;
+ let pow2977: Felt;
+ let pow2978: Felt;
+ let pow2979: Felt;
+ let pow2980: Felt;
+ let pow2981: Felt;
+ let pow2982: Felt;
+ let pow2983: Felt;
+ let pow2984: Felt;
+ let pow2985: Felt;
+ let pow2986: Felt;
+ let pow2987: Felt;
+ let pow2988: Felt;
+ let pow2989: Felt;
+ let pow2990: Felt;
+ let pow2991: Felt;
+ let pow2992: Felt;
+ let pow2993: Felt;
+ let pow2994: Felt;
+ let pow2995: Felt;
+ let pow2996: Felt;
+ let pow2997: Felt;
+ let pow2998: Felt;
+ let pow2999: Felt;
+ let pow3000: Felt;
+ let pow3001: Felt;
+ let pow3002: Felt;
+ let pow3003: Felt;
+ let pow3004: Felt;
+ let pow3005: Felt;
+ let pow3006: Felt;
+ let pow3007: Felt;
+ let pow3008: Felt;
+ let pow3009: Felt;
+ let pow3010: Felt;
+ let pow3011: Felt;
+ let pow3012: Felt;
+ let pow3013: Felt;
+ let pow3014: Felt;
+ let pow3015: Felt;
+ let pow3016: Felt;
+ let pow3017: Felt;
+ let pow3018: Felt;
+ let pow3019: Felt;
+ let pow3020: Felt;
+ let pow3021: Felt;
+ let pow3022: Felt;
+ let pow3023: Felt;
+ let pow3024: Felt;
+ let pow3025: Felt;
+ let pow3026: Felt;
+ let pow3027: Felt;
+ let pow3028: Felt;
+ let pow3029: Felt;
+ let pow3030: Felt;
+ let pow3031: Felt;
+ let pow3032: Felt;
+ let pow3033: Felt;
+ let pow3034: Felt;
+ let pow3035: Felt;
+ let pow3036: Felt;
+ let pow3037: Felt;
+ let pow3038: Felt;
+ let pow3039: Felt;
+ let pow3040: Felt;
+ let pow3041: Felt;
+ let pow3042: Felt;
+ let pow3043: Felt;
+ let pow3044: Felt;
+ let pow3045: Felt;
+ let pow3046: Felt;
+ let pow3047: Felt;
+ let pow3048: Felt;
+ let pow3049: Felt;
+ let pow3050: Felt;
+ let pow3051: Felt;
+ let pow3052: Felt;
+ let pow3053: Felt;
+ let pow3054: Felt;
+ let pow3055: Felt;
+ let pow3056: Felt;
+ let pow3057: Felt;
+ let pow3058: Felt;
+ let pow3059: Felt;
+ let pow3060: Felt;
+ let pow3061: Felt;
+ let pow3062: Felt;
+ let pow3063: Felt;
+ let pow3064: Felt;
+ let pow3065: Felt;
+ let pow3066: Felt;
+ let pow3067: Felt;
+ let pow3068: Felt;
+ let pow3069: Felt;
+ let pow3070: Felt;
+ let pow3071: Felt;
+ let pow3072: Felt;
+ let pow3073: Felt;
+ let pow3074: Felt;
+ let pow3075: Felt;
+ let pow3076: Felt;
+ let pow3077: Felt;
+ let pow3078: Felt;
+ let pow3079: Felt;
+ let pow3080: Felt;
+ let pow3081: Felt;
+ let pow3082: Felt;
+ let pow3083: Felt;
+ let pow3084: Felt;
+ let pow3085: Felt;
+ let pow3086: Felt;
+ let pow3087: Felt;
+ let pow3088: Felt;
+ let pow3089: Felt;
+ let pow3090: Felt;
+ let pow3091: Felt;
+ let pow3092: Felt;
+ let pow3093: Felt;
+ let pow3094: Felt;
+ let pow3095: Felt;
+ let pow3096: Felt;
+ let pow3097: Felt;
+ let pow3098: Felt;
+ let pow3099: Felt;
+ let pow3100: Felt;
+ let pow3101: Felt;
+ let pow3102: Felt;
+ let pow3103: Felt;
+ let pow3104: Felt;
+ let pow3105: Felt;
+ let pow3106: Felt;
+ let pow3107: Felt;
+ let pow3108: Felt;
+ let pow3109: Felt;
+ let pow3110: Felt;
+ let pow3111: Felt;
+ let pow3112: Felt;
+ let pow3113: Felt;
+ let pow3114: Felt;
+ let pow3115: Felt;
+ let pow3116: Felt;
+ let pow3117: Felt;
+ let pow3118: Felt;
+ let pow3119: Felt;
+ let pow3120: Felt;
+ let pow3121: Felt;
+ let pow3122: Felt;
+ let pow3123: Felt;
+ let pow3124: Felt;
+ let pow3125: Felt;
+ let pow3126: Felt;
+ let pow3127: Felt;
+ let pow3128: Felt;
+ let pow3129: Felt;
+ let pow3130: Felt;
+ let pow3131: Felt;
+ let pow3132: Felt;
+ let pow3133: Felt;
+ let pow3134: Felt;
+ let pow3135: Felt;
+ let pow3136: Felt;
+ let pow3137: Felt;
+ let pow3138: Felt;
+ let pow3139: Felt;
+ let pow3140: Felt;
+ let pow3141: Felt;
+ let pow3142: Felt;
+ let pow3143: Felt;
+ let pow3144: Felt;
+ let pow3145: Felt;
+ let pow3146: Felt;
+ let pow3147: Felt;
+ let pow3148: Felt;
+ let pow3149: Felt;
+ let pow3150: Felt;
+ let pow3151: Felt;
+ let pow3152: Felt;
+ let pow3153: Felt;
+ let pow3154: Felt;
+ let pow3155: Felt;
+ let pow3156: Felt;
+ let pow3157: Felt;
+ let pow3158: Felt;
+ let pow3159: Felt;
+ let pow3160: Felt;
+ let pow3161: Felt;
+ let pow3162: Felt;
+ let pow3163: Felt;
+ let pow3164: Felt;
+ let pow3165: Felt;
+ let pow3166: Felt;
+ let pow3167: Felt;
+ let pow3168: Felt;
+ let pow3169: Felt;
+ let pow3170: Felt;
+ let pow3171: Felt;
+ let pow3172: Felt;
+ let pow3173: Felt;
+ let pow3174: Felt;
+ let pow3175: Felt;
+ let pow3176: Felt;
+ let pow3177: Felt;
+ let pow3178: Felt;
+ let pow3179: Felt;
+ let pow3180: Felt;
+ let pow3181: Felt;
+ let pow3182: Felt;
+ let pow3183: Felt;
+ let pow3184: Felt;
+ let pow3185: Felt;
+ let pow3186: Felt;
+ let pow3187: Felt;
+ let pow3188: Felt;
+ let pow3189: Felt;
+ let pow3190: Felt;
+ let pow3191: Felt;
+ let pow3192: Felt;
+ let pow3193: Felt;
+ let pow3194: Felt;
+ let pow3195: Felt;
+ let pow3196: Felt;
+ let pow3197: Felt;
+ let pow3198: Felt;
+ let pow3199: Felt;
+ let pow3200: Felt;
+ let pow3201: Felt;
+ let pow3202: Felt;
+ let pow3203: Felt;
+ let pow3204: Felt;
+ let pow3205: Felt;
+ let pow3206: Felt;
+ let pow3207: Felt;
+ let pow3208: Felt;
+ let pow3209: Felt;
+ let pow3210: Felt;
+ let pow3211: Felt;
+ let pow3212: Felt;
+ let pow3213: Felt;
+ let pow3214: Felt;
+ let pow3215: Felt;
+ let pow3216: Felt;
+ let pow3217: Felt;
+ let pow3218: Felt;
+ let pow3219: Felt;
+ let pow3220: Felt;
+ let pow3221: Felt;
+ let pow3222: Felt;
+ let pow3223: Felt;
+ let pow3224: Felt;
+ let pow3225: Felt;
+ let pow3226: Felt;
+ let pow3227: Felt;
+ let pow3228: Felt;
+ let pow3229: Felt;
+ let pow3230: Felt;
+ let pow3231: Felt;
+ let pow3232: Felt;
+ let pow3233: Felt;
+ let pow3234: Felt;
+ let pow3235: Felt;
+ let pow3236: Felt;
+ let pow3237: Felt;
+ let pow3238: Felt;
+ let pow3239: Felt;
+ let pow3240: Felt;
+ let pow3241: Felt;
+ let pow3242: Felt;
+ let pow3243: Felt;
+ let pow3244: Felt;
+ let pow3245: Felt;
+ let pow3246: Felt;
+ let pow3247: Felt;
+ let pow3248: Felt;
+ let pow3249: Felt;
+ let pow3250: Felt;
+ let pow3251: Felt;
+ let pow3252: Felt;
+ let pow3253: Felt;
+ let pow3254: Felt;
+ let pow3255: Felt;
+ let pow3256: Felt;
+ let pow3257: Felt;
+ let pow3258: Felt;
+ let pow3259: Felt;
+ let pow3260: Felt;
+ let pow3261: Felt;
+ let pow3262: Felt;
+ let pow3263: Felt;
+ let pow3264: Felt;
+ let pow3265: Felt;
+ let pow3266: Felt;
+ let pow3267: Felt;
+ let pow3268: Felt;
+ let pow3269: Felt;
+ let pow3270: Felt;
+ let pow3271: Felt;
+ let pow3272: Felt;
+ let pow3273: Felt;
+ let pow3274: Felt;
+ let pow3275: Felt;
+ let pow3276: Felt;
+ let pow3277: Felt;
+ let pow3278: Felt;
+ let pow3279: Felt;
+ let pow3280: Felt;
+ let pow3281: Felt;
+ let pow3282: Felt;
+ let pow3283: Felt;
+ let pow3284: Felt;
+ let pow3285: Felt;
+ let pow3286: Felt;
+ let pow3287: Felt;
+ let pow3288: Felt;
+ let pow3289: Felt;
+ let pow3290: Felt;
+ let pow3291: Felt;
+ let pow3292: Felt;
+ let pow3293: Felt;
+ let pow3294: Felt;
+ let pow3295: Felt;
+ let pow3296: Felt;
+ let pow3297: Felt;
+ let pow3298: Felt;
+ let pow3299: Felt;
+ let pow3300: Felt;
+ let pow3301: Felt;
+ let pow3302: Felt;
+ let pow3303: Felt;
+ let pow3304: Felt;
+ let pow3305: Felt;
+ let pow3306: Felt;
+ let pow3307: Felt;
+ let pow3308: Felt;
+ let pow3309: Felt;
+ let pow3310: Felt;
+ let pow3311: Felt;
+ let pow3312: Felt;
+ let pow3313: Felt;
+ let pow3314: Felt;
+ let pow3315: Felt;
+ let pow3316: Felt;
+ let pow3317: Felt;
+ let pow3318: Felt;
+ let pow3319: Felt;
+ let pow3320: Felt;
+ let pow3321: Felt;
+ let pow3322: Felt;
+ let pow3323: Felt;
+ let pow3324: Felt;
+ let pow3325: Felt;
+ let pow3326: Felt;
+ let pow3327: Felt;
+ let pow3328: Felt;
+ let pow3329: Felt;
+ let pow3330: Felt;
+ let pow3331: Felt;
+ let pow3332: Felt;
+ let pow3333: Felt;
+ let pow3334: Felt;
+ let pow3335: Felt;
+ let pow3336: Felt;
+ let pow3337: Felt;
+ let pow3338: Felt;
+ let pow3339: Felt;
+ let pow3340: Felt;
+ let pow3341: Felt;
+ let pow3342: Felt;
+ let pow3343: Felt;
+ let pow3344: Felt;
+ let pow3345: Felt;
+ let pow3346: Felt;
+ let pow3347: Felt;
+ let pow3348: Felt;
+ let pow3349: Felt;
+ let pow3350: Felt;
+ let pow3351: Felt;
+ let pow3352: Felt;
+ let pow3353: Felt;
+ let pow3354: Felt;
+ let pow3355: Felt;
+ let pow3356: Felt;
+ let pow3357: Felt;
+ let pow3358: Felt;
+ let pow3359: Felt;
+ let pow3360: Felt;
+ let pow3361: Felt;
+ let pow3362: Felt;
+ let pow3363: Felt;
+ let pow3364: Felt;
+ let pow3365: Felt;
+ let pow3366: Felt;
+ let pow3367: Felt;
+ let pow3368: Felt;
+ let pow3369: Felt;
+ let pow3370: Felt;
+ let pow3371: Felt;
+ let pow3372: Felt;
+ let pow3373: Felt;
+ let pow3374: Felt;
+ let pow3375: Felt;
+ let pow3376: Felt;
+ let pow3377: Felt;
+ let pow3378: Felt;
+ let pow3379: Felt;
+ let pow3380: Felt;
+ let pow3381: Felt;
+ let pow3382: Felt;
+ let pow3383: Felt;
+ let pow3384: Felt;
+ let pow3385: Felt;
+ let pow3386: Felt;
+ let pow3387: Felt;
+ let pow3388: Felt;
+ let pow3389: Felt;
+ let pow3390: Felt;
+ let pow3391: Felt;
+ let pow3392: Felt;
+ let pow3393: Felt;
+ let pow3394: Felt;
+
+ if uses_keccak_builtin != 0 {
+ let temp44 =
+ point.pow_felt(&(safe_div(global_values.trace_length, FELT_16 * keccak_row_ratio)?));
+ pow44 = temp44;
+ let temp45 = point.pow_felt(&(safe_div(global_values.trace_length, keccak_row_ratio)?));
+ pow45 = temp45;
+ let temp46 =
+ point.pow_felt(&(safe_div(FELT_4 * global_values.trace_length, keccak_row_ratio)?));
+ pow46 = temp46;
+ let temp47 =
+ point.pow_felt(&(safe_div(FELT_16 * global_values.trace_length, keccak_row_ratio)?));
+ pow47 = temp47;
+ let temp48 =
+ point.pow_felt(&(safe_div(FELT_128 * global_values.trace_length, keccak_row_ratio)?));
+ pow48 = temp48;
+ let temp49 =
+ point.pow_felt(&(safe_div(FELT_4096 * global_values.trace_length, keccak_row_ratio)?));
+ pow49 = temp49;
+ let temp50 = trace_generator
+ .pow_felt(&(global_values.trace_length - (safe_div(keccak_row_ratio, FELT_16)?)));
+ pow50 = temp50;
+ let temp51 =
+ trace_generator.pow_felt(&(safe_div(global_values.trace_length, FELT_524288)?));
+ pow51 = temp51;
+ pow52 = pow51 * pow51; // pow(trace_generator, &(safe_div(global_values.trace_length, 262144))).
+ pow53 = pow51 * pow52; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 524288))).
+ pow54 = pow51 * pow53; // pow(trace_generator, &(safe_div(global_values.trace_length, 131072))).
+ pow55 = pow51 * pow54; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 524288))).
+ pow56 = pow51 * pow55; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 262144))).
+ pow57 = pow51 * pow56; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 524288))).
+ pow58 = pow51 * pow57; // pow(trace_generator, &(safe_div(global_values.trace_length, 65536))).
+ pow59 = pow51 * pow58; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 524288))).
+ pow60 = pow51 * pow59; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 262144))).
+ pow61 = pow51 * pow60; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 524288))).
+ pow62 = pow51 * pow61; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 131072))).
+ pow63 = pow51 * pow62; // pow(trace_generator, &(safe_div(((13 * global_values.trace_length)), 524288))).
+ pow64 = pow51 * pow63; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 262144))).
+ pow65 = pow51 * pow64; // pow(trace_generator, &(safe_div(((15 * global_values.trace_length)), 524288))).
+ pow66 = pow51 * pow65; // pow(trace_generator, &(safe_div(global_values.trace_length, 32768))).
+ pow67 = pow58 * pow66; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 65536))).
+ pow68 = pow58 * pow67; // pow(trace_generator, &(safe_div(global_values.trace_length, 16384))).
+ pow69 = pow58 * pow68; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 65536))).
+ pow70 = pow58 * pow69; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 32768))).
+ pow71 = pow58 * pow70; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 65536))).
+ pow72 = pow58 * pow71; // pow(trace_generator, &(safe_div(global_values.trace_length, 8192))).
+ pow73 = pow58 * pow72; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 65536))).
+ pow74 = pow58 * pow73; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 32768))).
+ pow75 = pow58 * pow74; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 65536))).
+ pow76 = pow58 * pow75; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 16384))).
+ pow77 = pow58 * pow76; // pow(trace_generator, &(safe_div(((13 * global_values.trace_length)), 65536))).
+ pow78 = pow58 * pow77; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 32768))).
+ pow79 = pow58 * pow78; // pow(trace_generator, &(safe_div(((15 * global_values.trace_length)), 65536))).
+ pow80 = pow58 * pow79; // pow(trace_generator, &(safe_div(global_values.trace_length, 4096))).
+ pow81 = pow58 * pow80; // pow(trace_generator, &(safe_div(((17 * global_values.trace_length)), 65536))).
+ pow82 = pow58 * pow81; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 32768))).
+ pow83 = pow58 * pow82; // pow(trace_generator, &(safe_div(((19 * global_values.trace_length)), 65536))).
+ pow84 = pow58 * pow83; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 16384))).
+ pow85 = pow58 * pow84; // pow(trace_generator, &(safe_div(((21 * global_values.trace_length)), 65536))).
+ pow86 = pow58 * pow85; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 32768))).
+ pow87 = pow58 * pow86; // pow(trace_generator, &(safe_div(((23 * global_values.trace_length)), 65536))).
+ pow88 = pow58 * pow87; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 8192))).
+ pow89 = pow58 * pow88; // pow(trace_generator, &(safe_div(((25 * global_values.trace_length)), 65536))).
+ pow90 = pow58 * pow89; // pow(trace_generator, &(safe_div(((13 * global_values.trace_length)), 32768))).
+ pow91 = pow58 * pow90; // pow(trace_generator, &(safe_div(((27 * global_values.trace_length)), 65536))).
+ pow92 = pow58 * pow91; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 16384))).
+ pow93 = pow58 * pow92; // pow(trace_generator, &(safe_div(((29 * global_values.trace_length)), 65536))).
+ pow94 = pow58 * pow93; // pow(trace_generator, &(safe_div(((15 * global_values.trace_length)), 32768))).
+ pow95 = pow58 * pow94; // pow(trace_generator, &(safe_div(((31 * global_values.trace_length)), 65536))).
+ pow96 = pow58 * pow95; // pow(trace_generator, &(safe_div(global_values.trace_length, 2048))).
+ pow97 = pow58 * pow96; // pow(trace_generator, &(safe_div(((33 * global_values.trace_length)), 65536))).
+ pow98 = pow58 * pow97; // pow(trace_generator, &(safe_div(((17 * global_values.trace_length)), 32768))).
+ pow99 = pow58 * pow98; // pow(trace_generator, &(safe_div(((35 * global_values.trace_length)), 65536))).
+ pow100 = pow58 * pow99; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 16384))).
+ pow101 = pow58 * pow100; // pow(trace_generator, &(safe_div(((37 * global_values.trace_length)), 65536))).
+ pow102 = pow58 * pow101; // pow(trace_generator, &(safe_div(((19 * global_values.trace_length)), 32768))).
+ pow103 = pow58 * pow102; // pow(trace_generator, &(safe_div(((39 * global_values.trace_length)), 65536))).
+ pow104 = pow58 * pow103; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 8192))).
+ pow105 = pow58 * pow104; // pow(trace_generator, &(safe_div(((41 * global_values.trace_length)), 65536))).
+ pow106 = pow58 * pow105; // pow(trace_generator, &(safe_div(((21 * global_values.trace_length)), 32768))).
+ pow107 = pow58 * pow106; // pow(trace_generator, &(safe_div(((43 * global_values.trace_length)), 65536))).
+ pow108 = pow58 * pow107; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 16384))).
+ pow109 = pow58 * pow108; // pow(trace_generator, &(safe_div(((45 * global_values.trace_length)), 65536))).
+ pow110 = pow58 * pow109; // pow(trace_generator, &(safe_div(((23 * global_values.trace_length)), 32768))).
+ pow111 = pow58 * pow110; // pow(trace_generator, &(safe_div(((47 * global_values.trace_length)), 65536))).
+ pow112 = pow58 * pow111; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 4096))).
+ pow113 = pow58 * pow112; // pow(trace_generator, &(safe_div(((49 * global_values.trace_length)), 65536))).
+ pow114 = pow58 * pow113; // pow(trace_generator, &(safe_div(((25 * global_values.trace_length)), 32768))).
+ pow115 = pow58 * pow114; // pow(trace_generator, &(safe_div(((51 * global_values.trace_length)), 65536))).
+ pow116 = pow58 * pow115; // pow(trace_generator, &(safe_div(((13 * global_values.trace_length)), 16384))).
+ pow117 = pow58 * pow116; // pow(trace_generator, &(safe_div(((53 * global_values.trace_length)), 65536))).
+ pow118 = pow58 * pow117; // pow(trace_generator, &(safe_div(((27 * global_values.trace_length)), 32768))).
+ pow119 = pow58 * pow118; // pow(trace_generator, &(safe_div(((55 * global_values.trace_length)), 65536))).
+ pow120 = pow58 * pow119; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 8192))).
+ pow121 = pow58 * pow120; // pow(trace_generator, &(safe_div(((57 * global_values.trace_length)), 65536))).
+ pow122 = pow58 * pow121; // pow(trace_generator, &(safe_div(((29 * global_values.trace_length)), 32768))).
+ pow123 = pow58 * pow122; // pow(trace_generator, &(safe_div(((59 * global_values.trace_length)), 65536))).
+ pow124 = pow58 * pow123; // pow(trace_generator, &(safe_div(((15 * global_values.trace_length)), 16384))).
+ pow125 = pow58 * pow124; // pow(trace_generator, &(safe_div(((61 * global_values.trace_length)), 65536))).
+ pow126 = pow67 * pow125; // pow(trace_generator, &(safe_div(global_values.trace_length, 1024))).
+ pow127 = pow58 * pow126; // pow(trace_generator, &(safe_div(((65 * global_values.trace_length)), 65536))).
+ pow128 = pow58 * pow127; // pow(trace_generator, &(safe_div(((33 * global_values.trace_length)), 32768))).
+ pow129 = pow58 * pow128; // pow(trace_generator, &(safe_div(((67 * global_values.trace_length)), 65536))).
+ pow130 = pow58 * pow129; // pow(trace_generator, &(safe_div(((17 * global_values.trace_length)), 16384))).
+ pow131 = pow58 * pow130; // pow(trace_generator, &(safe_div(((69 * global_values.trace_length)), 65536))).
+ pow132 = pow58 * pow131; // pow(trace_generator, &(safe_div(((35 * global_values.trace_length)), 32768))).
+ pow133 = pow58 * pow132; // pow(trace_generator, &(safe_div(((71 * global_values.trace_length)), 65536))).
+ pow134 = pow58 * pow133; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 8192))).
+ pow135 = pow58 * pow134; // pow(trace_generator, &(safe_div(((73 * global_values.trace_length)), 65536))).
+ pow136 = pow58 * pow135; // pow(trace_generator, &(safe_div(((37 * global_values.trace_length)), 32768))).
+ pow137 = pow58 * pow136; // pow(trace_generator, &(safe_div(((75 * global_values.trace_length)), 65536))).
+ pow138 = pow58 * pow137; // pow(trace_generator, &(safe_div(((19 * global_values.trace_length)), 16384))).
+ pow139 = pow58 * pow138; // pow(trace_generator, &(safe_div(((77 * global_values.trace_length)), 65536))).
+ pow140 = pow58 * pow139; // pow(trace_generator, &(safe_div(((39 * global_values.trace_length)), 32768))).
+ pow141 = pow58 * pow140; // pow(trace_generator, &(safe_div(((79 * global_values.trace_length)), 65536))).
+ pow142 = pow58 * pow141; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 4096))).
+ pow143 = pow58 * pow142; // pow(trace_generator, &(safe_div(((81 * global_values.trace_length)), 65536))).
+ pow144 = pow58 * pow143; // pow(trace_generator, &(safe_div(((41 * global_values.trace_length)), 32768))).
+ pow145 = pow58 * pow144; // pow(trace_generator, &(safe_div(((83 * global_values.trace_length)), 65536))).
+ pow146 = pow58 * pow145; // pow(trace_generator, &(safe_div(((21 * global_values.trace_length)), 16384))).
+ pow147 = pow58 * pow146; // pow(trace_generator, &(safe_div(((85 * global_values.trace_length)), 65536))).
+ pow148 = pow58 * pow147; // pow(trace_generator, &(safe_div(((43 * global_values.trace_length)), 32768))).
+ pow149 = pow58 * pow148; // pow(trace_generator, &(safe_div(((87 * global_values.trace_length)), 65536))).
+ pow150 = pow58 * pow149; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 8192))).
+ pow151 = pow58 * pow150; // pow(trace_generator, &(safe_div(((89 * global_values.trace_length)), 65536))).
+ pow152 = pow58 * pow151; // pow(trace_generator, &(safe_div(((45 * global_values.trace_length)), 32768))).
+ pow153 = pow58 * pow152; // pow(trace_generator, &(safe_div(((91 * global_values.trace_length)), 65536))).
+ pow154 = pow58 * pow153; // pow(trace_generator, &(safe_div(((23 * global_values.trace_length)), 16384))).
+ pow155 = pow58 * pow154; // pow(trace_generator, &(safe_div(((93 * global_values.trace_length)), 65536))).
+ pow156 = pow67 * pow155; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 2048))).
+ pow157 = pow58 * pow156; // pow(trace_generator, &(safe_div(((97 * global_values.trace_length)), 65536))).
+ pow158 = pow58 * pow157; // pow(trace_generator, &(safe_div(((49 * global_values.trace_length)), 32768))).
+ pow159 = pow58 * pow158; // pow(trace_generator, &(safe_div(((99 * global_values.trace_length)), 65536))).
+ pow160 = pow58 * pow159; // pow(trace_generator, &(safe_div(((25 * global_values.trace_length)), 16384))).
+ pow161 = pow58 * pow160; // pow(trace_generator, &(safe_div(((101 * global_values.trace_length)), 65536))).
+ pow162 = pow58 * pow161; // pow(trace_generator, &(safe_div(((51 * global_values.trace_length)), 32768))).
+ pow163 = pow58 * pow162; // pow(trace_generator, &(safe_div(((103 * global_values.trace_length)), 65536))).
+ pow164 = pow58 * pow163; // pow(trace_generator, &(safe_div(((13 * global_values.trace_length)), 8192))).
+ pow165 = pow58 * pow164; // pow(trace_generator, &(safe_div(((105 * global_values.trace_length)), 65536))).
+ pow166 = pow58 * pow165; // pow(trace_generator, &(safe_div(((53 * global_values.trace_length)), 32768))).
+ pow167 = pow58 * pow166; // pow(trace_generator, &(safe_div(((107 * global_values.trace_length)), 65536))).
+ pow168 = pow58 * pow167; // pow(trace_generator, &(safe_div(((27 * global_values.trace_length)), 16384))).
+ pow169 = pow58 * pow168; // pow(trace_generator, &(safe_div(((109 * global_values.trace_length)), 65536))).
+ pow170 = pow58 * pow169; // pow(trace_generator, &(safe_div(((55 * global_values.trace_length)), 32768))).
+ pow171 = pow58 * pow170; // pow(trace_generator, &(safe_div(((111 * global_values.trace_length)), 65536))).
+ pow172 = pow58 * pow171; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 4096))).
+ pow173 = pow58 * pow172; // pow(trace_generator, &(safe_div(((113 * global_values.trace_length)), 65536))).
+ pow174 = pow58 * pow173; // pow(trace_generator, &(safe_div(((57 * global_values.trace_length)), 32768))).
+ pow175 = pow58 * pow174; // pow(trace_generator, &(safe_div(((115 * global_values.trace_length)), 65536))).
+ pow176 = pow58 * pow175; // pow(trace_generator, &(safe_div(((29 * global_values.trace_length)), 16384))).
+ pow177 = pow58 * pow176; // pow(trace_generator, &(safe_div(((117 * global_values.trace_length)), 65536))).
+ pow178 = pow58 * pow177; // pow(trace_generator, &(safe_div(((59 * global_values.trace_length)), 32768))).
+ pow179 = pow58 * pow178; // pow(trace_generator, &(safe_div(((119 * global_values.trace_length)), 65536))).
+ pow180 = pow58 * pow179; // pow(trace_generator, &(safe_div(((15 * global_values.trace_length)), 8192))).
+ pow181 = pow58 * pow180; // pow(trace_generator, &(safe_div(((121 * global_values.trace_length)), 65536))).
+ pow182 = pow58 * pow181; // pow(trace_generator, &(safe_div(((61 * global_values.trace_length)), 32768))).
+ pow183 = pow58 * pow182; // pow(trace_generator, &(safe_div(((123 * global_values.trace_length)), 65536))).
+ pow184 = pow58 * pow183; // pow(trace_generator, &(safe_div(((31 * global_values.trace_length)), 16384))).
+ pow185 = pow58 * pow184; // pow(trace_generator, &(safe_div(((125 * global_values.trace_length)), 65536))).
+ pow186 = pow67 * pow185; // pow(trace_generator, &(safe_div(global_values.trace_length, 512))).
+ pow187 = pow58 * pow186; // pow(trace_generator, &(safe_div(((129 * global_values.trace_length)), 65536))).
+ pow188 = pow58 * pow187; // pow(trace_generator, &(safe_div(((65 * global_values.trace_length)), 32768))).
+ pow189 = pow58 * pow188; // pow(trace_generator, &(safe_div(((131 * global_values.trace_length)), 65536))).
+ pow190 = pow58 * pow189; // pow(trace_generator, &(safe_div(((33 * global_values.trace_length)), 16384))).
+ pow191 = pow58 * pow190; // pow(trace_generator, &(safe_div(((133 * global_values.trace_length)), 65536))).
+ pow192 = pow58 * pow191; // pow(trace_generator, &(safe_div(((67 * global_values.trace_length)), 32768))).
+ pow193 = pow58 * pow192; // pow(trace_generator, &(safe_div(((135 * global_values.trace_length)), 65536))).
+ pow194 = pow58 * pow193; // pow(trace_generator, &(safe_div(((17 * global_values.trace_length)), 8192))).
+ pow195 = pow58 * pow194; // pow(trace_generator, &(safe_div(((137 * global_values.trace_length)), 65536))).
+ pow196 = pow58 * pow195; // pow(trace_generator, &(safe_div(((69 * global_values.trace_length)), 32768))).
+ pow197 = pow58 * pow196; // pow(trace_generator, &(safe_div(((139 * global_values.trace_length)), 65536))).
+ pow198 = pow58 * pow197; // pow(trace_generator, &(safe_div(((35 * global_values.trace_length)), 16384))).
+ pow199 = pow58 * pow198; // pow(trace_generator, &(safe_div(((141 * global_values.trace_length)), 65536))).
+ pow200 = pow58 * pow199; // pow(trace_generator, &(safe_div(((71 * global_values.trace_length)), 32768))).
+ pow201 = pow58 * pow200; // pow(trace_generator, &(safe_div(((143 * global_values.trace_length)), 65536))).
+ pow202 = pow58 * pow201; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 4096))).
+ pow203 = pow58 * pow202; // pow(trace_generator, &(safe_div(((145 * global_values.trace_length)), 65536))).
+ pow204 = pow58 * pow203; // pow(trace_generator, &(safe_div(((73 * global_values.trace_length)), 32768))).
+ pow205 = pow58 * pow204; // pow(trace_generator, &(safe_div(((147 * global_values.trace_length)), 65536))).
+ pow206 = pow58 * pow205; // pow(trace_generator, &(safe_div(((37 * global_values.trace_length)), 16384))).
+ pow207 = pow58 * pow206; // pow(trace_generator, &(safe_div(((149 * global_values.trace_length)), 65536))).
+ pow208 = pow58 * pow207; // pow(trace_generator, &(safe_div(((75 * global_values.trace_length)), 32768))).
+ pow209 = pow58 * pow208; // pow(trace_generator, &(safe_div(((151 * global_values.trace_length)), 65536))).
+ pow210 = pow58 * pow209; // pow(trace_generator, &(safe_div(((19 * global_values.trace_length)), 8192))).
+ pow211 = pow58 * pow210; // pow(trace_generator, &(safe_div(((153 * global_values.trace_length)), 65536))).
+ pow212 = pow58 * pow211; // pow(trace_generator, &(safe_div(((77 * global_values.trace_length)), 32768))).
+ pow213 = pow58 * pow212; // pow(trace_generator, &(safe_div(((155 * global_values.trace_length)), 65536))).
+ pow214 = pow58 * pow213; // pow(trace_generator, &(safe_div(((39 * global_values.trace_length)), 16384))).
+ pow215 = pow58 * pow214; // pow(trace_generator, &(safe_div(((157 * global_values.trace_length)), 65536))).
+ pow216 = pow67 * pow215; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 2048))).
+ pow217 = pow58 * pow216; // pow(trace_generator, &(safe_div(((161 * global_values.trace_length)), 65536))).
+ pow218 = pow58 * pow217; // pow(trace_generator, &(safe_div(((81 * global_values.trace_length)), 32768))).
+ pow219 = pow58 * pow218; // pow(trace_generator, &(safe_div(((163 * global_values.trace_length)), 65536))).
+ pow220 = pow58 * pow219; // pow(trace_generator, &(safe_div(((41 * global_values.trace_length)), 16384))).
+ pow221 = pow58 * pow220; // pow(trace_generator, &(safe_div(((165 * global_values.trace_length)), 65536))).
+ pow222 = pow58 * pow221; // pow(trace_generator, &(safe_div(((83 * global_values.trace_length)), 32768))).
+ pow223 = pow58 * pow222; // pow(trace_generator, &(safe_div(((167 * global_values.trace_length)), 65536))).
+ pow224 = pow58 * pow223; // pow(trace_generator, &(safe_div(((21 * global_values.trace_length)), 8192))).
+ pow225 = pow58 * pow224; // pow(trace_generator, &(safe_div(((169 * global_values.trace_length)), 65536))).
+ pow226 = pow58 * pow225; // pow(trace_generator, &(safe_div(((85 * global_values.trace_length)), 32768))).
+ pow227 = pow58 * pow226; // pow(trace_generator, &(safe_div(((171 * global_values.trace_length)), 65536))).
+ pow228 = pow58 * pow227; // pow(trace_generator, &(safe_div(((43 * global_values.trace_length)), 16384))).
+ pow229 = pow58 * pow228; // pow(trace_generator, &(safe_div(((173 * global_values.trace_length)), 65536))).
+ pow230 = pow58 * pow229; // pow(trace_generator, &(safe_div(((87 * global_values.trace_length)), 32768))).
+ pow231 = pow58 * pow230; // pow(trace_generator, &(safe_div(((175 * global_values.trace_length)), 65536))).
+ pow232 = pow58 * pow231; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 4096))).
+ pow233 = pow58 * pow232; // pow(trace_generator, &(safe_div(((177 * global_values.trace_length)), 65536))).
+ pow234 = pow58 * pow233; // pow(trace_generator, &(safe_div(((89 * global_values.trace_length)), 32768))).
+ pow235 = pow58 * pow234; // pow(trace_generator, &(safe_div(((179 * global_values.trace_length)), 65536))).
+ pow236 = pow58 * pow235; // pow(trace_generator, &(safe_div(((45 * global_values.trace_length)), 16384))).
+ pow237 = pow58 * pow236; // pow(trace_generator, &(safe_div(((181 * global_values.trace_length)), 65536))).
+ pow238 = pow58 * pow237; // pow(trace_generator, &(safe_div(((91 * global_values.trace_length)), 32768))).
+ pow239 = pow58 * pow238; // pow(trace_generator, &(safe_div(((183 * global_values.trace_length)), 65536))).
+ pow240 = pow58 * pow239; // pow(trace_generator, &(safe_div(((23 * global_values.trace_length)), 8192))).
+ pow241 = pow58 * pow240; // pow(trace_generator, &(safe_div(((185 * global_values.trace_length)), 65536))).
+ pow242 = pow58 * pow241; // pow(trace_generator, &(safe_div(((93 * global_values.trace_length)), 32768))).
+ pow243 = pow58 * pow242; // pow(trace_generator, &(safe_div(((187 * global_values.trace_length)), 65536))).
+ pow244 = pow58 * pow243; // pow(trace_generator, &(safe_div(((47 * global_values.trace_length)), 16384))).
+ pow245 = pow58 * pow244; // pow(trace_generator, &(safe_div(((189 * global_values.trace_length)), 65536))).
+ pow246 = pow67 * pow245; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 1024))).
+ pow247 = pow58 * pow246; // pow(trace_generator, &(safe_div(((193 * global_values.trace_length)), 65536))).
+ pow248 = pow58 * pow247; // pow(trace_generator, &(safe_div(((97 * global_values.trace_length)), 32768))).
+ pow249 = pow58 * pow248; // pow(trace_generator, &(safe_div(((195 * global_values.trace_length)), 65536))).
+ pow250 = pow58 * pow249; // pow(trace_generator, &(safe_div(((49 * global_values.trace_length)), 16384))).
+ pow251 = pow58 * pow250; // pow(trace_generator, &(safe_div(((197 * global_values.trace_length)), 65536))).
+ pow252 = pow58 * pow251; // pow(trace_generator, &(safe_div(((99 * global_values.trace_length)), 32768))).
+ pow253 = pow58 * pow252; // pow(trace_generator, &(safe_div(((199 * global_values.trace_length)), 65536))).
+ pow254 = pow58 * pow253; // pow(trace_generator, &(safe_div(((25 * global_values.trace_length)), 8192))).
+ pow255 = pow58 * pow254; // pow(trace_generator, &(safe_div(((201 * global_values.trace_length)), 65536))).
+ pow256 = pow58 * pow255; // pow(trace_generator, &(safe_div(((101 * global_values.trace_length)), 32768))).
+ pow257 = pow58 * pow256; // pow(trace_generator, &(safe_div(((203 * global_values.trace_length)), 65536))).
+ pow258 = pow58 * pow257; // pow(trace_generator, &(safe_div(((51 * global_values.trace_length)), 16384))).
+ pow259 = pow58 * pow258; // pow(trace_generator, &(safe_div(((205 * global_values.trace_length)), 65536))).
+ pow260 = pow58 * pow259; // pow(trace_generator, &(safe_div(((103 * global_values.trace_length)), 32768))).
+ pow261 = pow58 * pow260; // pow(trace_generator, &(safe_div(((207 * global_values.trace_length)), 65536))).
+ pow262 = pow58 * pow261; // pow(trace_generator, &(safe_div(((13 * global_values.trace_length)), 4096))).
+ pow263 = pow58 * pow262; // pow(trace_generator, &(safe_div(((209 * global_values.trace_length)), 65536))).
+ pow264 = pow58 * pow263; // pow(trace_generator, &(safe_div(((105 * global_values.trace_length)), 32768))).
+ pow265 = pow58 * pow264; // pow(trace_generator, &(safe_div(((211 * global_values.trace_length)), 65536))).
+ pow266 = pow58 * pow265; // pow(trace_generator, &(safe_div(((53 * global_values.trace_length)), 16384))).
+ pow267 = pow58 * pow266; // pow(trace_generator, &(safe_div(((213 * global_values.trace_length)), 65536))).
+ pow268 = pow58 * pow267; // pow(trace_generator, &(safe_div(((107 * global_values.trace_length)), 32768))).
+ pow269 = pow58 * pow268; // pow(trace_generator, &(safe_div(((215 * global_values.trace_length)), 65536))).
+ pow270 = pow58 * pow269; // pow(trace_generator, &(safe_div(((27 * global_values.trace_length)), 8192))).
+ pow271 = pow58 * pow270; // pow(trace_generator, &(safe_div(((217 * global_values.trace_length)), 65536))).
+ pow272 = pow58 * pow271; // pow(trace_generator, &(safe_div(((109 * global_values.trace_length)), 32768))).
+ pow273 = pow58 * pow272; // pow(trace_generator, &(safe_div(((219 * global_values.trace_length)), 65536))).
+ pow274 = pow58 * pow273; // pow(trace_generator, &(safe_div(((55 * global_values.trace_length)), 16384))).
+ pow275 = pow58 * pow274; // pow(trace_generator, &(safe_div(((221 * global_values.trace_length)), 65536))).
+ pow276 = pow67 * pow275; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 2048))).
+ pow277 = pow58 * pow276; // pow(trace_generator, &(safe_div(((225 * global_values.trace_length)), 65536))).
+ pow278 = pow58 * pow277; // pow(trace_generator, &(safe_div(((113 * global_values.trace_length)), 32768))).
+ pow279 = pow58 * pow278; // pow(trace_generator, &(safe_div(((227 * global_values.trace_length)), 65536))).
+ pow280 = pow58 * pow279; // pow(trace_generator, &(safe_div(((57 * global_values.trace_length)), 16384))).
+ pow281 = pow58 * pow280; // pow(trace_generator, &(safe_div(((229 * global_values.trace_length)), 65536))).
+ pow282 = pow58 * pow281; // pow(trace_generator, &(safe_div(((115 * global_values.trace_length)), 32768))).
+ pow283 = pow58 * pow282; // pow(trace_generator, &(safe_div(((231 * global_values.trace_length)), 65536))).
+ pow284 = pow58 * pow283; // pow(trace_generator, &(safe_div(((29 * global_values.trace_length)), 8192))).
+ pow285 = pow58 * pow284; // pow(trace_generator, &(safe_div(((233 * global_values.trace_length)), 65536))).
+ pow286 = pow58 * pow285; // pow(trace_generator, &(safe_div(((117 * global_values.trace_length)), 32768))).
+ pow287 = pow58 * pow286; // pow(trace_generator, &(safe_div(((235 * global_values.trace_length)), 65536))).
+ pow288 = pow58 * pow287; // pow(trace_generator, &(safe_div(((59 * global_values.trace_length)), 16384))).
+ pow289 = pow58 * pow288; // pow(trace_generator, &(safe_div(((237 * global_values.trace_length)), 65536))).
+ pow290 = pow58 * pow289; // pow(trace_generator, &(safe_div(((119 * global_values.trace_length)), 32768))).
+ pow291 = pow58 * pow290; // pow(trace_generator, &(safe_div(((239 * global_values.trace_length)), 65536))).
+ pow292 = pow58 * pow291; // pow(trace_generator, &(safe_div(((15 * global_values.trace_length)), 4096))).
+ pow293 = pow58 * pow292; // pow(trace_generator, &(safe_div(((241 * global_values.trace_length)), 65536))).
+ pow294 = pow58 * pow293; // pow(trace_generator, &(safe_div(((121 * global_values.trace_length)), 32768))).
+ pow295 = pow58 * pow294; // pow(trace_generator, &(safe_div(((243 * global_values.trace_length)), 65536))).
+ pow296 = pow58 * pow295; // pow(trace_generator, &(safe_div(((61 * global_values.trace_length)), 16384))).
+ pow297 = pow58 * pow296; // pow(trace_generator, &(safe_div(((245 * global_values.trace_length)), 65536))).
+ pow298 = pow58 * pow297; // pow(trace_generator, &(safe_div(((123 * global_values.trace_length)), 32768))).
+ pow299 = pow58 * pow298; // pow(trace_generator, &(safe_div(((247 * global_values.trace_length)), 65536))).
+ pow300 = pow58 * pow299; // pow(trace_generator, &(safe_div(((31 * global_values.trace_length)), 8192))).
+ pow301 = pow58 * pow300; // pow(trace_generator, &(safe_div(((249 * global_values.trace_length)), 65536))).
+ pow302 = pow58 * pow301; // pow(trace_generator, &(safe_div(((125 * global_values.trace_length)), 32768))).
+ pow303 = pow58 * pow302; // pow(trace_generator, &(safe_div(((251 * global_values.trace_length)), 65536))).
+ pow304 = pow58 * pow303; // pow(trace_generator, &(safe_div(((63 * global_values.trace_length)), 16384))).
+ pow305 = pow58 * pow304; // pow(trace_generator, &(safe_div(((253 * global_values.trace_length)), 65536))).
+ pow306 = pow67 * pow305; // pow(trace_generator, &(safe_div(global_values.trace_length, 256))).
+ pow307 = pow58 * pow306; // pow(trace_generator, &(safe_div(((257 * global_values.trace_length)), 65536))).
+ pow308 = pow58 * pow307; // pow(trace_generator, &(safe_div(((129 * global_values.trace_length)), 32768))).
+ pow309 = pow58 * pow308; // pow(trace_generator, &(safe_div(((259 * global_values.trace_length)), 65536))).
+ pow310 = pow58 * pow309; // pow(trace_generator, &(safe_div(((65 * global_values.trace_length)), 16384))).
+ pow311 = pow58 * pow310; // pow(trace_generator, &(safe_div(((261 * global_values.trace_length)), 65536))).
+ pow312 = pow58 * pow311; // pow(trace_generator, &(safe_div(((131 * global_values.trace_length)), 32768))).
+ pow313 = pow58 * pow312; // pow(trace_generator, &(safe_div(((263 * global_values.trace_length)), 65536))).
+ pow314 = pow58 * pow313; // pow(trace_generator, &(safe_div(((33 * global_values.trace_length)), 8192))).
+ pow315 = pow58 * pow314; // pow(trace_generator, &(safe_div(((265 * global_values.trace_length)), 65536))).
+ pow316 = pow58 * pow315; // pow(trace_generator, &(safe_div(((133 * global_values.trace_length)), 32768))).
+ pow317 = pow58 * pow316; // pow(trace_generator, &(safe_div(((267 * global_values.trace_length)), 65536))).
+ pow318 = pow58 * pow317; // pow(trace_generator, &(safe_div(((67 * global_values.trace_length)), 16384))).
+ pow319 = pow58 * pow318; // pow(trace_generator, &(safe_div(((269 * global_values.trace_length)), 65536))).
+ pow320 = pow58 * pow319; // pow(trace_generator, &(safe_div(((135 * global_values.trace_length)), 32768))).
+ pow321 = pow58 * pow320; // pow(trace_generator, &(safe_div(((271 * global_values.trace_length)), 65536))).
+ pow322 = pow58 * pow321; // pow(trace_generator, &(safe_div(((17 * global_values.trace_length)), 4096))).
+ pow323 = pow58 * pow322; // pow(trace_generator, &(safe_div(((273 * global_values.trace_length)), 65536))).
+ pow324 = pow58 * pow323; // pow(trace_generator, &(safe_div(((137 * global_values.trace_length)), 32768))).
+ pow325 = pow58 * pow324; // pow(trace_generator, &(safe_div(((275 * global_values.trace_length)), 65536))).
+ pow326 = pow58 * pow325; // pow(trace_generator, &(safe_div(((69 * global_values.trace_length)), 16384))).
+ pow327 = pow58 * pow326; // pow(trace_generator, &(safe_div(((277 * global_values.trace_length)), 65536))).
+ pow328 = pow58 * pow327; // pow(trace_generator, &(safe_div(((139 * global_values.trace_length)), 32768))).
+ pow329 = pow58 * pow328; // pow(trace_generator, &(safe_div(((279 * global_values.trace_length)), 65536))).
+ pow330 = pow58 * pow329; // pow(trace_generator, &(safe_div(((35 * global_values.trace_length)), 8192))).
+ pow331 = pow58 * pow330; // pow(trace_generator, &(safe_div(((281 * global_values.trace_length)), 65536))).
+ pow332 = pow58 * pow331; // pow(trace_generator, &(safe_div(((141 * global_values.trace_length)), 32768))).
+ pow333 = pow58 * pow332; // pow(trace_generator, &(safe_div(((283 * global_values.trace_length)), 65536))).
+ pow334 = pow58 * pow333; // pow(trace_generator, &(safe_div(((71 * global_values.trace_length)), 16384))).
+ pow335 = pow58 * pow334; // pow(trace_generator, &(safe_div(((285 * global_values.trace_length)), 65536))).
+ pow336 = pow67 * pow335; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 2048))).
+ pow337 = pow58 * pow336; // pow(trace_generator, &(safe_div(((289 * global_values.trace_length)), 65536))).
+ pow338 = pow58 * pow337; // pow(trace_generator, &(safe_div(((145 * global_values.trace_length)), 32768))).
+ pow339 = pow58 * pow338; // pow(trace_generator, &(safe_div(((291 * global_values.trace_length)), 65536))).
+ pow340 = pow58 * pow339; // pow(trace_generator, &(safe_div(((73 * global_values.trace_length)), 16384))).
+ pow341 = pow58 * pow340; // pow(trace_generator, &(safe_div(((293 * global_values.trace_length)), 65536))).
+ pow342 = pow58 * pow341; // pow(trace_generator, &(safe_div(((147 * global_values.trace_length)), 32768))).
+ pow343 = pow58 * pow342; // pow(trace_generator, &(safe_div(((295 * global_values.trace_length)), 65536))).
+ pow344 = pow58 * pow343; // pow(trace_generator, &(safe_div(((37 * global_values.trace_length)), 8192))).
+ pow345 = pow58 * pow344; // pow(trace_generator, &(safe_div(((297 * global_values.trace_length)), 65536))).
+ pow346 = pow58 * pow345; // pow(trace_generator, &(safe_div(((149 * global_values.trace_length)), 32768))).
+ pow347 = pow58 * pow346; // pow(trace_generator, &(safe_div(((299 * global_values.trace_length)), 65536))).
+ pow348 = pow58 * pow347; // pow(trace_generator, &(safe_div(((75 * global_values.trace_length)), 16384))).
+ pow349 = pow58 * pow348; // pow(trace_generator, &(safe_div(((301 * global_values.trace_length)), 65536))).
+ pow350 = pow58 * pow349; // pow(trace_generator, &(safe_div(((151 * global_values.trace_length)), 32768))).
+ pow351 = pow58 * pow350; // pow(trace_generator, &(safe_div(((303 * global_values.trace_length)), 65536))).
+ pow352 = pow58 * pow351; // pow(trace_generator, &(safe_div(((19 * global_values.trace_length)), 4096))).
+ pow353 = pow58 * pow352; // pow(trace_generator, &(safe_div(((305 * global_values.trace_length)), 65536))).
+ pow354 = pow58 * pow353; // pow(trace_generator, &(safe_div(((153 * global_values.trace_length)), 32768))).
+ pow355 = pow58 * pow354; // pow(trace_generator, &(safe_div(((307 * global_values.trace_length)), 65536))).
+ pow356 = pow58 * pow355; // pow(trace_generator, &(safe_div(((77 * global_values.trace_length)), 16384))).
+ pow357 = pow58 * pow356; // pow(trace_generator, &(safe_div(((309 * global_values.trace_length)), 65536))).
+ pow358 = pow58 * pow357; // pow(trace_generator, &(safe_div(((155 * global_values.trace_length)), 32768))).
+ pow359 = pow58 * pow358; // pow(trace_generator, &(safe_div(((311 * global_values.trace_length)), 65536))).
+ pow360 = pow58 * pow359; // pow(trace_generator, &(safe_div(((39 * global_values.trace_length)), 8192))).
+ pow361 = pow58 * pow360; // pow(trace_generator, &(safe_div(((313 * global_values.trace_length)), 65536))).
+ pow362 = pow58 * pow361; // pow(trace_generator, &(safe_div(((157 * global_values.trace_length)), 32768))).
+ pow363 = pow58 * pow362; // pow(trace_generator, &(safe_div(((315 * global_values.trace_length)), 65536))).
+ pow364 = pow58 * pow363; // pow(trace_generator, &(safe_div(((79 * global_values.trace_length)), 16384))).
+ pow365 = pow58 * pow364; // pow(trace_generator, &(safe_div(((317 * global_values.trace_length)), 65536))).
+ pow366 = pow67 * pow365; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 1024))).
+ pow367 = pow58 * pow366; // pow(trace_generator, &(safe_div(((321 * global_values.trace_length)), 65536))).
+ pow368 = pow58 * pow367; // pow(trace_generator, &(safe_div(((161 * global_values.trace_length)), 32768))).
+ pow369 = pow58 * pow368; // pow(trace_generator, &(safe_div(((323 * global_values.trace_length)), 65536))).
+ pow370 = pow58 * pow369; // pow(trace_generator, &(safe_div(((81 * global_values.trace_length)), 16384))).
+ pow371 = pow58 * pow370; // pow(trace_generator, &(safe_div(((325 * global_values.trace_length)), 65536))).
+ pow372 = pow58 * pow371; // pow(trace_generator, &(safe_div(((163 * global_values.trace_length)), 32768))).
+ pow373 = pow58 * pow372; // pow(trace_generator, &(safe_div(((327 * global_values.trace_length)), 65536))).
+ pow374 = pow58 * pow373; // pow(trace_generator, &(safe_div(((41 * global_values.trace_length)), 8192))).
+ pow375 = pow58 * pow374; // pow(trace_generator, &(safe_div(((329 * global_values.trace_length)), 65536))).
+ pow376 = pow58 * pow375; // pow(trace_generator, &(safe_div(((165 * global_values.trace_length)), 32768))).
+ pow377 = pow58 * pow376; // pow(trace_generator, &(safe_div(((331 * global_values.trace_length)), 65536))).
+ pow378 = pow58 * pow377; // pow(trace_generator, &(safe_div(((83 * global_values.trace_length)), 16384))).
+ pow379 = pow58 * pow378; // pow(trace_generator, &(safe_div(((333 * global_values.trace_length)), 65536))).
+ pow380 = pow58 * pow379; // pow(trace_generator, &(safe_div(((167 * global_values.trace_length)), 32768))).
+ pow381 = pow58 * pow380; // pow(trace_generator, &(safe_div(((335 * global_values.trace_length)), 65536))).
+ pow382 = pow58 * pow381; // pow(trace_generator, &(safe_div(((21 * global_values.trace_length)), 4096))).
+ pow383 = pow58 * pow382; // pow(trace_generator, &(safe_div(((337 * global_values.trace_length)), 65536))).
+ pow384 = pow58 * pow383; // pow(trace_generator, &(safe_div(((169 * global_values.trace_length)), 32768))).
+ pow385 = pow58 * pow384; // pow(trace_generator, &(safe_div(((339 * global_values.trace_length)), 65536))).
+ pow386 = pow58 * pow385; // pow(trace_generator, &(safe_div(((85 * global_values.trace_length)), 16384))).
+ pow387 = pow58 * pow386; // pow(trace_generator, &(safe_div(((341 * global_values.trace_length)), 65536))).
+ pow388 = pow58 * pow387; // pow(trace_generator, &(safe_div(((171 * global_values.trace_length)), 32768))).
+ pow389 = pow58 * pow388; // pow(trace_generator, &(safe_div(((343 * global_values.trace_length)), 65536))).
+ pow390 = pow58 * pow389; // pow(trace_generator, &(safe_div(((43 * global_values.trace_length)), 8192))).
+ pow391 = pow58 * pow390; // pow(trace_generator, &(safe_div(((345 * global_values.trace_length)), 65536))).
+ pow392 = pow58 * pow391; // pow(trace_generator, &(safe_div(((173 * global_values.trace_length)), 32768))).
+ pow393 = pow58 * pow392; // pow(trace_generator, &(safe_div(((347 * global_values.trace_length)), 65536))).
+ pow394 = pow58 * pow393; // pow(trace_generator, &(safe_div(((87 * global_values.trace_length)), 16384))).
+ pow395 = pow58 * pow394; // pow(trace_generator, &(safe_div(((349 * global_values.trace_length)), 65536))).
+ pow396 = pow67 * pow395; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 2048))).
+ pow397 = pow58 * pow396; // pow(trace_generator, &(safe_div(((353 * global_values.trace_length)), 65536))).
+ pow398 = pow58 * pow397; // pow(trace_generator, &(safe_div(((177 * global_values.trace_length)), 32768))).
+ pow399 = pow58 * pow398; // pow(trace_generator, &(safe_div(((355 * global_values.trace_length)), 65536))).
+ pow400 = pow58 * pow399; // pow(trace_generator, &(safe_div(((89 * global_values.trace_length)), 16384))).
+ pow401 = pow58 * pow400; // pow(trace_generator, &(safe_div(((357 * global_values.trace_length)), 65536))).
+ pow402 = pow58 * pow401; // pow(trace_generator, &(safe_div(((179 * global_values.trace_length)), 32768))).
+ pow403 = pow58 * pow402; // pow(trace_generator, &(safe_div(((359 * global_values.trace_length)), 65536))).
+ pow404 = pow58 * pow403; // pow(trace_generator, &(safe_div(((45 * global_values.trace_length)), 8192))).
+ pow405 = pow58 * pow404; // pow(trace_generator, &(safe_div(((361 * global_values.trace_length)), 65536))).
+ pow406 = pow58 * pow405; // pow(trace_generator, &(safe_div(((181 * global_values.trace_length)), 32768))).
+ pow407 = pow58 * pow406; // pow(trace_generator, &(safe_div(((363 * global_values.trace_length)), 65536))).
+ pow408 = pow58 * pow407; // pow(trace_generator, &(safe_div(((91 * global_values.trace_length)), 16384))).
+ pow409 = pow58 * pow408; // pow(trace_generator, &(safe_div(((365 * global_values.trace_length)), 65536))).
+ pow410 = pow58 * pow409; // pow(trace_generator, &(safe_div(((183 * global_values.trace_length)), 32768))).
+ pow411 = pow58 * pow410; // pow(trace_generator, &(safe_div(((367 * global_values.trace_length)), 65536))).
+ pow412 = pow58 * pow411; // pow(trace_generator, &(safe_div(((23 * global_values.trace_length)), 4096))).
+ pow413 = pow58 * pow412; // pow(trace_generator, &(safe_div(((369 * global_values.trace_length)), 65536))).
+ pow414 = pow58 * pow413; // pow(trace_generator, &(safe_div(((185 * global_values.trace_length)), 32768))).
+ pow415 = pow58 * pow414; // pow(trace_generator, &(safe_div(((371 * global_values.trace_length)), 65536))).
+ pow416 = pow58 * pow415; // pow(trace_generator, &(safe_div(((93 * global_values.trace_length)), 16384))).
+ pow417 = pow58 * pow416; // pow(trace_generator, &(safe_div(((373 * global_values.trace_length)), 65536))).
+ pow418 = pow58 * pow417; // pow(trace_generator, &(safe_div(((187 * global_values.trace_length)), 32768))).
+ pow419 = pow58 * pow418; // pow(trace_generator, &(safe_div(((375 * global_values.trace_length)), 65536))).
+ pow420 = pow58 * pow419; // pow(trace_generator, &(safe_div(((47 * global_values.trace_length)), 8192))).
+ pow421 = pow58 * pow420; // pow(trace_generator, &(safe_div(((377 * global_values.trace_length)), 65536))).
+ pow422 = pow58 * pow421; // pow(trace_generator, &(safe_div(((189 * global_values.trace_length)), 32768))).
+ pow423 = pow58 * pow422; // pow(trace_generator, &(safe_div(((379 * global_values.trace_length)), 65536))).
+ pow424 = pow58 * pow423; // pow(trace_generator, &(safe_div(((95 * global_values.trace_length)), 16384))).
+ pow425 = pow58 * pow424; // pow(trace_generator, &(safe_div(((381 * global_values.trace_length)), 65536))).
+ pow426 = pow67 * pow425; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 512))).
+ pow427 = pow58 * pow426; // pow(trace_generator, &(safe_div(((385 * global_values.trace_length)), 65536))).
+ pow428 = pow58 * pow427; // pow(trace_generator, &(safe_div(((193 * global_values.trace_length)), 32768))).
+ pow429 = pow58 * pow428; // pow(trace_generator, &(safe_div(((387 * global_values.trace_length)), 65536))).
+ pow430 = pow58 * pow429; // pow(trace_generator, &(safe_div(((97 * global_values.trace_length)), 16384))).
+ pow431 = pow58 * pow430; // pow(trace_generator, &(safe_div(((389 * global_values.trace_length)), 65536))).
+ pow432 = pow58 * pow431; // pow(trace_generator, &(safe_div(((195 * global_values.trace_length)), 32768))).
+ pow433 = pow58 * pow432; // pow(trace_generator, &(safe_div(((391 * global_values.trace_length)), 65536))).
+ pow434 = pow58 * pow433; // pow(trace_generator, &(safe_div(((49 * global_values.trace_length)), 8192))).
+ pow435 = pow58 * pow434; // pow(trace_generator, &(safe_div(((393 * global_values.trace_length)), 65536))).
+ pow436 = pow58 * pow435; // pow(trace_generator, &(safe_div(((197 * global_values.trace_length)), 32768))).
+ pow437 = pow58 * pow436; // pow(trace_generator, &(safe_div(((395 * global_values.trace_length)), 65536))).
+ pow438 = pow58 * pow437; // pow(trace_generator, &(safe_div(((99 * global_values.trace_length)), 16384))).
+ pow439 = pow58 * pow438; // pow(trace_generator, &(safe_div(((397 * global_values.trace_length)), 65536))).
+ pow440 = pow58 * pow439; // pow(trace_generator, &(safe_div(((199 * global_values.trace_length)), 32768))).
+ pow441 = pow58 * pow440; // pow(trace_generator, &(safe_div(((399 * global_values.trace_length)), 65536))).
+ pow442 = pow58 * pow441; // pow(trace_generator, &(safe_div(((25 * global_values.trace_length)), 4096))).
+ pow443 = pow58 * pow442; // pow(trace_generator, &(safe_div(((401 * global_values.trace_length)), 65536))).
+ pow444 = pow58 * pow443; // pow(trace_generator, &(safe_div(((201 * global_values.trace_length)), 32768))).
+ pow445 = pow58 * pow444; // pow(trace_generator, &(safe_div(((403 * global_values.trace_length)), 65536))).
+ pow446 = pow58 * pow445; // pow(trace_generator, &(safe_div(((101 * global_values.trace_length)), 16384))).
+ pow447 = pow58 * pow446; // pow(trace_generator, &(safe_div(((405 * global_values.trace_length)), 65536))).
+ pow448 = pow58 * pow447; // pow(trace_generator, &(safe_div(((203 * global_values.trace_length)), 32768))).
+ pow449 = pow58 * pow448; // pow(trace_generator, &(safe_div(((407 * global_values.trace_length)), 65536))).
+ pow450 = pow58 * pow449; // pow(trace_generator, &(safe_div(((51 * global_values.trace_length)), 8192))).
+ pow451 = pow58 * pow450; // pow(trace_generator, &(safe_div(((409 * global_values.trace_length)), 65536))).
+ pow452 = pow58 * pow451; // pow(trace_generator, &(safe_div(((205 * global_values.trace_length)), 32768))).
+ pow453 = pow58 * pow452; // pow(trace_generator, &(safe_div(((411 * global_values.trace_length)), 65536))).
+ pow454 = pow58 * pow453; // pow(trace_generator, &(safe_div(((103 * global_values.trace_length)), 16384))).
+ pow455 = pow58 * pow454; // pow(trace_generator, &(safe_div(((413 * global_values.trace_length)), 65536))).
+ pow456 = pow67 * pow455; // pow(trace_generator, &(safe_div(((13 * global_values.trace_length)), 2048))).
+ pow457 = pow58 * pow456; // pow(trace_generator, &(safe_div(((417 * global_values.trace_length)), 65536))).
+ pow458 = pow58 * pow457; // pow(trace_generator, &(safe_div(((209 * global_values.trace_length)), 32768))).
+ pow459 = pow58 * pow458; // pow(trace_generator, &(safe_div(((419 * global_values.trace_length)), 65536))).
+ pow460 = pow58 * pow459; // pow(trace_generator, &(safe_div(((105 * global_values.trace_length)), 16384))).
+ pow461 = pow58 * pow460; // pow(trace_generator, &(safe_div(((421 * global_values.trace_length)), 65536))).
+ pow462 = pow58 * pow461; // pow(trace_generator, &(safe_div(((211 * global_values.trace_length)), 32768))).
+ pow463 = pow58 * pow462; // pow(trace_generator, &(safe_div(((423 * global_values.trace_length)), 65536))).
+ pow464 = pow58 * pow463; // pow(trace_generator, &(safe_div(((53 * global_values.trace_length)), 8192))).
+ pow465 = pow58 * pow464; // pow(trace_generator, &(safe_div(((425 * global_values.trace_length)), 65536))).
+ pow466 = pow58 * pow465; // pow(trace_generator, &(safe_div(((213 * global_values.trace_length)), 32768))).
+ pow467 = pow58 * pow466; // pow(trace_generator, &(safe_div(((427 * global_values.trace_length)), 65536))).
+ pow468 = pow58 * pow467; // pow(trace_generator, &(safe_div(((107 * global_values.trace_length)), 16384))).
+ pow469 = pow58 * pow468; // pow(trace_generator, &(safe_div(((429 * global_values.trace_length)), 65536))).
+ pow470 = pow58 * pow469; // pow(trace_generator, &(safe_div(((215 * global_values.trace_length)), 32768))).
+ pow471 = pow58 * pow470; // pow(trace_generator, &(safe_div(((431 * global_values.trace_length)), 65536))).
+ pow472 = pow58 * pow471; // pow(trace_generator, &(safe_div(((27 * global_values.trace_length)), 4096))).
+ pow473 = pow58 * pow472; // pow(trace_generator, &(safe_div(((433 * global_values.trace_length)), 65536))).
+ pow474 = pow58 * pow473; // pow(trace_generator, &(safe_div(((217 * global_values.trace_length)), 32768))).
+ pow475 = pow58 * pow474; // pow(trace_generator, &(safe_div(((435 * global_values.trace_length)), 65536))).
+ pow476 = pow58 * pow475; // pow(trace_generator, &(safe_div(((109 * global_values.trace_length)), 16384))).
+ pow477 = pow58 * pow476; // pow(trace_generator, &(safe_div(((437 * global_values.trace_length)), 65536))).
+ pow478 = pow58 * pow477; // pow(trace_generator, &(safe_div(((219 * global_values.trace_length)), 32768))).
+ pow479 = pow58 * pow478; // pow(trace_generator, &(safe_div(((439 * global_values.trace_length)), 65536))).
+ pow480 = pow58 * pow479; // pow(trace_generator, &(safe_div(((55 * global_values.trace_length)), 8192))).
+ pow481 = pow58 * pow480; // pow(trace_generator, &(safe_div(((441 * global_values.trace_length)), 65536))).
+ pow482 = pow58 * pow481; // pow(trace_generator, &(safe_div(((221 * global_values.trace_length)), 32768))).
+ pow483 = pow58 * pow482; // pow(trace_generator, &(safe_div(((443 * global_values.trace_length)), 65536))).
+ pow484 = pow58 * pow483; // pow(trace_generator, &(safe_div(((111 * global_values.trace_length)), 16384))).
+ pow485 = pow58 * pow484; // pow(trace_generator, &(safe_div(((445 * global_values.trace_length)), 65536))).
+ pow486 = pow67 * pow485; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 1024))).
+ pow487 = pow58 * pow486; // pow(trace_generator, &(safe_div(((449 * global_values.trace_length)), 65536))).
+ pow488 = pow58 * pow487; // pow(trace_generator, &(safe_div(((225 * global_values.trace_length)), 32768))).
+ pow489 = pow58 * pow488; // pow(trace_generator, &(safe_div(((451 * global_values.trace_length)), 65536))).
+ pow490 = pow58 * pow489; // pow(trace_generator, &(safe_div(((113 * global_values.trace_length)), 16384))).
+ pow491 = pow58 * pow490; // pow(trace_generator, &(safe_div(((453 * global_values.trace_length)), 65536))).
+ pow492 = pow58 * pow491; // pow(trace_generator, &(safe_div(((227 * global_values.trace_length)), 32768))).
+ pow493 = pow58 * pow492; // pow(trace_generator, &(safe_div(((455 * global_values.trace_length)), 65536))).
+ pow494 = pow58 * pow493; // pow(trace_generator, &(safe_div(((57 * global_values.trace_length)), 8192))).
+ pow495 = pow58 * pow494; // pow(trace_generator, &(safe_div(((457 * global_values.trace_length)), 65536))).
+ pow496 = pow58 * pow495; // pow(trace_generator, &(safe_div(((229 * global_values.trace_length)), 32768))).
+ pow497 = pow58 * pow496; // pow(trace_generator, &(safe_div(((459 * global_values.trace_length)), 65536))).
+ pow498 = pow58 * pow497; // pow(trace_generator, &(safe_div(((115 * global_values.trace_length)), 16384))).
+ pow499 = pow58 * pow498; // pow(trace_generator, &(safe_div(((461 * global_values.trace_length)), 65536))).
+ pow500 = pow58 * pow499; // pow(trace_generator, &(safe_div(((231 * global_values.trace_length)), 32768))).
+ pow501 = pow58 * pow500; // pow(trace_generator, &(safe_div(((463 * global_values.trace_length)), 65536))).
+ pow502 = pow58 * pow501; // pow(trace_generator, &(safe_div(((29 * global_values.trace_length)), 4096))).
+ pow503 = pow58 * pow502; // pow(trace_generator, &(safe_div(((465 * global_values.trace_length)), 65536))).
+ pow504 = pow58 * pow503; // pow(trace_generator, &(safe_div(((233 * global_values.trace_length)), 32768))).
+ pow505 = pow58 * pow504; // pow(trace_generator, &(safe_div(((467 * global_values.trace_length)), 65536))).
+ pow506 = pow58 * pow505; // pow(trace_generator, &(safe_div(((117 * global_values.trace_length)), 16384))).
+ pow507 = pow58 * pow506; // pow(trace_generator, &(safe_div(((469 * global_values.trace_length)), 65536))).
+ pow508 = pow58 * pow507; // pow(trace_generator, &(safe_div(((235 * global_values.trace_length)), 32768))).
+ pow509 = pow58 * pow508; // pow(trace_generator, &(safe_div(((471 * global_values.trace_length)), 65536))).
+ pow510 = pow58 * pow509; // pow(trace_generator, &(safe_div(((59 * global_values.trace_length)), 8192))).
+ pow511 = pow58 * pow510; // pow(trace_generator, &(safe_div(((473 * global_values.trace_length)), 65536))).
+ pow512 = pow58 * pow511; // pow(trace_generator, &(safe_div(((237 * global_values.trace_length)), 32768))).
+ pow513 = pow58 * pow512; // pow(trace_generator, &(safe_div(((475 * global_values.trace_length)), 65536))).
+ pow514 = pow58 * pow513; // pow(trace_generator, &(safe_div(((119 * global_values.trace_length)), 16384))).
+ pow515 = pow58 * pow514; // pow(trace_generator, &(safe_div(((477 * global_values.trace_length)), 65536))).
+ pow516 = pow67 * pow515; // pow(trace_generator, &(safe_div(((15 * global_values.trace_length)), 2048))).
+ pow517 = pow58 * pow516; // pow(trace_generator, &(safe_div(((481 * global_values.trace_length)), 65536))).
+ pow518 = pow58 * pow517; // pow(trace_generator, &(safe_div(((241 * global_values.trace_length)), 32768))).
+ pow519 = pow58 * pow518; // pow(trace_generator, &(safe_div(((483 * global_values.trace_length)), 65536))).
+ pow520 = pow58 * pow519; // pow(trace_generator, &(safe_div(((121 * global_values.trace_length)), 16384))).
+ pow521 = pow58 * pow520; // pow(trace_generator, &(safe_div(((485 * global_values.trace_length)), 65536))).
+ pow522 = pow58 * pow521; // pow(trace_generator, &(safe_div(((243 * global_values.trace_length)), 32768))).
+ pow523 = pow58 * pow522; // pow(trace_generator, &(safe_div(((487 * global_values.trace_length)), 65536))).
+ pow524 = pow58 * pow523; // pow(trace_generator, &(safe_div(((61 * global_values.trace_length)), 8192))).
+ pow525 = pow58 * pow524; // pow(trace_generator, &(safe_div(((489 * global_values.trace_length)), 65536))).
+ pow526 = pow58 * pow525; // pow(trace_generator, &(safe_div(((245 * global_values.trace_length)), 32768))).
+ pow527 = pow58 * pow526; // pow(trace_generator, &(safe_div(((491 * global_values.trace_length)), 65536))).
+ pow528 = pow58 * pow527; // pow(trace_generator, &(safe_div(((123 * global_values.trace_length)), 16384))).
+ pow529 = pow58 * pow528; // pow(trace_generator, &(safe_div(((493 * global_values.trace_length)), 65536))).
+ pow530 = pow58 * pow529; // pow(trace_generator, &(safe_div(((247 * global_values.trace_length)), 32768))).
+ pow531 = pow58 * pow530; // pow(trace_generator, &(safe_div(((495 * global_values.trace_length)), 65536))).
+ pow532 = pow58 * pow531; // pow(trace_generator, &(safe_div(((31 * global_values.trace_length)), 4096))).
+ pow533 = pow58 * pow532; // pow(trace_generator, &(safe_div(((497 * global_values.trace_length)), 65536))).
+ pow534 = pow58 * pow533; // pow(trace_generator, &(safe_div(((249 * global_values.trace_length)), 32768))).
+ pow535 = pow58 * pow534; // pow(trace_generator, &(safe_div(((499 * global_values.trace_length)), 65536))).
+ pow536 = pow58 * pow535; // pow(trace_generator, &(safe_div(((125 * global_values.trace_length)), 16384))).
+ pow537 = pow58 * pow536; // pow(trace_generator, &(safe_div(((501 * global_values.trace_length)), 65536))).
+ pow538 = pow58 * pow537; // pow(trace_generator, &(safe_div(((251 * global_values.trace_length)), 32768))).
+ pow539 = pow58 * pow538; // pow(trace_generator, &(safe_div(((503 * global_values.trace_length)), 65536))).
+ pow540 = pow58 * pow539; // pow(trace_generator, &(safe_div(((63 * global_values.trace_length)), 8192))).
+ pow541 = pow58 * pow540; // pow(trace_generator, &(safe_div(((505 * global_values.trace_length)), 65536))).
+ pow542 = pow58 * pow541; // pow(trace_generator, &(safe_div(((253 * global_values.trace_length)), 32768))).
+ pow543 = pow58 * pow542; // pow(trace_generator, &(safe_div(((507 * global_values.trace_length)), 65536))).
+ pow544 = pow58 * pow543; // pow(trace_generator, &(safe_div(((127 * global_values.trace_length)), 16384))).
+ pow545 = pow58 * pow544; // pow(trace_generator, &(safe_div(((509 * global_values.trace_length)), 65536))).
+ pow546 = pow67 * pow545; // pow(trace_generator, &(safe_div(global_values.trace_length, 128))).
+ pow547 = pow58 * pow546; // pow(trace_generator, &(safe_div(((513 * global_values.trace_length)), 65536))).
+ pow548 = pow58 * pow547; // pow(trace_generator, &(safe_div(((257 * global_values.trace_length)), 32768))).
+ pow549 = pow58 * pow548; // pow(trace_generator, &(safe_div(((515 * global_values.trace_length)), 65536))).
+ pow550 = pow58 * pow549; // pow(trace_generator, &(safe_div(((129 * global_values.trace_length)), 16384))).
+ pow551 = pow58 * pow550; // pow(trace_generator, &(safe_div(((517 * global_values.trace_length)), 65536))).
+ pow552 = pow58 * pow551; // pow(trace_generator, &(safe_div(((259 * global_values.trace_length)), 32768))).
+ pow553 = pow58 * pow552; // pow(trace_generator, &(safe_div(((519 * global_values.trace_length)), 65536))).
+ pow554 = pow58 * pow553; // pow(trace_generator, &(safe_div(((65 * global_values.trace_length)), 8192))).
+ pow555 = pow58 * pow554; // pow(trace_generator, &(safe_div(((521 * global_values.trace_length)), 65536))).
+ pow556 = pow58 * pow555; // pow(trace_generator, &(safe_div(((261 * global_values.trace_length)), 32768))).
+ pow557 = pow58 * pow556; // pow(trace_generator, &(safe_div(((523 * global_values.trace_length)), 65536))).
+ pow558 = pow58 * pow557; // pow(trace_generator, &(safe_div(((131 * global_values.trace_length)), 16384))).
+ pow559 = pow58 * pow558; // pow(trace_generator, &(safe_div(((525 * global_values.trace_length)), 65536))).
+ pow560 = pow58 * pow559; // pow(trace_generator, &(safe_div(((263 * global_values.trace_length)), 32768))).
+ pow561 = pow58 * pow560; // pow(trace_generator, &(safe_div(((527 * global_values.trace_length)), 65536))).
+ pow562 = pow58 * pow561; // pow(trace_generator, &(safe_div(((33 * global_values.trace_length)), 4096))).
+ pow563 = pow58 * pow562; // pow(trace_generator, &(safe_div(((529 * global_values.trace_length)), 65536))).
+ pow564 = pow58 * pow563; // pow(trace_generator, &(safe_div(((265 * global_values.trace_length)), 32768))).
+ pow565 = pow58 * pow564; // pow(trace_generator, &(safe_div(((531 * global_values.trace_length)), 65536))).
+ pow566 = pow58 * pow565; // pow(trace_generator, &(safe_div(((133 * global_values.trace_length)), 16384))).
+ pow567 = pow58 * pow566; // pow(trace_generator, &(safe_div(((533 * global_values.trace_length)), 65536))).
+ pow568 = pow58 * pow567; // pow(trace_generator, &(safe_div(((267 * global_values.trace_length)), 32768))).
+ pow569 = pow58 * pow568; // pow(trace_generator, &(safe_div(((535 * global_values.trace_length)), 65536))).
+ pow570 = pow58 * pow569; // pow(trace_generator, &(safe_div(((67 * global_values.trace_length)), 8192))).
+ pow571 = pow58 * pow570; // pow(trace_generator, &(safe_div(((537 * global_values.trace_length)), 65536))).
+ pow572 = pow58 * pow571; // pow(trace_generator, &(safe_div(((269 * global_values.trace_length)), 32768))).
+ pow573 = pow58 * pow572; // pow(trace_generator, &(safe_div(((539 * global_values.trace_length)), 65536))).
+ pow574 = pow58 * pow573; // pow(trace_generator, &(safe_div(((135 * global_values.trace_length)), 16384))).
+ pow575 = pow58 * pow574; // pow(trace_generator, &(safe_div(((541 * global_values.trace_length)), 65536))).
+ pow576 = pow67 * pow575; // pow(trace_generator, &(safe_div(((17 * global_values.trace_length)), 2048))).
+ pow577 = pow58 * pow576; // pow(trace_generator, &(safe_div(((545 * global_values.trace_length)), 65536))).
+ pow578 = pow58 * pow577; // pow(trace_generator, &(safe_div(((273 * global_values.trace_length)), 32768))).
+ pow579 = pow58 * pow578; // pow(trace_generator, &(safe_div(((547 * global_values.trace_length)), 65536))).
+ pow580 = pow58 * pow579; // pow(trace_generator, &(safe_div(((137 * global_values.trace_length)), 16384))).
+ pow581 = pow58 * pow580; // pow(trace_generator, &(safe_div(((549 * global_values.trace_length)), 65536))).
+ pow582 = pow58 * pow581; // pow(trace_generator, &(safe_div(((275 * global_values.trace_length)), 32768))).
+ pow583 = pow58 * pow582; // pow(trace_generator, &(safe_div(((551 * global_values.trace_length)), 65536))).
+ pow584 = pow58 * pow583; // pow(trace_generator, &(safe_div(((69 * global_values.trace_length)), 8192))).
+ pow585 = pow58 * pow584; // pow(trace_generator, &(safe_div(((553 * global_values.trace_length)), 65536))).
+ pow586 = pow58 * pow585; // pow(trace_generator, &(safe_div(((277 * global_values.trace_length)), 32768))).
+ pow587 = pow58 * pow586; // pow(trace_generator, &(safe_div(((555 * global_values.trace_length)), 65536))).
+ pow588 = pow58 * pow587; // pow(trace_generator, &(safe_div(((139 * global_values.trace_length)), 16384))).
+ pow589 = pow58 * pow588; // pow(trace_generator, &(safe_div(((557 * global_values.trace_length)), 65536))).
+ pow590 = pow58 * pow589; // pow(trace_generator, &(safe_div(((279 * global_values.trace_length)), 32768))).
+ pow591 = pow58 * pow590; // pow(trace_generator, &(safe_div(((559 * global_values.trace_length)), 65536))).
+ pow592 = pow58 * pow591; // pow(trace_generator, &(safe_div(((35 * global_values.trace_length)), 4096))).
+ pow593 = pow58 * pow592; // pow(trace_generator, &(safe_div(((561 * global_values.trace_length)), 65536))).
+ pow594 = pow58 * pow593; // pow(trace_generator, &(safe_div(((281 * global_values.trace_length)), 32768))).
+ pow595 = pow58 * pow594; // pow(trace_generator, &(safe_div(((563 * global_values.trace_length)), 65536))).
+ pow596 = pow58 * pow595; // pow(trace_generator, &(safe_div(((141 * global_values.trace_length)), 16384))).
+ pow597 = pow58 * pow596; // pow(trace_generator, &(safe_div(((565 * global_values.trace_length)), 65536))).
+ pow598 = pow58 * pow597; // pow(trace_generator, &(safe_div(((283 * global_values.trace_length)), 32768))).
+ pow599 = pow58 * pow598; // pow(trace_generator, &(safe_div(((567 * global_values.trace_length)), 65536))).
+ pow600 = pow58 * pow599; // pow(trace_generator, &(safe_div(((71 * global_values.trace_length)), 8192))).
+ pow601 = pow58 * pow600; // pow(trace_generator, &(safe_div(((569 * global_values.trace_length)), 65536))).
+ pow602 = pow58 * pow601; // pow(trace_generator, &(safe_div(((285 * global_values.trace_length)), 32768))).
+ pow603 = pow58 * pow602; // pow(trace_generator, &(safe_div(((571 * global_values.trace_length)), 65536))).
+ pow604 = pow58 * pow603; // pow(trace_generator, &(safe_div(((143 * global_values.trace_length)), 16384))).
+ pow605 = pow58 * pow604; // pow(trace_generator, &(safe_div(((573 * global_values.trace_length)), 65536))).
+ pow606 = pow67 * pow605; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 1024))).
+ pow607 = pow58 * pow606; // pow(trace_generator, &(safe_div(((577 * global_values.trace_length)), 65536))).
+ pow608 = pow58 * pow607; // pow(trace_generator, &(safe_div(((289 * global_values.trace_length)), 32768))).
+ pow609 = pow58 * pow608; // pow(trace_generator, &(safe_div(((579 * global_values.trace_length)), 65536))).
+ pow610 = pow58 * pow609; // pow(trace_generator, &(safe_div(((145 * global_values.trace_length)), 16384))).
+ pow611 = pow58 * pow610; // pow(trace_generator, &(safe_div(((581 * global_values.trace_length)), 65536))).
+ pow612 = pow58 * pow611; // pow(trace_generator, &(safe_div(((291 * global_values.trace_length)), 32768))).
+ pow613 = pow58 * pow612; // pow(trace_generator, &(safe_div(((583 * global_values.trace_length)), 65536))).
+ pow614 = pow58 * pow613; // pow(trace_generator, &(safe_div(((73 * global_values.trace_length)), 8192))).
+ pow615 = pow58 * pow614; // pow(trace_generator, &(safe_div(((585 * global_values.trace_length)), 65536))).
+ pow616 = pow58 * pow615; // pow(trace_generator, &(safe_div(((293 * global_values.trace_length)), 32768))).
+ pow617 = pow58 * pow616; // pow(trace_generator, &(safe_div(((587 * global_values.trace_length)), 65536))).
+ pow618 = pow58 * pow617; // pow(trace_generator, &(safe_div(((147 * global_values.trace_length)), 16384))).
+ pow619 = pow58 * pow618; // pow(trace_generator, &(safe_div(((589 * global_values.trace_length)), 65536))).
+ pow620 = pow58 * pow619; // pow(trace_generator, &(safe_div(((295 * global_values.trace_length)), 32768))).
+ pow621 = pow58 * pow620; // pow(trace_generator, &(safe_div(((591 * global_values.trace_length)), 65536))).
+ pow622 = pow58 * pow621; // pow(trace_generator, &(safe_div(((37 * global_values.trace_length)), 4096))).
+ pow623 = pow58 * pow622; // pow(trace_generator, &(safe_div(((593 * global_values.trace_length)), 65536))).
+ pow624 = pow58 * pow623; // pow(trace_generator, &(safe_div(((297 * global_values.trace_length)), 32768))).
+ pow625 = pow58 * pow624; // pow(trace_generator, &(safe_div(((595 * global_values.trace_length)), 65536))).
+ pow626 = pow58 * pow625; // pow(trace_generator, &(safe_div(((149 * global_values.trace_length)), 16384))).
+ pow627 = pow58 * pow626; // pow(trace_generator, &(safe_div(((597 * global_values.trace_length)), 65536))).
+ pow628 = pow58 * pow627; // pow(trace_generator, &(safe_div(((299 * global_values.trace_length)), 32768))).
+ pow629 = pow58 * pow628; // pow(trace_generator, &(safe_div(((599 * global_values.trace_length)), 65536))).
+ pow630 = pow58 * pow629; // pow(trace_generator, &(safe_div(((75 * global_values.trace_length)), 8192))).
+ pow631 = pow58 * pow630; // pow(trace_generator, &(safe_div(((601 * global_values.trace_length)), 65536))).
+ pow632 = pow58 * pow631; // pow(trace_generator, &(safe_div(((301 * global_values.trace_length)), 32768))).
+ pow633 = pow58 * pow632; // pow(trace_generator, &(safe_div(((603 * global_values.trace_length)), 65536))).
+ pow634 = pow58 * pow633; // pow(trace_generator, &(safe_div(((151 * global_values.trace_length)), 16384))).
+ pow635 = pow58 * pow634; // pow(trace_generator, &(safe_div(((605 * global_values.trace_length)), 65536))).
+ pow636 = pow67 * pow635; // pow(trace_generator, &(safe_div(((19 * global_values.trace_length)), 2048))).
+ pow637 = pow58 * pow636; // pow(trace_generator, &(safe_div(((609 * global_values.trace_length)), 65536))).
+ pow638 = pow58 * pow637; // pow(trace_generator, &(safe_div(((305 * global_values.trace_length)), 32768))).
+ pow639 = pow58 * pow638; // pow(trace_generator, &(safe_div(((611 * global_values.trace_length)), 65536))).
+ pow640 = pow58 * pow639; // pow(trace_generator, &(safe_div(((153 * global_values.trace_length)), 16384))).
+ pow641 = pow58 * pow640; // pow(trace_generator, &(safe_div(((613 * global_values.trace_length)), 65536))).
+ pow642 = pow58 * pow641; // pow(trace_generator, &(safe_div(((307 * global_values.trace_length)), 32768))).
+ pow643 = pow58 * pow642; // pow(trace_generator, &(safe_div(((615 * global_values.trace_length)), 65536))).
+ pow644 = pow58 * pow643; // pow(trace_generator, &(safe_div(((77 * global_values.trace_length)), 8192))).
+ pow645 = pow58 * pow644; // pow(trace_generator, &(safe_div(((617 * global_values.trace_length)), 65536))).
+ pow646 = pow58 * pow645; // pow(trace_generator, &(safe_div(((309 * global_values.trace_length)), 32768))).
+ pow647 = pow58 * pow646; // pow(trace_generator, &(safe_div(((619 * global_values.trace_length)), 65536))).
+ pow648 = pow58 * pow647; // pow(trace_generator, &(safe_div(((155 * global_values.trace_length)), 16384))).
+ pow649 = pow58 * pow648; // pow(trace_generator, &(safe_div(((621 * global_values.trace_length)), 65536))).
+ pow650 = pow58 * pow649; // pow(trace_generator, &(safe_div(((311 * global_values.trace_length)), 32768))).
+ pow651 = pow58 * pow650; // pow(trace_generator, &(safe_div(((623 * global_values.trace_length)), 65536))).
+ pow652 = pow58 * pow651; // pow(trace_generator, &(safe_div(((39 * global_values.trace_length)), 4096))).
+ pow653 = pow58 * pow652; // pow(trace_generator, &(safe_div(((625 * global_values.trace_length)), 65536))).
+ pow654 = pow58 * pow653; // pow(trace_generator, &(safe_div(((313 * global_values.trace_length)), 32768))).
+ pow655 = pow58 * pow654; // pow(trace_generator, &(safe_div(((627 * global_values.trace_length)), 65536))).
+ pow656 = pow58 * pow655; // pow(trace_generator, &(safe_div(((157 * global_values.trace_length)), 16384))).
+ pow657 = pow58 * pow656; // pow(trace_generator, &(safe_div(((629 * global_values.trace_length)), 65536))).
+ pow658 = pow58 * pow657; // pow(trace_generator, &(safe_div(((315 * global_values.trace_length)), 32768))).
+ pow659 = pow58 * pow658; // pow(trace_generator, &(safe_div(((631 * global_values.trace_length)), 65536))).
+ pow660 = pow58 * pow659; // pow(trace_generator, &(safe_div(((79 * global_values.trace_length)), 8192))).
+ pow661 = pow58 * pow660; // pow(trace_generator, &(safe_div(((633 * global_values.trace_length)), 65536))).
+ pow662 = pow58 * pow661; // pow(trace_generator, &(safe_div(((317 * global_values.trace_length)), 32768))).
+ pow663 = pow58 * pow662; // pow(trace_generator, &(safe_div(((635 * global_values.trace_length)), 65536))).
+ pow664 = pow58 * pow663; // pow(trace_generator, &(safe_div(((159 * global_values.trace_length)), 16384))).
+ pow665 = pow58 * pow664; // pow(trace_generator, &(safe_div(((637 * global_values.trace_length)), 65536))).
+ pow666 = pow67 * pow665; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 512))).
+ pow667 = pow58 * pow666; // pow(trace_generator, &(safe_div(((641 * global_values.trace_length)), 65536))).
+ pow668 = pow58 * pow667; // pow(trace_generator, &(safe_div(((321 * global_values.trace_length)), 32768))).
+ pow669 = pow58 * pow668; // pow(trace_generator, &(safe_div(((643 * global_values.trace_length)), 65536))).
+ pow670 = pow58 * pow669; // pow(trace_generator, &(safe_div(((161 * global_values.trace_length)), 16384))).
+ pow671 = pow58 * pow670; // pow(trace_generator, &(safe_div(((645 * global_values.trace_length)), 65536))).
+ pow672 = pow58 * pow671; // pow(trace_generator, &(safe_div(((323 * global_values.trace_length)), 32768))).
+ pow673 = pow58 * pow672; // pow(trace_generator, &(safe_div(((647 * global_values.trace_length)), 65536))).
+ pow674 = pow58 * pow673; // pow(trace_generator, &(safe_div(((81 * global_values.trace_length)), 8192))).
+ pow675 = pow58 * pow674; // pow(trace_generator, &(safe_div(((649 * global_values.trace_length)), 65536))).
+ pow676 = pow58 * pow675; // pow(trace_generator, &(safe_div(((325 * global_values.trace_length)), 32768))).
+ pow677 = pow58 * pow676; // pow(trace_generator, &(safe_div(((651 * global_values.trace_length)), 65536))).
+ pow678 = pow58 * pow677; // pow(trace_generator, &(safe_div(((163 * global_values.trace_length)), 16384))).
+ pow679 = pow58 * pow678; // pow(trace_generator, &(safe_div(((653 * global_values.trace_length)), 65536))).
+ pow680 = pow58 * pow679; // pow(trace_generator, &(safe_div(((327 * global_values.trace_length)), 32768))).
+ pow681 = pow58 * pow680; // pow(trace_generator, &(safe_div(((655 * global_values.trace_length)), 65536))).
+ pow682 = pow58 * pow681; // pow(trace_generator, &(safe_div(((41 * global_values.trace_length)), 4096))).
+ pow683 = pow58 * pow682; // pow(trace_generator, &(safe_div(((657 * global_values.trace_length)), 65536))).
+ pow684 = pow58 * pow683; // pow(trace_generator, &(safe_div(((329 * global_values.trace_length)), 32768))).
+ pow685 = pow58 * pow684; // pow(trace_generator, &(safe_div(((659 * global_values.trace_length)), 65536))).
+ pow686 = pow58 * pow685; // pow(trace_generator, &(safe_div(((165 * global_values.trace_length)), 16384))).
+ pow687 = pow58 * pow686; // pow(trace_generator, &(safe_div(((661 * global_values.trace_length)), 65536))).
+ pow688 = pow58 * pow687; // pow(trace_generator, &(safe_div(((331 * global_values.trace_length)), 32768))).
+ pow689 = pow58 * pow688; // pow(trace_generator, &(safe_div(((663 * global_values.trace_length)), 65536))).
+ pow690 = pow58 * pow689; // pow(trace_generator, &(safe_div(((83 * global_values.trace_length)), 8192))).
+ pow691 = pow58 * pow690; // pow(trace_generator, &(safe_div(((665 * global_values.trace_length)), 65536))).
+ pow692 = pow58 * pow691; // pow(trace_generator, &(safe_div(((333 * global_values.trace_length)), 32768))).
+ pow693 = pow58 * pow692; // pow(trace_generator, &(safe_div(((667 * global_values.trace_length)), 65536))).
+ pow694 = pow58 * pow693; // pow(trace_generator, &(safe_div(((167 * global_values.trace_length)), 16384))).
+ pow695 = pow58 * pow694; // pow(trace_generator, &(safe_div(((669 * global_values.trace_length)), 65536))).
+ pow696 = pow67 * pow695; // pow(trace_generator, &(safe_div(((21 * global_values.trace_length)), 2048))).
+ pow697 = pow58 * pow696; // pow(trace_generator, &(safe_div(((673 * global_values.trace_length)), 65536))).
+ pow698 = pow58 * pow697; // pow(trace_generator, &(safe_div(((337 * global_values.trace_length)), 32768))).
+ pow699 = pow58 * pow698; // pow(trace_generator, &(safe_div(((675 * global_values.trace_length)), 65536))).
+ pow700 = pow58 * pow699; // pow(trace_generator, &(safe_div(((169 * global_values.trace_length)), 16384))).
+ pow701 = pow58 * pow700; // pow(trace_generator, &(safe_div(((677 * global_values.trace_length)), 65536))).
+ pow702 = pow58 * pow701; // pow(trace_generator, &(safe_div(((339 * global_values.trace_length)), 32768))).
+ pow703 = pow58 * pow702; // pow(trace_generator, &(safe_div(((679 * global_values.trace_length)), 65536))).
+ pow704 = pow58 * pow703; // pow(trace_generator, &(safe_div(((85 * global_values.trace_length)), 8192))).
+ pow705 = pow58 * pow704; // pow(trace_generator, &(safe_div(((681 * global_values.trace_length)), 65536))).
+ pow706 = pow58 * pow705; // pow(trace_generator, &(safe_div(((341 * global_values.trace_length)), 32768))).
+ pow707 = pow58 * pow706; // pow(trace_generator, &(safe_div(((683 * global_values.trace_length)), 65536))).
+ pow708 = pow58 * pow707; // pow(trace_generator, &(safe_div(((171 * global_values.trace_length)), 16384))).
+ pow709 = pow58 * pow708; // pow(trace_generator, &(safe_div(((685 * global_values.trace_length)), 65536))).
+ pow710 = pow58 * pow709; // pow(trace_generator, &(safe_div(((343 * global_values.trace_length)), 32768))).
+ pow711 = pow58 * pow710; // pow(trace_generator, &(safe_div(((687 * global_values.trace_length)), 65536))).
+ pow712 = pow58 * pow711; // pow(trace_generator, &(safe_div(((43 * global_values.trace_length)), 4096))).
+ pow713 = pow58 * pow712; // pow(trace_generator, &(safe_div(((689 * global_values.trace_length)), 65536))).
+ pow714 = pow58 * pow713; // pow(trace_generator, &(safe_div(((345 * global_values.trace_length)), 32768))).
+ pow715 = pow58 * pow714; // pow(trace_generator, &(safe_div(((691 * global_values.trace_length)), 65536))).
+ pow716 = pow58 * pow715; // pow(trace_generator, &(safe_div(((173 * global_values.trace_length)), 16384))).
+ pow717 = pow58 * pow716; // pow(trace_generator, &(safe_div(((693 * global_values.trace_length)), 65536))).
+ pow718 = pow58 * pow717; // pow(trace_generator, &(safe_div(((347 * global_values.trace_length)), 32768))).
+ pow719 = pow58 * pow718; // pow(trace_generator, &(safe_div(((695 * global_values.trace_length)), 65536))).
+ pow720 = pow58 * pow719; // pow(trace_generator, &(safe_div(((87 * global_values.trace_length)), 8192))).
+ pow721 = pow58 * pow720; // pow(trace_generator, &(safe_div(((697 * global_values.trace_length)), 65536))).
+ pow722 = pow58 * pow721; // pow(trace_generator, &(safe_div(((349 * global_values.trace_length)), 32768))).
+ pow723 = pow58 * pow722; // pow(trace_generator, &(safe_div(((699 * global_values.trace_length)), 65536))).
+ pow724 = pow58 * pow723; // pow(trace_generator, &(safe_div(((175 * global_values.trace_length)), 16384))).
+ pow725 = pow58 * pow724; // pow(trace_generator, &(safe_div(((701 * global_values.trace_length)), 65536))).
+ pow726 = pow67 * pow725; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 1024))).
+ pow727 = pow58 * pow726; // pow(trace_generator, &(safe_div(((705 * global_values.trace_length)), 65536))).
+ pow728 = pow58 * pow727; // pow(trace_generator, &(safe_div(((353 * global_values.trace_length)), 32768))).
+ pow729 = pow58 * pow728; // pow(trace_generator, &(safe_div(((707 * global_values.trace_length)), 65536))).
+ pow730 = pow58 * pow729; // pow(trace_generator, &(safe_div(((177 * global_values.trace_length)), 16384))).
+ pow731 = pow58 * pow730; // pow(trace_generator, &(safe_div(((709 * global_values.trace_length)), 65536))).
+ pow732 = pow58 * pow731; // pow(trace_generator, &(safe_div(((355 * global_values.trace_length)), 32768))).
+ pow733 = pow58 * pow732; // pow(trace_generator, &(safe_div(((711 * global_values.trace_length)), 65536))).
+ pow734 = pow58 * pow733; // pow(trace_generator, &(safe_div(((89 * global_values.trace_length)), 8192))).
+ pow735 = pow58 * pow734; // pow(trace_generator, &(safe_div(((713 * global_values.trace_length)), 65536))).
+ pow736 = pow58 * pow735; // pow(trace_generator, &(safe_div(((357 * global_values.trace_length)), 32768))).
+ pow737 = pow58 * pow736; // pow(trace_generator, &(safe_div(((715 * global_values.trace_length)), 65536))).
+ pow738 = pow58 * pow737; // pow(trace_generator, &(safe_div(((179 * global_values.trace_length)), 16384))).
+ pow739 = pow58 * pow738; // pow(trace_generator, &(safe_div(((717 * global_values.trace_length)), 65536))).
+ pow740 = pow58 * pow739; // pow(trace_generator, &(safe_div(((359 * global_values.trace_length)), 32768))).
+ pow741 = pow58 * pow740; // pow(trace_generator, &(safe_div(((719 * global_values.trace_length)), 65536))).
+ pow742 = pow58 * pow741; // pow(trace_generator, &(safe_div(((45 * global_values.trace_length)), 4096))).
+ pow743 = pow58 * pow742; // pow(trace_generator, &(safe_div(((721 * global_values.trace_length)), 65536))).
+ pow744 = pow58 * pow743; // pow(trace_generator, &(safe_div(((361 * global_values.trace_length)), 32768))).
+ pow745 = pow58 * pow744; // pow(trace_generator, &(safe_div(((723 * global_values.trace_length)), 65536))).
+ pow746 = pow58 * pow745; // pow(trace_generator, &(safe_div(((181 * global_values.trace_length)), 16384))).
+ pow747 = pow58 * pow746; // pow(trace_generator, &(safe_div(((725 * global_values.trace_length)), 65536))).
+ pow748 = pow58 * pow747; // pow(trace_generator, &(safe_div(((363 * global_values.trace_length)), 32768))).
+ pow749 = pow58 * pow748; // pow(trace_generator, &(safe_div(((727 * global_values.trace_length)), 65536))).
+ pow750 = pow58 * pow749; // pow(trace_generator, &(safe_div(((91 * global_values.trace_length)), 8192))).
+ pow751 = pow58 * pow750; // pow(trace_generator, &(safe_div(((729 * global_values.trace_length)), 65536))).
+ pow752 = pow58 * pow751; // pow(trace_generator, &(safe_div(((365 * global_values.trace_length)), 32768))).
+ pow753 = pow58 * pow752; // pow(trace_generator, &(safe_div(((731 * global_values.trace_length)), 65536))).
+ pow754 = pow58 * pow753; // pow(trace_generator, &(safe_div(((183 * global_values.trace_length)), 16384))).
+ pow755 = pow58 * pow754; // pow(trace_generator, &(safe_div(((733 * global_values.trace_length)), 65536))).
+ pow756 = pow67 * pow755; // pow(trace_generator, &(safe_div(((23 * global_values.trace_length)), 2048))).
+ pow757 = pow58 * pow756; // pow(trace_generator, &(safe_div(((737 * global_values.trace_length)), 65536))).
+ pow758 = pow58 * pow757; // pow(trace_generator, &(safe_div(((369 * global_values.trace_length)), 32768))).
+ pow759 = pow58 * pow758; // pow(trace_generator, &(safe_div(((739 * global_values.trace_length)), 65536))).
+ pow760 = pow58 * pow759; // pow(trace_generator, &(safe_div(((185 * global_values.trace_length)), 16384))).
+ pow761 = pow58 * pow760; // pow(trace_generator, &(safe_div(((741 * global_values.trace_length)), 65536))).
+ pow762 = pow58 * pow761; // pow(trace_generator, &(safe_div(((371 * global_values.trace_length)), 32768))).
+ pow763 = pow58 * pow762; // pow(trace_generator, &(safe_div(((743 * global_values.trace_length)), 65536))).
+ pow764 = pow58 * pow763; // pow(trace_generator, &(safe_div(((93 * global_values.trace_length)), 8192))).
+ pow765 = pow58 * pow764; // pow(trace_generator, &(safe_div(((745 * global_values.trace_length)), 65536))).
+ pow766 = pow58 * pow765; // pow(trace_generator, &(safe_div(((373 * global_values.trace_length)), 32768))).
+ pow767 = pow58 * pow766; // pow(trace_generator, &(safe_div(((747 * global_values.trace_length)), 65536))).
+ pow768 = pow58 * pow767; // pow(trace_generator, &(safe_div(((187 * global_values.trace_length)), 16384))).
+ pow769 = pow58 * pow768; // pow(trace_generator, &(safe_div(((749 * global_values.trace_length)), 65536))).
+ pow770 = pow58 * pow769; // pow(trace_generator, &(safe_div(((375 * global_values.trace_length)), 32768))).
+ pow771 = pow58 * pow770; // pow(trace_generator, &(safe_div(((751 * global_values.trace_length)), 65536))).
+ pow772 = pow58 * pow771; // pow(trace_generator, &(safe_div(((47 * global_values.trace_length)), 4096))).
+ pow773 = pow58 * pow772; // pow(trace_generator, &(safe_div(((753 * global_values.trace_length)), 65536))).
+ pow774 = pow58 * pow773; // pow(trace_generator, &(safe_div(((377 * global_values.trace_length)), 32768))).
+ pow775 = pow58 * pow774; // pow(trace_generator, &(safe_div(((755 * global_values.trace_length)), 65536))).
+ pow776 = pow58 * pow775; // pow(trace_generator, &(safe_div(((189 * global_values.trace_length)), 16384))).
+ pow777 = pow58 * pow776; // pow(trace_generator, &(safe_div(((757 * global_values.trace_length)), 65536))).
+ pow778 = pow58 * pow777; // pow(trace_generator, &(safe_div(((379 * global_values.trace_length)), 32768))).
+ pow779 = pow58 * pow778; // pow(trace_generator, &(safe_div(((759 * global_values.trace_length)), 65536))).
+ pow780 = pow58 * pow779; // pow(trace_generator, &(safe_div(((95 * global_values.trace_length)), 8192))).
+ pow781 = pow58 * pow780; // pow(trace_generator, &(safe_div(((761 * global_values.trace_length)), 65536))).
+ pow782 = pow58 * pow781; // pow(trace_generator, &(safe_div(((381 * global_values.trace_length)), 32768))).
+ pow783 = pow58 * pow782; // pow(trace_generator, &(safe_div(((763 * global_values.trace_length)), 65536))).
+ pow784 = pow58 * pow783; // pow(trace_generator, &(safe_div(((191 * global_values.trace_length)), 16384))).
+ pow785 = pow58 * pow784; // pow(trace_generator, &(safe_div(((765 * global_values.trace_length)), 65536))).
+ pow786 = pow67 * pow785; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 256))).
+ pow787 = pow58 * pow786; // pow(trace_generator, &(safe_div(((769 * global_values.trace_length)), 65536))).
+ pow788 = pow58 * pow787; // pow(trace_generator, &(safe_div(((385 * global_values.trace_length)), 32768))).
+ pow789 = pow58 * pow788; // pow(trace_generator, &(safe_div(((771 * global_values.trace_length)), 65536))).
+ pow790 = pow58 * pow789; // pow(trace_generator, &(safe_div(((193 * global_values.trace_length)), 16384))).
+ pow791 = pow58 * pow790; // pow(trace_generator, &(safe_div(((773 * global_values.trace_length)), 65536))).
+ pow792 = pow58 * pow791; // pow(trace_generator, &(safe_div(((387 * global_values.trace_length)), 32768))).
+ pow793 = pow58 * pow792; // pow(trace_generator, &(safe_div(((775 * global_values.trace_length)), 65536))).
+ pow794 = pow58 * pow793; // pow(trace_generator, &(safe_div(((97 * global_values.trace_length)), 8192))).
+ pow795 = pow58 * pow794; // pow(trace_generator, &(safe_div(((777 * global_values.trace_length)), 65536))).
+ pow796 = pow58 * pow795; // pow(trace_generator, &(safe_div(((389 * global_values.trace_length)), 32768))).
+ pow797 = pow58 * pow796; // pow(trace_generator, &(safe_div(((779 * global_values.trace_length)), 65536))).
+ pow798 = pow58 * pow797; // pow(trace_generator, &(safe_div(((195 * global_values.trace_length)), 16384))).
+ pow799 = pow58 * pow798; // pow(trace_generator, &(safe_div(((781 * global_values.trace_length)), 65536))).
+ pow800 = pow58 * pow799; // pow(trace_generator, &(safe_div(((391 * global_values.trace_length)), 32768))).
+ pow801 = pow58 * pow800; // pow(trace_generator, &(safe_div(((783 * global_values.trace_length)), 65536))).
+ pow802 = pow58 * pow801; // pow(trace_generator, &(safe_div(((49 * global_values.trace_length)), 4096))).
+ pow803 = pow58 * pow802; // pow(trace_generator, &(safe_div(((785 * global_values.trace_length)), 65536))).
+ pow804 = pow58 * pow803; // pow(trace_generator, &(safe_div(((393 * global_values.trace_length)), 32768))).
+ pow805 = pow58 * pow804; // pow(trace_generator, &(safe_div(((787 * global_values.trace_length)), 65536))).
+ pow806 = pow58 * pow805; // pow(trace_generator, &(safe_div(((197 * global_values.trace_length)), 16384))).
+ pow807 = pow58 * pow806; // pow(trace_generator, &(safe_div(((789 * global_values.trace_length)), 65536))).
+ pow808 = pow58 * pow807; // pow(trace_generator, &(safe_div(((395 * global_values.trace_length)), 32768))).
+ pow809 = pow58 * pow808; // pow(trace_generator, &(safe_div(((791 * global_values.trace_length)), 65536))).
+ pow810 = pow58 * pow809; // pow(trace_generator, &(safe_div(((99 * global_values.trace_length)), 8192))).
+ pow811 = pow58 * pow810; // pow(trace_generator, &(safe_div(((793 * global_values.trace_length)), 65536))).
+ pow812 = pow58 * pow811; // pow(trace_generator, &(safe_div(((397 * global_values.trace_length)), 32768))).
+ pow813 = pow58 * pow812; // pow(trace_generator, &(safe_div(((795 * global_values.trace_length)), 65536))).
+ pow814 = pow58 * pow813; // pow(trace_generator, &(safe_div(((199 * global_values.trace_length)), 16384))).
+ pow815 = pow58 * pow814; // pow(trace_generator, &(safe_div(((797 * global_values.trace_length)), 65536))).
+ pow816 = pow99 * pow815; // pow(trace_generator, &(safe_div(((13 * global_values.trace_length)), 1024))).
+ pow817 = pow126 * pow816; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 512))).
+ pow818 = pow126 * pow817; // pow(trace_generator, &(safe_div(((15 * global_values.trace_length)), 1024))).
+ pow819 = pow126 * pow818; // pow(trace_generator, &(safe_div(global_values.trace_length, 64))).
+ pow820 = pow58 * pow819; // pow(trace_generator, &(safe_div(((1025 * global_values.trace_length)), 65536))).
+ pow821 = pow58 * pow820; // pow(trace_generator, &(safe_div(((513 * global_values.trace_length)), 32768))).
+ pow822 = pow58 * pow821; // pow(trace_generator, &(safe_div(((1027 * global_values.trace_length)), 65536))).
+ pow823 = pow58 * pow822; // pow(trace_generator, &(safe_div(((257 * global_values.trace_length)), 16384))).
+ pow824 = pow58 * pow823; // pow(trace_generator, &(safe_div(((1029 * global_values.trace_length)), 65536))).
+ pow825 = pow58 * pow824; // pow(trace_generator, &(safe_div(((515 * global_values.trace_length)), 32768))).
+ pow826 = pow58 * pow825; // pow(trace_generator, &(safe_div(((1031 * global_values.trace_length)), 65536))).
+ pow827 = pow58 * pow826; // pow(trace_generator, &(safe_div(((129 * global_values.trace_length)), 8192))).
+ pow828 = pow58 * pow827; // pow(trace_generator, &(safe_div(((1033 * global_values.trace_length)), 65536))).
+ pow829 = pow58 * pow828; // pow(trace_generator, &(safe_div(((517 * global_values.trace_length)), 32768))).
+ pow830 = pow58 * pow829; // pow(trace_generator, &(safe_div(((1035 * global_values.trace_length)), 65536))).
+ pow831 = pow58 * pow830; // pow(trace_generator, &(safe_div(((259 * global_values.trace_length)), 16384))).
+ pow832 = pow58 * pow831; // pow(trace_generator, &(safe_div(((1037 * global_values.trace_length)), 65536))).
+ pow833 = pow58 * pow832; // pow(trace_generator, &(safe_div(((519 * global_values.trace_length)), 32768))).
+ pow834 = pow58 * pow833; // pow(trace_generator, &(safe_div(((1039 * global_values.trace_length)), 65536))).
+ pow835 = pow58 * pow834; // pow(trace_generator, &(safe_div(((65 * global_values.trace_length)), 4096))).
+ pow836 = pow58 * pow835; // pow(trace_generator, &(safe_div(((1041 * global_values.trace_length)), 65536))).
+ pow837 = pow58 * pow836; // pow(trace_generator, &(safe_div(((521 * global_values.trace_length)), 32768))).
+ pow838 = pow58 * pow837; // pow(trace_generator, &(safe_div(((1043 * global_values.trace_length)), 65536))).
+ pow839 = pow58 * pow838; // pow(trace_generator, &(safe_div(((261 * global_values.trace_length)), 16384))).
+ pow840 = pow58 * pow839; // pow(trace_generator, &(safe_div(((1045 * global_values.trace_length)), 65536))).
+ pow841 = pow58 * pow840; // pow(trace_generator, &(safe_div(((523 * global_values.trace_length)), 32768))).
+ pow842 = pow58 * pow841; // pow(trace_generator, &(safe_div(((1047 * global_values.trace_length)), 65536))).
+ pow843 = pow105 * pow842; // pow(trace_generator, &(safe_div(((17 * global_values.trace_length)), 1024))).
+ pow844 = pow126 * pow843; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 512))).
+ pow845 = pow126 * pow844; // pow(trace_generator, &(safe_div(((19 * global_values.trace_length)), 1024))).
+ pow846 = pow126 * pow845; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 256))).
+ pow847 = pow126 * pow846; // pow(trace_generator, &(safe_div(((21 * global_values.trace_length)), 1024))).
+ pow848 = pow126 * pow847; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 512))).
+ pow849 = pow126 * pow848; // pow(trace_generator, &(safe_div(((23 * global_values.trace_length)), 1024))).
+ pow850 = pow606 * pow849; // pow(trace_generator, &(safe_div(global_values.trace_length, 32))).
+ pow851 = pow58 * pow850; // pow(trace_generator, &(safe_div(((2049 * global_values.trace_length)), 65536))).
+ pow852 = pow58 * pow851; // pow(trace_generator, &(safe_div(((1025 * global_values.trace_length)), 32768))).
+ pow853 = pow58 * pow852; // pow(trace_generator, &(safe_div(((2051 * global_values.trace_length)), 65536))).
+ pow854 = pow58 * pow853; // pow(trace_generator, &(safe_div(((513 * global_values.trace_length)), 16384))).
+ pow855 = pow58 * pow854; // pow(trace_generator, &(safe_div(((2053 * global_values.trace_length)), 65536))).
+ pow856 = pow58 * pow855; // pow(trace_generator, &(safe_div(((1027 * global_values.trace_length)), 32768))).
+ pow857 = pow58 * pow856; // pow(trace_generator, &(safe_div(((2055 * global_values.trace_length)), 65536))).
+ pow858 = pow58 * pow857; // pow(trace_generator, &(safe_div(((257 * global_values.trace_length)), 8192))).
+ pow859 = pow58 * pow858; // pow(trace_generator, &(safe_div(((2057 * global_values.trace_length)), 65536))).
+ pow860 = pow58 * pow859; // pow(trace_generator, &(safe_div(((1029 * global_values.trace_length)), 32768))).
+ pow861 = pow58 * pow860; // pow(trace_generator, &(safe_div(((2059 * global_values.trace_length)), 65536))).
+ pow862 = pow58 * pow861; // pow(trace_generator, &(safe_div(((515 * global_values.trace_length)), 16384))).
+ pow863 = pow58 * pow862; // pow(trace_generator, &(safe_div(((2061 * global_values.trace_length)), 65536))).
+ pow864 = pow58 * pow863; // pow(trace_generator, &(safe_div(((1031 * global_values.trace_length)), 32768))).
+ pow865 = pow58 * pow864; // pow(trace_generator, &(safe_div(((2063 * global_values.trace_length)), 65536))).
+ pow866 = pow58 * pow865; // pow(trace_generator, &(safe_div(((129 * global_values.trace_length)), 4096))).
+ pow867 = pow58 * pow866; // pow(trace_generator, &(safe_div(((2065 * global_values.trace_length)), 65536))).
+ pow868 = pow58 * pow867; // pow(trace_generator, &(safe_div(((1033 * global_values.trace_length)), 32768))).
+ pow869 = pow58 * pow868; // pow(trace_generator, &(safe_div(((2067 * global_values.trace_length)), 65536))).
+ pow870 = pow58 * pow869; // pow(trace_generator, &(safe_div(((517 * global_values.trace_length)), 16384))).
+ pow871 = pow58 * pow870; // pow(trace_generator, &(safe_div(((2069 * global_values.trace_length)), 65536))).
+ pow872 = pow58 * pow871; // pow(trace_generator, &(safe_div(((1035 * global_values.trace_length)), 32768))).
+ pow873 = pow58 * pow872; // pow(trace_generator, &(safe_div(((2071 * global_values.trace_length)), 65536))).
+ pow874 = pow105 * pow873; // pow(trace_generator, &(safe_div(global_values.trace_length, 1024)) + &(safe_div(global_values.trace_length, 32))).
+ pow875 = pow126 * pow874; // pow(trace_generator, &(safe_div(global_values.trace_length, 512)) + &(safe_div(global_values.trace_length, 32))).
+ pow876 = pow126 * pow875; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 32))).
+ pow877 = pow126 * pow876; // pow(trace_generator, &(safe_div(global_values.trace_length, 256)) + &(safe_div(global_values.trace_length, 32))).
+ pow878 = pow126 * pow877; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 32))).
+ pow879 = pow126 * pow878; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 512)) + &(safe_div(global_values.trace_length, 32))).
+ pow880 = pow126 * pow879; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 32))).
+ pow881 = pow126 * pow880; // pow(trace_generator, &(safe_div(global_values.trace_length, 128)) + &(safe_div(global_values.trace_length, 32))).
+ pow882 = pow126 * pow881; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 32))).
+ pow883 = pow126 * pow882; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 512)) + &(safe_div(global_values.trace_length, 32))).
+ pow884 = pow126 * pow883; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 32))).
+ pow885 = pow126 * pow884; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 256)) + &(safe_div(global_values.trace_length, 32))).
+ pow886 = pow126 * pow885; // pow(trace_generator, &(safe_div(((13 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 32))).
+ pow887 = pow126 * pow886; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 512)) + &(safe_div(global_values.trace_length, 32))).
+ pow888 = pow126 * pow887; // pow(trace_generator, &(safe_div(((15 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 32))).
+ pow889 = pow126 * pow888; // pow(trace_generator, &(safe_div(global_values.trace_length, 64)) + &(safe_div(global_values.trace_length, 32))).
+ pow890 = pow58 * pow889; // pow(trace_generator, &(safe_div(((3073 * global_values.trace_length)), 65536))).
+ pow891 = pow58 * pow890; // pow(trace_generator, &(safe_div(((1537 * global_values.trace_length)), 32768))).
+ pow892 = pow58 * pow891; // pow(trace_generator, &(safe_div(((3075 * global_values.trace_length)), 65536))).
+ pow893 = pow58 * pow892; // pow(trace_generator, &(safe_div(((769 * global_values.trace_length)), 16384))).
+ pow894 = pow58 * pow893; // pow(trace_generator, &(safe_div(((3077 * global_values.trace_length)), 65536))).
+ pow895 = pow58 * pow894; // pow(trace_generator, &(safe_div(((1539 * global_values.trace_length)), 32768))).
+ pow896 = pow58 * pow895; // pow(trace_generator, &(safe_div(((3079 * global_values.trace_length)), 65536))).
+ pow897 = pow58 * pow896; // pow(trace_generator, &(safe_div(((385 * global_values.trace_length)), 8192))).
+ pow898 = pow58 * pow897; // pow(trace_generator, &(safe_div(((3081 * global_values.trace_length)), 65536))).
+ pow899 = pow58 * pow898; // pow(trace_generator, &(safe_div(((1541 * global_values.trace_length)), 32768))).
+ pow900 = pow58 * pow899; // pow(trace_generator, &(safe_div(((3083 * global_values.trace_length)), 65536))).
+ pow901 = pow58 * pow900; // pow(trace_generator, &(safe_div(((771 * global_values.trace_length)), 16384))).
+ pow902 = pow58 * pow901; // pow(trace_generator, &(safe_div(((3085 * global_values.trace_length)), 65536))).
+ pow903 = pow58 * pow902; // pow(trace_generator, &(safe_div(((1543 * global_values.trace_length)), 32768))).
+ pow904 = pow58 * pow903; // pow(trace_generator, &(safe_div(((3087 * global_values.trace_length)), 65536))).
+ pow905 = pow58 * pow904; // pow(trace_generator, &(safe_div(((193 * global_values.trace_length)), 4096))).
+ pow906 = pow58 * pow905; // pow(trace_generator, &(safe_div(((3089 * global_values.trace_length)), 65536))).
+ pow907 = pow58 * pow906; // pow(trace_generator, &(safe_div(((1545 * global_values.trace_length)), 32768))).
+ pow908 = pow58 * pow907; // pow(trace_generator, &(safe_div(((3091 * global_values.trace_length)), 65536))).
+ pow909 = pow58 * pow908; // pow(trace_generator, &(safe_div(((773 * global_values.trace_length)), 16384))).
+ pow910 = pow58 * pow909; // pow(trace_generator, &(safe_div(((3093 * global_values.trace_length)), 65536))).
+ pow911 = pow58 * pow910; // pow(trace_generator, &(safe_div(((1547 * global_values.trace_length)), 32768))).
+ pow912 = pow58 * pow911; // pow(trace_generator, &(safe_div(((3095 * global_values.trace_length)), 65536))).
+ pow913 = pow105 * pow912; // pow(trace_generator, &(safe_div(((17 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 32))).
+ pow914 = pow126 * pow913; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 512)) + &(safe_div(global_values.trace_length, 32))).
+ pow915 = pow126 * pow914; // pow(trace_generator, &(safe_div(((19 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 32))).
+ pow916 = pow126 * pow915; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 256)) + &(safe_div(global_values.trace_length, 32))).
+ pow917 = pow126 * pow916; // pow(trace_generator, &(safe_div(((21 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 32))).
+ pow918 = pow126 * pow917; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 512)) + &(safe_div(global_values.trace_length, 32))).
+ pow919 = pow126 * pow918; // pow(trace_generator, &(safe_div(((23 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 32))).
+ pow920 = pow606 * pow919; // pow(trace_generator, &(safe_div(global_values.trace_length, 16))).
+ pow921 = pow58 * pow920; // pow(trace_generator, &(safe_div(((4097 * global_values.trace_length)), 65536))).
+ pow922 = pow58 * pow921; // pow(trace_generator, &(safe_div(((2049 * global_values.trace_length)), 32768))).
+ pow923 = pow58 * pow922; // pow(trace_generator, &(safe_div(((4099 * global_values.trace_length)), 65536))).
+ pow924 = pow58 * pow923; // pow(trace_generator, &(safe_div(((1025 * global_values.trace_length)), 16384))).
+ pow925 = pow58 * pow924; // pow(trace_generator, &(safe_div(((4101 * global_values.trace_length)), 65536))).
+ pow926 = pow58 * pow925; // pow(trace_generator, &(safe_div(((2051 * global_values.trace_length)), 32768))).
+ pow927 = pow58 * pow926; // pow(trace_generator, &(safe_div(((4103 * global_values.trace_length)), 65536))).
+ pow928 = pow58 * pow927; // pow(trace_generator, &(safe_div(((513 * global_values.trace_length)), 8192))).
+ pow929 = pow58 * pow928; // pow(trace_generator, &(safe_div(((4105 * global_values.trace_length)), 65536))).
+ pow930 = pow58 * pow929; // pow(trace_generator, &(safe_div(((2053 * global_values.trace_length)), 32768))).
+ pow931 = pow58 * pow930; // pow(trace_generator, &(safe_div(((4107 * global_values.trace_length)), 65536))).
+ pow932 = pow58 * pow931; // pow(trace_generator, &(safe_div(((1027 * global_values.trace_length)), 16384))).
+ pow933 = pow58 * pow932; // pow(trace_generator, &(safe_div(((4109 * global_values.trace_length)), 65536))).
+ pow934 = pow58 * pow933; // pow(trace_generator, &(safe_div(((2055 * global_values.trace_length)), 32768))).
+ pow935 = pow58 * pow934; // pow(trace_generator, &(safe_div(((4111 * global_values.trace_length)), 65536))).
+ pow936 = pow58 * pow935; // pow(trace_generator, &(safe_div(((257 * global_values.trace_length)), 4096))).
+ pow937 = pow58 * pow936; // pow(trace_generator, &(safe_div(((4113 * global_values.trace_length)), 65536))).
+ pow938 = pow58 * pow937; // pow(trace_generator, &(safe_div(((2057 * global_values.trace_length)), 32768))).
+ pow939 = pow58 * pow938; // pow(trace_generator, &(safe_div(((4115 * global_values.trace_length)), 65536))).
+ pow940 = pow58 * pow939; // pow(trace_generator, &(safe_div(((1029 * global_values.trace_length)), 16384))).
+ pow941 = pow58 * pow940; // pow(trace_generator, &(safe_div(((4117 * global_values.trace_length)), 65536))).
+ pow942 = pow58 * pow941; // pow(trace_generator, &(safe_div(((2059 * global_values.trace_length)), 32768))).
+ pow943 = pow58 * pow942; // pow(trace_generator, &(safe_div(((4119 * global_values.trace_length)), 65536))).
+ pow944 = pow105 * pow943; // pow(trace_generator, &(safe_div(global_values.trace_length, 1024)) + &(safe_div(global_values.trace_length, 16))).
+ pow945 = pow126 * pow944; // pow(trace_generator, &(safe_div(global_values.trace_length, 512)) + &(safe_div(global_values.trace_length, 16))).
+ pow946 = pow126 * pow945; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 16))).
+ pow947 = pow126 * pow946; // pow(trace_generator, &(safe_div(global_values.trace_length, 256)) + &(safe_div(global_values.trace_length, 16))).
+ pow948 = pow126 * pow947; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 16))).
+ pow949 = pow126 * pow948; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 512)) + &(safe_div(global_values.trace_length, 16))).
+ pow950 = pow126 * pow949; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 16))).
+ pow951 = pow126 * pow950; // pow(trace_generator, &(safe_div(global_values.trace_length, 128)) + &(safe_div(global_values.trace_length, 16))).
+ pow952 = pow126 * pow951; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 16))).
+ pow953 = pow126 * pow952; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 512)) + &(safe_div(global_values.trace_length, 16))).
+ pow954 = pow126 * pow953; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 16))).
+ pow955 = pow126 * pow954; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 256)) + &(safe_div(global_values.trace_length, 16))).
+ pow956 = pow126 * pow955; // pow(trace_generator, &(safe_div(((13 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 16))).
+ pow957 = pow126 * pow956; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 512)) + &(safe_div(global_values.trace_length, 16))).
+ pow958 = pow126 * pow957; // pow(trace_generator, &(safe_div(((15 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 16))).
+ pow959 = pow126 * pow958; // pow(trace_generator, &(safe_div(global_values.trace_length, 64)) + &(safe_div(global_values.trace_length, 16))).
+ pow960 = pow58 * pow959; // pow(trace_generator, &(safe_div(((5121 * global_values.trace_length)), 65536))).
+ pow961 = pow58 * pow960; // pow(trace_generator, &(safe_div(((2561 * global_values.trace_length)), 32768))).
+ pow962 = pow58 * pow961; // pow(trace_generator, &(safe_div(((5123 * global_values.trace_length)), 65536))).
+ pow963 = pow58 * pow962; // pow(trace_generator, &(safe_div(((1281 * global_values.trace_length)), 16384))).
+ pow964 = pow58 * pow963; // pow(trace_generator, &(safe_div(((5125 * global_values.trace_length)), 65536))).
+ pow965 = pow58 * pow964; // pow(trace_generator, &(safe_div(((2563 * global_values.trace_length)), 32768))).
+ pow966 = pow58 * pow965; // pow(trace_generator, &(safe_div(((5127 * global_values.trace_length)), 65536))).
+ pow967 = pow58 * pow966; // pow(trace_generator, &(safe_div(((641 * global_values.trace_length)), 8192))).
+ pow968 = pow58 * pow967; // pow(trace_generator, &(safe_div(((5129 * global_values.trace_length)), 65536))).
+ pow969 = pow58 * pow968; // pow(trace_generator, &(safe_div(((2565 * global_values.trace_length)), 32768))).
+ pow970 = pow58 * pow969; // pow(trace_generator, &(safe_div(((5131 * global_values.trace_length)), 65536))).
+ pow971 = pow58 * pow970; // pow(trace_generator, &(safe_div(((1283 * global_values.trace_length)), 16384))).
+ pow972 = pow58 * pow971; // pow(trace_generator, &(safe_div(((5133 * global_values.trace_length)), 65536))).
+ pow973 = pow58 * pow972; // pow(trace_generator, &(safe_div(((2567 * global_values.trace_length)), 32768))).
+ pow974 = pow58 * pow973; // pow(trace_generator, &(safe_div(((5135 * global_values.trace_length)), 65536))).
+ pow975 = pow58 * pow974; // pow(trace_generator, &(safe_div(((321 * global_values.trace_length)), 4096))).
+ pow976 = pow58 * pow975; // pow(trace_generator, &(safe_div(((5137 * global_values.trace_length)), 65536))).
+ pow977 = pow58 * pow976; // pow(trace_generator, &(safe_div(((2569 * global_values.trace_length)), 32768))).
+ pow978 = pow58 * pow977; // pow(trace_generator, &(safe_div(((5139 * global_values.trace_length)), 65536))).
+ pow979 = pow58 * pow978; // pow(trace_generator, &(safe_div(((1285 * global_values.trace_length)), 16384))).
+ pow980 = pow58 * pow979; // pow(trace_generator, &(safe_div(((5141 * global_values.trace_length)), 65536))).
+ pow981 = pow58 * pow980; // pow(trace_generator, &(safe_div(((2571 * global_values.trace_length)), 32768))).
+ pow982 = pow58 * pow981; // pow(trace_generator, &(safe_div(((5143 * global_values.trace_length)), 65536))).
+ pow983 = pow105 * pow982; // pow(trace_generator, &(safe_div(((17 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 16))).
+ pow984 = pow126 * pow983; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 512)) + &(safe_div(global_values.trace_length, 16))).
+ pow985 = pow126 * pow984; // pow(trace_generator, &(safe_div(((19 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 16))).
+ pow986 = pow126 * pow985; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 256)) + &(safe_div(global_values.trace_length, 16))).
+ pow987 = pow126 * pow986; // pow(trace_generator, &(safe_div(((21 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 16))).
+ pow988 = pow126 * pow987; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 512)) + &(safe_div(global_values.trace_length, 16))).
+ pow989 = pow126 * pow988; // pow(trace_generator, &(safe_div(((23 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 16))).
+ pow990 = pow606 * pow989; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 32))).
+ pow991 = pow58 * pow990; // pow(trace_generator, &(safe_div(((6145 * global_values.trace_length)), 65536))).
+ pow992 = pow58 * pow991; // pow(trace_generator, &(safe_div(((3073 * global_values.trace_length)), 32768))).
+ pow993 = pow58 * pow992; // pow(trace_generator, &(safe_div(((6147 * global_values.trace_length)), 65536))).
+ pow994 = pow58 * pow993; // pow(trace_generator, &(safe_div(((1537 * global_values.trace_length)), 16384))).
+ pow995 = pow58 * pow994; // pow(trace_generator, &(safe_div(((6149 * global_values.trace_length)), 65536))).
+ pow996 = pow58 * pow995; // pow(trace_generator, &(safe_div(((3075 * global_values.trace_length)), 32768))).
+ pow997 = pow58 * pow996; // pow(trace_generator, &(safe_div(((6151 * global_values.trace_length)), 65536))).
+ pow998 = pow58 * pow997; // pow(trace_generator, &(safe_div(((769 * global_values.trace_length)), 8192))).
+ pow999 = pow58 * pow998; // pow(trace_generator, &(safe_div(((6153 * global_values.trace_length)), 65536))).
+ pow1000 = pow58 * pow999; // pow(trace_generator, &(safe_div(((3077 * global_values.trace_length)), 32768))).
+ pow1001 = pow58 * pow1000; // pow(trace_generator, &(safe_div(((6155 * global_values.trace_length)), 65536))).
+ pow1002 = pow58 * pow1001; // pow(trace_generator, &(safe_div(((1539 * global_values.trace_length)), 16384))).
+ pow1003 = pow58 * pow1002; // pow(trace_generator, &(safe_div(((6157 * global_values.trace_length)), 65536))).
+ pow1004 = pow58 * pow1003; // pow(trace_generator, &(safe_div(((3079 * global_values.trace_length)), 32768))).
+ pow1005 = pow58 * pow1004; // pow(trace_generator, &(safe_div(((6159 * global_values.trace_length)), 65536))).
+ pow1006 = pow58 * pow1005; // pow(trace_generator, &(safe_div(((385 * global_values.trace_length)), 4096))).
+ pow1007 = pow58 * pow1006; // pow(trace_generator, &(safe_div(((6161 * global_values.trace_length)), 65536))).
+ pow1008 = pow58 * pow1007; // pow(trace_generator, &(safe_div(((3081 * global_values.trace_length)), 32768))).
+ pow1009 = pow58 * pow1008; // pow(trace_generator, &(safe_div(((6163 * global_values.trace_length)), 65536))).
+ pow1010 = pow58 * pow1009; // pow(trace_generator, &(safe_div(((1541 * global_values.trace_length)), 16384))).
+ pow1011 = pow58 * pow1010; // pow(trace_generator, &(safe_div(((6165 * global_values.trace_length)), 65536))).
+ pow1012 = pow58 * pow1011; // pow(trace_generator, &(safe_div(((3083 * global_values.trace_length)), 32768))).
+ pow1013 = pow58 * pow1012; // pow(trace_generator, &(safe_div(((6167 * global_values.trace_length)), 65536))).
+ pow1014 = pow819 * pow990; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 64))).
+ pow1015 = pow819 * pow1014; // pow(trace_generator, &(safe_div(global_values.trace_length, 8))).
+ pow1016 = pow819 * pow1015; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 64))).
+ pow1017 = pow58 * pow1014; // pow(trace_generator, &(safe_div(((7169 * global_values.trace_length)), 65536))).
+ pow1018 = pow58 * pow1015; // pow(trace_generator, &(safe_div(((8193 * global_values.trace_length)), 65536))).
+ pow1019 = pow58 * pow1016; // pow(trace_generator, &(safe_div(((9217 * global_values.trace_length)), 65536))).
+ pow1020 = pow58 * pow1017; // pow(trace_generator, &(safe_div(((3585 * global_values.trace_length)), 32768))).
+ pow1021 = pow58 * pow1018; // pow(trace_generator, &(safe_div(((4097 * global_values.trace_length)), 32768))).
+ pow1022 = pow58 * pow1019; // pow(trace_generator, &(safe_div(((4609 * global_values.trace_length)), 32768))).
+ pow1023 = pow58 * pow1020; // pow(trace_generator, &(safe_div(((7171 * global_values.trace_length)), 65536))).
+ pow1024 = pow58 * pow1021; // pow(trace_generator, &(safe_div(((8195 * global_values.trace_length)), 65536))).
+ pow1025 = pow58 * pow1022; // pow(trace_generator, &(safe_div(((9219 * global_values.trace_length)), 65536))).
+ pow1026 = pow58 * pow1023; // pow(trace_generator, &(safe_div(((1793 * global_values.trace_length)), 16384))).
+ pow1027 = pow58 * pow1024; // pow(trace_generator, &(safe_div(((2049 * global_values.trace_length)), 16384))).
+ pow1028 = pow58 * pow1025; // pow(trace_generator, &(safe_div(((2305 * global_values.trace_length)), 16384))).
+ pow1029 = pow58 * pow1026; // pow(trace_generator, &(safe_div(((7173 * global_values.trace_length)), 65536))).
+ pow1030 = pow58 * pow1027; // pow(trace_generator, &(safe_div(((8197 * global_values.trace_length)), 65536))).
+ pow1031 = pow58 * pow1028; // pow(trace_generator, &(safe_div(((9221 * global_values.trace_length)), 65536))).
+ pow1032 = pow58 * pow1029; // pow(trace_generator, &(safe_div(((3587 * global_values.trace_length)), 32768))).
+ pow1033 = pow58 * pow1030; // pow(trace_generator, &(safe_div(((4099 * global_values.trace_length)), 32768))).
+ pow1034 = pow58 * pow1031; // pow(trace_generator, &(safe_div(((4611 * global_values.trace_length)), 32768))).
+ pow1035 = pow58 * pow1032; // pow(trace_generator, &(safe_div(((7175 * global_values.trace_length)), 65536))).
+ pow1036 = pow58 * pow1035; // pow(trace_generator, &(safe_div(((897 * global_values.trace_length)), 8192))).
+ pow1037 = pow58 * pow1036; // pow(trace_generator, &(safe_div(((7177 * global_values.trace_length)), 65536))).
+ pow1038 = pow58 * pow1037; // pow(trace_generator, &(safe_div(((3589 * global_values.trace_length)), 32768))).
+ pow1039 = pow58 * pow1038; // pow(trace_generator, &(safe_div(((7179 * global_values.trace_length)), 65536))).
+ pow1040 = pow58 * pow1039; // pow(trace_generator, &(safe_div(((1795 * global_values.trace_length)), 16384))).
+ pow1041 = pow58 * pow1040; // pow(trace_generator, &(safe_div(((7181 * global_values.trace_length)), 65536))).
+ pow1042 = pow58 * pow1041; // pow(trace_generator, &(safe_div(((3591 * global_values.trace_length)), 32768))).
+ pow1043 = pow58 * pow1042; // pow(trace_generator, &(safe_div(((7183 * global_values.trace_length)), 65536))).
+ pow1044 = pow58 * pow1043; // pow(trace_generator, &(safe_div(((449 * global_values.trace_length)), 4096))).
+ pow1045 = pow58 * pow1044; // pow(trace_generator, &(safe_div(((7185 * global_values.trace_length)), 65536))).
+ pow1046 = pow58 * pow1045; // pow(trace_generator, &(safe_div(((3593 * global_values.trace_length)), 32768))).
+ pow1047 = pow58 * pow1046; // pow(trace_generator, &(safe_div(((7187 * global_values.trace_length)), 65536))).
+ pow1048 = pow58 * pow1047; // pow(trace_generator, &(safe_div(((1797 * global_values.trace_length)), 16384))).
+ pow1049 = pow58 * pow1048; // pow(trace_generator, &(safe_div(((7189 * global_values.trace_length)), 65536))).
+ pow1050 = pow58 * pow1049; // pow(trace_generator, &(safe_div(((3595 * global_values.trace_length)), 32768))).
+ pow1051 = pow58 * pow1050; // pow(trace_generator, &(safe_div(((7191 * global_values.trace_length)), 65536))).
+ pow1052 = pow58 * pow1033; // pow(trace_generator, &(safe_div(((8199 * global_values.trace_length)), 65536))).
+ pow1053 = pow58 * pow1052; // pow(trace_generator, &(safe_div(((1025 * global_values.trace_length)), 8192))).
+ pow1054 = pow58 * pow1053; // pow(trace_generator, &(safe_div(((8201 * global_values.trace_length)), 65536))).
+ pow1055 = pow58 * pow1054; // pow(trace_generator, &(safe_div(((4101 * global_values.trace_length)), 32768))).
+ pow1056 = pow58 * pow1055; // pow(trace_generator, &(safe_div(((8203 * global_values.trace_length)), 65536))).
+ pow1057 = pow58 * pow1056; // pow(trace_generator, &(safe_div(((2051 * global_values.trace_length)), 16384))).
+ pow1058 = pow58 * pow1057; // pow(trace_generator, &(safe_div(((8205 * global_values.trace_length)), 65536))).
+ pow1059 = pow58 * pow1058; // pow(trace_generator, &(safe_div(((4103 * global_values.trace_length)), 32768))).
+ pow1060 = pow58 * pow1059; // pow(trace_generator, &(safe_div(((8207 * global_values.trace_length)), 65536))).
+ pow1061 = pow58 * pow1060; // pow(trace_generator, &(safe_div(((513 * global_values.trace_length)), 4096))).
+ pow1062 = pow58 * pow1061; // pow(trace_generator, &(safe_div(((8209 * global_values.trace_length)), 65536))).
+ pow1063 = pow58 * pow1062; // pow(trace_generator, &(safe_div(((4105 * global_values.trace_length)), 32768))).
+ pow1064 = pow58 * pow1063; // pow(trace_generator, &(safe_div(((8211 * global_values.trace_length)), 65536))).
+ pow1065 = pow58 * pow1064; // pow(trace_generator, &(safe_div(((2053 * global_values.trace_length)), 16384))).
+ pow1066 = pow58 * pow1065; // pow(trace_generator, &(safe_div(((8213 * global_values.trace_length)), 65536))).
+ pow1067 = pow58 * pow1066; // pow(trace_generator, &(safe_div(((4107 * global_values.trace_length)), 32768))).
+ pow1068 = pow58 * pow1067; // pow(trace_generator, &(safe_div(((8215 * global_values.trace_length)), 65536))).
+ pow1069 = pow58 * pow1034; // pow(trace_generator, &(safe_div(((9223 * global_values.trace_length)), 65536))).
+ pow1070 = pow58 * pow1069; // pow(trace_generator, &(safe_div(((1153 * global_values.trace_length)), 8192))).
+ pow1071 = pow58 * pow1070; // pow(trace_generator, &(safe_div(((9225 * global_values.trace_length)), 65536))).
+ pow1072 = pow58 * pow1071; // pow(trace_generator, &(safe_div(((4613 * global_values.trace_length)), 32768))).
+ pow1073 = pow58 * pow1072; // pow(trace_generator, &(safe_div(((9227 * global_values.trace_length)), 65536))).
+ pow1074 = pow58 * pow1073; // pow(trace_generator, &(safe_div(((2307 * global_values.trace_length)), 16384))).
+ pow1075 = pow58 * pow1074; // pow(trace_generator, &(safe_div(((9229 * global_values.trace_length)), 65536))).
+ pow1076 = pow58 * pow1075; // pow(trace_generator, &(safe_div(((4615 * global_values.trace_length)), 32768))).
+ pow1077 = pow58 * pow1076; // pow(trace_generator, &(safe_div(((9231 * global_values.trace_length)), 65536))).
+ pow1078 = pow58 * pow1077; // pow(trace_generator, &(safe_div(((577 * global_values.trace_length)), 4096))).
+ pow1079 = pow58 * pow1078; // pow(trace_generator, &(safe_div(((9233 * global_values.trace_length)), 65536))).
+ pow1080 = pow58 * pow1079; // pow(trace_generator, &(safe_div(((4617 * global_values.trace_length)), 32768))).
+ pow1081 = pow58 * pow1080; // pow(trace_generator, &(safe_div(((9235 * global_values.trace_length)), 65536))).
+ pow1082 = pow58 * pow1081; // pow(trace_generator, &(safe_div(((2309 * global_values.trace_length)), 16384))).
+ pow1083 = pow58 * pow1082; // pow(trace_generator, &(safe_div(((9237 * global_values.trace_length)), 65536))).
+ pow1084 = pow58 * pow1083; // pow(trace_generator, &(safe_div(((4619 * global_values.trace_length)), 32768))).
+ pow1085 = pow58 * pow1084; // pow(trace_generator, &(safe_div(((9239 * global_values.trace_length)), 65536))).
+ pow1086 = pow819 * pow1016; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 32))).
+ pow1087 = pow58 * pow1086; // pow(trace_generator, &(safe_div(((10241 * global_values.trace_length)), 65536))).
+ pow1088 = pow58 * pow1087; // pow(trace_generator, &(safe_div(((5121 * global_values.trace_length)), 32768))).
+ pow1089 = pow58 * pow1088; // pow(trace_generator, &(safe_div(((10243 * global_values.trace_length)), 65536))).
+ pow1090 = pow58 * pow1089; // pow(trace_generator, &(safe_div(((2561 * global_values.trace_length)), 16384))).
+ pow1091 = pow58 * pow1090; // pow(trace_generator, &(safe_div(((10245 * global_values.trace_length)), 65536))).
+ pow1092 = pow58 * pow1091; // pow(trace_generator, &(safe_div(((5123 * global_values.trace_length)), 32768))).
+ pow1093 = pow58 * pow1092; // pow(trace_generator, &(safe_div(((10247 * global_values.trace_length)), 65536))).
+ pow1094 = pow58 * pow1093; // pow(trace_generator, &(safe_div(((1281 * global_values.trace_length)), 8192))).
+ pow1095 = pow58 * pow1094; // pow(trace_generator, &(safe_div(((10249 * global_values.trace_length)), 65536))).
+ pow1096 = pow58 * pow1095; // pow(trace_generator, &(safe_div(((5125 * global_values.trace_length)), 32768))).
+ pow1097 = pow58 * pow1096; // pow(trace_generator, &(safe_div(((10251 * global_values.trace_length)), 65536))).
+ pow1098 = pow58 * pow1097; // pow(trace_generator, &(safe_div(((2563 * global_values.trace_length)), 16384))).
+ pow1099 = pow58 * pow1098; // pow(trace_generator, &(safe_div(((10253 * global_values.trace_length)), 65536))).
+ pow1100 = pow58 * pow1099; // pow(trace_generator, &(safe_div(((5127 * global_values.trace_length)), 32768))).
+ pow1101 = pow58 * pow1100; // pow(trace_generator, &(safe_div(((10255 * global_values.trace_length)), 65536))).
+ pow1102 = pow58 * pow1101; // pow(trace_generator, &(safe_div(((641 * global_values.trace_length)), 4096))).
+ pow1103 = pow58 * pow1102; // pow(trace_generator, &(safe_div(((10257 * global_values.trace_length)), 65536))).
+ pow1104 = pow58 * pow1103; // pow(trace_generator, &(safe_div(((5129 * global_values.trace_length)), 32768))).
+ pow1105 = pow58 * pow1104; // pow(trace_generator, &(safe_div(((10259 * global_values.trace_length)), 65536))).
+ pow1106 = pow58 * pow1105; // pow(trace_generator, &(safe_div(((2565 * global_values.trace_length)), 16384))).
+ pow1107 = pow58 * pow1106; // pow(trace_generator, &(safe_div(((10261 * global_values.trace_length)), 65536))).
+ pow1108 = pow58 * pow1107; // pow(trace_generator, &(safe_div(((5131 * global_values.trace_length)), 32768))).
+ pow1109 = pow58 * pow1108; // pow(trace_generator, &(safe_div(((10263 * global_values.trace_length)), 65536))).
+ pow1110 = pow105 * pow1109; // pow(trace_generator, &(safe_div(global_values.trace_length, 1024)) + &(safe_div(((5 * global_values.trace_length)), 32))).
+ pow1111 = pow126 * pow1110; // pow(trace_generator, &(safe_div(global_values.trace_length, 512)) + &(safe_div(((5 * global_values.trace_length)), 32))).
+ pow1112 = pow126 * pow1111; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 32))).
+ pow1113 = pow126 * pow1112; // pow(trace_generator, &(safe_div(global_values.trace_length, 256)) + &(safe_div(((5 * global_values.trace_length)), 32))).
+ pow1114 = pow126 * pow1113; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 32))).
+ pow1115 = pow126 * pow1114; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 512)) + &(safe_div(((5 * global_values.trace_length)), 32))).
+ pow1116 = pow126 * pow1115; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 32))).
+ pow1117 = pow126 * pow1116; // pow(trace_generator, &(safe_div(global_values.trace_length, 128)) + &(safe_div(((5 * global_values.trace_length)), 32))).
+ pow1118 = pow126 * pow1117; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 32))).
+ pow1119 = pow126 * pow1118; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 512)) + &(safe_div(((5 * global_values.trace_length)), 32))).
+ pow1120 = pow126 * pow1119; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 32))).
+ pow1121 = pow126 * pow1120; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 256)) + &(safe_div(((5 * global_values.trace_length)), 32))).
+ pow1122 = pow126 * pow1121; // pow(trace_generator, &(safe_div(((13 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 32))).
+ pow1123 = pow126 * pow1122; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 512)) + &(safe_div(((5 * global_values.trace_length)), 32))).
+ pow1124 = pow126 * pow1123; // pow(trace_generator, &(safe_div(((15 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 32))).
+ pow1125 = pow126 * pow1124; // pow(trace_generator, &(safe_div(global_values.trace_length, 64)) + &(safe_div(((5 * global_values.trace_length)), 32))).
+ pow1126 = pow58 * pow1125; // pow(trace_generator, &(safe_div(((11265 * global_values.trace_length)), 65536))).
+ pow1127 = pow58 * pow1126; // pow(trace_generator, &(safe_div(((5633 * global_values.trace_length)), 32768))).
+ pow1128 = pow58 * pow1127; // pow(trace_generator, &(safe_div(((11267 * global_values.trace_length)), 65536))).
+ pow1129 = pow58 * pow1128; // pow(trace_generator, &(safe_div(((2817 * global_values.trace_length)), 16384))).
+ pow1130 = pow58 * pow1129; // pow(trace_generator, &(safe_div(((11269 * global_values.trace_length)), 65536))).
+ pow1131 = pow58 * pow1130; // pow(trace_generator, &(safe_div(((5635 * global_values.trace_length)), 32768))).
+ pow1132 = pow58 * pow1131; // pow(trace_generator, &(safe_div(((11271 * global_values.trace_length)), 65536))).
+ pow1133 = pow58 * pow1132; // pow(trace_generator, &(safe_div(((1409 * global_values.trace_length)), 8192))).
+ pow1134 = pow58 * pow1133; // pow(trace_generator, &(safe_div(((11273 * global_values.trace_length)), 65536))).
+ pow1135 = pow58 * pow1134; // pow(trace_generator, &(safe_div(((5637 * global_values.trace_length)), 32768))).
+ pow1136 = pow58 * pow1135; // pow(trace_generator, &(safe_div(((11275 * global_values.trace_length)), 65536))).
+ pow1137 = pow58 * pow1136; // pow(trace_generator, &(safe_div(((2819 * global_values.trace_length)), 16384))).
+ pow1138 = pow58 * pow1137; // pow(trace_generator, &(safe_div(((11277 * global_values.trace_length)), 65536))).
+ pow1139 = pow58 * pow1138; // pow(trace_generator, &(safe_div(((5639 * global_values.trace_length)), 32768))).
+ pow1140 = pow58 * pow1139; // pow(trace_generator, &(safe_div(((11279 * global_values.trace_length)), 65536))).
+ pow1141 = pow58 * pow1140; // pow(trace_generator, &(safe_div(((705 * global_values.trace_length)), 4096))).
+ pow1142 = pow58 * pow1141; // pow(trace_generator, &(safe_div(((11281 * global_values.trace_length)), 65536))).
+ pow1143 = pow58 * pow1142; // pow(trace_generator, &(safe_div(((5641 * global_values.trace_length)), 32768))).
+ pow1144 = pow58 * pow1143; // pow(trace_generator, &(safe_div(((11283 * global_values.trace_length)), 65536))).
+ pow1145 = pow58 * pow1144; // pow(trace_generator, &(safe_div(((2821 * global_values.trace_length)), 16384))).
+ pow1146 = pow58 * pow1145; // pow(trace_generator, &(safe_div(((11285 * global_values.trace_length)), 65536))).
+ pow1147 = pow58 * pow1146; // pow(trace_generator, &(safe_div(((5643 * global_values.trace_length)), 32768))).
+ pow1148 = pow58 * pow1147; // pow(trace_generator, &(safe_div(((11287 * global_values.trace_length)), 65536))).
+ pow1149 = pow105 * pow1148; // pow(trace_generator, &(safe_div(((17 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 32))).
+ pow1150 = pow126 * pow1149; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 512)) + &(safe_div(((5 * global_values.trace_length)), 32))).
+ pow1151 = pow126 * pow1150; // pow(trace_generator, &(safe_div(((19 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 32))).
+ pow1152 = pow126 * pow1151; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 256)) + &(safe_div(((5 * global_values.trace_length)), 32))).
+ pow1153 = pow126 * pow1152; // pow(trace_generator, &(safe_div(((21 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 32))).
+ pow1154 = pow126 * pow1153; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 512)) + &(safe_div(((5 * global_values.trace_length)), 32))).
+ pow1155 = pow126 * pow1154; // pow(trace_generator, &(safe_div(((23 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 32))).
+ pow1156 = pow606 * pow1155; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 16))).
+ pow1157 = pow58 * pow1156; // pow(trace_generator, &(safe_div(((12289 * global_values.trace_length)), 65536))).
+ pow1158 = pow58 * pow1157; // pow(trace_generator, &(safe_div(((6145 * global_values.trace_length)), 32768))).
+ pow1159 = pow58 * pow1158; // pow(trace_generator, &(safe_div(((12291 * global_values.trace_length)), 65536))).
+ pow1160 = pow58 * pow1159; // pow(trace_generator, &(safe_div(((3073 * global_values.trace_length)), 16384))).
+ pow1161 = pow58 * pow1160; // pow(trace_generator, &(safe_div(((12293 * global_values.trace_length)), 65536))).
+ pow1162 = pow58 * pow1161; // pow(trace_generator, &(safe_div(((6147 * global_values.trace_length)), 32768))).
+ pow1163 = pow58 * pow1162; // pow(trace_generator, &(safe_div(((12295 * global_values.trace_length)), 65536))).
+ pow1164 = pow58 * pow1163; // pow(trace_generator, &(safe_div(((1537 * global_values.trace_length)), 8192))).
+ pow1165 = pow58 * pow1164; // pow(trace_generator, &(safe_div(((12297 * global_values.trace_length)), 65536))).
+ pow1166 = pow58 * pow1165; // pow(trace_generator, &(safe_div(((6149 * global_values.trace_length)), 32768))).
+ pow1167 = pow58 * pow1166; // pow(trace_generator, &(safe_div(((12299 * global_values.trace_length)), 65536))).
+ pow1168 = pow58 * pow1167; // pow(trace_generator, &(safe_div(((3075 * global_values.trace_length)), 16384))).
+ pow1169 = pow58 * pow1168; // pow(trace_generator, &(safe_div(((12301 * global_values.trace_length)), 65536))).
+ pow1170 = pow58 * pow1169; // pow(trace_generator, &(safe_div(((6151 * global_values.trace_length)), 32768))).
+ pow1171 = pow58 * pow1170; // pow(trace_generator, &(safe_div(((12303 * global_values.trace_length)), 65536))).
+ pow1172 = pow58 * pow1171; // pow(trace_generator, &(safe_div(((769 * global_values.trace_length)), 4096))).
+ pow1173 = pow58 * pow1172; // pow(trace_generator, &(safe_div(((12305 * global_values.trace_length)), 65536))).
+ pow1174 = pow58 * pow1173; // pow(trace_generator, &(safe_div(((6153 * global_values.trace_length)), 32768))).
+ pow1175 = pow58 * pow1174; // pow(trace_generator, &(safe_div(((12307 * global_values.trace_length)), 65536))).
+ pow1176 = pow58 * pow1175; // pow(trace_generator, &(safe_div(((3077 * global_values.trace_length)), 16384))).
+ pow1177 = pow58 * pow1176; // pow(trace_generator, &(safe_div(((12309 * global_values.trace_length)), 65536))).
+ pow1178 = pow58 * pow1177; // pow(trace_generator, &(safe_div(((6155 * global_values.trace_length)), 32768))).
+ pow1179 = pow58 * pow1178; // pow(trace_generator, &(safe_div(((12311 * global_values.trace_length)), 65536))).
+ pow1180 = pow105 * pow1179; // pow(trace_generator, &(safe_div(global_values.trace_length, 1024)) + &(safe_div(((3 * global_values.trace_length)), 16))).
+ pow1181 = pow126 * pow1180; // pow(trace_generator, &(safe_div(global_values.trace_length, 512)) + &(safe_div(((3 * global_values.trace_length)), 16))).
+ pow1182 = pow126 * pow1181; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 1024)) + &(safe_div(((3 * global_values.trace_length)), 16))).
+ pow1183 = pow126 * pow1182; // pow(trace_generator, &(safe_div(global_values.trace_length, 256)) + &(safe_div(((3 * global_values.trace_length)), 16))).
+ pow1184 = pow126 * pow1183; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 1024)) + &(safe_div(((3 * global_values.trace_length)), 16))).
+ pow1185 = pow126 * pow1184; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 512)) + &(safe_div(((3 * global_values.trace_length)), 16))).
+ pow1186 = pow126 * pow1185; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 1024)) + &(safe_div(((3 * global_values.trace_length)), 16))).
+ pow1187 = pow126 * pow1186; // pow(trace_generator, &(safe_div(global_values.trace_length, 128)) + &(safe_div(((3 * global_values.trace_length)), 16))).
+ pow1188 = pow126 * pow1187; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 1024)) + &(safe_div(((3 * global_values.trace_length)), 16))).
+ pow1189 = pow126 * pow1188; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 512)) + &(safe_div(((3 * global_values.trace_length)), 16))).
+ pow1190 = pow126 * pow1189; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 1024)) + &(safe_div(((3 * global_values.trace_length)), 16))).
+ pow1191 = pow126 * pow1190; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 256)) + &(safe_div(((3 * global_values.trace_length)), 16))).
+ pow1192 = pow126 * pow1191; // pow(trace_generator, &(safe_div(((13 * global_values.trace_length)), 1024)) + &(safe_div(((3 * global_values.trace_length)), 16))).
+ pow1193 = pow126 * pow1192; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 512)) + &(safe_div(((3 * global_values.trace_length)), 16))).
+ pow1194 = pow126 * pow1193; // pow(trace_generator, &(safe_div(((15 * global_values.trace_length)), 1024)) + &(safe_div(((3 * global_values.trace_length)), 16))).
+ pow1195 = pow126 * pow1194; // pow(trace_generator, &(safe_div(global_values.trace_length, 64)) + &(safe_div(((3 * global_values.trace_length)), 16))).
+ pow1196 = pow58 * pow1195; // pow(trace_generator, &(safe_div(((13313 * global_values.trace_length)), 65536))).
+ pow1197 = pow58 * pow1196; // pow(trace_generator, &(safe_div(((6657 * global_values.trace_length)), 32768))).
+ pow1198 = pow58 * pow1197; // pow(trace_generator, &(safe_div(((13315 * global_values.trace_length)), 65536))).
+ pow1199 = pow58 * pow1198; // pow(trace_generator, &(safe_div(((3329 * global_values.trace_length)), 16384))).
+ pow1200 = pow58 * pow1199; // pow(trace_generator, &(safe_div(((13317 * global_values.trace_length)), 65536))).
+ pow1201 = pow58 * pow1200; // pow(trace_generator, &(safe_div(((6659 * global_values.trace_length)), 32768))).
+ pow1202 = pow58 * pow1201; // pow(trace_generator, &(safe_div(((13319 * global_values.trace_length)), 65536))).
+ pow1203 = pow58 * pow1202; // pow(trace_generator, &(safe_div(((1665 * global_values.trace_length)), 8192))).
+ pow1204 = pow58 * pow1203; // pow(trace_generator, &(safe_div(((13321 * global_values.trace_length)), 65536))).
+ pow1205 = pow58 * pow1204; // pow(trace_generator, &(safe_div(((6661 * global_values.trace_length)), 32768))).
+ pow1206 = pow58 * pow1205; // pow(trace_generator, &(safe_div(((13323 * global_values.trace_length)), 65536))).
+ pow1207 = pow58 * pow1206; // pow(trace_generator, &(safe_div(((3331 * global_values.trace_length)), 16384))).
+ pow1208 = pow58 * pow1207; // pow(trace_generator, &(safe_div(((13325 * global_values.trace_length)), 65536))).
+ pow1209 = pow58 * pow1208; // pow(trace_generator, &(safe_div(((6663 * global_values.trace_length)), 32768))).
+ pow1210 = pow58 * pow1209; // pow(trace_generator, &(safe_div(((13327 * global_values.trace_length)), 65536))).
+ pow1211 = pow58 * pow1210; // pow(trace_generator, &(safe_div(((833 * global_values.trace_length)), 4096))).
+ pow1212 = pow58 * pow1211; // pow(trace_generator, &(safe_div(((13329 * global_values.trace_length)), 65536))).
+ pow1213 = pow58 * pow1212; // pow(trace_generator, &(safe_div(((6665 * global_values.trace_length)), 32768))).
+ pow1214 = pow58 * pow1213; // pow(trace_generator, &(safe_div(((13331 * global_values.trace_length)), 65536))).
+ pow1215 = pow58 * pow1214; // pow(trace_generator, &(safe_div(((3333 * global_values.trace_length)), 16384))).
+ pow1216 = pow58 * pow1215; // pow(trace_generator, &(safe_div(((13333 * global_values.trace_length)), 65536))).
+ pow1217 = pow58 * pow1216; // pow(trace_generator, &(safe_div(((6667 * global_values.trace_length)), 32768))).
+ pow1218 = pow58 * pow1217; // pow(trace_generator, &(safe_div(((13335 * global_values.trace_length)), 65536))).
+ pow1219 = pow105 * pow1218; // pow(trace_generator, &(safe_div(((17 * global_values.trace_length)), 1024)) + &(safe_div(((3 * global_values.trace_length)), 16))).
+ pow1220 = pow126 * pow1219; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 512)) + &(safe_div(((3 * global_values.trace_length)), 16))).
+ pow1221 = pow126 * pow1220; // pow(trace_generator, &(safe_div(((19 * global_values.trace_length)), 1024)) + &(safe_div(((3 * global_values.trace_length)), 16))).
+ pow1222 = pow126 * pow1221; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 256)) + &(safe_div(((3 * global_values.trace_length)), 16))).
+ pow1223 = pow126 * pow1222; // pow(trace_generator, &(safe_div(((21 * global_values.trace_length)), 1024)) + &(safe_div(((3 * global_values.trace_length)), 16))).
+ pow1224 = pow126 * pow1223; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 512)) + &(safe_div(((3 * global_values.trace_length)), 16))).
+ pow1225 = pow126 * pow1224; // pow(trace_generator, &(safe_div(((23 * global_values.trace_length)), 1024)) + &(safe_div(((3 * global_values.trace_length)), 16))).
+ pow1226 = pow606 * pow1225; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 32))).
+ pow1227 = pow58 * pow1226; // pow(trace_generator, &(safe_div(((14337 * global_values.trace_length)), 65536))).
+ pow1228 = pow58 * pow1227; // pow(trace_generator, &(safe_div(((7169 * global_values.trace_length)), 32768))).
+ pow1229 = pow58 * pow1228; // pow(trace_generator, &(safe_div(((14339 * global_values.trace_length)), 65536))).
+ pow1230 = pow58 * pow1229; // pow(trace_generator, &(safe_div(((3585 * global_values.trace_length)), 16384))).
+ pow1231 = pow58 * pow1230; // pow(trace_generator, &(safe_div(((14341 * global_values.trace_length)), 65536))).
+ pow1232 = pow58 * pow1231; // pow(trace_generator, &(safe_div(((7171 * global_values.trace_length)), 32768))).
+ pow1233 = pow58 * pow1232; // pow(trace_generator, &(safe_div(((14343 * global_values.trace_length)), 65536))).
+ pow1234 = pow58 * pow1233; // pow(trace_generator, &(safe_div(((1793 * global_values.trace_length)), 8192))).
+ pow1235 = pow58 * pow1234; // pow(trace_generator, &(safe_div(((14345 * global_values.trace_length)), 65536))).
+ pow1236 = pow58 * pow1235; // pow(trace_generator, &(safe_div(((7173 * global_values.trace_length)), 32768))).
+ pow1237 = pow58 * pow1236; // pow(trace_generator, &(safe_div(((14347 * global_values.trace_length)), 65536))).
+ pow1238 = pow58 * pow1237; // pow(trace_generator, &(safe_div(((3587 * global_values.trace_length)), 16384))).
+ pow1239 = pow58 * pow1238; // pow(trace_generator, &(safe_div(((14349 * global_values.trace_length)), 65536))).
+ pow1240 = pow58 * pow1239; // pow(trace_generator, &(safe_div(((7175 * global_values.trace_length)), 32768))).
+ pow1241 = pow58 * pow1240; // pow(trace_generator, &(safe_div(((14351 * global_values.trace_length)), 65536))).
+ pow1242 = pow58 * pow1241; // pow(trace_generator, &(safe_div(((897 * global_values.trace_length)), 4096))).
+ pow1243 = pow58 * pow1242; // pow(trace_generator, &(safe_div(((14353 * global_values.trace_length)), 65536))).
+ pow1244 = pow58 * pow1243; // pow(trace_generator, &(safe_div(((7177 * global_values.trace_length)), 32768))).
+ pow1245 = pow58 * pow1244; // pow(trace_generator, &(safe_div(((14355 * global_values.trace_length)), 65536))).
+ pow1246 = pow58 * pow1245; // pow(trace_generator, &(safe_div(((3589 * global_values.trace_length)), 16384))).
+ pow1247 = pow58 * pow1246; // pow(trace_generator, &(safe_div(((14357 * global_values.trace_length)), 65536))).
+ pow1248 = pow58 * pow1247; // pow(trace_generator, &(safe_div(((7179 * global_values.trace_length)), 32768))).
+ pow1249 = pow58 * pow1248; // pow(trace_generator, &(safe_div(((14359 * global_values.trace_length)), 65536))).
+ pow1250 = pow105 * pow1249; // pow(trace_generator, &(safe_div(global_values.trace_length, 1024)) + &(safe_div(((7 * global_values.trace_length)), 32))).
+ pow1251 = pow126 * pow1250; // pow(trace_generator, &(safe_div(global_values.trace_length, 512)) + &(safe_div(((7 * global_values.trace_length)), 32))).
+ pow1252 = pow126 * pow1251; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 1024)) + &(safe_div(((7 * global_values.trace_length)), 32))).
+ pow1253 = pow126 * pow1252; // pow(trace_generator, &(safe_div(global_values.trace_length, 256)) + &(safe_div(((7 * global_values.trace_length)), 32))).
+ pow1254 = pow126 * pow1253; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 1024)) + &(safe_div(((7 * global_values.trace_length)), 32))).
+ pow1255 = pow126 * pow1254; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 512)) + &(safe_div(((7 * global_values.trace_length)), 32))).
+ pow1256 = pow126 * pow1255; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 1024)) + &(safe_div(((7 * global_values.trace_length)), 32))).
+ pow1257 = pow126 * pow1256; // pow(trace_generator, &(safe_div(global_values.trace_length, 128)) + &(safe_div(((7 * global_values.trace_length)), 32))).
+ pow1258 = pow126 * pow1257; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 1024)) + &(safe_div(((7 * global_values.trace_length)), 32))).
+ pow1259 = pow126 * pow1258; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 512)) + &(safe_div(((7 * global_values.trace_length)), 32))).
+ pow1260 = pow126 * pow1259; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 1024)) + &(safe_div(((7 * global_values.trace_length)), 32))).
+ pow1261 = pow126 * pow1260; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 256)) + &(safe_div(((7 * global_values.trace_length)), 32))).
+ pow1262 = pow126 * pow1261; // pow(trace_generator, &(safe_div(((13 * global_values.trace_length)), 1024)) + &(safe_div(((7 * global_values.trace_length)), 32))).
+ pow1263 = pow126 * pow1262; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 512)) + &(safe_div(((7 * global_values.trace_length)), 32))).
+ pow1264 = pow126 * pow1263; // pow(trace_generator, &(safe_div(((15 * global_values.trace_length)), 1024)) + &(safe_div(((7 * global_values.trace_length)), 32))).
+ pow1265 = pow126 * pow1264; // pow(trace_generator, &(safe_div(global_values.trace_length, 64)) + &(safe_div(((7 * global_values.trace_length)), 32))).
+ pow1266 = pow58 * pow1265; // pow(trace_generator, &(safe_div(((15361 * global_values.trace_length)), 65536))).
+ pow1267 = pow58 * pow1266; // pow(trace_generator, &(safe_div(((7681 * global_values.trace_length)), 32768))).
+ pow1268 = pow58 * pow1267; // pow(trace_generator, &(safe_div(((15363 * global_values.trace_length)), 65536))).
+ pow1269 = pow58 * pow1268; // pow(trace_generator, &(safe_div(((3841 * global_values.trace_length)), 16384))).
+ pow1270 = pow58 * pow1269; // pow(trace_generator, &(safe_div(((15365 * global_values.trace_length)), 65536))).
+ pow1271 = pow58 * pow1270; // pow(trace_generator, &(safe_div(((7683 * global_values.trace_length)), 32768))).
+ pow1272 = pow58 * pow1271; // pow(trace_generator, &(safe_div(((15367 * global_values.trace_length)), 65536))).
+ pow1273 = pow58 * pow1272; // pow(trace_generator, &(safe_div(((1921 * global_values.trace_length)), 8192))).
+ pow1274 = pow58 * pow1273; // pow(trace_generator, &(safe_div(((15369 * global_values.trace_length)), 65536))).
+ pow1275 = pow58 * pow1274; // pow(trace_generator, &(safe_div(((7685 * global_values.trace_length)), 32768))).
+ pow1276 = pow58 * pow1275; // pow(trace_generator, &(safe_div(((15371 * global_values.trace_length)), 65536))).
+ pow1277 = pow58 * pow1276; // pow(trace_generator, &(safe_div(((3843 * global_values.trace_length)), 16384))).
+ pow1278 = pow58 * pow1277; // pow(trace_generator, &(safe_div(((15373 * global_values.trace_length)), 65536))).
+ pow1279 = pow58 * pow1278; // pow(trace_generator, &(safe_div(((7687 * global_values.trace_length)), 32768))).
+ pow1280 = pow58 * pow1279; // pow(trace_generator, &(safe_div(((15375 * global_values.trace_length)), 65536))).
+ pow1281 = pow58 * pow1280; // pow(trace_generator, &(safe_div(((961 * global_values.trace_length)), 4096))).
+ pow1282 = pow58 * pow1281; // pow(trace_generator, &(safe_div(((15377 * global_values.trace_length)), 65536))).
+ pow1283 = pow58 * pow1282; // pow(trace_generator, &(safe_div(((7689 * global_values.trace_length)), 32768))).
+ pow1284 = pow58 * pow1283; // pow(trace_generator, &(safe_div(((15379 * global_values.trace_length)), 65536))).
+ pow1285 = pow58 * pow1284; // pow(trace_generator, &(safe_div(((3845 * global_values.trace_length)), 16384))).
+ pow1286 = pow58 * pow1285; // pow(trace_generator, &(safe_div(((15381 * global_values.trace_length)), 65536))).
+ pow1287 = pow58 * pow1286; // pow(trace_generator, &(safe_div(((7691 * global_values.trace_length)), 32768))).
+ pow1288 = pow58 * pow1287; // pow(trace_generator, &(safe_div(((15383 * global_values.trace_length)), 65536))).
+ pow1289 = pow105 * pow1288; // pow(trace_generator, &(safe_div(((17 * global_values.trace_length)), 1024)) + &(safe_div(((7 * global_values.trace_length)), 32))).
+ pow1290 = pow126 * pow1289; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 512)) + &(safe_div(((7 * global_values.trace_length)), 32))).
+ pow1291 = pow126 * pow1290; // pow(trace_generator, &(safe_div(((19 * global_values.trace_length)), 1024)) + &(safe_div(((7 * global_values.trace_length)), 32))).
+ pow1292 = pow126 * pow1291; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 256)) + &(safe_div(((7 * global_values.trace_length)), 32))).
+ pow1293 = pow126 * pow1292; // pow(trace_generator, &(safe_div(((21 * global_values.trace_length)), 1024)) + &(safe_div(((7 * global_values.trace_length)), 32))).
+ pow1294 = pow126 * pow1293; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 512)) + &(safe_div(((7 * global_values.trace_length)), 32))).
+ pow1295 = pow126 * pow1294; // pow(trace_generator, &(safe_div(((23 * global_values.trace_length)), 1024)) + &(safe_div(((7 * global_values.trace_length)), 32))).
+ pow1296 = pow606 * pow1295; // pow(trace_generator, &(safe_div(global_values.trace_length, 4))).
+ pow1297 = pow819 * pow1296; // pow(trace_generator, &(safe_div(((17 * global_values.trace_length)), 64))).
+ pow1298 = pow819 * pow1297; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 32))).
+ pow1299 = pow819 * pow1298; // pow(trace_generator, &(safe_div(((19 * global_values.trace_length)), 64))).
+ pow1300 = pow58 * pow1296; // pow(trace_generator, &(safe_div(((16385 * global_values.trace_length)), 65536))).
+ pow1301 = pow58 * pow1297; // pow(trace_generator, &(safe_div(((17409 * global_values.trace_length)), 65536))).
+ pow1302 = pow58 * pow1298; // pow(trace_generator, &(safe_div(((18433 * global_values.trace_length)), 65536))).
+ pow1303 = pow58 * pow1299; // pow(trace_generator, &(safe_div(((19457 * global_values.trace_length)), 65536))).
+ pow1304 = pow58 * pow1300; // pow(trace_generator, &(safe_div(((8193 * global_values.trace_length)), 32768))).
+ pow1305 = pow58 * pow1301; // pow(trace_generator, &(safe_div(((8705 * global_values.trace_length)), 32768))).
+ pow1306 = pow58 * pow1302; // pow(trace_generator, &(safe_div(((9217 * global_values.trace_length)), 32768))).
+ pow1307 = pow58 * pow1303; // pow(trace_generator, &(safe_div(((9729 * global_values.trace_length)), 32768))).
+ pow1308 = pow58 * pow1304; // pow(trace_generator, &(safe_div(((16387 * global_values.trace_length)), 65536))).
+ pow1309 = pow58 * pow1305; // pow(trace_generator, &(safe_div(((17411 * global_values.trace_length)), 65536))).
+ pow1310 = pow58 * pow1306; // pow(trace_generator, &(safe_div(((18435 * global_values.trace_length)), 65536))).
+ pow1311 = pow58 * pow1307; // pow(trace_generator, &(safe_div(((19459 * global_values.trace_length)), 65536))).
+ pow1312 = pow58 * pow1308; // pow(trace_generator, &(safe_div(((4097 * global_values.trace_length)), 16384))).
+ pow1313 = pow58 * pow1309; // pow(trace_generator, &(safe_div(((4353 * global_values.trace_length)), 16384))).
+ pow1314 = pow58 * pow1310; // pow(trace_generator, &(safe_div(((4609 * global_values.trace_length)), 16384))).
+ pow1315 = pow58 * pow1311; // pow(trace_generator, &(safe_div(((4865 * global_values.trace_length)), 16384))).
+ pow1316 = pow58 * pow1312; // pow(trace_generator, &(safe_div(((16389 * global_values.trace_length)), 65536))).
+ pow1317 = pow58 * pow1313; // pow(trace_generator, &(safe_div(((17413 * global_values.trace_length)), 65536))).
+ pow1318 = pow58 * pow1314; // pow(trace_generator, &(safe_div(((18437 * global_values.trace_length)), 65536))).
+ pow1319 = pow58 * pow1315; // pow(trace_generator, &(safe_div(((19461 * global_values.trace_length)), 65536))).
+ pow1320 = pow58 * pow1316; // pow(trace_generator, &(safe_div(((8195 * global_values.trace_length)), 32768))).
+ pow1321 = pow58 * pow1317; // pow(trace_generator, &(safe_div(((8707 * global_values.trace_length)), 32768))).
+ pow1322 = pow58 * pow1318; // pow(trace_generator, &(safe_div(((9219 * global_values.trace_length)), 32768))).
+ pow1323 = pow58 * pow1319; // pow(trace_generator, &(safe_div(((9731 * global_values.trace_length)), 32768))).
+ pow1324 = pow58 * pow1320; // pow(trace_generator, &(safe_div(((16391 * global_values.trace_length)), 65536))).
+ pow1325 = pow58 * pow1324; // pow(trace_generator, &(safe_div(((2049 * global_values.trace_length)), 8192))).
+ pow1326 = pow58 * pow1321; // pow(trace_generator, &(safe_div(((17415 * global_values.trace_length)), 65536))).
+ pow1327 = pow58 * pow1326; // pow(trace_generator, &(safe_div(((2177 * global_values.trace_length)), 8192))).
+ pow1328 = pow58 * pow1322; // pow(trace_generator, &(safe_div(((18439 * global_values.trace_length)), 65536))).
+ pow1329 = pow58 * pow1328; // pow(trace_generator, &(safe_div(((2305 * global_values.trace_length)), 8192))).
+ pow1330 = pow58 * pow1323; // pow(trace_generator, &(safe_div(((19463 * global_values.trace_length)), 65536))).
+ pow1331 = pow58 * pow1330; // pow(trace_generator, &(safe_div(((2433 * global_values.trace_length)), 8192))).
+ pow1332 = pow58 * pow1325; // pow(trace_generator, &(safe_div(((16393 * global_values.trace_length)), 65536))).
+ pow1333 = pow58 * pow1327; // pow(trace_generator, &(safe_div(((17417 * global_values.trace_length)), 65536))).
+ pow1334 = pow58 * pow1329; // pow(trace_generator, &(safe_div(((18441 * global_values.trace_length)), 65536))).
+ pow1335 = pow58 * pow1331; // pow(trace_generator, &(safe_div(((19465 * global_values.trace_length)), 65536))).
+ pow1336 = pow58 * pow1332; // pow(trace_generator, &(safe_div(((8197 * global_values.trace_length)), 32768))).
+ pow1337 = pow58 * pow1333; // pow(trace_generator, &(safe_div(((8709 * global_values.trace_length)), 32768))).
+ pow1338 = pow58 * pow1334; // pow(trace_generator, &(safe_div(((9221 * global_values.trace_length)), 32768))).
+ pow1339 = pow58 * pow1335; // pow(trace_generator, &(safe_div(((9733 * global_values.trace_length)), 32768))).
+ pow1340 = pow58 * pow1336; // pow(trace_generator, &(safe_div(((16395 * global_values.trace_length)), 65536))).
+ pow1341 = pow58 * pow1337; // pow(trace_generator, &(safe_div(((17419 * global_values.trace_length)), 65536))).
+ pow1342 = pow58 * pow1338; // pow(trace_generator, &(safe_div(((18443 * global_values.trace_length)), 65536))).
+ pow1343 = pow58 * pow1339; // pow(trace_generator, &(safe_div(((19467 * global_values.trace_length)), 65536))).
+ pow1344 = pow58 * pow1340; // pow(trace_generator, &(safe_div(((4099 * global_values.trace_length)), 16384))).
+ pow1345 = pow58 * pow1341; // pow(trace_generator, &(safe_div(((4355 * global_values.trace_length)), 16384))).
+ pow1346 = pow58 * pow1342; // pow(trace_generator, &(safe_div(((4611 * global_values.trace_length)), 16384))).
+ pow1347 = pow58 * pow1343; // pow(trace_generator, &(safe_div(((4867 * global_values.trace_length)), 16384))).
+ pow1348 = pow58 * pow1344; // pow(trace_generator, &(safe_div(((16397 * global_values.trace_length)), 65536))).
+ pow1349 = pow58 * pow1345; // pow(trace_generator, &(safe_div(((17421 * global_values.trace_length)), 65536))).
+ pow1350 = pow58 * pow1346; // pow(trace_generator, &(safe_div(((18445 * global_values.trace_length)), 65536))).
+ pow1351 = pow58 * pow1347; // pow(trace_generator, &(safe_div(((19469 * global_values.trace_length)), 65536))).
+ pow1352 = pow58 * pow1348; // pow(trace_generator, &(safe_div(((8199 * global_values.trace_length)), 32768))).
+ pow1353 = pow58 * pow1349; // pow(trace_generator, &(safe_div(((8711 * global_values.trace_length)), 32768))).
+ pow1354 = pow58 * pow1350; // pow(trace_generator, &(safe_div(((9223 * global_values.trace_length)), 32768))).
+ pow1355 = pow58 * pow1351; // pow(trace_generator, &(safe_div(((9735 * global_values.trace_length)), 32768))).
+ pow1356 = pow58 * pow1352; // pow(trace_generator, &(safe_div(((16399 * global_values.trace_length)), 65536))).
+ pow1357 = pow58 * pow1353; // pow(trace_generator, &(safe_div(((17423 * global_values.trace_length)), 65536))).
+ pow1358 = pow58 * pow1354; // pow(trace_generator, &(safe_div(((18447 * global_values.trace_length)), 65536))).
+ pow1359 = pow58 * pow1355; // pow(trace_generator, &(safe_div(((19471 * global_values.trace_length)), 65536))).
+ pow1360 = pow58 * pow1356; // pow(trace_generator, &(safe_div(((1025 * global_values.trace_length)), 4096))).
+ pow1361 = pow58 * pow1357; // pow(trace_generator, &(safe_div(((1089 * global_values.trace_length)), 4096))).
+ pow1362 = pow58 * pow1358; // pow(trace_generator, &(safe_div(((1153 * global_values.trace_length)), 4096))).
+ pow1363 = pow58 * pow1359; // pow(trace_generator, &(safe_div(((1217 * global_values.trace_length)), 4096))).
+ pow1364 = pow58 * pow1360; // pow(trace_generator, &(safe_div(((16401 * global_values.trace_length)), 65536))).
+ pow1365 = pow58 * pow1361; // pow(trace_generator, &(safe_div(((17425 * global_values.trace_length)), 65536))).
+ pow1366 = pow58 * pow1362; // pow(trace_generator, &(safe_div(((18449 * global_values.trace_length)), 65536))).
+ pow1367 = pow58 * pow1363; // pow(trace_generator, &(safe_div(((19473 * global_values.trace_length)), 65536))).
+ pow1368 = pow58 * pow1364; // pow(trace_generator, &(safe_div(((8201 * global_values.trace_length)), 32768))).
+ pow1369 = pow58 * pow1365; // pow(trace_generator, &(safe_div(((8713 * global_values.trace_length)), 32768))).
+ pow1370 = pow58 * pow1366; // pow(trace_generator, &(safe_div(((9225 * global_values.trace_length)), 32768))).
+ pow1371 = pow58 * pow1367; // pow(trace_generator, &(safe_div(((9737 * global_values.trace_length)), 32768))).
+ pow1372 = pow58 * pow1368; // pow(trace_generator, &(safe_div(((16403 * global_values.trace_length)), 65536))).
+ pow1373 = pow58 * pow1369; // pow(trace_generator, &(safe_div(((17427 * global_values.trace_length)), 65536))).
+ pow1374 = pow58 * pow1370; // pow(trace_generator, &(safe_div(((18451 * global_values.trace_length)), 65536))).
+ pow1375 = pow58 * pow1371; // pow(trace_generator, &(safe_div(((19475 * global_values.trace_length)), 65536))).
+ pow1376 = pow58 * pow1372; // pow(trace_generator, &(safe_div(((4101 * global_values.trace_length)), 16384))).
+ pow1377 = pow58 * pow1373; // pow(trace_generator, &(safe_div(((4357 * global_values.trace_length)), 16384))).
+ pow1378 = pow58 * pow1374; // pow(trace_generator, &(safe_div(((4613 * global_values.trace_length)), 16384))).
+ pow1379 = pow58 * pow1375; // pow(trace_generator, &(safe_div(((4869 * global_values.trace_length)), 16384))).
+ pow1380 = pow58 * pow1376; // pow(trace_generator, &(safe_div(((16405 * global_values.trace_length)), 65536))).
+ pow1381 = pow58 * pow1377; // pow(trace_generator, &(safe_div(((17429 * global_values.trace_length)), 65536))).
+ pow1382 = pow58 * pow1378; // pow(trace_generator, &(safe_div(((18453 * global_values.trace_length)), 65536))).
+ pow1383 = pow58 * pow1379; // pow(trace_generator, &(safe_div(((19477 * global_values.trace_length)), 65536))).
+ pow1384 = pow58 * pow1380; // pow(trace_generator, &(safe_div(((8203 * global_values.trace_length)), 32768))).
+ pow1385 = pow58 * pow1381; // pow(trace_generator, &(safe_div(((8715 * global_values.trace_length)), 32768))).
+ pow1386 = pow58 * pow1382; // pow(trace_generator, &(safe_div(((9227 * global_values.trace_length)), 32768))).
+ pow1387 = pow58 * pow1383; // pow(trace_generator, &(safe_div(((9739 * global_values.trace_length)), 32768))).
+ pow1388 = pow58 * pow1384; // pow(trace_generator, &(safe_div(((16407 * global_values.trace_length)), 65536))).
+ pow1389 = pow58 * pow1385; // pow(trace_generator, &(safe_div(((17431 * global_values.trace_length)), 65536))).
+ pow1390 = pow58 * pow1386; // pow(trace_generator, &(safe_div(((18455 * global_values.trace_length)), 65536))).
+ pow1391 = pow58 * pow1387; // pow(trace_generator, &(safe_div(((19479 * global_values.trace_length)), 65536))).
+ pow1392 = pow819 * pow1299; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 16))).
+ pow1393 = pow58 * pow1392; // pow(trace_generator, &(safe_div(((20481 * global_values.trace_length)), 65536))).
+ pow1394 = pow58 * pow1393; // pow(trace_generator, &(safe_div(((10241 * global_values.trace_length)), 32768))).
+ pow1395 = pow58 * pow1394; // pow(trace_generator, &(safe_div(((20483 * global_values.trace_length)), 65536))).
+ pow1396 = pow58 * pow1395; // pow(trace_generator, &(safe_div(((5121 * global_values.trace_length)), 16384))).
+ pow1397 = pow58 * pow1396; // pow(trace_generator, &(safe_div(((20485 * global_values.trace_length)), 65536))).
+ pow1398 = pow58 * pow1397; // pow(trace_generator, &(safe_div(((10243 * global_values.trace_length)), 32768))).
+ pow1399 = pow58 * pow1398; // pow(trace_generator, &(safe_div(((20487 * global_values.trace_length)), 65536))).
+ pow1400 = pow58 * pow1399; // pow(trace_generator, &(safe_div(((2561 * global_values.trace_length)), 8192))).
+ pow1401 = pow58 * pow1400; // pow(trace_generator, &(safe_div(((20489 * global_values.trace_length)), 65536))).
+ pow1402 = pow58 * pow1401; // pow(trace_generator, &(safe_div(((10245 * global_values.trace_length)), 32768))).
+ pow1403 = pow58 * pow1402; // pow(trace_generator, &(safe_div(((20491 * global_values.trace_length)), 65536))).
+ pow1404 = pow58 * pow1403; // pow(trace_generator, &(safe_div(((5123 * global_values.trace_length)), 16384))).
+ pow1405 = pow58 * pow1404; // pow(trace_generator, &(safe_div(((20493 * global_values.trace_length)), 65536))).
+ pow1406 = pow58 * pow1405; // pow(trace_generator, &(safe_div(((10247 * global_values.trace_length)), 32768))).
+ pow1407 = pow58 * pow1406; // pow(trace_generator, &(safe_div(((20495 * global_values.trace_length)), 65536))).
+ pow1408 = pow58 * pow1407; // pow(trace_generator, &(safe_div(((1281 * global_values.trace_length)), 4096))).
+ pow1409 = pow58 * pow1408; // pow(trace_generator, &(safe_div(((20497 * global_values.trace_length)), 65536))).
+ pow1410 = pow58 * pow1409; // pow(trace_generator, &(safe_div(((10249 * global_values.trace_length)), 32768))).
+ pow1411 = pow58 * pow1410; // pow(trace_generator, &(safe_div(((20499 * global_values.trace_length)), 65536))).
+ pow1412 = pow58 * pow1411; // pow(trace_generator, &(safe_div(((5125 * global_values.trace_length)), 16384))).
+ pow1413 = pow58 * pow1412; // pow(trace_generator, &(safe_div(((20501 * global_values.trace_length)), 65536))).
+ pow1414 = pow58 * pow1413; // pow(trace_generator, &(safe_div(((10251 * global_values.trace_length)), 32768))).
+ pow1415 = pow58 * pow1414; // pow(trace_generator, &(safe_div(((20503 * global_values.trace_length)), 65536))).
+ pow1416 = pow105 * pow1415; // pow(trace_generator, &(safe_div(global_values.trace_length, 1024)) + &(safe_div(((5 * global_values.trace_length)), 16))).
+ pow1417 = pow126 * pow1416; // pow(trace_generator, &(safe_div(global_values.trace_length, 512)) + &(safe_div(((5 * global_values.trace_length)), 16))).
+ pow1418 = pow126 * pow1417; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 16))).
+ pow1419 = pow126 * pow1418; // pow(trace_generator, &(safe_div(global_values.trace_length, 256)) + &(safe_div(((5 * global_values.trace_length)), 16))).
+ pow1420 = pow126 * pow1419; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 16))).
+ pow1421 = pow126 * pow1420; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 512)) + &(safe_div(((5 * global_values.trace_length)), 16))).
+ pow1422 = pow126 * pow1421; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 16))).
+ pow1423 = pow126 * pow1422; // pow(trace_generator, &(safe_div(global_values.trace_length, 128)) + &(safe_div(((5 * global_values.trace_length)), 16))).
+ pow1424 = pow126 * pow1423; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 16))).
+ pow1425 = pow126 * pow1424; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 512)) + &(safe_div(((5 * global_values.trace_length)), 16))).
+ pow1426 = pow126 * pow1425; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 16))).
+ pow1427 = pow126 * pow1426; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 256)) + &(safe_div(((5 * global_values.trace_length)), 16))).
+ pow1428 = pow126 * pow1427; // pow(trace_generator, &(safe_div(((13 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 16))).
+ pow1429 = pow126 * pow1428; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 512)) + &(safe_div(((5 * global_values.trace_length)), 16))).
+ pow1430 = pow126 * pow1429; // pow(trace_generator, &(safe_div(((15 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 16))).
+ pow1431 = pow126 * pow1430; // pow(trace_generator, &(safe_div(global_values.trace_length, 64)) + &(safe_div(((5 * global_values.trace_length)), 16))).
+ pow1432 = pow58 * pow1431; // pow(trace_generator, &(safe_div(((21505 * global_values.trace_length)), 65536))).
+ pow1433 = pow58 * pow1432; // pow(trace_generator, &(safe_div(((10753 * global_values.trace_length)), 32768))).
+ pow1434 = pow58 * pow1433; // pow(trace_generator, &(safe_div(((21507 * global_values.trace_length)), 65536))).
+ pow1435 = pow58 * pow1434; // pow(trace_generator, &(safe_div(((5377 * global_values.trace_length)), 16384))).
+ pow1436 = pow58 * pow1435; // pow(trace_generator, &(safe_div(((21509 * global_values.trace_length)), 65536))).
+ pow1437 = pow58 * pow1436; // pow(trace_generator, &(safe_div(((10755 * global_values.trace_length)), 32768))).
+ pow1438 = pow58 * pow1437; // pow(trace_generator, &(safe_div(((21511 * global_values.trace_length)), 65536))).
+ pow1439 = pow58 * pow1438; // pow(trace_generator, &(safe_div(((2689 * global_values.trace_length)), 8192))).
+ pow1440 = pow58 * pow1439; // pow(trace_generator, &(safe_div(((21513 * global_values.trace_length)), 65536))).
+ pow1441 = pow58 * pow1440; // pow(trace_generator, &(safe_div(((10757 * global_values.trace_length)), 32768))).
+ pow1442 = pow58 * pow1441; // pow(trace_generator, &(safe_div(((21515 * global_values.trace_length)), 65536))).
+ pow1443 = pow58 * pow1442; // pow(trace_generator, &(safe_div(((5379 * global_values.trace_length)), 16384))).
+ pow1444 = pow58 * pow1443; // pow(trace_generator, &(safe_div(((21517 * global_values.trace_length)), 65536))).
+ pow1445 = pow58 * pow1444; // pow(trace_generator, &(safe_div(((10759 * global_values.trace_length)), 32768))).
+ pow1446 = pow58 * pow1445; // pow(trace_generator, &(safe_div(((21519 * global_values.trace_length)), 65536))).
+ pow1447 = pow58 * pow1446; // pow(trace_generator, &(safe_div(((1345 * global_values.trace_length)), 4096))).
+ pow1448 = pow58 * pow1447; // pow(trace_generator, &(safe_div(((21521 * global_values.trace_length)), 65536))).
+ pow1449 = pow58 * pow1448; // pow(trace_generator, &(safe_div(((10761 * global_values.trace_length)), 32768))).
+ pow1450 = pow58 * pow1449; // pow(trace_generator, &(safe_div(((21523 * global_values.trace_length)), 65536))).
+ pow1451 = pow58 * pow1450; // pow(trace_generator, &(safe_div(((5381 * global_values.trace_length)), 16384))).
+ pow1452 = pow58 * pow1451; // pow(trace_generator, &(safe_div(((21525 * global_values.trace_length)), 65536))).
+ pow1453 = pow58 * pow1452; // pow(trace_generator, &(safe_div(((10763 * global_values.trace_length)), 32768))).
+ pow1454 = pow58 * pow1453; // pow(trace_generator, &(safe_div(((21527 * global_values.trace_length)), 65536))).
+ pow1455 = pow105 * pow1454; // pow(trace_generator, &(safe_div(((17 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 16))).
+ pow1456 = pow126 * pow1455; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 512)) + &(safe_div(((5 * global_values.trace_length)), 16))).
+ pow1457 = pow126 * pow1456; // pow(trace_generator, &(safe_div(((19 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 16))).
+ pow1458 = pow126 * pow1457; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 256)) + &(safe_div(((5 * global_values.trace_length)), 16))).
+ pow1459 = pow126 * pow1458; // pow(trace_generator, &(safe_div(((21 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 16))).
+ pow1460 = pow126 * pow1459; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 512)) + &(safe_div(((5 * global_values.trace_length)), 16))).
+ pow1461 = pow126 * pow1460; // pow(trace_generator, &(safe_div(((23 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 16))).
+ pow1462 = pow606 * pow1461; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 32))).
+ pow1463 = pow58 * pow1462; // pow(trace_generator, &(safe_div(((22529 * global_values.trace_length)), 65536))).
+ pow1464 = pow58 * pow1463; // pow(trace_generator, &(safe_div(((11265 * global_values.trace_length)), 32768))).
+ pow1465 = pow58 * pow1464; // pow(trace_generator, &(safe_div(((22531 * global_values.trace_length)), 65536))).
+ pow1466 = pow58 * pow1465; // pow(trace_generator, &(safe_div(((5633 * global_values.trace_length)), 16384))).
+ pow1467 = pow58 * pow1466; // pow(trace_generator, &(safe_div(((22533 * global_values.trace_length)), 65536))).
+ pow1468 = pow58 * pow1467; // pow(trace_generator, &(safe_div(((11267 * global_values.trace_length)), 32768))).
+ pow1469 = pow58 * pow1468; // pow(trace_generator, &(safe_div(((22535 * global_values.trace_length)), 65536))).
+ pow1470 = pow58 * pow1469; // pow(trace_generator, &(safe_div(((2817 * global_values.trace_length)), 8192))).
+ pow1471 = pow58 * pow1470; // pow(trace_generator, &(safe_div(((22537 * global_values.trace_length)), 65536))).
+ pow1472 = pow58 * pow1471; // pow(trace_generator, &(safe_div(((11269 * global_values.trace_length)), 32768))).
+ pow1473 = pow58 * pow1472; // pow(trace_generator, &(safe_div(((22539 * global_values.trace_length)), 65536))).
+ pow1474 = pow58 * pow1473; // pow(trace_generator, &(safe_div(((5635 * global_values.trace_length)), 16384))).
+ pow1475 = pow58 * pow1474; // pow(trace_generator, &(safe_div(((22541 * global_values.trace_length)), 65536))).
+ pow1476 = pow58 * pow1475; // pow(trace_generator, &(safe_div(((11271 * global_values.trace_length)), 32768))).
+ pow1477 = pow58 * pow1476; // pow(trace_generator, &(safe_div(((22543 * global_values.trace_length)), 65536))).
+ pow1478 = pow58 * pow1477; // pow(trace_generator, &(safe_div(((1409 * global_values.trace_length)), 4096))).
+ pow1479 = pow58 * pow1478; // pow(trace_generator, &(safe_div(((22545 * global_values.trace_length)), 65536))).
+ pow1480 = pow58 * pow1479; // pow(trace_generator, &(safe_div(((11273 * global_values.trace_length)), 32768))).
+ pow1481 = pow58 * pow1480; // pow(trace_generator, &(safe_div(((22547 * global_values.trace_length)), 65536))).
+ pow1482 = pow58 * pow1481; // pow(trace_generator, &(safe_div(((5637 * global_values.trace_length)), 16384))).
+ pow1483 = pow58 * pow1482; // pow(trace_generator, &(safe_div(((22549 * global_values.trace_length)), 65536))).
+ pow1484 = pow58 * pow1483; // pow(trace_generator, &(safe_div(((11275 * global_values.trace_length)), 32768))).
+ pow1485 = pow58 * pow1484; // pow(trace_generator, &(safe_div(((22551 * global_values.trace_length)), 65536))).
+ pow1486 = pow105 * pow1485; // pow(trace_generator, &(safe_div(global_values.trace_length, 1024)) + &(safe_div(((11 * global_values.trace_length)), 32))).
+ pow1487 = pow126 * pow1486; // pow(trace_generator, &(safe_div(global_values.trace_length, 512)) + &(safe_div(((11 * global_values.trace_length)), 32))).
+ pow1488 = pow126 * pow1487; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 1024)) + &(safe_div(((11 * global_values.trace_length)), 32))).
+ pow1489 = pow126 * pow1488; // pow(trace_generator, &(safe_div(global_values.trace_length, 256)) + &(safe_div(((11 * global_values.trace_length)), 32))).
+ pow1490 = pow126 * pow1489; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 1024)) + &(safe_div(((11 * global_values.trace_length)), 32))).
+ pow1491 = pow126 * pow1490; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 512)) + &(safe_div(((11 * global_values.trace_length)), 32))).
+ pow1492 = pow126 * pow1491; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 1024)) + &(safe_div(((11 * global_values.trace_length)), 32))).
+ pow1493 = pow126 * pow1492; // pow(trace_generator, &(safe_div(global_values.trace_length, 128)) + &(safe_div(((11 * global_values.trace_length)), 32))).
+ pow1494 = pow126 * pow1493; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 1024)) + &(safe_div(((11 * global_values.trace_length)), 32))).
+ pow1495 = pow126 * pow1494; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 512)) + &(safe_div(((11 * global_values.trace_length)), 32))).
+ pow1496 = pow126 * pow1495; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 1024)) + &(safe_div(((11 * global_values.trace_length)), 32))).
+ pow1497 = pow126 * pow1496; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 256)) + &(safe_div(((11 * global_values.trace_length)), 32))).
+ pow1498 = pow126 * pow1497; // pow(trace_generator, &(safe_div(((13 * global_values.trace_length)), 1024)) + &(safe_div(((11 * global_values.trace_length)), 32))).
+ pow1499 = pow126 * pow1498; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 512)) + &(safe_div(((11 * global_values.trace_length)), 32))).
+ pow1500 = pow126 * pow1499; // pow(trace_generator, &(safe_div(((15 * global_values.trace_length)), 1024)) + &(safe_div(((11 * global_values.trace_length)), 32))).
+ pow1501 = pow126 * pow1500; // pow(trace_generator, &(safe_div(global_values.trace_length, 64)) + &(safe_div(((11 * global_values.trace_length)), 32))).
+ pow1502 = pow58 * pow1501; // pow(trace_generator, &(safe_div(((23553 * global_values.trace_length)), 65536))).
+ pow1503 = pow58 * pow1502; // pow(trace_generator, &(safe_div(((11777 * global_values.trace_length)), 32768))).
+ pow1504 = pow58 * pow1503; // pow(trace_generator, &(safe_div(((23555 * global_values.trace_length)), 65536))).
+ pow1505 = pow58 * pow1504; // pow(trace_generator, &(safe_div(((5889 * global_values.trace_length)), 16384))).
+ pow1506 = pow58 * pow1505; // pow(trace_generator, &(safe_div(((23557 * global_values.trace_length)), 65536))).
+ pow1507 = pow58 * pow1506; // pow(trace_generator, &(safe_div(((11779 * global_values.trace_length)), 32768))).
+ pow1508 = pow58 * pow1507; // pow(trace_generator, &(safe_div(((23559 * global_values.trace_length)), 65536))).
+ pow1509 = pow58 * pow1508; // pow(trace_generator, &(safe_div(((2945 * global_values.trace_length)), 8192))).
+ pow1510 = pow58 * pow1509; // pow(trace_generator, &(safe_div(((23561 * global_values.trace_length)), 65536))).
+ pow1511 = pow58 * pow1510; // pow(trace_generator, &(safe_div(((11781 * global_values.trace_length)), 32768))).
+ pow1512 = pow58 * pow1511; // pow(trace_generator, &(safe_div(((23563 * global_values.trace_length)), 65536))).
+ pow1513 = pow58 * pow1512; // pow(trace_generator, &(safe_div(((5891 * global_values.trace_length)), 16384))).
+ pow1514 = pow58 * pow1513; // pow(trace_generator, &(safe_div(((23565 * global_values.trace_length)), 65536))).
+ pow1515 = pow58 * pow1514; // pow(trace_generator, &(safe_div(((11783 * global_values.trace_length)), 32768))).
+ pow1516 = pow58 * pow1515; // pow(trace_generator, &(safe_div(((23567 * global_values.trace_length)), 65536))).
+ pow1517 = pow58 * pow1516; // pow(trace_generator, &(safe_div(((1473 * global_values.trace_length)), 4096))).
+ pow1518 = pow58 * pow1517; // pow(trace_generator, &(safe_div(((23569 * global_values.trace_length)), 65536))).
+ pow1519 = pow58 * pow1518; // pow(trace_generator, &(safe_div(((11785 * global_values.trace_length)), 32768))).
+ pow1520 = pow58 * pow1519; // pow(trace_generator, &(safe_div(((23571 * global_values.trace_length)), 65536))).
+ pow1521 = pow58 * pow1520; // pow(trace_generator, &(safe_div(((5893 * global_values.trace_length)), 16384))).
+ pow1522 = pow58 * pow1521; // pow(trace_generator, &(safe_div(((23573 * global_values.trace_length)), 65536))).
+ pow1523 = pow58 * pow1522; // pow(trace_generator, &(safe_div(((11787 * global_values.trace_length)), 32768))).
+ pow1524 = pow58 * pow1523; // pow(trace_generator, &(safe_div(((23575 * global_values.trace_length)), 65536))).
+ pow1525 = pow105 * pow1524; // pow(trace_generator, &(safe_div(((17 * global_values.trace_length)), 1024)) + &(safe_div(((11 * global_values.trace_length)), 32))).
+ pow1526 = pow126 * pow1525; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 512)) + &(safe_div(((11 * global_values.trace_length)), 32))).
+ pow1527 = pow126 * pow1526; // pow(trace_generator, &(safe_div(((19 * global_values.trace_length)), 1024)) + &(safe_div(((11 * global_values.trace_length)), 32))).
+ pow1528 = pow126 * pow1527; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 256)) + &(safe_div(((11 * global_values.trace_length)), 32))).
+ pow1529 = pow126 * pow1528; // pow(trace_generator, &(safe_div(((21 * global_values.trace_length)), 1024)) + &(safe_div(((11 * global_values.trace_length)), 32))).
+ pow1530 = pow126 * pow1529; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 512)) + &(safe_div(((11 * global_values.trace_length)), 32))).
+ pow1531 = pow126 * pow1530; // pow(trace_generator, &(safe_div(((23 * global_values.trace_length)), 1024)) + &(safe_div(((11 * global_values.trace_length)), 32))).
+ pow1532 = pow606 * pow1531; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 8))).
+ pow1533 = pow58 * pow1532; // pow(trace_generator, &(safe_div(((24577 * global_values.trace_length)), 65536))).
+ pow1534 = pow58 * pow1533; // pow(trace_generator, &(safe_div(((12289 * global_values.trace_length)), 32768))).
+ pow1535 = pow58 * pow1534; // pow(trace_generator, &(safe_div(((24579 * global_values.trace_length)), 65536))).
+ pow1536 = pow58 * pow1535; // pow(trace_generator, &(safe_div(((6145 * global_values.trace_length)), 16384))).
+ pow1537 = pow58 * pow1536; // pow(trace_generator, &(safe_div(((24581 * global_values.trace_length)), 65536))).
+ pow1538 = pow58 * pow1537; // pow(trace_generator, &(safe_div(((12291 * global_values.trace_length)), 32768))).
+ pow1539 = pow58 * pow1538; // pow(trace_generator, &(safe_div(((24583 * global_values.trace_length)), 65536))).
+ pow1540 = pow58 * pow1539; // pow(trace_generator, &(safe_div(((3073 * global_values.trace_length)), 8192))).
+ pow1541 = pow58 * pow1540; // pow(trace_generator, &(safe_div(((24585 * global_values.trace_length)), 65536))).
+ pow1542 = pow58 * pow1541; // pow(trace_generator, &(safe_div(((12293 * global_values.trace_length)), 32768))).
+ pow1543 = pow58 * pow1542; // pow(trace_generator, &(safe_div(((24587 * global_values.trace_length)), 65536))).
+ pow1544 = pow58 * pow1543; // pow(trace_generator, &(safe_div(((6147 * global_values.trace_length)), 16384))).
+ pow1545 = pow58 * pow1544; // pow(trace_generator, &(safe_div(((24589 * global_values.trace_length)), 65536))).
+ pow1546 = pow58 * pow1545; // pow(trace_generator, &(safe_div(((12295 * global_values.trace_length)), 32768))).
+ pow1547 = pow58 * pow1546; // pow(trace_generator, &(safe_div(((24591 * global_values.trace_length)), 65536))).
+ pow1548 = pow58 * pow1547; // pow(trace_generator, &(safe_div(((1537 * global_values.trace_length)), 4096))).
+ pow1549 = pow58 * pow1548; // pow(trace_generator, &(safe_div(((24593 * global_values.trace_length)), 65536))).
+ pow1550 = pow58 * pow1549; // pow(trace_generator, &(safe_div(((12297 * global_values.trace_length)), 32768))).
+ pow1551 = pow58 * pow1550; // pow(trace_generator, &(safe_div(((24595 * global_values.trace_length)), 65536))).
+ pow1552 = pow58 * pow1551; // pow(trace_generator, &(safe_div(((6149 * global_values.trace_length)), 16384))).
+ pow1553 = pow58 * pow1552; // pow(trace_generator, &(safe_div(((24597 * global_values.trace_length)), 65536))).
+ pow1554 = pow58 * pow1553; // pow(trace_generator, &(safe_div(((12299 * global_values.trace_length)), 32768))).
+ pow1555 = pow58 * pow1554; // pow(trace_generator, &(safe_div(((24599 * global_values.trace_length)), 65536))).
+ pow1556 = pow105 * pow1555; // pow(trace_generator, &(safe_div(global_values.trace_length, 1024)) + &(safe_div(((3 * global_values.trace_length)), 8))).
+ pow1557 = pow126 * pow1556; // pow(trace_generator, &(safe_div(global_values.trace_length, 512)) + &(safe_div(((3 * global_values.trace_length)), 8))).
+ pow1558 = pow126 * pow1557; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 1024)) + &(safe_div(((3 * global_values.trace_length)), 8))).
+ pow1559 = pow126 * pow1558; // pow(trace_generator, &(safe_div(global_values.trace_length, 256)) + &(safe_div(((3 * global_values.trace_length)), 8))).
+ pow1560 = pow126 * pow1559; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 1024)) + &(safe_div(((3 * global_values.trace_length)), 8))).
+ pow1561 = pow126 * pow1560; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 512)) + &(safe_div(((3 * global_values.trace_length)), 8))).
+ pow1562 = pow126 * pow1561; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 1024)) + &(safe_div(((3 * global_values.trace_length)), 8))).
+ pow1563 = pow126 * pow1562; // pow(trace_generator, &(safe_div(global_values.trace_length, 128)) + &(safe_div(((3 * global_values.trace_length)), 8))).
+ pow1564 = pow126 * pow1563; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 1024)) + &(safe_div(((3 * global_values.trace_length)), 8))).
+ pow1565 = pow126 * pow1564; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 512)) + &(safe_div(((3 * global_values.trace_length)), 8))).
+ pow1566 = pow126 * pow1565; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 1024)) + &(safe_div(((3 * global_values.trace_length)), 8))).
+ pow1567 = pow126 * pow1566; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 256)) + &(safe_div(((3 * global_values.trace_length)), 8))).
+ pow1568 = pow126 * pow1567; // pow(trace_generator, &(safe_div(((13 * global_values.trace_length)), 1024)) + &(safe_div(((3 * global_values.trace_length)), 8))).
+ pow1569 = pow126 * pow1568; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 512)) + &(safe_div(((3 * global_values.trace_length)), 8))).
+ pow1570 = pow126 * pow1569; // pow(trace_generator, &(safe_div(((15 * global_values.trace_length)), 1024)) + &(safe_div(((3 * global_values.trace_length)), 8))).
+ pow1571 = pow126 * pow1570; // pow(trace_generator, &(safe_div(global_values.trace_length, 64)) + &(safe_div(((3 * global_values.trace_length)), 8))).
+ pow1572 = pow58 * pow1571; // pow(trace_generator, &(safe_div(((25601 * global_values.trace_length)), 65536))).
+ pow1573 = pow58 * pow1572; // pow(trace_generator, &(safe_div(((12801 * global_values.trace_length)), 32768))).
+ pow1574 = pow58 * pow1573; // pow(trace_generator, &(safe_div(((25603 * global_values.trace_length)), 65536))).
+ pow1575 = pow58 * pow1574; // pow(trace_generator, &(safe_div(((6401 * global_values.trace_length)), 16384))).
+ pow1576 = pow58 * pow1575; // pow(trace_generator, &(safe_div(((25605 * global_values.trace_length)), 65536))).
+ pow1577 = pow58 * pow1576; // pow(trace_generator, &(safe_div(((12803 * global_values.trace_length)), 32768))).
+ pow1578 = pow58 * pow1577; // pow(trace_generator, &(safe_div(((25607 * global_values.trace_length)), 65536))).
+ pow1579 = pow58 * pow1578; // pow(trace_generator, &(safe_div(((3201 * global_values.trace_length)), 8192))).
+ pow1580 = pow58 * pow1579; // pow(trace_generator, &(safe_div(((25609 * global_values.trace_length)), 65536))).
+ pow1581 = pow58 * pow1580; // pow(trace_generator, &(safe_div(((12805 * global_values.trace_length)), 32768))).
+ pow1582 = pow58 * pow1581; // pow(trace_generator, &(safe_div(((25611 * global_values.trace_length)), 65536))).
+ pow1583 = pow58 * pow1582; // pow(trace_generator, &(safe_div(((6403 * global_values.trace_length)), 16384))).
+ pow1584 = pow58 * pow1583; // pow(trace_generator, &(safe_div(((25613 * global_values.trace_length)), 65536))).
+ pow1585 = pow58 * pow1584; // pow(trace_generator, &(safe_div(((12807 * global_values.trace_length)), 32768))).
+ pow1586 = pow58 * pow1585; // pow(trace_generator, &(safe_div(((25615 * global_values.trace_length)), 65536))).
+ pow1587 = pow58 * pow1586; // pow(trace_generator, &(safe_div(((1601 * global_values.trace_length)), 4096))).
+ pow1588 = pow58 * pow1587; // pow(trace_generator, &(safe_div(((25617 * global_values.trace_length)), 65536))).
+ pow1589 = pow58 * pow1588; // pow(trace_generator, &(safe_div(((12809 * global_values.trace_length)), 32768))).
+ pow1590 = pow58 * pow1589; // pow(trace_generator, &(safe_div(((25619 * global_values.trace_length)), 65536))).
+ pow1591 = pow58 * pow1590; // pow(trace_generator, &(safe_div(((6405 * global_values.trace_length)), 16384))).
+ pow1592 = pow58 * pow1591; // pow(trace_generator, &(safe_div(((25621 * global_values.trace_length)), 65536))).
+ pow1593 = pow58 * pow1592; // pow(trace_generator, &(safe_div(((12811 * global_values.trace_length)), 32768))).
+ pow1594 = pow58 * pow1593; // pow(trace_generator, &(safe_div(((25623 * global_values.trace_length)), 65536))).
+ pow1595 = pow105 * pow1594; // pow(trace_generator, &(safe_div(((17 * global_values.trace_length)), 1024)) + &(safe_div(((3 * global_values.trace_length)), 8))).
+ pow1596 = pow126 * pow1595; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 512)) + &(safe_div(((3 * global_values.trace_length)), 8))).
+ pow1597 = pow126 * pow1596; // pow(trace_generator, &(safe_div(((19 * global_values.trace_length)), 1024)) + &(safe_div(((3 * global_values.trace_length)), 8))).
+ pow1598 = pow126 * pow1597; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 256)) + &(safe_div(((3 * global_values.trace_length)), 8))).
+ pow1599 = pow126 * pow1598; // pow(trace_generator, &(safe_div(((21 * global_values.trace_length)), 1024)) + &(safe_div(((3 * global_values.trace_length)), 8))).
+ pow1600 = pow126 * pow1599; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 512)) + &(safe_div(((3 * global_values.trace_length)), 8))).
+ pow1601 = pow126 * pow1600; // pow(trace_generator, &(safe_div(((23 * global_values.trace_length)), 1024)) + &(safe_div(((3 * global_values.trace_length)), 8))).
+ pow1602 = pow606 * pow1601; // pow(trace_generator, &(safe_div(((13 * global_values.trace_length)), 32))).
+ pow1603 = pow819 * pow1602; // pow(trace_generator, &(safe_div(((27 * global_values.trace_length)), 64))).
+ pow1604 = pow58 * pow1602; // pow(trace_generator, &(safe_div(((26625 * global_values.trace_length)), 65536))).
+ pow1605 = pow58 * pow1603; // pow(trace_generator, &(safe_div(((27649 * global_values.trace_length)), 65536))).
+ pow1606 = pow58 * pow1604; // pow(trace_generator, &(safe_div(((13313 * global_values.trace_length)), 32768))).
+ pow1607 = pow58 * pow1605; // pow(trace_generator, &(safe_div(((13825 * global_values.trace_length)), 32768))).
+ pow1608 = pow58 * pow1606; // pow(trace_generator, &(safe_div(((26627 * global_values.trace_length)), 65536))).
+ pow1609 = pow58 * pow1607; // pow(trace_generator, &(safe_div(((27651 * global_values.trace_length)), 65536))).
+ pow1610 = pow58 * pow1608; // pow(trace_generator, &(safe_div(((6657 * global_values.trace_length)), 16384))).
+ pow1611 = pow58 * pow1609; // pow(trace_generator, &(safe_div(((6913 * global_values.trace_length)), 16384))).
+ pow1612 = pow58 * pow1610; // pow(trace_generator, &(safe_div(((26629 * global_values.trace_length)), 65536))).
+ pow1613 = pow58 * pow1611; // pow(trace_generator, &(safe_div(((27653 * global_values.trace_length)), 65536))).
+ pow1614 = pow58 * pow1612; // pow(trace_generator, &(safe_div(((13315 * global_values.trace_length)), 32768))).
+ pow1615 = pow58 * pow1613; // pow(trace_generator, &(safe_div(((13827 * global_values.trace_length)), 32768))).
+ pow1616 = pow58 * pow1614; // pow(trace_generator, &(safe_div(((26631 * global_values.trace_length)), 65536))).
+ pow1617 = pow58 * pow1615; // pow(trace_generator, &(safe_div(((27655 * global_values.trace_length)), 65536))).
+ pow1618 = pow58 * pow1616; // pow(trace_generator, &(safe_div(((3329 * global_values.trace_length)), 8192))).
+ pow1619 = pow58 * pow1618; // pow(trace_generator, &(safe_div(((26633 * global_values.trace_length)), 65536))).
+ pow1620 = pow58 * pow1619; // pow(trace_generator, &(safe_div(((13317 * global_values.trace_length)), 32768))).
+ pow1621 = pow58 * pow1620; // pow(trace_generator, &(safe_div(((26635 * global_values.trace_length)), 65536))).
+ pow1622 = pow58 * pow1621; // pow(trace_generator, &(safe_div(((6659 * global_values.trace_length)), 16384))).
+ pow1623 = pow58 * pow1622; // pow(trace_generator, &(safe_div(((26637 * global_values.trace_length)), 65536))).
+ pow1624 = pow58 * pow1623; // pow(trace_generator, &(safe_div(((13319 * global_values.trace_length)), 32768))).
+ pow1625 = pow58 * pow1624; // pow(trace_generator, &(safe_div(((26639 * global_values.trace_length)), 65536))).
+ pow1626 = pow58 * pow1625; // pow(trace_generator, &(safe_div(((1665 * global_values.trace_length)), 4096))).
+ pow1627 = pow58 * pow1626; // pow(trace_generator, &(safe_div(((26641 * global_values.trace_length)), 65536))).
+ pow1628 = pow58 * pow1627; // pow(trace_generator, &(safe_div(((13321 * global_values.trace_length)), 32768))).
+ pow1629 = pow58 * pow1628; // pow(trace_generator, &(safe_div(((26643 * global_values.trace_length)), 65536))).
+ pow1630 = pow58 * pow1629; // pow(trace_generator, &(safe_div(((6661 * global_values.trace_length)), 16384))).
+ pow1631 = pow58 * pow1630; // pow(trace_generator, &(safe_div(((26645 * global_values.trace_length)), 65536))).
+ pow1632 = pow58 * pow1631; // pow(trace_generator, &(safe_div(((13323 * global_values.trace_length)), 32768))).
+ pow1633 = pow58 * pow1632; // pow(trace_generator, &(safe_div(((26647 * global_values.trace_length)), 65536))).
+ pow1634 = pow58 * pow1617; // pow(trace_generator, &(safe_div(((3457 * global_values.trace_length)), 8192))).
+ pow1635 = pow58 * pow1634; // pow(trace_generator, &(safe_div(((27657 * global_values.trace_length)), 65536))).
+ pow1636 = pow58 * pow1635; // pow(trace_generator, &(safe_div(((13829 * global_values.trace_length)), 32768))).
+ pow1637 = pow58 * pow1636; // pow(trace_generator, &(safe_div(((27659 * global_values.trace_length)), 65536))).
+ pow1638 = pow58 * pow1637; // pow(trace_generator, &(safe_div(((6915 * global_values.trace_length)), 16384))).
+ pow1639 = pow58 * pow1638; // pow(trace_generator, &(safe_div(((27661 * global_values.trace_length)), 65536))).
+ pow1640 = pow58 * pow1639; // pow(trace_generator, &(safe_div(((13831 * global_values.trace_length)), 32768))).
+ pow1641 = pow58 * pow1640; // pow(trace_generator, &(safe_div(((27663 * global_values.trace_length)), 65536))).
+ pow1642 = pow58 * pow1641; // pow(trace_generator, &(safe_div(((1729 * global_values.trace_length)), 4096))).
+ pow1643 = pow58 * pow1642; // pow(trace_generator, &(safe_div(((27665 * global_values.trace_length)), 65536))).
+ pow1644 = pow58 * pow1643; // pow(trace_generator, &(safe_div(((13833 * global_values.trace_length)), 32768))).
+ pow1645 = pow58 * pow1644; // pow(trace_generator, &(safe_div(((27667 * global_values.trace_length)), 65536))).
+ pow1646 = pow58 * pow1645; // pow(trace_generator, &(safe_div(((6917 * global_values.trace_length)), 16384))).
+ pow1647 = pow58 * pow1646; // pow(trace_generator, &(safe_div(((27669 * global_values.trace_length)), 65536))).
+ pow1648 = pow58 * pow1647; // pow(trace_generator, &(safe_div(((13835 * global_values.trace_length)), 32768))).
+ pow1649 = pow58 * pow1648; // pow(trace_generator, &(safe_div(((27671 * global_values.trace_length)), 65536))).
+ pow1650 = pow889 * pow1603; // pow(trace_generator, &(safe_div(((15 * global_values.trace_length)), 32))).
+ pow1651 = pow126 * pow1650; // pow(trace_generator, &(safe_div(global_values.trace_length, 1024)) + &(safe_div(((15 * global_values.trace_length)), 32))).
+ pow1652 = pow126 * pow1651; // pow(trace_generator, &(safe_div(global_values.trace_length, 512)) + &(safe_div(((15 * global_values.trace_length)), 32))).
+ pow1653 = pow126 * pow1652; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 1024)) + &(safe_div(((15 * global_values.trace_length)), 32))).
+ pow1654 = pow126 * pow1653; // pow(trace_generator, &(safe_div(global_values.trace_length, 256)) + &(safe_div(((15 * global_values.trace_length)), 32))).
+ pow1655 = pow126 * pow1654; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 1024)) + &(safe_div(((15 * global_values.trace_length)), 32))).
+ pow1656 = pow126 * pow1655; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 512)) + &(safe_div(((15 * global_values.trace_length)), 32))).
+ pow1657 = pow126 * pow1656; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 1024)) + &(safe_div(((15 * global_values.trace_length)), 32))).
+ pow1658 = pow126 * pow1657; // pow(trace_generator, &(safe_div(global_values.trace_length, 128)) + &(safe_div(((15 * global_values.trace_length)), 32))).
+ pow1659 = pow126 * pow1658; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 1024)) + &(safe_div(((15 * global_values.trace_length)), 32))).
+ pow1660 = pow126 * pow1659; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 512)) + &(safe_div(((15 * global_values.trace_length)), 32))).
+ pow1661 = pow126 * pow1660; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 1024)) + &(safe_div(((15 * global_values.trace_length)), 32))).
+ pow1662 = pow126 * pow1661; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 256)) + &(safe_div(((15 * global_values.trace_length)), 32))).
+ pow1663 = pow126 * pow1662; // pow(trace_generator, &(safe_div(((13 * global_values.trace_length)), 1024)) + &(safe_div(((15 * global_values.trace_length)), 32))).
+ pow1664 = pow126 * pow1663; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 512)) + &(safe_div(((15 * global_values.trace_length)), 32))).
+ pow1665 = pow126 * pow1664; // pow(trace_generator, &(safe_div(((15 * global_values.trace_length)), 1024)) + &(safe_div(((15 * global_values.trace_length)), 32))).
+ pow1666 = pow126 * pow1665; // pow(trace_generator, &(safe_div(global_values.trace_length, 64)) + &(safe_div(((15 * global_values.trace_length)), 32))).
+ pow1667 = pow58 * pow1666; // pow(trace_generator, &(safe_div(global_values.trace_length, 65536)) + &(safe_div(((31 * global_values.trace_length)), 64))).
+ pow1668 = pow58 * pow1667; // pow(trace_generator, &(safe_div(global_values.trace_length, 32768)) + &(safe_div(((31 * global_values.trace_length)), 64))).
+ pow1669 = pow58 * pow1668; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 65536)) + &(safe_div(((31 * global_values.trace_length)), 64))).
+ pow1670 = pow58 * pow1669; // pow(trace_generator, &(safe_div(global_values.trace_length, 16384)) + &(safe_div(((31 * global_values.trace_length)), 64))).
+ pow1671 = pow58 * pow1670; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 65536)) + &(safe_div(((31 * global_values.trace_length)), 64))).
+ pow1672 = pow58 * pow1671; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 32768)) + &(safe_div(((31 * global_values.trace_length)), 64))).
+ pow1673 = pow58 * pow1672; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 65536)) + &(safe_div(((31 * global_values.trace_length)), 64))).
+ pow1674 = pow58 * pow1673; // pow(trace_generator, &(safe_div(global_values.trace_length, 8192)) + &(safe_div(((31 * global_values.trace_length)), 64))).
+ pow1675 = pow58 * pow1674; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 65536)) + &(safe_div(((31 * global_values.trace_length)), 64))).
+ pow1676 = pow58 * pow1675; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 32768)) + &(safe_div(((31 * global_values.trace_length)), 64))).
+ pow1677 = pow58 * pow1676; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 65536)) + &(safe_div(((31 * global_values.trace_length)), 64))).
+ pow1678 = pow58 * pow1677; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 16384)) + &(safe_div(((31 * global_values.trace_length)), 64))).
+ pow1679 = pow58 * pow1678; // pow(trace_generator, &(safe_div(((13 * global_values.trace_length)), 65536)) + &(safe_div(((31 * global_values.trace_length)), 64))).
+ pow1680 = pow58 * pow1679; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 32768)) + &(safe_div(((31 * global_values.trace_length)), 64))).
+ pow1681 = pow58 * pow1680; // pow(trace_generator, &(safe_div(((15 * global_values.trace_length)), 65536)) + &(safe_div(((31 * global_values.trace_length)), 64))).
+ pow1682 = pow58 * pow1681; // pow(trace_generator, &(safe_div(global_values.trace_length, 4096)) + &(safe_div(((31 * global_values.trace_length)), 64))).
+ pow1683 = pow58 * pow1682; // pow(trace_generator, &(safe_div(((17 * global_values.trace_length)), 65536)) + &(safe_div(((31 * global_values.trace_length)), 64))).
+ pow1684 = pow58 * pow1683; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 32768)) + &(safe_div(((31 * global_values.trace_length)), 64))).
+ pow1685 = pow58 * pow1684; // pow(trace_generator, &(safe_div(((19 * global_values.trace_length)), 65536)) + &(safe_div(((31 * global_values.trace_length)), 64))).
+ pow1686 = pow58 * pow1685; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 16384)) + &(safe_div(((31 * global_values.trace_length)), 64))).
+ pow1687 = pow58 * pow1686; // pow(trace_generator, &(safe_div(((21 * global_values.trace_length)), 65536)) + &(safe_div(((31 * global_values.trace_length)), 64))).
+ pow1688 = pow58 * pow1687; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 32768)) + &(safe_div(((31 * global_values.trace_length)), 64))).
+ pow1689 = pow58 * pow1688; // pow(trace_generator, &(safe_div(((23 * global_values.trace_length)), 65536)) + &(safe_div(((31 * global_values.trace_length)), 64))).
+ pow1690 = pow105 * pow1689; // pow(trace_generator, &(safe_div(((17 * global_values.trace_length)), 1024)) + &(safe_div(((15 * global_values.trace_length)), 32))).
+ pow1691 = pow126 * pow1690; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 512)) + &(safe_div(((15 * global_values.trace_length)), 32))).
+ pow1692 = pow126 * pow1691; // pow(trace_generator, &(safe_div(((19 * global_values.trace_length)), 1024)) + &(safe_div(((15 * global_values.trace_length)), 32))).
+ pow1693 = pow126 * pow1692; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 256)) + &(safe_div(((15 * global_values.trace_length)), 32))).
+ pow1694 = pow126 * pow1693; // pow(trace_generator, &(safe_div(((21 * global_values.trace_length)), 1024)) + &(safe_div(((15 * global_values.trace_length)), 32))).
+ pow1695 = pow126 * pow1694; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 512)) + &(safe_div(((15 * global_values.trace_length)), 32))).
+ pow1696 = pow126 * pow1695; // pow(trace_generator, &(safe_div(((23 * global_values.trace_length)), 1024)) + &(safe_div(((15 * global_values.trace_length)), 32))).
+ pow1697 = pow606 * pow1696; // pow(trace_generator, &(safe_div(global_values.trace_length, 2))).
+ pow1698 = pow126 * pow1697; // pow(trace_generator, &(safe_div(global_values.trace_length, 1024)) + &(safe_div(global_values.trace_length, 2))).
+ pow1699 = pow126 * pow1698; // pow(trace_generator, &(safe_div(global_values.trace_length, 512)) + &(safe_div(global_values.trace_length, 2))).
+ pow1700 = pow126 * pow1699; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 2))).
+ pow1701 = pow126 * pow1700; // pow(trace_generator, &(safe_div(global_values.trace_length, 256)) + &(safe_div(global_values.trace_length, 2))).
+ pow1702 = pow126 * pow1701; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 2))).
+ pow1703 = pow126 * pow1702; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 512)) + &(safe_div(global_values.trace_length, 2))).
+ pow1704 = pow126 * pow1703; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 2))).
+ pow1705 = pow126 * pow1704; // pow(trace_generator, &(safe_div(global_values.trace_length, 128)) + &(safe_div(global_values.trace_length, 2))).
+ pow1706 = pow126 * pow1705; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 2))).
+ pow1707 = pow126 * pow1706; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 512)) + &(safe_div(global_values.trace_length, 2))).
+ pow1708 = pow126 * pow1707; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 2))).
+ pow1709 = pow126 * pow1708; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 256)) + &(safe_div(global_values.trace_length, 2))).
+ pow1710 = pow126 * pow1709; // pow(trace_generator, &(safe_div(((13 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 2))).
+ pow1711 = pow126 * pow1710; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 512)) + &(safe_div(global_values.trace_length, 2))).
+ pow1712 = pow126 * pow1711; // pow(trace_generator, &(safe_div(((15 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 2))).
+ pow1713 = pow126 * pow1712; // pow(trace_generator, &(safe_div(global_values.trace_length, 64)) + &(safe_div(global_values.trace_length, 2))).
+ pow1714 = pow126 * pow1713; // pow(trace_generator, &(safe_div(((17 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 2))).
+ pow1715 = pow126 * pow1714; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 512)) + &(safe_div(global_values.trace_length, 2))).
+ pow1716 = pow126 * pow1715; // pow(trace_generator, &(safe_div(((19 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 2))).
+ pow1717 = pow126 * pow1716; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 256)) + &(safe_div(global_values.trace_length, 2))).
+ pow1718 = pow126 * pow1717; // pow(trace_generator, &(safe_div(((21 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 2))).
+ pow1719 = pow126 * pow1718; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 512)) + &(safe_div(global_values.trace_length, 2))).
+ pow1720 = pow126 * pow1719; // pow(trace_generator, &(safe_div(((23 * global_values.trace_length)), 1024)) + &(safe_div(global_values.trace_length, 2))).
+ pow1721 = pow606 * pow1720; // pow(trace_generator, &(safe_div(((17 * global_values.trace_length)), 32))).
+ pow1722 = pow126 * pow1721; // pow(trace_generator, &(safe_div(global_values.trace_length, 1024)) + &(safe_div(((17 * global_values.trace_length)), 32))).
+ pow1723 = pow126 * pow1722; // pow(trace_generator, &(safe_div(global_values.trace_length, 512)) + &(safe_div(((17 * global_values.trace_length)), 32))).
+ pow1724 = pow126 * pow1723; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 1024)) + &(safe_div(((17 * global_values.trace_length)), 32))).
+ pow1725 = pow126 * pow1724; // pow(trace_generator, &(safe_div(global_values.trace_length, 256)) + &(safe_div(((17 * global_values.trace_length)), 32))).
+ pow1726 = pow126 * pow1725; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 1024)) + &(safe_div(((17 * global_values.trace_length)), 32))).
+ pow1727 = pow126 * pow1726; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 512)) + &(safe_div(((17 * global_values.trace_length)), 32))).
+ pow1728 = pow126 * pow1727; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 1024)) + &(safe_div(((17 * global_values.trace_length)), 32))).
+ pow1729 = pow126 * pow1728; // pow(trace_generator, &(safe_div(global_values.trace_length, 128)) + &(safe_div(((17 * global_values.trace_length)), 32))).
+ pow1730 = pow126 * pow1729; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 1024)) + &(safe_div(((17 * global_values.trace_length)), 32))).
+ pow1731 = pow126 * pow1730; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 512)) + &(safe_div(((17 * global_values.trace_length)), 32))).
+ pow1732 = pow126 * pow1731; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 1024)) + &(safe_div(((17 * global_values.trace_length)), 32))).
+ pow1733 = pow126 * pow1732; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 256)) + &(safe_div(((17 * global_values.trace_length)), 32))).
+ pow1734 = pow126 * pow1733; // pow(trace_generator, &(safe_div(((13 * global_values.trace_length)), 1024)) + &(safe_div(((17 * global_values.trace_length)), 32))).
+ pow1735 = pow126 * pow1734; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 512)) + &(safe_div(((17 * global_values.trace_length)), 32))).
+ pow1736 = pow126 * pow1735; // pow(trace_generator, &(safe_div(((15 * global_values.trace_length)), 1024)) + &(safe_div(((17 * global_values.trace_length)), 32))).
+ pow1737 = pow126 * pow1736; // pow(trace_generator, &(safe_div(global_values.trace_length, 64)) + &(safe_div(((17 * global_values.trace_length)), 32))).
+ pow1738 = pow126 * pow1737; // pow(trace_generator, &(safe_div(((17 * global_values.trace_length)), 1024)) + &(safe_div(((17 * global_values.trace_length)), 32))).
+ pow1739 = pow126 * pow1738; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 512)) + &(safe_div(((17 * global_values.trace_length)), 32))).
+ pow1740 = pow126 * pow1739; // pow(trace_generator, &(safe_div(((19 * global_values.trace_length)), 1024)) + &(safe_div(((17 * global_values.trace_length)), 32))).
+ pow1741 = pow126 * pow1740; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 256)) + &(safe_div(((17 * global_values.trace_length)), 32))).
+ pow1742 = pow126 * pow1741; // pow(trace_generator, &(safe_div(((21 * global_values.trace_length)), 1024)) + &(safe_div(((17 * global_values.trace_length)), 32))).
+ pow1743 = pow126 * pow1742; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 512)) + &(safe_div(((17 * global_values.trace_length)), 32))).
+ pow1744 = pow126 * pow1743; // pow(trace_generator, &(safe_div(((23 * global_values.trace_length)), 1024)) + &(safe_div(((17 * global_values.trace_length)), 32))).
+ pow1745 = pow606 * pow1744; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 16))).
+ pow1746 = pow58 * pow1745; // pow(trace_generator, &(safe_div(((36865 * global_values.trace_length)), 65536))).
+ pow1747 = pow58 * pow1746; // pow(trace_generator, &(safe_div(((18433 * global_values.trace_length)), 32768))).
+ pow1748 = pow58 * pow1747; // pow(trace_generator, &(safe_div(((36867 * global_values.trace_length)), 65536))).
+ pow1749 = pow58 * pow1748; // pow(trace_generator, &(safe_div(((9217 * global_values.trace_length)), 16384))).
+ pow1750 = pow58 * pow1749; // pow(trace_generator, &(safe_div(((36869 * global_values.trace_length)), 65536))).
+ pow1751 = pow58 * pow1750; // pow(trace_generator, &(safe_div(((18435 * global_values.trace_length)), 32768))).
+ pow1752 = pow58 * pow1751; // pow(trace_generator, &(safe_div(((36871 * global_values.trace_length)), 65536))).
+ pow1753 = pow58 * pow1752; // pow(trace_generator, &(safe_div(((4609 * global_values.trace_length)), 8192))).
+ pow1754 = pow58 * pow1753; // pow(trace_generator, &(safe_div(((36873 * global_values.trace_length)), 65536))).
+ pow1755 = pow58 * pow1754; // pow(trace_generator, &(safe_div(((18437 * global_values.trace_length)), 32768))).
+ pow1756 = pow58 * pow1755; // pow(trace_generator, &(safe_div(((36875 * global_values.trace_length)), 65536))).
+ pow1757 = pow58 * pow1756; // pow(trace_generator, &(safe_div(((9219 * global_values.trace_length)), 16384))).
+ pow1758 = pow58 * pow1757; // pow(trace_generator, &(safe_div(((36877 * global_values.trace_length)), 65536))).
+ pow1759 = pow58 * pow1758; // pow(trace_generator, &(safe_div(((18439 * global_values.trace_length)), 32768))).
+ pow1760 = pow58 * pow1759; // pow(trace_generator, &(safe_div(((36879 * global_values.trace_length)), 65536))).
+ pow1761 = pow58 * pow1760; // pow(trace_generator, &(safe_div(((2305 * global_values.trace_length)), 4096))).
+ pow1762 = pow58 * pow1761; // pow(trace_generator, &(safe_div(((36881 * global_values.trace_length)), 65536))).
+ pow1763 = pow58 * pow1762; // pow(trace_generator, &(safe_div(((18441 * global_values.trace_length)), 32768))).
+ pow1764 = pow58 * pow1763; // pow(trace_generator, &(safe_div(((36883 * global_values.trace_length)), 65536))).
+ pow1765 = pow58 * pow1764; // pow(trace_generator, &(safe_div(((9221 * global_values.trace_length)), 16384))).
+ pow1766 = pow58 * pow1765; // pow(trace_generator, &(safe_div(((36885 * global_values.trace_length)), 65536))).
+ pow1767 = pow58 * pow1766; // pow(trace_generator, &(safe_div(((18443 * global_values.trace_length)), 32768))).
+ pow1768 = pow58 * pow1767; // pow(trace_generator, &(safe_div(((36887 * global_values.trace_length)), 65536))).
+ pow1769 = pow819 * pow1745; // pow(trace_generator, &(safe_div(((37 * global_values.trace_length)), 64))).
+ pow1770 = pow58 * pow1769; // pow(trace_generator, &(safe_div(((37889 * global_values.trace_length)), 65536))).
+ pow1771 = pow58 * pow1770; // pow(trace_generator, &(safe_div(((18945 * global_values.trace_length)), 32768))).
+ pow1772 = pow58 * pow1771; // pow(trace_generator, &(safe_div(((37891 * global_values.trace_length)), 65536))).
+ pow1773 = pow58 * pow1772; // pow(trace_generator, &(safe_div(((9473 * global_values.trace_length)), 16384))).
+ pow1774 = pow58 * pow1773; // pow(trace_generator, &(safe_div(((37893 * global_values.trace_length)), 65536))).
+ pow1775 = pow58 * pow1774; // pow(trace_generator, &(safe_div(((18947 * global_values.trace_length)), 32768))).
+ pow1776 = pow58 * pow1775; // pow(trace_generator, &(safe_div(((37895 * global_values.trace_length)), 65536))).
+ pow1777 = pow58 * pow1776; // pow(trace_generator, &(safe_div(((4737 * global_values.trace_length)), 8192))).
+ pow1778 = pow58 * pow1777; // pow(trace_generator, &(safe_div(((37897 * global_values.trace_length)), 65536))).
+ pow1779 = pow58 * pow1778; // pow(trace_generator, &(safe_div(((18949 * global_values.trace_length)), 32768))).
+ pow1780 = pow58 * pow1779; // pow(trace_generator, &(safe_div(((37899 * global_values.trace_length)), 65536))).
+ pow1781 = pow58 * pow1780; // pow(trace_generator, &(safe_div(((9475 * global_values.trace_length)), 16384))).
+ pow1782 = pow58 * pow1781; // pow(trace_generator, &(safe_div(((37901 * global_values.trace_length)), 65536))).
+ pow1783 = pow58 * pow1782; // pow(trace_generator, &(safe_div(((18951 * global_values.trace_length)), 32768))).
+ pow1784 = pow58 * pow1783; // pow(trace_generator, &(safe_div(((37903 * global_values.trace_length)), 65536))).
+ pow1785 = pow58 * pow1784; // pow(trace_generator, &(safe_div(((2369 * global_values.trace_length)), 4096))).
+ pow1786 = pow58 * pow1785; // pow(trace_generator, &(safe_div(((37905 * global_values.trace_length)), 65536))).
+ pow1787 = pow58 * pow1786; // pow(trace_generator, &(safe_div(((18953 * global_values.trace_length)), 32768))).
+ pow1788 = pow58 * pow1787; // pow(trace_generator, &(safe_div(((37907 * global_values.trace_length)), 65536))).
+ pow1789 = pow58 * pow1788; // pow(trace_generator, &(safe_div(((9477 * global_values.trace_length)), 16384))).
+ pow1790 = pow58 * pow1789; // pow(trace_generator, &(safe_div(((37909 * global_values.trace_length)), 65536))).
+ pow1791 = pow58 * pow1790; // pow(trace_generator, &(safe_div(((18955 * global_values.trace_length)), 32768))).
+ pow1792 = pow58 * pow1791; // pow(trace_generator, &(safe_div(((37911 * global_values.trace_length)), 65536))).
+ pow1793 = pow819 * pow1769; // pow(trace_generator, &(safe_div(((19 * global_values.trace_length)), 32))).
+ pow1794 = pow58 * pow1793; // pow(trace_generator, &(safe_div(((38913 * global_values.trace_length)), 65536))).
+ pow1795 = pow58 * pow1794; // pow(trace_generator, &(safe_div(((19457 * global_values.trace_length)), 32768))).
+ pow1796 = pow58 * pow1795; // pow(trace_generator, &(safe_div(((38915 * global_values.trace_length)), 65536))).
+ pow1797 = pow58 * pow1796; // pow(trace_generator, &(safe_div(((9729 * global_values.trace_length)), 16384))).
+ pow1798 = pow58 * pow1797; // pow(trace_generator, &(safe_div(((38917 * global_values.trace_length)), 65536))).
+ pow1799 = pow58 * pow1798; // pow(trace_generator, &(safe_div(((19459 * global_values.trace_length)), 32768))).
+ pow1800 = pow58 * pow1799; // pow(trace_generator, &(safe_div(((38919 * global_values.trace_length)), 65536))).
+ pow1801 = pow58 * pow1800; // pow(trace_generator, &(safe_div(((4865 * global_values.trace_length)), 8192))).
+ pow1802 = pow58 * pow1801; // pow(trace_generator, &(safe_div(((38921 * global_values.trace_length)), 65536))).
+ pow1803 = pow58 * pow1802; // pow(trace_generator, &(safe_div(((19461 * global_values.trace_length)), 32768))).
+ pow1804 = pow58 * pow1803; // pow(trace_generator, &(safe_div(((38923 * global_values.trace_length)), 65536))).
+ pow1805 = pow58 * pow1804; // pow(trace_generator, &(safe_div(((9731 * global_values.trace_length)), 16384))).
+ pow1806 = pow58 * pow1805; // pow(trace_generator, &(safe_div(((38925 * global_values.trace_length)), 65536))).
+ pow1807 = pow58 * pow1806; // pow(trace_generator, &(safe_div(((19463 * global_values.trace_length)), 32768))).
+ pow1808 = pow58 * pow1807; // pow(trace_generator, &(safe_div(((38927 * global_values.trace_length)), 65536))).
+ pow1809 = pow58 * pow1808; // pow(trace_generator, &(safe_div(((2433 * global_values.trace_length)), 4096))).
+ pow1810 = pow58 * pow1809; // pow(trace_generator, &(safe_div(((38929 * global_values.trace_length)), 65536))).
+ pow1811 = pow58 * pow1810; // pow(trace_generator, &(safe_div(((19465 * global_values.trace_length)), 32768))).
+ pow1812 = pow58 * pow1811; // pow(trace_generator, &(safe_div(((38931 * global_values.trace_length)), 65536))).
+ pow1813 = pow58 * pow1812; // pow(trace_generator, &(safe_div(((9733 * global_values.trace_length)), 16384))).
+ pow1814 = pow58 * pow1813; // pow(trace_generator, &(safe_div(((38933 * global_values.trace_length)), 65536))).
+ pow1815 = pow58 * pow1814; // pow(trace_generator, &(safe_div(((19467 * global_values.trace_length)), 32768))).
+ pow1816 = pow58 * pow1815; // pow(trace_generator, &(safe_div(((38935 * global_values.trace_length)), 65536))).
+ pow1817 = pow819 * pow1793; // pow(trace_generator, &(safe_div(((39 * global_values.trace_length)), 64))).
+ pow1818 = pow58 * pow1817; // pow(trace_generator, &(safe_div(((39937 * global_values.trace_length)), 65536))).
+ pow1819 = pow58 * pow1818; // pow(trace_generator, &(safe_div(((19969 * global_values.trace_length)), 32768))).
+ pow1820 = pow58 * pow1819; // pow(trace_generator, &(safe_div(((39939 * global_values.trace_length)), 65536))).
+ pow1821 = pow58 * pow1820; // pow(trace_generator, &(safe_div(((9985 * global_values.trace_length)), 16384))).
+ pow1822 = pow58 * pow1821; // pow(trace_generator, &(safe_div(((39941 * global_values.trace_length)), 65536))).
+ pow1823 = pow58 * pow1822; // pow(trace_generator, &(safe_div(((19971 * global_values.trace_length)), 32768))).
+ pow1824 = pow58 * pow1823; // pow(trace_generator, &(safe_div(((39943 * global_values.trace_length)), 65536))).
+ pow1825 = pow58 * pow1824; // pow(trace_generator, &(safe_div(((4993 * global_values.trace_length)), 8192))).
+ pow1826 = pow58 * pow1825; // pow(trace_generator, &(safe_div(((39945 * global_values.trace_length)), 65536))).
+ pow1827 = pow58 * pow1826; // pow(trace_generator, &(safe_div(((19973 * global_values.trace_length)), 32768))).
+ pow1828 = pow58 * pow1827; // pow(trace_generator, &(safe_div(((39947 * global_values.trace_length)), 65536))).
+ pow1829 = pow58 * pow1828; // pow(trace_generator, &(safe_div(((9987 * global_values.trace_length)), 16384))).
+ pow1830 = pow58 * pow1829; // pow(trace_generator, &(safe_div(((39949 * global_values.trace_length)), 65536))).
+ pow1831 = pow58 * pow1830; // pow(trace_generator, &(safe_div(((19975 * global_values.trace_length)), 32768))).
+ pow1832 = pow58 * pow1831; // pow(trace_generator, &(safe_div(((39951 * global_values.trace_length)), 65536))).
+ pow1833 = pow58 * pow1832; // pow(trace_generator, &(safe_div(((2497 * global_values.trace_length)), 4096))).
+ pow1834 = pow58 * pow1833; // pow(trace_generator, &(safe_div(((39953 * global_values.trace_length)), 65536))).
+ pow1835 = pow58 * pow1834; // pow(trace_generator, &(safe_div(((19977 * global_values.trace_length)), 32768))).
+ pow1836 = pow58 * pow1835; // pow(trace_generator, &(safe_div(((39955 * global_values.trace_length)), 65536))).
+ pow1837 = pow58 * pow1836; // pow(trace_generator, &(safe_div(((9989 * global_values.trace_length)), 16384))).
+ pow1838 = pow58 * pow1837; // pow(trace_generator, &(safe_div(((39957 * global_values.trace_length)), 65536))).
+ pow1839 = pow58 * pow1838; // pow(trace_generator, &(safe_div(((19979 * global_values.trace_length)), 32768))).
+ pow1840 = pow58 * pow1839; // pow(trace_generator, &(safe_div(((39959 * global_values.trace_length)), 65536))).
+ pow1841 = pow819 * pow1817; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 8))).
+ pow1842 = pow58 * pow1841; // pow(trace_generator, &(safe_div(((40961 * global_values.trace_length)), 65536))).
+ pow1843 = pow58 * pow1842; // pow(trace_generator, &(safe_div(((20481 * global_values.trace_length)), 32768))).
+ pow1844 = pow58 * pow1843; // pow(trace_generator, &(safe_div(((40963 * global_values.trace_length)), 65536))).
+ pow1845 = pow58 * pow1844; // pow(trace_generator, &(safe_div(((10241 * global_values.trace_length)), 16384))).
+ pow1846 = pow58 * pow1845; // pow(trace_generator, &(safe_div(((40965 * global_values.trace_length)), 65536))).
+ pow1847 = pow58 * pow1846; // pow(trace_generator, &(safe_div(((20483 * global_values.trace_length)), 32768))).
+ pow1848 = pow58 * pow1847; // pow(trace_generator, &(safe_div(((40967 * global_values.trace_length)), 65536))).
+ pow1849 = pow58 * pow1848; // pow(trace_generator, &(safe_div(((5121 * global_values.trace_length)), 8192))).
+ pow1850 = pow58 * pow1849; // pow(trace_generator, &(safe_div(((40969 * global_values.trace_length)), 65536))).
+ pow1851 = pow58 * pow1850; // pow(trace_generator, &(safe_div(((20485 * global_values.trace_length)), 32768))).
+ pow1852 = pow58 * pow1851; // pow(trace_generator, &(safe_div(((40971 * global_values.trace_length)), 65536))).
+ pow1853 = pow58 * pow1852; // pow(trace_generator, &(safe_div(((10243 * global_values.trace_length)), 16384))).
+ pow1854 = pow58 * pow1853; // pow(trace_generator, &(safe_div(((40973 * global_values.trace_length)), 65536))).
+ pow1855 = pow58 * pow1854; // pow(trace_generator, &(safe_div(((20487 * global_values.trace_length)), 32768))).
+ pow1856 = pow58 * pow1855; // pow(trace_generator, &(safe_div(((40975 * global_values.trace_length)), 65536))).
+ pow1857 = pow58 * pow1856; // pow(trace_generator, &(safe_div(((2561 * global_values.trace_length)), 4096))).
+ pow1858 = pow58 * pow1857; // pow(trace_generator, &(safe_div(((40977 * global_values.trace_length)), 65536))).
+ pow1859 = pow58 * pow1858; // pow(trace_generator, &(safe_div(((20489 * global_values.trace_length)), 32768))).
+ pow1860 = pow58 * pow1859; // pow(trace_generator, &(safe_div(((40979 * global_values.trace_length)), 65536))).
+ pow1861 = pow58 * pow1860; // pow(trace_generator, &(safe_div(((10245 * global_values.trace_length)), 16384))).
+ pow1862 = pow58 * pow1861; // pow(trace_generator, &(safe_div(((40981 * global_values.trace_length)), 65536))).
+ pow1863 = pow58 * pow1862; // pow(trace_generator, &(safe_div(((20491 * global_values.trace_length)), 32768))).
+ pow1864 = pow58 * pow1863; // pow(trace_generator, &(safe_div(((40983 * global_values.trace_length)), 65536))).
+ pow1865 = pow105 * pow1864; // pow(trace_generator, &(safe_div(global_values.trace_length, 1024)) + &(safe_div(((5 * global_values.trace_length)), 8))).
+ pow1866 = pow126 * pow1865; // pow(trace_generator, &(safe_div(global_values.trace_length, 512)) + &(safe_div(((5 * global_values.trace_length)), 8))).
+ pow1867 = pow126 * pow1866; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 8))).
+ pow1868 = pow126 * pow1867; // pow(trace_generator, &(safe_div(global_values.trace_length, 256)) + &(safe_div(((5 * global_values.trace_length)), 8))).
+ pow1869 = pow126 * pow1868; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 8))).
+ pow1870 = pow126 * pow1869; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 512)) + &(safe_div(((5 * global_values.trace_length)), 8))).
+ pow1871 = pow126 * pow1870; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 8))).
+ pow1872 = pow126 * pow1871; // pow(trace_generator, &(safe_div(global_values.trace_length, 128)) + &(safe_div(((5 * global_values.trace_length)), 8))).
+ pow1873 = pow126 * pow1872; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 8))).
+ pow1874 = pow126 * pow1873; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 512)) + &(safe_div(((5 * global_values.trace_length)), 8))).
+ pow1875 = pow126 * pow1874; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 8))).
+ pow1876 = pow126 * pow1875; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 256)) + &(safe_div(((5 * global_values.trace_length)), 8))).
+ pow1877 = pow126 * pow1876; // pow(trace_generator, &(safe_div(((13 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 8))).
+ pow1878 = pow126 * pow1877; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 512)) + &(safe_div(((5 * global_values.trace_length)), 8))).
+ pow1879 = pow126 * pow1878; // pow(trace_generator, &(safe_div(((15 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 8))).
+ pow1880 = pow126 * pow1879; // pow(trace_generator, &(safe_div(global_values.trace_length, 64)) + &(safe_div(((5 * global_values.trace_length)), 8))).
+ pow1881 = pow58 * pow1880; // pow(trace_generator, &(safe_div(((41985 * global_values.trace_length)), 65536))).
+ pow1882 = pow58 * pow1881; // pow(trace_generator, &(safe_div(((20993 * global_values.trace_length)), 32768))).
+ pow1883 = pow58 * pow1882; // pow(trace_generator, &(safe_div(((41987 * global_values.trace_length)), 65536))).
+ pow1884 = pow58 * pow1883; // pow(trace_generator, &(safe_div(((10497 * global_values.trace_length)), 16384))).
+ pow1885 = pow58 * pow1884; // pow(trace_generator, &(safe_div(((41989 * global_values.trace_length)), 65536))).
+ pow1886 = pow58 * pow1885; // pow(trace_generator, &(safe_div(((20995 * global_values.trace_length)), 32768))).
+ pow1887 = pow58 * pow1886; // pow(trace_generator, &(safe_div(((41991 * global_values.trace_length)), 65536))).
+ pow1888 = pow58 * pow1887; // pow(trace_generator, &(safe_div(((5249 * global_values.trace_length)), 8192))).
+ pow1889 = pow58 * pow1888; // pow(trace_generator, &(safe_div(((41993 * global_values.trace_length)), 65536))).
+ pow1890 = pow58 * pow1889; // pow(trace_generator, &(safe_div(((20997 * global_values.trace_length)), 32768))).
+ pow1891 = pow58 * pow1890; // pow(trace_generator, &(safe_div(((41995 * global_values.trace_length)), 65536))).
+ pow1892 = pow58 * pow1891; // pow(trace_generator, &(safe_div(((10499 * global_values.trace_length)), 16384))).
+ pow1893 = pow58 * pow1892; // pow(trace_generator, &(safe_div(((41997 * global_values.trace_length)), 65536))).
+ pow1894 = pow58 * pow1893; // pow(trace_generator, &(safe_div(((20999 * global_values.trace_length)), 32768))).
+ pow1895 = pow58 * pow1894; // pow(trace_generator, &(safe_div(((41999 * global_values.trace_length)), 65536))).
+ pow1896 = pow58 * pow1895; // pow(trace_generator, &(safe_div(((2625 * global_values.trace_length)), 4096))).
+ pow1897 = pow58 * pow1896; // pow(trace_generator, &(safe_div(((42001 * global_values.trace_length)), 65536))).
+ pow1898 = pow58 * pow1897; // pow(trace_generator, &(safe_div(((21001 * global_values.trace_length)), 32768))).
+ pow1899 = pow58 * pow1898; // pow(trace_generator, &(safe_div(((42003 * global_values.trace_length)), 65536))).
+ pow1900 = pow58 * pow1899; // pow(trace_generator, &(safe_div(((10501 * global_values.trace_length)), 16384))).
+ pow1901 = pow58 * pow1900; // pow(trace_generator, &(safe_div(((42005 * global_values.trace_length)), 65536))).
+ pow1902 = pow58 * pow1901; // pow(trace_generator, &(safe_div(((21003 * global_values.trace_length)), 32768))).
+ pow1903 = pow58 * pow1902; // pow(trace_generator, &(safe_div(((42007 * global_values.trace_length)), 65536))).
+ pow1904 = pow105 * pow1903; // pow(trace_generator, &(safe_div(((17 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 8))).
+ pow1905 = pow126 * pow1904; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 512)) + &(safe_div(((5 * global_values.trace_length)), 8))).
+ pow1906 = pow126 * pow1905; // pow(trace_generator, &(safe_div(((19 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 8))).
+ pow1907 = pow126 * pow1906; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 256)) + &(safe_div(((5 * global_values.trace_length)), 8))).
+ pow1908 = pow126 * pow1907; // pow(trace_generator, &(safe_div(((21 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 8))).
+ pow1909 = pow126 * pow1908; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 512)) + &(safe_div(((5 * global_values.trace_length)), 8))).
+ pow1910 = pow126 * pow1909; // pow(trace_generator, &(safe_div(((23 * global_values.trace_length)), 1024)) + &(safe_div(((5 * global_values.trace_length)), 8))).
+ pow1911 = pow606 * pow1910; // pow(trace_generator, &(safe_div(((21 * global_values.trace_length)), 32))).
+ pow1912 = pow58 * pow1911; // pow(trace_generator, &(safe_div(((43009 * global_values.trace_length)), 65536))).
+ pow1913 = pow58 * pow1912; // pow(trace_generator, &(safe_div(((21505 * global_values.trace_length)), 32768))).
+ pow1914 = pow58 * pow1913; // pow(trace_generator, &(safe_div(((43011 * global_values.trace_length)), 65536))).
+ pow1915 = pow58 * pow1914; // pow(trace_generator, &(safe_div(((10753 * global_values.trace_length)), 16384))).
+ pow1916 = pow58 * pow1915; // pow(trace_generator, &(safe_div(((43013 * global_values.trace_length)), 65536))).
+ pow1917 = pow58 * pow1916; // pow(trace_generator, &(safe_div(((21507 * global_values.trace_length)), 32768))).
+ pow1918 = pow58 * pow1917; // pow(trace_generator, &(safe_div(((43015 * global_values.trace_length)), 65536))).
+ pow1919 = pow58 * pow1918; // pow(trace_generator, &(safe_div(((5377 * global_values.trace_length)), 8192))).
+ pow1920 = pow58 * pow1919; // pow(trace_generator, &(safe_div(((43017 * global_values.trace_length)), 65536))).
+ pow1921 = pow58 * pow1920; // pow(trace_generator, &(safe_div(((21509 * global_values.trace_length)), 32768))).
+ pow1922 = pow58 * pow1921; // pow(trace_generator, &(safe_div(((43019 * global_values.trace_length)), 65536))).
+ pow1923 = pow58 * pow1922; // pow(trace_generator, &(safe_div(((10755 * global_values.trace_length)), 16384))).
+ pow1924 = pow58 * pow1923; // pow(trace_generator, &(safe_div(((43021 * global_values.trace_length)), 65536))).
+ pow1925 = pow58 * pow1924; // pow(trace_generator, &(safe_div(((21511 * global_values.trace_length)), 32768))).
+ pow1926 = pow58 * pow1925; // pow(trace_generator, &(safe_div(((43023 * global_values.trace_length)), 65536))).
+ pow1927 = pow58 * pow1926; // pow(trace_generator, &(safe_div(((2689 * global_values.trace_length)), 4096))).
+ pow1928 = pow58 * pow1927; // pow(trace_generator, &(safe_div(((43025 * global_values.trace_length)), 65536))).
+ pow1929 = pow58 * pow1928; // pow(trace_generator, &(safe_div(((21513 * global_values.trace_length)), 32768))).
+ pow1930 = pow58 * pow1929; // pow(trace_generator, &(safe_div(((43027 * global_values.trace_length)), 65536))).
+ pow1931 = pow58 * pow1930; // pow(trace_generator, &(safe_div(((10757 * global_values.trace_length)), 16384))).
+ pow1932 = pow58 * pow1931; // pow(trace_generator, &(safe_div(((43029 * global_values.trace_length)), 65536))).
+ pow1933 = pow58 * pow1932; // pow(trace_generator, &(safe_div(((21515 * global_values.trace_length)), 32768))).
+ pow1934 = pow58 * pow1933; // pow(trace_generator, &(safe_div(((43031 * global_values.trace_length)), 65536))).
+ pow1935 = pow105 * pow1934; // pow(trace_generator, &(safe_div(global_values.trace_length, 1024)) + &(safe_div(((21 * global_values.trace_length)), 32))).
+ pow1936 = pow126 * pow1935; // pow(trace_generator, &(safe_div(global_values.trace_length, 512)) + &(safe_div(((21 * global_values.trace_length)), 32))).
+ pow1937 = pow126 * pow1936; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 1024)) + &(safe_div(((21 * global_values.trace_length)), 32))).
+ pow1938 = pow126 * pow1937; // pow(trace_generator, &(safe_div(global_values.trace_length, 256)) + &(safe_div(((21 * global_values.trace_length)), 32))).
+ pow1939 = pow126 * pow1938; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 1024)) + &(safe_div(((21 * global_values.trace_length)), 32))).
+ pow1940 = pow126 * pow1939; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 512)) + &(safe_div(((21 * global_values.trace_length)), 32))).
+ pow1941 = pow126 * pow1940; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 1024)) + &(safe_div(((21 * global_values.trace_length)), 32))).
+ pow1942 = pow126 * pow1941; // pow(trace_generator, &(safe_div(global_values.trace_length, 128)) + &(safe_div(((21 * global_values.trace_length)), 32))).
+ pow1943 = pow126 * pow1942; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 1024)) + &(safe_div(((21 * global_values.trace_length)), 32))).
+ pow1944 = pow126 * pow1943; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 512)) + &(safe_div(((21 * global_values.trace_length)), 32))).
+ pow1945 = pow126 * pow1944; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 1024)) + &(safe_div(((21 * global_values.trace_length)), 32))).
+ pow1946 = pow126 * pow1945; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 256)) + &(safe_div(((21 * global_values.trace_length)), 32))).
+ pow1947 = pow126 * pow1946; // pow(trace_generator, &(safe_div(((13 * global_values.trace_length)), 1024)) + &(safe_div(((21 * global_values.trace_length)), 32))).
+ pow1948 = pow126 * pow1947; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 512)) + &(safe_div(((21 * global_values.trace_length)), 32))).
+ pow1949 = pow126 * pow1948; // pow(trace_generator, &(safe_div(((15 * global_values.trace_length)), 1024)) + &(safe_div(((21 * global_values.trace_length)), 32))).
+ pow1950 = pow126 * pow1949; // pow(trace_generator, &(safe_div(global_values.trace_length, 64)) + &(safe_div(((21 * global_values.trace_length)), 32))).
+ pow1951 = pow58 * pow1950; // pow(trace_generator, &(safe_div(((44033 * global_values.trace_length)), 65536))).
+ pow1952 = pow58 * pow1951; // pow(trace_generator, &(safe_div(((22017 * global_values.trace_length)), 32768))).
+ pow1953 = pow58 * pow1952; // pow(trace_generator, &(safe_div(((44035 * global_values.trace_length)), 65536))).
+ pow1954 = pow58 * pow1953; // pow(trace_generator, &(safe_div(((11009 * global_values.trace_length)), 16384))).
+ pow1955 = pow58 * pow1954; // pow(trace_generator, &(safe_div(((44037 * global_values.trace_length)), 65536))).
+ pow1956 = pow58 * pow1955; // pow(trace_generator, &(safe_div(((22019 * global_values.trace_length)), 32768))).
+ pow1957 = pow58 * pow1956; // pow(trace_generator, &(safe_div(((44039 * global_values.trace_length)), 65536))).
+ pow1958 = pow58 * pow1957; // pow(trace_generator, &(safe_div(((5505 * global_values.trace_length)), 8192))).
+ pow1959 = pow58 * pow1958; // pow(trace_generator, &(safe_div(((44041 * global_values.trace_length)), 65536))).
+ pow1960 = pow58 * pow1959; // pow(trace_generator, &(safe_div(((22021 * global_values.trace_length)), 32768))).
+ pow1961 = pow58 * pow1960; // pow(trace_generator, &(safe_div(((44043 * global_values.trace_length)), 65536))).
+ pow1962 = pow58 * pow1961; // pow(trace_generator, &(safe_div(((11011 * global_values.trace_length)), 16384))).
+ pow1963 = pow58 * pow1962; // pow(trace_generator, &(safe_div(((44045 * global_values.trace_length)), 65536))).
+ pow1964 = pow58 * pow1963; // pow(trace_generator, &(safe_div(((22023 * global_values.trace_length)), 32768))).
+ pow1965 = pow58 * pow1964; // pow(trace_generator, &(safe_div(((44047 * global_values.trace_length)), 65536))).
+ pow1966 = pow58 * pow1965; // pow(trace_generator, &(safe_div(((2753 * global_values.trace_length)), 4096))).
+ pow1967 = pow58 * pow1966; // pow(trace_generator, &(safe_div(((44049 * global_values.trace_length)), 65536))).
+ pow1968 = pow58 * pow1967; // pow(trace_generator, &(safe_div(((22025 * global_values.trace_length)), 32768))).
+ pow1969 = pow58 * pow1968; // pow(trace_generator, &(safe_div(((44051 * global_values.trace_length)), 65536))).
+ pow1970 = pow58 * pow1969; // pow(trace_generator, &(safe_div(((11013 * global_values.trace_length)), 16384))).
+ pow1971 = pow58 * pow1970; // pow(trace_generator, &(safe_div(((44053 * global_values.trace_length)), 65536))).
+ pow1972 = pow58 * pow1971; // pow(trace_generator, &(safe_div(((22027 * global_values.trace_length)), 32768))).
+ pow1973 = pow58 * pow1972; // pow(trace_generator, &(safe_div(((44055 * global_values.trace_length)), 65536))).
+ pow1974 = pow105 * pow1973; // pow(trace_generator, &(safe_div(((17 * global_values.trace_length)), 1024)) + &(safe_div(((21 * global_values.trace_length)), 32))).
+ pow1975 = pow126 * pow1974; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 512)) + &(safe_div(((21 * global_values.trace_length)), 32))).
+ pow1976 = pow126 * pow1975; // pow(trace_generator, &(safe_div(((19 * global_values.trace_length)), 1024)) + &(safe_div(((21 * global_values.trace_length)), 32))).
+ pow1977 = pow126 * pow1976; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 256)) + &(safe_div(((21 * global_values.trace_length)), 32))).
+ pow1978 = pow126 * pow1977; // pow(trace_generator, &(safe_div(((21 * global_values.trace_length)), 1024)) + &(safe_div(((21 * global_values.trace_length)), 32))).
+ pow1979 = pow126 * pow1978; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 512)) + &(safe_div(((21 * global_values.trace_length)), 32))).
+ pow1980 = pow126 * pow1979; // pow(trace_generator, &(safe_div(((23 * global_values.trace_length)), 1024)) + &(safe_div(((21 * global_values.trace_length)), 32))).
+ pow1981 = pow606 * pow1980; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 16))).
+ pow1982 = pow58 * pow1981; // pow(trace_generator, &(safe_div(((45057 * global_values.trace_length)), 65536))).
+ pow1983 = pow58 * pow1982; // pow(trace_generator, &(safe_div(((22529 * global_values.trace_length)), 32768))).
+ pow1984 = pow58 * pow1983; // pow(trace_generator, &(safe_div(((45059 * global_values.trace_length)), 65536))).
+ pow1985 = pow58 * pow1984; // pow(trace_generator, &(safe_div(((11265 * global_values.trace_length)), 16384))).
+ pow1986 = pow58 * pow1985; // pow(trace_generator, &(safe_div(((45061 * global_values.trace_length)), 65536))).
+ pow1987 = pow58 * pow1986; // pow(trace_generator, &(safe_div(((22531 * global_values.trace_length)), 32768))).
+ pow1988 = pow58 * pow1987; // pow(trace_generator, &(safe_div(((45063 * global_values.trace_length)), 65536))).
+ pow1989 = pow58 * pow1988; // pow(trace_generator, &(safe_div(((5633 * global_values.trace_length)), 8192))).
+ pow1990 = pow58 * pow1989; // pow(trace_generator, &(safe_div(((45065 * global_values.trace_length)), 65536))).
+ pow1991 = pow58 * pow1990; // pow(trace_generator, &(safe_div(((22533 * global_values.trace_length)), 32768))).
+ pow1992 = pow58 * pow1991; // pow(trace_generator, &(safe_div(((45067 * global_values.trace_length)), 65536))).
+ pow1993 = pow58 * pow1992; // pow(trace_generator, &(safe_div(((11267 * global_values.trace_length)), 16384))).
+ pow1994 = pow58 * pow1993; // pow(trace_generator, &(safe_div(((45069 * global_values.trace_length)), 65536))).
+ pow1995 = pow58 * pow1994; // pow(trace_generator, &(safe_div(((22535 * global_values.trace_length)), 32768))).
+ pow1996 = pow58 * pow1995; // pow(trace_generator, &(safe_div(((45071 * global_values.trace_length)), 65536))).
+ pow1997 = pow58 * pow1996; // pow(trace_generator, &(safe_div(((2817 * global_values.trace_length)), 4096))).
+ pow1998 = pow58 * pow1997; // pow(trace_generator, &(safe_div(((45073 * global_values.trace_length)), 65536))).
+ pow1999 = pow58 * pow1998; // pow(trace_generator, &(safe_div(((22537 * global_values.trace_length)), 32768))).
+ pow2000 = pow58 * pow1999; // pow(trace_generator, &(safe_div(((45075 * global_values.trace_length)), 65536))).
+ pow2001 = pow58 * pow2000; // pow(trace_generator, &(safe_div(((11269 * global_values.trace_length)), 16384))).
+ pow2002 = pow58 * pow2001; // pow(trace_generator, &(safe_div(((45077 * global_values.trace_length)), 65536))).
+ pow2003 = pow58 * pow2002; // pow(trace_generator, &(safe_div(((22539 * global_values.trace_length)), 32768))).
+ pow2004 = pow58 * pow2003; // pow(trace_generator, &(safe_div(((45079 * global_values.trace_length)), 65536))).
+ pow2005 = pow105 * pow2004; // pow(trace_generator, &(safe_div(global_values.trace_length, 1024)) + &(safe_div(((11 * global_values.trace_length)), 16))).
+ pow2006 = pow126 * pow2005; // pow(trace_generator, &(safe_div(global_values.trace_length, 512)) + &(safe_div(((11 * global_values.trace_length)), 16))).
+ pow2007 = pow126 * pow2006; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 1024)) + &(safe_div(((11 * global_values.trace_length)), 16))).
+ pow2008 = pow126 * pow2007; // pow(trace_generator, &(safe_div(global_values.trace_length, 256)) + &(safe_div(((11 * global_values.trace_length)), 16))).
+ pow2009 = pow126 * pow2008; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 1024)) + &(safe_div(((11 * global_values.trace_length)), 16))).
+ pow2010 = pow126 * pow2009; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 512)) + &(safe_div(((11 * global_values.trace_length)), 16))).
+ pow2011 = pow126 * pow2010; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 1024)) + &(safe_div(((11 * global_values.trace_length)), 16))).
+ pow2012 = pow126 * pow2011; // pow(trace_generator, &(safe_div(global_values.trace_length, 128)) + &(safe_div(((11 * global_values.trace_length)), 16))).
+ pow2013 = pow126 * pow2012; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 1024)) + &(safe_div(((11 * global_values.trace_length)), 16))).
+ pow2014 = pow126 * pow2013; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 512)) + &(safe_div(((11 * global_values.trace_length)), 16))).
+ pow2015 = pow126 * pow2014; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 1024)) + &(safe_div(((11 * global_values.trace_length)), 16))).
+ pow2016 = pow126 * pow2015; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 256)) + &(safe_div(((11 * global_values.trace_length)), 16))).
+ pow2017 = pow126 * pow2016; // pow(trace_generator, &(safe_div(((13 * global_values.trace_length)), 1024)) + &(safe_div(((11 * global_values.trace_length)), 16))).
+ pow2018 = pow126 * pow2017; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 512)) + &(safe_div(((11 * global_values.trace_length)), 16))).
+ pow2019 = pow126 * pow2018; // pow(trace_generator, &(safe_div(((15 * global_values.trace_length)), 1024)) + &(safe_div(((11 * global_values.trace_length)), 16))).
+ pow2020 = pow126 * pow2019; // pow(trace_generator, &(safe_div(global_values.trace_length, 64)) + &(safe_div(((11 * global_values.trace_length)), 16))).
+ pow2021 = pow58 * pow2020; // pow(trace_generator, &(safe_div(((46081 * global_values.trace_length)), 65536))).
+ pow2022 = pow58 * pow2021; // pow(trace_generator, &(safe_div(((23041 * global_values.trace_length)), 32768))).
+ pow2023 = pow58 * pow2022; // pow(trace_generator, &(safe_div(((46083 * global_values.trace_length)), 65536))).
+ pow2024 = pow58 * pow2023; // pow(trace_generator, &(safe_div(((11521 * global_values.trace_length)), 16384))).
+ pow2025 = pow58 * pow2024; // pow(trace_generator, &(safe_div(((46085 * global_values.trace_length)), 65536))).
+ pow2026 = pow58 * pow2025; // pow(trace_generator, &(safe_div(((23043 * global_values.trace_length)), 32768))).
+ pow2027 = pow58 * pow2026; // pow(trace_generator, &(safe_div(((46087 * global_values.trace_length)), 65536))).
+ pow2028 = pow58 * pow2027; // pow(trace_generator, &(safe_div(((5761 * global_values.trace_length)), 8192))).
+ pow2029 = pow58 * pow2028; // pow(trace_generator, &(safe_div(((46089 * global_values.trace_length)), 65536))).
+ pow2030 = pow58 * pow2029; // pow(trace_generator, &(safe_div(((23045 * global_values.trace_length)), 32768))).
+ pow2031 = pow58 * pow2030; // pow(trace_generator, &(safe_div(((46091 * global_values.trace_length)), 65536))).
+ pow2032 = pow58 * pow2031; // pow(trace_generator, &(safe_div(((11523 * global_values.trace_length)), 16384))).
+ pow2033 = pow58 * pow2032; // pow(trace_generator, &(safe_div(((46093 * global_values.trace_length)), 65536))).
+ pow2034 = pow58 * pow2033; // pow(trace_generator, &(safe_div(((23047 * global_values.trace_length)), 32768))).
+ pow2035 = pow58 * pow2034; // pow(trace_generator, &(safe_div(((46095 * global_values.trace_length)), 65536))).
+ pow2036 = pow58 * pow2035; // pow(trace_generator, &(safe_div(((2881 * global_values.trace_length)), 4096))).
+ pow2037 = pow58 * pow2036; // pow(trace_generator, &(safe_div(((46097 * global_values.trace_length)), 65536))).
+ pow2038 = pow58 * pow2037; // pow(trace_generator, &(safe_div(((23049 * global_values.trace_length)), 32768))).
+ pow2039 = pow58 * pow2038; // pow(trace_generator, &(safe_div(((46099 * global_values.trace_length)), 65536))).
+ pow2040 = pow58 * pow2039; // pow(trace_generator, &(safe_div(((11525 * global_values.trace_length)), 16384))).
+ pow2041 = pow58 * pow2040; // pow(trace_generator, &(safe_div(((46101 * global_values.trace_length)), 65536))).
+ pow2042 = pow58 * pow2041; // pow(trace_generator, &(safe_div(((23051 * global_values.trace_length)), 32768))).
+ pow2043 = pow58 * pow2042; // pow(trace_generator, &(safe_div(((46103 * global_values.trace_length)), 65536))).
+ pow2044 = pow105 * pow2043; // pow(trace_generator, &(safe_div(((17 * global_values.trace_length)), 1024)) + &(safe_div(((11 * global_values.trace_length)), 16))).
+ pow2045 = pow126 * pow2044; // pow(trace_generator, &(safe_div(((9 * global_values.trace_length)), 512)) + &(safe_div(((11 * global_values.trace_length)), 16))).
+ pow2046 = pow126 * pow2045; // pow(trace_generator, &(safe_div(((19 * global_values.trace_length)), 1024)) + &(safe_div(((11 * global_values.trace_length)), 16))).
+ pow2047 = pow126 * pow2046; // pow(trace_generator, &(safe_div(((5 * global_values.trace_length)), 256)) + &(safe_div(((11 * global_values.trace_length)), 16))).
+ pow2048 = pow126 * pow2047; // pow(trace_generator, &(safe_div(((21 * global_values.trace_length)), 1024)) + &(safe_div(((11 * global_values.trace_length)), 16))).
+ pow2049 = pow126 * pow2048; // pow(trace_generator, &(safe_div(((11 * global_values.trace_length)), 512)) + &(safe_div(((11 * global_values.trace_length)), 16))).
+ pow2050 = pow126 * pow2049; // pow(trace_generator, &(safe_div(((23 * global_values.trace_length)), 1024)) + &(safe_div(((11 * global_values.trace_length)), 16))).
+ pow2051 = pow606 * pow2050; // pow(trace_generator, &(safe_div(((23 * global_values.trace_length)), 32))).
+ pow2052 = pow819 * pow2051; // pow(trace_generator, &(safe_div(((47 * global_values.trace_length)), 64))).
+ pow2053 = pow819 * pow2052; // pow(trace_generator, &(safe_div(((3 * global_values.trace_length)), 4))).
+ pow2054 = pow58 * pow2051; // pow(trace_generator, &(safe_div(((47105 * global_values.trace_length)), 65536))).
+ pow2055 = pow58 * pow2052; // pow(trace_generator, &(safe_div(((48129 * global_values.trace_length)), 65536))).
+ pow2056 = pow58 * pow2053; // pow(trace_generator, &(safe_div(((49153 * global_values.trace_length)), 65536))).
+ pow2057 = pow58 * pow2054; // pow(trace_generator, &(safe_div(((23553 * global_values.trace_length)), 32768))).
+ pow2058 = pow58 * pow2055; // pow(trace_generator, &(safe_div(((24065 * global_values.trace_length)), 32768))).
+ pow2059 = pow58 * pow2056; // pow(trace_generator, &(safe_div(((24577 * global_values.trace_length)), 32768))).
+ pow2060 = pow58 * pow2057; // pow(trace_generator, &(safe_div(((47107 * global_values.trace_length)), 65536))).
+ pow2061 = pow58 * pow2058; // pow(trace_generator, &(safe_div(((48131 * global_values.trace_length)), 65536))).
+ pow2062 = pow58 * pow2059; // pow(trace_generator, &(safe_div(((49155 * global_values.trace_length)), 65536))).
+ pow2063 = pow58 * pow2060; // pow(trace_generator, &(safe_div(((11777 * global_values.trace_length)), 16384))).
+ pow2064 = pow58 * pow2061; // pow(trace_generator, &(safe_div(((12033 * global_values.trace_length)), 16384))).
+ pow2065 = pow58 * pow2062; // pow(trace_generator, &(safe_div(((12289 * global_values.trace_length)), 16384))).
+ pow2066 = pow58 * pow2063; // pow(trace_generator, &(safe_div(((47109 * global_values.trace_length)), 65536))).
+ pow2067 = pow58 * pow2064; // pow(trace_generator, &(safe_div(((48133 * global_values.trace_length)), 65536))).
+ pow2068 = pow58 * pow2065; // pow(trace_generator, &(safe_div(((49157 * global_values.trace_length)), 65536))).
+ pow2069 = pow819 * pow2053; // pow(trace_generator, &(safe_div(((49 * global_values.trace_length)), 64))).
+ pow2070 = pow58 * pow2069; // pow(trace_generator, &(safe_div(((50177 * global_values.trace_length)), 65536))).
+ pow2071 = pow58 * pow2070; // pow(trace_generator, &(safe_div(((25089 * global_values.trace_length)), 32768))).
+ pow2072 = pow58 * pow2071; // pow(trace_generator, &(safe_div(((50179 * global_values.trace_length)), 65536))).
+ pow2073 = pow58 * pow2072; // pow(trace_generator, &(safe_div(((12545 * global_values.trace_length)), 16384))).
+ pow2074 = pow58 * pow2073; // pow(trace_generator, &(safe_div(((50181 * global_values.trace_length)), 65536))).
+ pow2075 = pow58 * pow2066; // pow(trace_generator, &(safe_div(((23555 * global_values.trace_length)), 32768))).
+ pow2076 = pow58 * pow2067; // pow(trace_generator, &(safe_div(((24067 * global_values.trace_length)), 32768))).
+ pow2077 = pow58 * pow2068; // pow(trace_generator, &(safe_div(((24579 * global_values.trace_length)), 32768))).
+ pow2078 = pow58 * pow2075; // pow(trace_generator, &(safe_div(((47111 * global_values.trace_length)), 65536))).
+ pow2079 = pow58 * pow2078; // pow(trace_generator, &(safe_div(((5889 * global_values.trace_length)), 8192))).
+ pow2080 = pow58 * pow2079; // pow(trace_generator, &(safe_div(((47113 * global_values.trace_length)), 65536))).
+ pow2081 = pow58 * pow2080; // pow(trace_generator, &(safe_div(((23557 * global_values.trace_length)), 32768))).
+ pow2082 = pow58 * pow2081; // pow(trace_generator, &(safe_div(((47115 * global_values.trace_length)), 65536))).
+ pow2083 = pow58 * pow2082; // pow(trace_generator, &(safe_div(((11779 * global_values.trace_length)), 16384))).
+ pow2084 = pow58 * pow2083; // pow(trace_generator, &(safe_div(((47117 * global_values.trace_length)), 65536))).
+ pow2085 = pow58 * pow2084; // pow(trace_generator, &(safe_div(((23559 * global_values.trace_length)), 32768))).
+ pow2086 = pow58 * pow2085; // pow(trace_generator, &(safe_div(((47119 * global_values.trace_length)), 65536))).
+ pow2087 = pow58 * pow2086; // pow(trace_generator, &(safe_div(((2945 * global_values.trace_length)), 4096))).
+ pow2088 = pow58 * pow2087; // pow(trace_generator, &(safe_div(((47121 * global_values.trace_length)), 65536))).
+ pow2089 = pow58 * pow2088; // pow(trace_generator, &(safe_div(((23561 * global_values.trace_length)), 32768))).
+ pow2090 = pow58 * pow2089; // pow(trace_generator, &(safe_div(((47123 * global_values.trace_length)), 65536))).
+ pow2091 = pow58 * pow2090; // pow(trace_generator, &(safe_div(((11781 * global_values.trace_length)), 16384))).
+ pow2092 = pow58 * pow2091; // pow(trace_generator, &(safe_div(((47125 * global_values.trace_length)), 65536))).
+ pow2093 = pow58 * pow2092; // pow(trace_generator, &(safe_div(((23563 * global_values.trace_length)), 32768))).
+ pow2094 = pow58 * pow2093; // pow(trace_generator, &(safe_div(((47127 * global_values.trace_length)), 65536))).
+ pow2095 = pow58 * pow2076; // pow(trace_generator, &(safe_div(((48135 * global_values.trace_length)), 65536))).
+ pow2096 = pow58 * pow2095; // pow(trace_generator, &(safe_div(((6017 * global_values.trace_length)), 8192))).
+ pow2097 = pow58 * pow2096; // pow(trace_generator, &(safe_div(((48137 * global_values.trace_length)), 65536))).
+ pow2098 = pow58 * pow2097; // pow(trace_generator, &(safe_div(((24069 * global_values.trace_length)), 32768))).
+ pow2099 = pow58 * pow2098; // pow(trace_generator, &(safe_div(((48139 * global_values.trace_length)), 65536))).
+ pow2100 = pow58 * pow2099; // pow(trace_generator, &(safe_div(((12035 * global_values.trace_length)), 16384))).
+ pow2101 = pow58 * pow2100; // pow(trace_generator, &(safe_div(((48141 * global_values.trace_length)), 65536))).
+ pow2102 = pow58 * pow2101; // pow(trace_generator, &(safe_div(((24071 * global_values.trace_length)), 32768))).
+ pow2103 = pow58 * pow2102; // pow(trace_generator, &(safe_div(((48143 * global_values.trace_length)), 65536))).
+ pow2104 = pow58 * pow2103; // pow(trace_generator, &(safe_div(((3009 * global_values.trace_length)), 4096))).
+ pow2105 = pow58 * pow2104; // pow(trace_generator, &(safe_div(((48145 * global_values.trace_length)), 65536))).
+ pow2106 = pow58 * pow2105; // pow(trace_generator, &(safe_div(((24073 * global_values.trace_length)), 32768))).
+ pow2107 = pow58 * pow2106; // pow(trace_generator, &(safe_div(((48147 * global_values.trace_length)), 65536))).
+ pow2108 = pow58 * pow2107; // pow(trace_generator, &(safe_div(((12037 * global_values.trace_length)), 16384))).
+ pow2109 = pow58 * pow2108; // pow(trace_generator, &(safe_div(((48149 * global_values.trace_length)), 65536))).
+ pow2110 = pow58 * pow2109; // pow(trace_generator, &(safe_div(((24075 * global_values.trace_length)), 32768))).
+ pow2111 = pow58 * pow2110; // pow(trace_generator, &(safe_div(((48151 * global_values.trace_length)), 65536))).
+ pow2112 = pow58 * pow2077; // pow(trace_generator, &(safe_div(((49159 * global_values.trace_length)), 65536))).
+ pow2113 = pow58 * pow2112; // pow(trace_generator, &(safe_div(((6145 * global_values.trace_length)), 8192))).
+ pow2114 = pow58 * pow2113; // pow(trace_generator, &(safe_div(((49161 * global_values.trace_length)), 65536))).
+ pow2115 = pow58 * pow2114; // pow(trace_generator, &(safe_div(((24581 * global_values.trace_length)), 32768))).
+ pow2116 = pow58 * pow2115; // pow(trace_generator, &(safe_div(((49163 * global_values.trace_length)), 65536))).
+ pow2117 = pow58 * pow2116; // pow(trace_generator, &(safe_div(((12291 * global_values.trace_length)), 16384))).
+ pow2118 = pow58 * pow2117; // pow(trace_generator, &(safe_div(((49165 * global_values.trace_length)), 65536))).
+ pow2119 = pow58 * pow2118; // pow(trace_generator, &(safe_div(((24583 * global_values.trace_length)), 32768))).
+ pow2120 = pow58 * pow2119; // pow(trace_generator, &(safe_div(((49167 * global_values.trace_length)), 65536))).
+ pow2121 = pow58 * pow2120; // pow(trace_generator, &(safe_div(((3073 * global_values.trace_length)), 4096))).
+ pow2122 = pow58 * pow2121; // pow(trace_generator, &(safe_div(((49169 * global_values.trace_length)), 65536))).
+ pow2123 = pow58 * pow2122; // pow(trace_generator, &(safe_div(((24585 * global_values.trace_length)), 32768))).
+ pow2124 = pow58 * pow2123; // pow(trace_generator, &(safe_div(((49171 * global_values.trace_length)), 65536))).
+ pow2125 = pow58 * pow2124; // pow(trace_generator, &(safe_div(((12293 * global_values.trace_length)), 16384))).
+ pow2126 = pow58 * pow2125; // pow(trace_generator, &(safe_div(((49173 * global_values.trace_length)), 65536))).
+ pow2127 = pow58 * pow2126; // pow(trace_generator, &(safe_div(((24587 * global_values.trace_length)), 32768))).
+ pow2128 = pow58 * pow2127; // pow(trace_generator, &(safe_div(((49175 * global_values.trace_length)), 65536))).
+ pow2129 = pow58 * pow2074; // pow(trace_generator, &(safe_div(((25091 * global_values.trace_length)), 32768))).
+ pow2130 = pow58 * pow2129; // pow(trace_generator, &(safe_div(((50183 * global_values.trace_length)), 65536))).
+ pow2131 = pow58 * pow2130; // pow(trace_generator, &(safe_div(((6273 * global_values.trace_length)), 8192))).
+ pow2132 = pow58 * pow2131; // pow(trace_generator, &(safe_div(((50185 * global_values.trace_length)), 65536))).
+ pow2133 = pow58 * pow2132; // pow(trace_generator, &(safe_div(((25093 * global_values.trace_length)), 32768))).
+ pow2134 = pow58 * pow2133; // pow(trace_generator, &(safe_div(((50187 * global_values.trace_length)), 65536))).
+ pow2135 = pow58 * pow2134; // pow(trace_generator, &(safe_div(((12547 * global_values.trace_length)), 16384))).
+ pow2136 = pow58 * pow2135; // pow(trace_generator, &(safe_div(((50189 * global_values.trace_length)), 65536))).
+ pow2137 = pow58 * pow2136; // pow(trace_generator, &(safe_div(((25095 * global_values.trace_length)), 32768))).
+ pow2138 = pow58 * pow2137; // pow(trace_generator, &(safe_div(((50191 * global_values.trace_length)), 65536))).
+ pow2139 = pow58 * pow2138; // pow(trace_generator, &(safe_div(((3137 * global_values.trace_length)), 4096))).
+ pow2140 = pow58 * pow2139; // pow(trace_generator, &(safe_div(((50193 * global_values.trace_length)), 65536))).
+ pow2141 = pow58 * pow2140; // pow(trace_generator, &(safe_div(((25097 * global_values.trace_length)), 32768))).
+ pow2142 = pow58 * pow2141; // pow(trace_generator, &(safe_div(((50195 * global_values.trace_length)), 65536))).
+ pow2143 = pow58 * pow2142; // pow(trace_generator, &(safe_div(((12549 * global_values.trace_length)), 16384))).
+ pow2144 = pow58 * pow2143; // pow(trace_generator, &(safe_div(((50197 * global_values.trace_length)), 65536))).
+ pow2145 = pow58 * pow2144; // pow(trace_generator, &(safe_div(((25099 * global_values.trace_length)), 32768))).
+ pow2146 = pow58 * pow2145; // pow(trace_generator, &(safe_div(((50199 * global_values.trace_length)), 65536))).
+ pow2147 = pow819 * pow2069; // pow(trace_generator, &(safe_div(((25 * global_values.trace_length)), 32))).
+ pow2148 = pow819 * pow2147; // pow(trace_generator, &(safe_div(((51 * global_values.trace_length)), 64))).
+ pow2149 = pow819 * pow2148; // pow(trace_generator, &(safe_div(((13 * global_values.trace_length)), 16))).
+ pow2150 = pow58 * pow2147; // pow(trace_generator, &(safe_div(((51201 * global_values.trace_length)), 65536))).
+ pow2151 = pow58 * pow2148; // pow(trace_generator, &(safe_div(((52225 * global_values.trace_length)), 65536))).
+ pow2152 = pow58 * pow2149; // pow(trace_generator, &(safe_div(((53249 * global_values.trace_length)), 65536))).
+ pow2153 = pow58 * pow2150; // pow(trace_generator, &(safe_div(((25601 * global_values.trace_length)), 32768))).
+ pow2154 = pow58 * pow2151; // pow(trace_generator, &(safe_div(((26113 * global_values.trace_length)), 32768))).
+ pow2155 = pow58 * pow2152; // pow(trace_generator, &(safe_div(((26625 * global_values.trace_length)), 32768))).
+ pow2156 = pow58 * pow2153; // pow(trace_generator, &(safe_div(((51203 * global_values.trace_length)), 65536))).
+ pow2157 = pow58 * pow2154; // pow(trace_generator, &(safe_div(((52227 * global_values.trace_length)), 65536))).
+ pow2158 = pow58 * pow2155; // pow(trace_generator, &(safe_div(((53251 * global_values.trace_length)), 65536))).
+ pow2159 = pow58 * pow2156; // pow(trace_generator, &(safe_div(((12801 * global_values.trace_length)), 16384))).
+ pow2160 = pow58 * pow2157; // pow(trace_generator, &(safe_div(((13057 * global_values.trace_length)), 16384))).
+ pow2161 = pow58 * pow2158; // pow(trace_generator, &(safe_div(((13313 * global_values.trace_length)), 16384))).
+ pow2162 = pow58 * pow2159; // pow(trace_generator, &(safe_div(((51205 * global_values.trace_length)), 65536))).
+ pow2163 = pow58 * pow2160; // pow(trace_generator, &(safe_div(((52229 * global_values.trace_length)), 65536))).
+ pow2164 = pow58 * pow2161; // pow(trace_generator, &(safe_div(((53253 * global_values.trace_length)), 65536))).
+ pow2165 = pow58 * pow2162; // pow(trace_generator, &(safe_div(((25603 * global_values.trace_length)), 32768))).
+ pow2166 = pow58 * pow2163; // pow(trace_generator, &(safe_div(((26115 * global_values.trace_length)), 32768))).
+ pow2167 = pow58 * pow2164; // pow(trace_generator, &(safe_div(((26627 * global_values.trace_length)), 32768))).
+ pow2168 = pow58 * pow2165; // pow(trace_generator, &(safe_div(((51207 * global_values.trace_length)), 65536))).
+ pow2169 = pow58 * pow2168; // pow(trace_generator, &(safe_div(((6401 * global_values.trace_length)), 8192))).
+ pow2170 = pow58 * pow2169; // pow(trace_generator, &(safe_div(((51209 * global_values.trace_length)), 65536))).
+ pow2171 = pow58 * pow2170; // pow(trace_generator, &(safe_div(((25605 * global_values.trace_length)), 32768))).
+ pow2172 = pow58 * pow2171; // pow(trace_generator, &(safe_div(((51211 * global_values.trace_length)), 65536))).
+ pow2173 = pow58 * pow2172; // pow(trace_generator, &(safe_div(((12803 * global_values.trace_length)), 16384))).
+ pow2174 = pow58 * pow2173; // pow(trace_generator, &(safe_div(((51213 * global_values.trace_length)), 65536))).
+ pow2175 = pow58 * pow2174; // pow(trace_generator, &(safe_div(((25607 * global_values.trace_length)), 32768))).
+ pow2176 = pow58 * pow2175; // pow(trace_generator, &(safe_div(((51215 * global_values.trace_length)), 65536))).
+ pow2177 = pow58 * pow2176; // pow(trace_generator, &(safe_div(((3201 * global_values.trace_length)), 4096))).
+ pow2178 = pow58 * pow2177; // pow(trace_generator, &(safe_div(((51217 * global_values.trace_length)), 65536))).
+ pow2179 = pow58 * pow2178; // pow(trace_generator, &(safe_div(((25609 * global_values.trace_length)), 32768))).
+ pow2180 = pow58 * pow2179; // pow(trace_generator, &(safe_div(((51219 * global_values.trace_length)), 65536))).
+ pow2181 = pow58 * pow2180; // pow(trace_generator, &(safe_div(((12805 * global_values.trace_length)), 16384))).
+ pow2182 = pow58 * pow2181; // pow(trace_generator, &(safe_div(((51221 * global_values.trace_length)), 65536))).
+ pow2183 = pow58 * pow2182; // pow(trace_generator, &(safe_div(((25611 * global_values.trace_length)), 32768))).
+ pow2184 = pow58 * pow2183; // pow(trace_generator, &(safe_div(((51223 * global_values.trace_length)), 65536))).
+ pow2185 = pow58 * pow2166; // pow(trace_generator, &(safe_div(((52231 * global_values.trace_length)), 65536))).
+ pow2186 = pow58 * pow2185; // pow(trace_generator, &(safe_div(((6529 * global_values.trace_length)), 8192))).
+ pow2187 = pow58 * pow2186; // pow(trace_generator, &(safe_div(((52233 * global_values.trace_length)), 65536))).
+ pow2188 = pow58 * pow2187; // pow(trace_generator, &(safe_div(((26117 * global_values.trace_length)), 32768))).
+ pow2189 = pow58 * pow2188; // pow(trace_generator, &(safe_div(((52235 * global_values.trace_length)), 65536))).
+ pow2190 = pow58 * pow2189; // pow(trace_generator, &(safe_div(((13059 * global_values.trace_length)), 16384))).
+ pow2191 = pow58 * pow2190; // pow(trace_generator, &(safe_div(((52237 * global_values.trace_length)), 65536))).
+ pow2192 = pow58 * pow2191; // pow(trace_generator, &(safe_div(((26119 * global_values.trace_length)), 32768))).
+ pow2193 = pow58 * pow2192; // pow(trace_generator, &(safe_div(((52239 * global_values.trace_length)), 65536))).
+ pow2194 = pow58 * pow2193; // pow(trace_generator, &(safe_div(((3265 * global_values.trace_length)), 4096))).
+ pow2195 = pow58 * pow2194; // pow(trace_generator, &(safe_div(((52241 * global_values.trace_length)), 65536))).
+ pow2196 = pow58 * pow2195; // pow(trace_generator, &(safe_div(((26121 * global_values.trace_length)), 32768))).
+ pow2197 = pow58 * pow2196; // pow(trace_generator, &(safe_div(((52243 * global_values.trace_length)), 65536))).
+ pow2198 = pow58 * pow2197; // pow(trace_generator, &(safe_div(((13061 * global_values.trace_length)), 16384))).
+ pow2199 = pow58 * pow2198; // pow(trace_generator, &(safe_div(((52245 * global_values.trace_length)), 65536))).
+ pow2200 = pow58 * pow2199; // pow(trace_generator, &(safe_div(((26123 * global_values.trace_length)), 32768))).
+ pow2201 = pow58 * pow2200; // pow(trace_generator, &(safe_div(((52247 * global_values.trace_length)), 65536))).
+ pow2202 = pow58 * pow2167; // pow(trace_generator, &(safe_div(((53255 * global_values.trace_length)), 65536))).
+ pow2203 = pow58 * pow2202; // pow(trace_generator, &(safe_div(((6657 * global_values.trace_length)), 8192))).
+ pow2204 = pow58 * pow2203; // pow(trace_generator, &(safe_div(((53257 * global_values.trace_length)), 65536))).
+ pow2205 = pow58 * pow2204; // pow(trace_generator, &(safe_div(((26629 * global_values.trace_length)), 32768))).
+ pow2206 = pow58 * pow2205; // pow(trace_generator, &(safe_div(((53259 * global_values.trace_length)), 65536))).
+ pow2207 = pow58 * pow2206; // pow(trace_generator, &(safe_div(((13315 * global_values.trace_length)), 16384))).
+ pow2208 = pow58 * pow2207; // pow(trace_generator, &(safe_div(((53261 * global_values.trace_length)), 65536))).
+ pow2209 = pow58 * pow2208; // pow(trace_generator, &(safe_div(((26631 * global_values.trace_length)), 32768))).
+ pow2210 = pow58 * pow2209; // pow(trace_generator, &(safe_div(((53263 * global_values.trace_length)), 65536))).
+ pow2211 = pow58 * pow2210; // pow(trace_generator, &(safe_div(((3329 * global_values.trace_length)), 4096))).
+ pow2212 = pow58 * pow2211; // pow(trace_generator, &(safe_div(((53265 * global_values.trace_length)), 65536))).
+ pow2213 = pow58 * pow2212; // pow(trace_generator, &(safe_div(((26633 * global_values.trace_length)), 32768))).
+ pow2214 = pow58 * pow2213; // pow(trace_generator, &(safe_div(((53267 * global_values.trace_length)), 65536))).
+ pow2215 = pow58 * pow2214; // pow(trace_generator, &(safe_div(((13317 * global_values.trace_length)), 16384))).
+ pow2216 = pow58 * pow2215; // pow(trace_generator, &(safe_div(((53269 * global_values.trace_length)), 65536))).
+ pow2217 = pow58 * pow2216; // pow(trace_generator, &(safe_div(((26635 * global_values.trace_length)), 32768))).
+ pow2218 = pow58 * pow2217; // pow(trace_generator, &(safe_div(((53271 * global_values.trace_length)), 65536))).
+ pow2219 = pow105 * pow2218; // pow(trace_generator, &(safe_div(((833 * global_values.trace_length)), 1024))).
+ pow2220 = pow126 * pow2219; // pow(trace_generator, &(safe_div(((417 * global_values.trace_length)), 512))).
+ pow2221 = pow126 * pow2220; // pow(trace_generator, &(safe_div(((835 * global_values.trace_length)), 1024))).
+ pow2222 = pow126 * pow2221; // pow(trace_generator, &(safe_div(((209 * global_values.trace_length)), 256))).
+ pow2223 = pow126 * pow2222; // pow(trace_generator, &(safe_div(((837 * global_values.trace_length)), 1024))).
+ pow2224 = pow126 * pow2223; // pow(trace_generator, &(safe_div(((419 * global_values.trace_length)), 512))).
+ pow2225 = pow126 * pow2224; // pow(trace_generator, &(safe_div(((839 * global_values.trace_length)), 1024))).
+ pow2226 = pow126 * pow2225; // pow(trace_generator, &(safe_div(((105 * global_values.trace_length)), 128))).
+ pow2227 = pow126 * pow2226; // pow(trace_generator, &(safe_div(((841 * global_values.trace_length)), 1024))).
+ pow2228 = pow126 * pow2227; // pow(trace_generator, &(safe_div(((421 * global_values.trace_length)), 512))).
+ pow2229 = pow126 * pow2228; // pow(trace_generator, &(safe_div(((843 * global_values.trace_length)), 1024))).
+ pow2230 = pow126 * pow2229; // pow(trace_generator, &(safe_div(((211 * global_values.trace_length)), 256))).
+ pow2231 = pow126 * pow2230; // pow(trace_generator, &(safe_div(((845 * global_values.trace_length)), 1024))).
+ pow2232 = pow126 * pow2231; // pow(trace_generator, &(safe_div(((423 * global_values.trace_length)), 512))).
+ pow2233 = pow126 * pow2232; // pow(trace_generator, &(safe_div(((847 * global_values.trace_length)), 1024))).
+ pow2234 = pow126 * pow2233; // pow(trace_generator, &(safe_div(((53 * global_values.trace_length)), 64))).
+ pow2235 = pow58 * pow2234; // pow(trace_generator, &(safe_div(((54273 * global_values.trace_length)), 65536))).
+ pow2236 = pow58 * pow2235; // pow(trace_generator, &(safe_div(((27137 * global_values.trace_length)), 32768))).
+ pow2237 = pow58 * pow2236; // pow(trace_generator, &(safe_div(((54275 * global_values.trace_length)), 65536))).
+ pow2238 = pow58 * pow2237; // pow(trace_generator, &(safe_div(((13569 * global_values.trace_length)), 16384))).
+ pow2239 = pow58 * pow2238; // pow(trace_generator, &(safe_div(((54277 * global_values.trace_length)), 65536))).
+ pow2240 = pow58 * pow2239; // pow(trace_generator, &(safe_div(((27139 * global_values.trace_length)), 32768))).
+ pow2241 = pow58 * pow2240; // pow(trace_generator, &(safe_div(((54279 * global_values.trace_length)), 65536))).
+ pow2242 = pow58 * pow2241; // pow(trace_generator, &(safe_div(((6785 * global_values.trace_length)), 8192))).
+ pow2243 = pow58 * pow2242; // pow(trace_generator, &(safe_div(((54281 * global_values.trace_length)), 65536))).
+ pow2244 = pow58 * pow2243; // pow(trace_generator, &(safe_div(((27141 * global_values.trace_length)), 32768))).
+ pow2245 = pow58 * pow2244; // pow(trace_generator, &(safe_div(((54283 * global_values.trace_length)), 65536))).
+ pow2246 = pow58 * pow2245; // pow(trace_generator, &(safe_div(((13571 * global_values.trace_length)), 16384))).
+ pow2247 = pow58 * pow2246; // pow(trace_generator, &(safe_div(((54285 * global_values.trace_length)), 65536))).
+ pow2248 = pow58 * pow2247; // pow(trace_generator, &(safe_div(((27143 * global_values.trace_length)), 32768))).
+ pow2249 = pow58 * pow2248; // pow(trace_generator, &(safe_div(((54287 * global_values.trace_length)), 65536))).
+ pow2250 = pow58 * pow2249; // pow(trace_generator, &(safe_div(((3393 * global_values.trace_length)), 4096))).
+ pow2251 = pow58 * pow2250; // pow(trace_generator, &(safe_div(((54289 * global_values.trace_length)), 65536))).
+ pow2252 = pow58 * pow2251; // pow(trace_generator, &(safe_div(((27145 * global_values.trace_length)), 32768))).
+ pow2253 = pow58 * pow2252; // pow(trace_generator, &(safe_div(((54291 * global_values.trace_length)), 65536))).
+ pow2254 = pow58 * pow2253; // pow(trace_generator, &(safe_div(((13573 * global_values.trace_length)), 16384))).
+ pow2255 = pow58 * pow2254; // pow(trace_generator, &(safe_div(((54293 * global_values.trace_length)), 65536))).
+ pow2256 = pow58 * pow2255; // pow(trace_generator, &(safe_div(((27147 * global_values.trace_length)), 32768))).
+ pow2257 = pow58 * pow2256; // pow(trace_generator, &(safe_div(((54295 * global_values.trace_length)), 65536))).
+ pow2258 = pow105 * pow2257; // pow(trace_generator, &(safe_div(((849 * global_values.trace_length)), 1024))).
+ pow2259 = pow126 * pow2258; // pow(trace_generator, &(safe_div(((425 * global_values.trace_length)), 512))).
+ pow2260 = pow126 * pow2259; // pow(trace_generator, &(safe_div(((851 * global_values.trace_length)), 1024))).
+ pow2261 = pow126 * pow2260; // pow(trace_generator, &(safe_div(((213 * global_values.trace_length)), 256))).
+ pow2262 = pow126 * pow2261; // pow(trace_generator, &(safe_div(((853 * global_values.trace_length)), 1024))).
+ pow2263 = pow126 * pow2262; // pow(trace_generator, &(safe_div(((427 * global_values.trace_length)), 512))).
+ pow2264 = pow126 * pow2263; // pow(trace_generator, &(safe_div(((855 * global_values.trace_length)), 1024))).
+ pow2265 = pow126 * pow2264; // pow(trace_generator, &(safe_div(((107 * global_values.trace_length)), 128))).
+ pow2266 = pow126 * pow2265; // pow(trace_generator, &(safe_div(((857 * global_values.trace_length)), 1024))).
+ pow2267 = pow126 * pow2266; // pow(trace_generator, &(safe_div(((429 * global_values.trace_length)), 512))).
+ pow2268 = pow126 * pow2267; // pow(trace_generator, &(safe_div(((859 * global_values.trace_length)), 1024))).
+ pow2269 = pow126 * pow2268; // pow(trace_generator, &(safe_div(((215 * global_values.trace_length)), 256))).
+ pow2270 = pow126 * pow2269; // pow(trace_generator, &(safe_div(((861 * global_values.trace_length)), 1024))).
+ pow2271 = pow246 * pow2270; // pow(trace_generator, &(safe_div(((27 * global_values.trace_length)), 32))).
+ pow2272 = pow58 * pow2271; // pow(trace_generator, &(safe_div(((55297 * global_values.trace_length)), 65536))).
+ pow2273 = pow58 * pow2272; // pow(trace_generator, &(safe_div(((27649 * global_values.trace_length)), 32768))).
+ pow2274 = pow58 * pow2273; // pow(trace_generator, &(safe_div(((55299 * global_values.trace_length)), 65536))).
+ pow2275 = pow58 * pow2274; // pow(trace_generator, &(safe_div(((13825 * global_values.trace_length)), 16384))).
+ pow2276 = pow58 * pow2275; // pow(trace_generator, &(safe_div(((55301 * global_values.trace_length)), 65536))).
+ pow2277 = pow58 * pow2276; // pow(trace_generator, &(safe_div(((27651 * global_values.trace_length)), 32768))).
+ pow2278 = pow58 * pow2277; // pow(trace_generator, &(safe_div(((55303 * global_values.trace_length)), 65536))).
+ pow2279 = pow58 * pow2278; // pow(trace_generator, &(safe_div(((6913 * global_values.trace_length)), 8192))).
+ pow2280 = pow58 * pow2279; // pow(trace_generator, &(safe_div(((55305 * global_values.trace_length)), 65536))).
+ pow2281 = pow58 * pow2280; // pow(trace_generator, &(safe_div(((27653 * global_values.trace_length)), 32768))).
+ pow2282 = pow58 * pow2281; // pow(trace_generator, &(safe_div(((55307 * global_values.trace_length)), 65536))).
+ pow2283 = pow58 * pow2282; // pow(trace_generator, &(safe_div(((13827 * global_values.trace_length)), 16384))).
+ pow2284 = pow58 * pow2283; // pow(trace_generator, &(safe_div(((55309 * global_values.trace_length)), 65536))).
+ pow2285 = pow58 * pow2284; // pow(trace_generator, &(safe_div(((27655 * global_values.trace_length)), 32768))).
+ pow2286 = pow58 * pow2285; // pow(trace_generator, &(safe_div(((55311 * global_values.trace_length)), 65536))).
+ pow2287 = pow58 * pow2286; // pow(trace_generator, &(safe_div(((3457 * global_values.trace_length)), 4096))).
+ pow2288 = pow58 * pow2287; // pow(trace_generator, &(safe_div(((55313 * global_values.trace_length)), 65536))).
+ pow2289 = pow58 * pow2288; // pow(trace_generator, &(safe_div(((27657 * global_values.trace_length)), 32768))).
+ pow2290 = pow58 * pow2289; // pow(trace_generator, &(safe_div(((55315 * global_values.trace_length)), 65536))).
+ pow2291 = pow58 * pow2290; // pow(trace_generator, &(safe_div(((13829 * global_values.trace_length)), 16384))).
+ pow2292 = pow58 * pow2291; // pow(trace_generator, &(safe_div(((55317 * global_values.trace_length)), 65536))).
+ pow2293 = pow58 * pow2292; // pow(trace_generator, &(safe_div(((27659 * global_values.trace_length)), 32768))).
+ pow2294 = pow58 * pow2293; // pow(trace_generator, &(safe_div(((55319 * global_values.trace_length)), 65536))).
+ pow2295 = pow105 * pow2294; // pow(trace_generator, &(safe_div(((865 * global_values.trace_length)), 1024))).
+ pow2296 = pow126 * pow2295; // pow(trace_generator, &(safe_div(((433 * global_values.trace_length)), 512))).
+ pow2297 = pow126 * pow2296; // pow(trace_generator, &(safe_div(((867 * global_values.trace_length)), 1024))).
+ pow2298 = pow126 * pow2297; // pow(trace_generator, &(safe_div(((217 * global_values.trace_length)), 256))).
+ pow2299 = pow126 * pow2298; // pow(trace_generator, &(safe_div(((869 * global_values.trace_length)), 1024))).
+ pow2300 = pow126 * pow2299; // pow(trace_generator, &(safe_div(((435 * global_values.trace_length)), 512))).
+ pow2301 = pow126 * pow2300; // pow(trace_generator, &(safe_div(((871 * global_values.trace_length)), 1024))).
+ pow2302 = pow126 * pow2301; // pow(trace_generator, &(safe_div(((109 * global_values.trace_length)), 128))).
+ pow2303 = pow126 * pow2302; // pow(trace_generator, &(safe_div(((873 * global_values.trace_length)), 1024))).
+ pow2304 = pow126 * pow2303; // pow(trace_generator, &(safe_div(((437 * global_values.trace_length)), 512))).
+ pow2305 = pow126 * pow2304; // pow(trace_generator, &(safe_div(((875 * global_values.trace_length)), 1024))).
+ pow2306 = pow126 * pow2305; // pow(trace_generator, &(safe_div(((219 * global_values.trace_length)), 256))).
+ pow2307 = pow126 * pow2306; // pow(trace_generator, &(safe_div(((877 * global_values.trace_length)), 1024))).
+ pow2308 = pow126 * pow2307; // pow(trace_generator, &(safe_div(((439 * global_values.trace_length)), 512))).
+ pow2309 = pow126 * pow2308; // pow(trace_generator, &(safe_div(((879 * global_values.trace_length)), 1024))).
+ pow2310 = pow126 * pow2309; // pow(trace_generator, &(safe_div(((55 * global_values.trace_length)), 64))).
+ pow2311 = pow58 * pow2310; // pow(trace_generator, &(safe_div(((56321 * global_values.trace_length)), 65536))).
+ pow2312 = pow58 * pow2311; // pow(trace_generator, &(safe_div(((28161 * global_values.trace_length)), 32768))).
+ pow2313 = pow58 * pow2312; // pow(trace_generator, &(safe_div(((56323 * global_values.trace_length)), 65536))).
+ pow2314 = pow58 * pow2313; // pow(trace_generator, &(safe_div(((14081 * global_values.trace_length)), 16384))).
+ pow2315 = pow58 * pow2314; // pow(trace_generator, &(safe_div(((56325 * global_values.trace_length)), 65536))).
+ pow2316 = pow58 * pow2315; // pow(trace_generator, &(safe_div(((28163 * global_values.trace_length)), 32768))).
+ pow2317 = pow58 * pow2316; // pow(trace_generator, &(safe_div(((56327 * global_values.trace_length)), 65536))).
+ pow2318 = pow58 * pow2317; // pow(trace_generator, &(safe_div(((7041 * global_values.trace_length)), 8192))).
+ pow2319 = pow58 * pow2318; // pow(trace_generator, &(safe_div(((56329 * global_values.trace_length)), 65536))).
+ pow2320 = pow58 * pow2319; // pow(trace_generator, &(safe_div(((28165 * global_values.trace_length)), 32768))).
+ pow2321 = pow58 * pow2320; // pow(trace_generator, &(safe_div(((56331 * global_values.trace_length)), 65536))).
+ pow2322 = pow58 * pow2321; // pow(trace_generator, &(safe_div(((14083 * global_values.trace_length)), 16384))).
+ pow2323 = pow58 * pow2322; // pow(trace_generator, &(safe_div(((56333 * global_values.trace_length)), 65536))).
+ pow2324 = pow58 * pow2323; // pow(trace_generator, &(safe_div(((28167 * global_values.trace_length)), 32768))).
+ pow2325 = pow58 * pow2324; // pow(trace_generator, &(safe_div(((56335 * global_values.trace_length)), 65536))).
+ pow2326 = pow58 * pow2325; // pow(trace_generator, &(safe_div(((3521 * global_values.trace_length)), 4096))).
+ pow2327 = pow58 * pow2326; // pow(trace_generator, &(safe_div(((56337 * global_values.trace_length)), 65536))).
+ pow2328 = pow58 * pow2327; // pow(trace_generator, &(safe_div(((28169 * global_values.trace_length)), 32768))).
+ pow2329 = pow58 * pow2328; // pow(trace_generator, &(safe_div(((56339 * global_values.trace_length)), 65536))).
+ pow2330 = pow58 * pow2329; // pow(trace_generator, &(safe_div(((14085 * global_values.trace_length)), 16384))).
+ pow2331 = pow58 * pow2330; // pow(trace_generator, &(safe_div(((56341 * global_values.trace_length)), 65536))).
+ pow2332 = pow58 * pow2331; // pow(trace_generator, &(safe_div(((28171 * global_values.trace_length)), 32768))).
+ pow2333 = pow58 * pow2332; // pow(trace_generator, &(safe_div(((56343 * global_values.trace_length)), 65536))).
+ pow2334 = pow105 * pow2333; // pow(trace_generator, &(safe_div(((881 * global_values.trace_length)), 1024))).
+ pow2335 = pow126 * pow2334; // pow(trace_generator, &(safe_div(((441 * global_values.trace_length)), 512))).
+ pow2336 = pow126 * pow2335; // pow(trace_generator, &(safe_div(((883 * global_values.trace_length)), 1024))).
+ pow2337 = pow126 * pow2336; // pow(trace_generator, &(safe_div(((221 * global_values.trace_length)), 256))).
+ pow2338 = pow126 * pow2337; // pow(trace_generator, &(safe_div(((885 * global_values.trace_length)), 1024))).
+ pow2339 = pow126 * pow2338; // pow(trace_generator, &(safe_div(((443 * global_values.trace_length)), 512))).
+ pow2340 = pow126 * pow2339; // pow(trace_generator, &(safe_div(((887 * global_values.trace_length)), 1024))).
+ pow2341 = pow126 * pow2340; // pow(trace_generator, &(safe_div(((111 * global_values.trace_length)), 128))).
+ pow2342 = pow126 * pow2341; // pow(trace_generator, &(safe_div(((889 * global_values.trace_length)), 1024))).
+ pow2343 = pow126 * pow2342; // pow(trace_generator, &(safe_div(((445 * global_values.trace_length)), 512))).
+ pow2344 = pow126 * pow2343; // pow(trace_generator, &(safe_div(((891 * global_values.trace_length)), 1024))).
+ pow2345 = pow126 * pow2344; // pow(trace_generator, &(safe_div(((223 * global_values.trace_length)), 256))).
+ pow2346 = pow126 * pow2345; // pow(trace_generator, &(safe_div(((893 * global_values.trace_length)), 1024))).
+ pow2347 = pow246 * pow2346; // pow(trace_generator, &(safe_div(((7 * global_values.trace_length)), 8))).
+ pow2348 = pow58 * pow2347; // pow(trace_generator, &(safe_div(((57345 * global_values.trace_length)), 65536))).
+ pow2349 = pow58 * pow2348; // pow(trace_generator, &(safe_div(((28673 * global_values.trace_length)), 32768))).
+ pow2350 = pow58 * pow2349; // pow(trace_generator, &(safe_div(((57347 * global_values.trace_length)), 65536))).
+ pow2351 = pow58 * pow2350; // pow(trace_generator, &(safe_div(((14337 * global_values.trace_length)), 16384))).
+ pow2352 = pow58 * pow2351; // pow(trace_generator, &(safe_div(((57349 * global_values.trace_length)), 65536))).
+ pow2353 = pow58 * pow2352; // pow(trace_generator, &(safe_div(((28675 * global_values.trace_length)), 32768))).
+ pow2354 = pow58 * pow2353; // pow(trace_generator, &(safe_div(((57351 * global_values.trace_length)), 65536))).
+ pow2355 = pow58 * pow2354; // pow(trace_generator, &(safe_div(((7169 * global_values.trace_length)), 8192))).
+ pow2356 = pow58 * pow2355; // pow(trace_generator, &(safe_div(((57353 * global_values.trace_length)), 65536))).
+ pow2357 = pow58 * pow2356; // pow(trace_generator, &(safe_div(((28677 * global_values.trace_length)), 32768))).
+ pow2358 = pow58 * pow2357; // pow(trace_generator, &(safe_div(((57355 * global_values.trace_length)), 65536))).
+ pow2359 = pow58 * pow2358; // pow(trace_generator, &(safe_div(((14339 * global_values.trace_length)), 16384))).
+ pow2360 = pow58 * pow2359; // pow(trace_generator, &(safe_div(((57357 * global_values.trace_length)), 65536))).
+ pow2361 = pow58 * pow2360; // pow(trace_generator, &(safe_div(((28679 * global_values.trace_length)), 32768))).
+ pow2362 = pow58 * pow2361; // pow(trace_generator, &(safe_div(((57359 * global_values.trace_length)), 65536))).
+ pow2363 = pow58 * pow2362; // pow(trace_generator, &(safe_div(((3585 * global_values.trace_length)), 4096))).
+ pow2364 = pow58 * pow2363; // pow(trace_generator, &(safe_div(((57361 * global_values.trace_length)), 65536))).
+ pow2365 = pow58 * pow2364; // pow(trace_generator, &(safe_div(((28681 * global_values.trace_length)), 32768))).
+ pow2366 = pow58 * pow2365; // pow(trace_generator, &(safe_div(((57363 * global_values.trace_length)), 65536))).
+ pow2367 = pow58 * pow2366; // pow(trace_generator, &(safe_div(((14341 * global_values.trace_length)), 16384))).
+ pow2368 = pow58 * pow2367; // pow(trace_generator, &(safe_div(((57365 * global_values.trace_length)), 65536))).
+ pow2369 = pow58 * pow2368; // pow(trace_generator, &(safe_div(((28683 * global_values.trace_length)), 32768))).
+ pow2370 = pow58 * pow2369; // pow(trace_generator, &(safe_div(((57367 * global_values.trace_length)), 65536))).
+ pow2371 = pow105 * pow2370; // pow(trace_generator, &(safe_div(((897 * global_values.trace_length)), 1024))).
+ pow2372 = pow126 * pow2371; // pow(trace_generator, &(safe_div(((449 * global_values.trace_length)), 512))).
+ pow2373 = pow126 * pow2372; // pow(trace_generator, &(safe_div(((899 * global_values.trace_length)), 1024))).
+ pow2374 = pow126 * pow2373; // pow(trace_generator, &(safe_div(((225 * global_values.trace_length)), 256))).
+ pow2375 = pow126 * pow2374; // pow(trace_generator, &(safe_div(((901 * global_values.trace_length)), 1024))).
+ pow2376 = pow126 * pow2375; // pow(trace_generator, &(safe_div(((451 * global_values.trace_length)), 512))).
+ pow2377 = pow126 * pow2376; // pow(trace_generator, &(safe_div(((903 * global_values.trace_length)), 1024))).
+ pow2378 = pow126 * pow2377; // pow(trace_generator, &(safe_div(((113 * global_values.trace_length)), 128))).
+ pow2379 = pow126 * pow2378; // pow(trace_generator, &(safe_div(((905 * global_values.trace_length)), 1024))).
+ pow2380 = pow126 * pow2379; // pow(trace_generator, &(safe_div(((453 * global_values.trace_length)), 512))).
+ pow2381 = pow126 * pow2380; // pow(trace_generator, &(safe_div(((907 * global_values.trace_length)), 1024))).
+ pow2382 = pow126 * pow2381; // pow(trace_generator, &(safe_div(((227 * global_values.trace_length)), 256))).
+ pow2383 = pow126 * pow2382; // pow(trace_generator, &(safe_div(((909 * global_values.trace_length)), 1024))).
+ pow2384 = pow126 * pow2383; // pow(trace_generator, &(safe_div(((455 * global_values.trace_length)), 512))).
+ pow2385 = pow126 * pow2384; // pow(trace_generator, &(safe_div(((911 * global_values.trace_length)), 1024))).
+ pow2386 = pow126 * pow2385; // pow(trace_generator, &(safe_div(((57 * global_values.trace_length)), 64))).
+ pow2387 = pow58 * pow2386; // pow(trace_generator, &(safe_div(((58369 * global_values.trace_length)), 65536))).
+ pow2388 = pow58 * pow2387; // pow(trace_generator, &(safe_div(((29185 * global_values.trace_length)), 32768))).
+ pow2389 = pow58 * pow2388; // pow(trace_generator, &(safe_div(((58371 * global_values.trace_length)), 65536))).
+ pow2390 = pow58 * pow2389; // pow(trace_generator, &(safe_div(((14593 * global_values.trace_length)), 16384))).
+ pow2391 = pow58 * pow2390; // pow(trace_generator, &(safe_div(((58373 * global_values.trace_length)), 65536))).
+ pow2392 = pow58 * pow2391; // pow(trace_generator, &(safe_div(((29187 * global_values.trace_length)), 32768))).
+ pow2393 = pow58 * pow2392; // pow(trace_generator, &(safe_div(((58375 * global_values.trace_length)), 65536))).
+ pow2394 = pow58 * pow2393; // pow(trace_generator, &(safe_div(((7297 * global_values.trace_length)), 8192))).
+ pow2395 = pow58 * pow2394; // pow(trace_generator, &(safe_div(((58377 * global_values.trace_length)), 65536))).
+ pow2396 = pow58 * pow2395; // pow(trace_generator, &(safe_div(((29189 * global_values.trace_length)), 32768))).
+ pow2397 = pow58 * pow2396; // pow(trace_generator, &(safe_div(((58379 * global_values.trace_length)), 65536))).
+ pow2398 = pow58 * pow2397; // pow(trace_generator, &(safe_div(((14595 * global_values.trace_length)), 16384))).
+ pow2399 = pow58 * pow2398; // pow(trace_generator, &(safe_div(((58381 * global_values.trace_length)), 65536))).
+ pow2400 = pow58 * pow2399; // pow(trace_generator, &(safe_div(((29191 * global_values.trace_length)), 32768))).
+ pow2401 = pow58 * pow2400; // pow(trace_generator, &(safe_div(((58383 * global_values.trace_length)), 65536))).
+ pow2402 = pow58 * pow2401; // pow(trace_generator, &(safe_div(((3649 * global_values.trace_length)), 4096))).
+ pow2403 = pow58 * pow2402; // pow(trace_generator, &(safe_div(((58385 * global_values.trace_length)), 65536))).
+ pow2404 = pow58 * pow2403; // pow(trace_generator, &(safe_div(((29193 * global_values.trace_length)), 32768))).
+ pow2405 = pow58 * pow2404; // pow(trace_generator, &(safe_div(((58387 * global_values.trace_length)), 65536))).
+ pow2406 = pow58 * pow2405; // pow(trace_generator, &(safe_div(((14597 * global_values.trace_length)), 16384))).
+ pow2407 = pow58 * pow2406; // pow(trace_generator, &(safe_div(((58389 * global_values.trace_length)), 65536))).
+ pow2408 = pow58 * pow2407; // pow(trace_generator, &(safe_div(((29195 * global_values.trace_length)), 32768))).
+ pow2409 = pow58 * pow2408; // pow(trace_generator, &(safe_div(((58391 * global_values.trace_length)), 65536))).
+ pow2410 = pow105 * pow2409; // pow(trace_generator, &(safe_div(((913 * global_values.trace_length)), 1024))).
+ pow2411 = pow126 * pow2410; // pow(trace_generator, &(safe_div(((457 * global_values.trace_length)), 512))).
+ pow2412 = pow126 * pow2411; // pow(trace_generator, &(safe_div(((915 * global_values.trace_length)), 1024))).
+ pow2413 = pow126 * pow2412; // pow(trace_generator, &(safe_div(((229 * global_values.trace_length)), 256))).
+ pow2414 = pow126 * pow2413; // pow(trace_generator, &(safe_div(((917 * global_values.trace_length)), 1024))).
+ pow2415 = pow126 * pow2414; // pow(trace_generator, &(safe_div(((459 * global_values.trace_length)), 512))).
+ pow2416 = pow126 * pow2415; // pow(trace_generator, &(safe_div(((919 * global_values.trace_length)), 1024))).
+ pow2417 = pow126 * pow2416; // pow(trace_generator, &(safe_div(((115 * global_values.trace_length)), 128))).
+ pow2418 = pow126 * pow2417; // pow(trace_generator, &(safe_div(((921 * global_values.trace_length)), 1024))).
+ pow2419 = pow126 * pow2418; // pow(trace_generator, &(safe_div(((461 * global_values.trace_length)), 512))).
+ pow2420 = pow126 * pow2419; // pow(trace_generator, &(safe_div(((923 * global_values.trace_length)), 1024))).
+ pow2421 = pow126 * pow2420; // pow(trace_generator, &(safe_div(((231 * global_values.trace_length)), 256))).
+ pow2422 = pow126 * pow2421; // pow(trace_generator, &(safe_div(((925 * global_values.trace_length)), 1024))).
+ pow2423 = pow246 * pow2422; // pow(trace_generator, &(safe_div(((29 * global_values.trace_length)), 32))).
+ pow2424 = pow58 * pow2423; // pow(trace_generator, &(safe_div(((59393 * global_values.trace_length)), 65536))).
+ pow2425 = pow58 * pow2424; // pow(trace_generator, &(safe_div(((29697 * global_values.trace_length)), 32768))).
+ pow2426 = pow58 * pow2425; // pow(trace_generator, &(safe_div(((59395 * global_values.trace_length)), 65536))).
+ pow2427 = pow58 * pow2426; // pow(trace_generator, &(safe_div(((14849 * global_values.trace_length)), 16384))).
+ pow2428 = pow58 * pow2427; // pow(trace_generator, &(safe_div(((59397 * global_values.trace_length)), 65536))).
+ pow2429 = pow58 * pow2428; // pow(trace_generator, &(safe_div(((29699 * global_values.trace_length)), 32768))).
+ pow2430 = pow58 * pow2429; // pow(trace_generator, &(safe_div(((59399 * global_values.trace_length)), 65536))).
+ pow2431 = pow58 * pow2430; // pow(trace_generator, &(safe_div(((7425 * global_values.trace_length)), 8192))).
+ pow2432 = pow58 * pow2431; // pow(trace_generator, &(safe_div(((59401 * global_values.trace_length)), 65536))).
+ pow2433 = pow58 * pow2432; // pow(trace_generator, &(safe_div(((29701 * global_values.trace_length)), 32768))).
+ pow2434 = pow58 * pow2433; // pow(trace_generator, &(safe_div(((59403 * global_values.trace_length)), 65536))).
+ pow2435 = pow58 * pow2434; // pow(trace_generator, &(safe_div(((14851 * global_values.trace_length)), 16384))).
+ pow2436 = pow58 * pow2435; // pow(trace_generator, &(safe_div(((59405 * global_values.trace_length)), 65536))).
+ pow2437 = pow58 * pow2436; // pow(trace_generator, &(safe_div(((29703 * global_values.trace_length)), 32768))).
+ pow2438 = pow58 * pow2437; // pow(trace_generator, &(safe_div(((59407 * global_values.trace_length)), 65536))).
+ pow2439 = pow58 * pow2438; // pow(trace_generator, &(safe_div(((3713 * global_values.trace_length)), 4096))).
+ pow2440 = pow58 * pow2439; // pow(trace_generator, &(safe_div(((59409 * global_values.trace_length)), 65536))).
+ pow2441 = pow58 * pow2440; // pow(trace_generator, &(safe_div(((29705 * global_values.trace_length)), 32768))).
+ pow2442 = pow58 * pow2441; // pow(trace_generator, &(safe_div(((59411 * global_values.trace_length)), 65536))).
+ pow2443 = pow58 * pow2442; // pow(trace_generator, &(safe_div(((14853 * global_values.trace_length)), 16384))).
+ pow2444 = pow58 * pow2443; // pow(trace_generator, &(safe_div(((59413 * global_values.trace_length)), 65536))).
+ pow2445 = pow58 * pow2444; // pow(trace_generator, &(safe_div(((29707 * global_values.trace_length)), 32768))).
+ pow2446 = pow58 * pow2445; // pow(trace_generator, &(safe_div(((59415 * global_values.trace_length)), 65536))).
+ pow2447 = pow105 * pow2446; // pow(trace_generator, &(safe_div(((929 * global_values.trace_length)), 1024))).
+ pow2448 = pow126 * pow2447; // pow(trace_generator, &(safe_div(((465 * global_values.trace_length)), 512))).
+ pow2449 = pow126 * pow2448; // pow(trace_generator, &(safe_div(((931 * global_values.trace_length)), 1024))).
+ pow2450 = pow126 * pow2449; // pow(trace_generator, &(safe_div(((233 * global_values.trace_length)), 256))).
+ pow2451 = pow126 * pow2450; // pow(trace_generator, &(safe_div(((933 * global_values.trace_length)), 1024))).
+ pow2452 = pow126 * pow2451; // pow(trace_generator, &(safe_div(((467 * global_values.trace_length)), 512))).
+ pow2453 = pow126 * pow2452; // pow(trace_generator, &(safe_div(((935 * global_values.trace_length)), 1024))).
+ pow2454 = pow126 * pow2453; // pow(trace_generator, &(safe_div(((117 * global_values.trace_length)), 128))).
+ pow2455 = pow126 * pow2454; // pow(trace_generator, &(safe_div(((937 * global_values.trace_length)), 1024))).
+ pow2456 = pow126 * pow2455; // pow(trace_generator, &(safe_div(((469 * global_values.trace_length)), 512))).
+ pow2457 = pow126 * pow2456; // pow(trace_generator, &(safe_div(((939 * global_values.trace_length)), 1024))).
+ pow2458 = pow126 * pow2457; // pow(trace_generator, &(safe_div(((235 * global_values.trace_length)), 256))).
+ pow2459 = pow126 * pow2458; // pow(trace_generator, &(safe_div(((941 * global_values.trace_length)), 1024))).
+ pow2460 = pow126 * pow2459; // pow(trace_generator, &(safe_div(((471 * global_values.trace_length)), 512))).
+ pow2461 = pow126 * pow2460; // pow(trace_generator, &(safe_div(((943 * global_values.trace_length)), 1024))).
+ pow2462 = pow126 * pow2461; // pow(trace_generator, &(safe_div(((59 * global_values.trace_length)), 64))).
+ pow2463 = pow58 * pow2462; // pow(trace_generator, &(safe_div(((60417 * global_values.trace_length)), 65536))).
+ pow2464 = pow58 * pow2463; // pow(trace_generator, &(safe_div(((30209 * global_values.trace_length)), 32768))).
+ pow2465 = pow58 * pow2464; // pow(trace_generator, &(safe_div(((60419 * global_values.trace_length)), 65536))).
+ pow2466 = pow58 * pow2465; // pow(trace_generator, &(safe_div(((15105 * global_values.trace_length)), 16384))).
+ pow2467 = pow58 * pow2466; // pow(trace_generator, &(safe_div(((60421 * global_values.trace_length)), 65536))).
+ pow2468 = pow58 * pow2467; // pow(trace_generator, &(safe_div(((30211 * global_values.trace_length)), 32768))).
+ pow2469 = pow58 * pow2468; // pow(trace_generator, &(safe_div(((60423 * global_values.trace_length)), 65536))).
+ pow2470 = pow58 * pow2469; // pow(trace_generator, &(safe_div(((7553 * global_values.trace_length)), 8192))).
+ pow2471 = pow58 * pow2470; // pow(trace_generator, &(safe_div(((60425 * global_values.trace_length)), 65536))).
+ pow2472 = pow58 * pow2471; // pow(trace_generator, &(safe_div(((30213 * global_values.trace_length)), 32768))).
+ pow2473 = pow58 * pow2472; // pow(trace_generator, &(safe_div(((60427 * global_values.trace_length)), 65536))).
+ pow2474 = pow58 * pow2473; // pow(trace_generator, &(safe_div(((15107 * global_values.trace_length)), 16384))).
+ pow2475 = pow58 * pow2474; // pow(trace_generator, &(safe_div(((60429 * global_values.trace_length)), 65536))).
+ pow2476 = pow58 * pow2475; // pow(trace_generator, &(safe_div(((30215 * global_values.trace_length)), 32768))).
+ pow2477 = pow58 * pow2476; // pow(trace_generator, &(safe_div(((60431 * global_values.trace_length)), 65536))).
+ pow2478 = pow58 * pow2477; // pow(trace_generator, &(safe_div(((3777 * global_values.trace_length)), 4096))).
+ pow2479 = pow58 * pow2478; // pow(trace_generator, &(safe_div(((60433 * global_values.trace_length)), 65536))).
+ pow2480 = pow58 * pow2479; // pow(trace_generator, &(safe_div(((30217 * global_values.trace_length)), 32768))).
+ pow2481 = pow58 * pow2480; // pow(trace_generator, &(safe_div(((60435 * global_values.trace_length)), 65536))).
+ pow2482 = pow58 * pow2481; // pow(trace_generator, &(safe_div(((15109 * global_values.trace_length)), 16384))).
+ pow2483 = pow58 * pow2482; // pow(trace_generator, &(safe_div(((60437 * global_values.trace_length)), 65536))).
+ pow2484 = pow58 * pow2483; // pow(trace_generator, &(safe_div(((30219 * global_values.trace_length)), 32768))).
+ pow2485 = pow58 * pow2484; // pow(trace_generator, &(safe_div(((60439 * global_values.trace_length)), 65536))).
+ pow2486 = pow105 * pow2485; // pow(trace_generator, &(safe_div(((945 * global_values.trace_length)), 1024))).
+ pow2487 = pow126 * pow2486; // pow(trace_generator, &(safe_div(((473 * global_values.trace_length)), 512))).
+ pow2488 = pow126 * pow2487; // pow(trace_generator, &(safe_div(((947 * global_values.trace_length)), 1024))).
+ pow2489 = pow126 * pow2488; // pow(trace_generator, &(safe_div(((237 * global_values.trace_length)), 256))).
+ pow2490 = pow126 * pow2489; // pow(trace_generator, &(safe_div(((949 * global_values.trace_length)), 1024))).
+ pow2491 = pow126 * pow2490; // pow(trace_generator, &(safe_div(((475 * global_values.trace_length)), 512))).
+ pow2492 = pow126 * pow2491; // pow(trace_generator, &(safe_div(((951 * global_values.trace_length)), 1024))).
+ pow2493 = pow126 * pow2492; // pow(trace_generator, &(safe_div(((119 * global_values.trace_length)), 128))).
+ pow2494 = pow126 * pow2493; // pow(trace_generator, &(safe_div(((953 * global_values.trace_length)), 1024))).
+ pow2495 = pow126 * pow2494; // pow(trace_generator, &(safe_div(((477 * global_values.trace_length)), 512))).
+ pow2496 = pow126 * pow2495; // pow(trace_generator, &(safe_div(((955 * global_values.trace_length)), 1024))).
+ pow2497 = pow126 * pow2496; // pow(trace_generator, &(safe_div(((239 * global_values.trace_length)), 256))).
+ pow2498 = pow126 * pow2497; // pow(trace_generator, &(safe_div(((957 * global_values.trace_length)), 1024))).
+ pow2499 = pow246 * pow2498; // pow(trace_generator, &(safe_div(((15 * global_values.trace_length)), 16))).
+ pow2500 = pow58 * pow2499; // pow(trace_generator, &(safe_div(((61441 * global_values.trace_length)), 65536))).
+ pow2501 = pow58 * pow2500; // pow(trace_generator, &(safe_div(((30721 * global_values.trace_length)), 32768))).
+ pow2502 = pow58 * pow2501; // pow(trace_generator, &(safe_div(((61443 * global_values.trace_length)), 65536))).
+ pow2503 = pow58 * pow2502; // pow(trace_generator, &(safe_div(((15361 * global_values.trace_length)), 16384))).
+ pow2504 = pow58 * pow2503; // pow(trace_generator, &(safe_div(((61445 * global_values.trace_length)), 65536))).
+ pow2505 = pow58 * pow2504; // pow(trace_generator, &(safe_div(((30723 * global_values.trace_length)), 32768))).
+ pow2506 = pow58 * pow2505; // pow(trace_generator, &(safe_div(((61447 * global_values.trace_length)), 65536))).
+ pow2507 = pow58 * pow2506; // pow(trace_generator, &(safe_div(((7681 * global_values.trace_length)), 8192))).
+ pow2508 = pow58 * pow2507; // pow(trace_generator, &(safe_div(((61449 * global_values.trace_length)), 65536))).
+ pow2509 = pow58 * pow2508; // pow(trace_generator, &(safe_div(((30725 * global_values.trace_length)), 32768))).
+ pow2510 = pow58 * pow2509; // pow(trace_generator, &(safe_div(((61451 * global_values.trace_length)), 65536))).
+ pow2511 = pow58 * pow2510; // pow(trace_generator, &(safe_div(((15363 * global_values.trace_length)), 16384))).
+ pow2512 = pow58 * pow2511; // pow(trace_generator, &(safe_div(((61453 * global_values.trace_length)), 65536))).
+ pow2513 = pow58 * pow2512; // pow(trace_generator, &(safe_div(((30727 * global_values.trace_length)), 32768))).
+ pow2514 = pow58 * pow2513; // pow(trace_generator, &(safe_div(((61455 * global_values.trace_length)), 65536))).
+ pow2515 = pow58 * pow2514; // pow(trace_generator, &(safe_div(((3841 * global_values.trace_length)), 4096))).
+ pow2516 = pow58 * pow2515; // pow(trace_generator, &(safe_div(((61457 * global_values.trace_length)), 65536))).
+ pow2517 = pow58 * pow2516; // pow(trace_generator, &(safe_div(((30729 * global_values.trace_length)), 32768))).
+ pow2518 = pow58 * pow2517; // pow(trace_generator, &(safe_div(((61459 * global_values.trace_length)), 65536))).
+ pow2519 = pow58 * pow2518; // pow(trace_generator, &(safe_div(((15365 * global_values.trace_length)), 16384))).
+ pow2520 = pow58 * pow2519; // pow(trace_generator, &(safe_div(((61461 * global_values.trace_length)), 65536))).
+ pow2521 = pow58 * pow2520; // pow(trace_generator, &(safe_div(((30731 * global_values.trace_length)), 32768))).
+ pow2522 = pow58 * pow2521; // pow(trace_generator, &(safe_div(((61463 * global_values.trace_length)), 65536))).
+ pow2523 = pow105 * pow2522; // pow(trace_generator, &(safe_div(((961 * global_values.trace_length)), 1024))).
+ pow2524 = pow126 * pow2523; // pow(trace_generator, &(safe_div(((481 * global_values.trace_length)), 512))).
+ pow2525 = pow126 * pow2524; // pow(trace_generator, &(safe_div(((963 * global_values.trace_length)), 1024))).
+ pow2526 = pow126 * pow2525; // pow(trace_generator, &(safe_div(((241 * global_values.trace_length)), 256))).
+ pow2527 = pow126 * pow2526; // pow(trace_generator, &(safe_div(((965 * global_values.trace_length)), 1024))).
+ pow2528 = pow126 * pow2527; // pow(trace_generator, &(safe_div(((483 * global_values.trace_length)), 512))).
+ pow2529 = pow126 * pow2528; // pow(trace_generator, &(safe_div(((967 * global_values.trace_length)), 1024))).
+ pow2530 = pow126 * pow2529; // pow(trace_generator, &(safe_div(((121 * global_values.trace_length)), 128))).
+ pow2531 = pow126 * pow2530; // pow(trace_generator, &(safe_div(((969 * global_values.trace_length)), 1024))).
+ pow2532 = pow126 * pow2531; // pow(trace_generator, &(safe_div(((485 * global_values.trace_length)), 512))).
+ pow2533 = pow126 * pow2532; // pow(trace_generator, &(safe_div(((971 * global_values.trace_length)), 1024))).
+ pow2534 = pow126 * pow2533; // pow(trace_generator, &(safe_div(((243 * global_values.trace_length)), 256))).
+ pow2535 = pow126 * pow2534; // pow(trace_generator, &(safe_div(((973 * global_values.trace_length)), 1024))).
+ pow2536 = pow126 * pow2535; // pow(trace_generator, &(safe_div(((487 * global_values.trace_length)), 512))).
+ pow2537 = pow126 * pow2536; // pow(trace_generator, &(safe_div(((975 * global_values.trace_length)), 1024))).
+ pow2538 = pow126 * pow2537; // pow(trace_generator, &(safe_div(((61 * global_values.trace_length)), 64))).
+ pow2539 = pow58 * pow2538; // pow(trace_generator, &(safe_div(((62465 * global_values.trace_length)), 65536))).
+ pow2540 = pow58 * pow2539; // pow(trace_generator, &(safe_div(((31233 * global_values.trace_length)), 32768))).
+ pow2541 = pow58 * pow2540; // pow(trace_generator, &(safe_div(((62467 * global_values.trace_length)), 65536))).
+ pow2542 = pow58 * pow2541; // pow(trace_generator, &(safe_div(((15617 * global_values.trace_length)), 16384))).
+ pow2543 = pow58 * pow2542; // pow(trace_generator, &(safe_div(((62469 * global_values.trace_length)), 65536))).
+ pow2544 = pow58 * pow2543; // pow(trace_generator, &(safe_div(((31235 * global_values.trace_length)), 32768))).
+ pow2545 = pow58 * pow2544; // pow(trace_generator, &(safe_div(((62471 * global_values.trace_length)), 65536))).
+ pow2546 = pow58 * pow2545; // pow(trace_generator, &(safe_div(((7809 * global_values.trace_length)), 8192))).
+ pow2547 = pow58 * pow2546; // pow(trace_generator, &(safe_div(((62473 * global_values.trace_length)), 65536))).
+ pow2548 = pow58 * pow2547; // pow(trace_generator, &(safe_div(((31237 * global_values.trace_length)), 32768))).
+ pow2549 = pow58 * pow2548; // pow(trace_generator, &(safe_div(((62475 * global_values.trace_length)), 65536))).
+ pow2550 = pow58 * pow2549; // pow(trace_generator, &(safe_div(((15619 * global_values.trace_length)), 16384))).
+ pow2551 = pow58 * pow2550; // pow(trace_generator, &(safe_div(((62477 * global_values.trace_length)), 65536))).
+ pow2552 = pow58 * pow2551; // pow(trace_generator, &(safe_div(((31239 * global_values.trace_length)), 32768))).
+ pow2553 = pow58 * pow2552; // pow(trace_generator, &(safe_div(((62479 * global_values.trace_length)), 65536))).
+ pow2554 = pow58 * pow2553; // pow(trace_generator, &(safe_div(((3905 * global_values.trace_length)), 4096))).
+ pow2555 = pow58 * pow2554; // pow(trace_generator, &(safe_div(((62481 * global_values.trace_length)), 65536))).
+ pow2556 = pow58 * pow2555; // pow(trace_generator, &(safe_div(((31241 * global_values.trace_length)), 32768))).
+ pow2557 = pow58 * pow2556; // pow(trace_generator, &(safe_div(((62483 * global_values.trace_length)), 65536))).
+ pow2558 = pow58 * pow2557; // pow(trace_generator, &(safe_div(((15621 * global_values.trace_length)), 16384))).
+ pow2559 = pow58 * pow2558; // pow(trace_generator, &(safe_div(((62485 * global_values.trace_length)), 65536))).
+ pow2560 = pow58 * pow2559; // pow(trace_generator, &(safe_div(((31243 * global_values.trace_length)), 32768))).
+ pow2561 = pow58 * pow2560; // pow(trace_generator, &(safe_div(((62487 * global_values.trace_length)), 65536))).
+ pow2562 = pow105 * pow2561; // pow(trace_generator, &(safe_div(((977 * global_values.trace_length)), 1024))).
+ pow2563 = pow126 * pow2562; // pow(trace_generator, &(safe_div(((489 * global_values.trace_length)), 512))).
+ pow2564 = pow126 * pow2563; // pow(trace_generator, &(safe_div(((979 * global_values.trace_length)), 1024))).
+ pow2565 = pow126 * pow2564; // pow(trace_generator, &(safe_div(((245 * global_values.trace_length)), 256))).
+ pow2566 = pow126 * pow2565; // pow(trace_generator, &(safe_div(((981 * global_values.trace_length)), 1024))).
+ pow2567 = pow126 * pow2566; // pow(trace_generator, &(safe_div(((491 * global_values.trace_length)), 512))).
+ pow2568 = pow126 * pow2567; // pow(trace_generator, &(safe_div(((983 * global_values.trace_length)), 1024))).
+ pow2569 = pow126 * pow2568; // pow(trace_generator, &(safe_div(((123 * global_values.trace_length)), 128))).
+ pow2570 = pow126 * pow2569; // pow(trace_generator, &(safe_div(((985 * global_values.trace_length)), 1024))).
+ pow2571 = pow126 * pow2570; // pow(trace_generator, &(safe_div(((493 * global_values.trace_length)), 512))).
+ pow2572 = pow126 * pow2571; // pow(trace_generator, &(safe_div(((987 * global_values.trace_length)), 1024))).
+ pow2573 = pow126 * pow2572; // pow(trace_generator, &(safe_div(((247 * global_values.trace_length)), 256))).
+ pow2574 = pow126 * pow2573; // pow(trace_generator, &(safe_div(((989 * global_values.trace_length)), 1024))).
+ pow2575 = pow246 * pow2574; // pow(trace_generator, &(safe_div(((31 * global_values.trace_length)), 32))).
+ pow2576 = pow58 * pow2575; // pow(trace_generator, &(safe_div(((63489 * global_values.trace_length)), 65536))).
+ pow2577 = pow58 * pow2576; // pow(trace_generator, &(safe_div(((31745 * global_values.trace_length)), 32768))).
+ pow2578 = pow58 * pow2577; // pow(trace_generator, &(safe_div(((63491 * global_values.trace_length)), 65536))).
+ pow2579 = pow58 * pow2578; // pow(trace_generator, &(safe_div(((15873 * global_values.trace_length)), 16384))).
+ pow2580 = pow58 * pow2579; // pow(trace_generator, &(safe_div(((63493 * global_values.trace_length)), 65536))).
+ pow2581 = pow58 * pow2580; // pow(trace_generator, &(safe_div(((31747 * global_values.trace_length)), 32768))).
+ pow2582 = pow58 * pow2581; // pow(trace_generator, &(safe_div(((63495 * global_values.trace_length)), 65536))).
+ pow2583 = pow58 * pow2582; // pow(trace_generator, &(safe_div(((7937 * global_values.trace_length)), 8192))).
+ pow2584 = pow58 * pow2583; // pow(trace_generator, &(safe_div(((63497 * global_values.trace_length)), 65536))).
+ pow2585 = pow58 * pow2584; // pow(trace_generator, &(safe_div(((31749 * global_values.trace_length)), 32768))).
+ pow2586 = pow58 * pow2585; // pow(trace_generator, &(safe_div(((63499 * global_values.trace_length)), 65536))).
+ pow2587 = pow58 * pow2586; // pow(trace_generator, &(safe_div(((15875 * global_values.trace_length)), 16384))).
+ pow2588 = pow58 * pow2587; // pow(trace_generator, &(safe_div(((63501 * global_values.trace_length)), 65536))).
+ pow2589 = pow58 * pow2588; // pow(trace_generator, &(safe_div(((31751 * global_values.trace_length)), 32768))).
+ pow2590 = pow58 * pow2589; // pow(trace_generator, &(safe_div(((63503 * global_values.trace_length)), 65536))).
+ pow2591 = pow58 * pow2590; // pow(trace_generator, &(safe_div(((3969 * global_values.trace_length)), 4096))).
+ pow2592 = pow58 * pow2591; // pow(trace_generator, &(safe_div(((63505 * global_values.trace_length)), 65536))).
+ pow2593 = pow58 * pow2592; // pow(trace_generator, &(safe_div(((31753 * global_values.trace_length)), 32768))).
+ pow2594 = pow58 * pow2593; // pow(trace_generator, &(safe_div(((63507 * global_values.trace_length)), 65536))).
+ pow2595 = pow58 * pow2594; // pow(trace_generator, &(safe_div(((15877 * global_values.trace_length)), 16384))).
+ pow2596 = pow58 * pow2595; // pow(trace_generator, &(safe_div(((63509 * global_values.trace_length)), 65536))).
+ pow2597 = pow58 * pow2596; // pow(trace_generator, &(safe_div(((31755 * global_values.trace_length)), 32768))).
+ pow2598 = pow58 * pow2597; // pow(trace_generator, &(safe_div(((63511 * global_values.trace_length)), 65536))).
+ pow2599 = pow105 * pow2598; // pow(trace_generator, &(safe_div(((993 * global_values.trace_length)), 1024))).
+ pow2600 = pow126 * pow2599; // pow(trace_generator, &(safe_div(((497 * global_values.trace_length)), 512))).
+ pow2601 = pow126 * pow2600; // pow(trace_generator, &(safe_div(((995 * global_values.trace_length)), 1024))).
+ pow2602 = pow126 * pow2601; // pow(trace_generator, &(safe_div(((249 * global_values.trace_length)), 256))).
+ pow2603 = pow126 * pow2602; // pow(trace_generator, &(safe_div(((997 * global_values.trace_length)), 1024))).
+ pow2604 = pow126 * pow2603; // pow(trace_generator, &(safe_div(((499 * global_values.trace_length)), 512))).
+ pow2605 = pow126 * pow2604; // pow(trace_generator, &(safe_div(((999 * global_values.trace_length)), 1024))).
+ pow2606 = pow126 * pow2605; // pow(trace_generator, &(safe_div(((125 * global_values.trace_length)), 128))).
+ pow2607 = pow126 * pow2606; // pow(trace_generator, &(safe_div(((1001 * global_values.trace_length)), 1024))).
+ pow2608 = pow126 * pow2607; // pow(trace_generator, &(safe_div(((501 * global_values.trace_length)), 512))).
+ pow2609 = pow126 * pow2608; // pow(trace_generator, &(safe_div(((1003 * global_values.trace_length)), 1024))).
+ pow2610 = pow126 * pow2609; // pow(trace_generator, &(safe_div(((251 * global_values.trace_length)), 256))).
+ pow2611 = pow126 * pow2610; // pow(trace_generator, &(safe_div(((1005 * global_values.trace_length)), 1024))).
+ pow2612 = pow126 * pow2611; // pow(trace_generator, &(safe_div(((503 * global_values.trace_length)), 512))).
+ pow2613 = pow126 * pow2612; // pow(trace_generator, &(safe_div(((1007 * global_values.trace_length)), 1024))).
+ pow2614 = pow126 * pow2613; // pow(trace_generator, &(safe_div(((63 * global_values.trace_length)), 64))).
+ pow2615 = pow58 * pow2614; // pow(trace_generator, &(safe_div(((64513 * global_values.trace_length)), 65536))).
+ pow2616 = pow58 * pow2615; // pow(trace_generator, &(safe_div(((32257 * global_values.trace_length)), 32768))).
+ pow2617 = pow58 * pow2616; // pow(trace_generator, &(safe_div(((64515 * global_values.trace_length)), 65536))).
+ pow2618 = pow58 * pow2617; // pow(trace_generator, &(safe_div(((16129 * global_values.trace_length)), 16384))).
+ pow2619 = pow58 * pow2618; // pow(trace_generator, &(safe_div(((64517 * global_values.trace_length)), 65536))).
+ pow2620 = pow58 * pow2619; // pow(trace_generator, &(safe_div(((32259 * global_values.trace_length)), 32768))).
+ pow2621 = pow58 * pow2620; // pow(trace_generator, &(safe_div(((64519 * global_values.trace_length)), 65536))).
+ pow2622 = pow58 * pow2621; // pow(trace_generator, &(safe_div(((8065 * global_values.trace_length)), 8192))).
+ pow2623 = pow58 * pow2622; // pow(trace_generator, &(safe_div(((64521 * global_values.trace_length)), 65536))).
+ pow2624 = pow58 * pow2623; // pow(trace_generator, &(safe_div(((32261 * global_values.trace_length)), 32768))).
+ pow2625 = pow58 * pow2624; // pow(trace_generator, &(safe_div(((64523 * global_values.trace_length)), 65536))).
+ pow2626 = pow58 * pow2625; // pow(trace_generator, &(safe_div(((16131 * global_values.trace_length)), 16384))).
+ pow2627 = pow58 * pow2626; // pow(trace_generator, &(safe_div(((64525 * global_values.trace_length)), 65536))).
+ pow2628 = pow58 * pow2627; // pow(trace_generator, &(safe_div(((32263 * global_values.trace_length)), 32768))).
+ pow2629 = pow58 * pow2628; // pow(trace_generator, &(safe_div(((64527 * global_values.trace_length)), 65536))).
+ pow2630 = pow58 * pow2629; // pow(trace_generator, &(safe_div(((4033 * global_values.trace_length)), 4096))).
+ pow2631 = pow58 * pow2630; // pow(trace_generator, &(safe_div(((64529 * global_values.trace_length)), 65536))).
+ pow2632 = pow58 * pow2631; // pow(trace_generator, &(safe_div(((32265 * global_values.trace_length)), 32768))).
+ pow2633 = pow58 * pow2632; // pow(trace_generator, &(safe_div(((64531 * global_values.trace_length)), 65536))).
+ pow2634 = pow58 * pow2633; // pow(trace_generator, &(safe_div(((16133 * global_values.trace_length)), 16384))).
+ pow2635 = pow58 * pow2634; // pow(trace_generator, &(safe_div(((64533 * global_values.trace_length)), 65536))).
+ pow2636 = pow58 * pow2635; // pow(trace_generator, &(safe_div(((32267 * global_values.trace_length)), 32768))).
+ pow2637 = pow58 * pow2636; // pow(trace_generator, &(safe_div(((64535 * global_values.trace_length)), 65536))).
+ pow2638 = pow58 * pow2637; // pow(trace_generator, &(safe_div(((8067 * global_values.trace_length)), 8192))).
+ pow2639 = pow58 * pow2638; // pow(trace_generator, &(safe_div(((64537 * global_values.trace_length)), 65536))).
+ pow2640 = pow58 * pow2639; // pow(trace_generator, &(safe_div(((32269 * global_values.trace_length)), 32768))).
+ pow2641 = pow58 * pow2640; // pow(trace_generator, &(safe_div(((64539 * global_values.trace_length)), 65536))).
+ pow2642 = pow58 * pow2641; // pow(trace_generator, &(safe_div(((16135 * global_values.trace_length)), 16384))).
+ pow2643 = pow58 * pow2642; // pow(trace_generator, &(safe_div(((64541 * global_values.trace_length)), 65536))).
+ pow2644 = pow67 * pow2643; // pow(trace_generator, &(safe_div(((2017 * global_values.trace_length)), 2048))).
+ pow2645 = pow58 * pow2644; // pow(trace_generator, &(safe_div(((64545 * global_values.trace_length)), 65536))).
+ pow2646 = pow58 * pow2645; // pow(trace_generator, &(safe_div(((32273 * global_values.trace_length)), 32768))).
+ pow2647 = pow58 * pow2646; // pow(trace_generator, &(safe_div(((64547 * global_values.trace_length)), 65536))).
+ pow2648 = pow58 * pow2647; // pow(trace_generator, &(safe_div(((16137 * global_values.trace_length)), 16384))).
+ pow2649 = pow58 * pow2648; // pow(trace_generator, &(safe_div(((64549 * global_values.trace_length)), 65536))).
+ pow2650 = pow58 * pow2649; // pow(trace_generator, &(safe_div(((32275 * global_values.trace_length)), 32768))).
+ pow2651 = pow58 * pow2650; // pow(trace_generator, &(safe_div(((64551 * global_values.trace_length)), 65536))).
+ pow2652 = pow58 * pow2651; // pow(trace_generator, &(safe_div(((8069 * global_values.trace_length)), 8192))).
+ pow2653 = pow58 * pow2652; // pow(trace_generator, &(safe_div(((64553 * global_values.trace_length)), 65536))).
+ pow2654 = pow58 * pow2653; // pow(trace_generator, &(safe_div(((32277 * global_values.trace_length)), 32768))).
+ pow2655 = pow58 * pow2654; // pow(trace_generator, &(safe_div(((64555 * global_values.trace_length)), 65536))).
+ pow2656 = pow58 * pow2655; // pow(trace_generator, &(safe_div(((16139 * global_values.trace_length)), 16384))).
+ pow2657 = pow58 * pow2656; // pow(trace_generator, &(safe_div(((64557 * global_values.trace_length)), 65536))).
+ pow2658 = pow58 * pow2657; // pow(trace_generator, &(safe_div(((32279 * global_values.trace_length)), 32768))).
+ pow2659 = pow58 * pow2658; // pow(trace_generator, &(safe_div(((64559 * global_values.trace_length)), 65536))).
+ pow2660 = pow58 * pow2659; // pow(trace_generator, &(safe_div(((4035 * global_values.trace_length)), 4096))).
+ pow2661 = pow58 * pow2660; // pow(trace_generator, &(safe_div(((64561 * global_values.trace_length)), 65536))).
+ pow2662 = pow58 * pow2661; // pow(trace_generator, &(safe_div(((32281 * global_values.trace_length)), 32768))).
+ pow2663 = pow58 * pow2662; // pow(trace_generator, &(safe_div(((64563 * global_values.trace_length)), 65536))).
+ pow2664 = pow58 * pow2663; // pow(trace_generator, &(safe_div(((16141 * global_values.trace_length)), 16384))).
+ pow2665 = pow58 * pow2664; // pow(trace_generator, &(safe_div(((64565 * global_values.trace_length)), 65536))).
+ pow2666 = pow58 * pow2665; // pow(trace_generator, &(safe_div(((32283 * global_values.trace_length)), 32768))).
+ pow2667 = pow58 * pow2666; // pow(trace_generator, &(safe_div(((64567 * global_values.trace_length)), 65536))).
+ pow2668 = pow58 * pow2667; // pow(trace_generator, &(safe_div(((8071 * global_values.trace_length)), 8192))).
+ pow2669 = pow58 * pow2668; // pow(trace_generator, &(safe_div(((64569 * global_values.trace_length)), 65536))).
+ pow2670 = pow58 * pow2669; // pow(trace_generator, &(safe_div(((32285 * global_values.trace_length)), 32768))).
+ pow2671 = pow58 * pow2670; // pow(trace_generator, &(safe_div(((64571 * global_values.trace_length)), 65536))).
+ pow2672 = pow58 * pow2671; // pow(trace_generator, &(safe_div(((16143 * global_values.trace_length)), 16384))).
+ pow2673 = pow58 * pow2672; // pow(trace_generator, &(safe_div(((64573 * global_values.trace_length)), 65536))).
+ pow2674 = pow67 * pow2673; // pow(trace_generator, &(safe_div(((1009 * global_values.trace_length)), 1024))).
+ pow2675 = pow58 * pow2674; // pow(trace_generator, &(safe_div(((64577 * global_values.trace_length)), 65536))).
+ pow2676 = pow58 * pow2675; // pow(trace_generator, &(safe_div(((32289 * global_values.trace_length)), 32768))).
+ pow2677 = pow58 * pow2676; // pow(trace_generator, &(safe_div(((64579 * global_values.trace_length)), 65536))).
+ pow2678 = pow58 * pow2677; // pow(trace_generator, &(safe_div(((16145 * global_values.trace_length)), 16384))).
+ pow2679 = pow58 * pow2678; // pow(trace_generator, &(safe_div(((64581 * global_values.trace_length)), 65536))).
+ pow2680 = pow58 * pow2679; // pow(trace_generator, &(safe_div(((32291 * global_values.trace_length)), 32768))).
+ pow2681 = pow58 * pow2680; // pow(trace_generator, &(safe_div(((64583 * global_values.trace_length)), 65536))).
+ pow2682 = pow58 * pow2681; // pow(trace_generator, &(safe_div(((8073 * global_values.trace_length)), 8192))).
+ pow2683 = pow58 * pow2682; // pow(trace_generator, &(safe_div(((64585 * global_values.trace_length)), 65536))).
+ pow2684 = pow58 * pow2683; // pow(trace_generator, &(safe_div(((32293 * global_values.trace_length)), 32768))).
+ pow2685 = pow58 * pow2684; // pow(trace_generator, &(safe_div(((64587 * global_values.trace_length)), 65536))).
+ pow2686 = pow58 * pow2685; // pow(trace_generator, &(safe_div(((16147 * global_values.trace_length)), 16384))).
+ pow2687 = pow58 * pow2686; // pow(trace_generator, &(safe_div(((64589 * global_values.trace_length)), 65536))).
+ pow2688 = pow58 * pow2687; // pow(trace_generator, &(safe_div(((32295 * global_values.trace_length)), 32768))).
+ pow2689 = pow58 * pow2688; // pow(trace_generator, &(safe_div(((64591 * global_values.trace_length)), 65536))).
+ pow2690 = pow58 * pow2689; // pow(trace_generator, &(safe_div(((4037 * global_values.trace_length)), 4096))).
+ pow2691 = pow58 * pow2690; // pow(trace_generator, &(safe_div(((64593 * global_values.trace_length)), 65536))).
+ pow2692 = pow58 * pow2691; // pow(trace_generator, &(safe_div(((32297 * global_values.trace_length)), 32768))).
+ pow2693 = pow58 * pow2692; // pow(trace_generator, &(safe_div(((64595 * global_values.trace_length)), 65536))).
+ pow2694 = pow58 * pow2693; // pow(trace_generator, &(safe_div(((16149 * global_values.trace_length)), 16384))).
+ pow2695 = pow58 * pow2694; // pow(trace_generator, &(safe_div(((64597 * global_values.trace_length)), 65536))).
+ pow2696 = pow58 * pow2695; // pow(trace_generator, &(safe_div(((32299 * global_values.trace_length)), 32768))).
+ pow2697 = pow58 * pow2696; // pow(trace_generator, &(safe_div(((64599 * global_values.trace_length)), 65536))).
+ pow2698 = pow58 * pow2697; // pow(trace_generator, &(safe_div(((8075 * global_values.trace_length)), 8192))).
+ pow2699 = pow58 * pow2698; // pow(trace_generator, &(safe_div(((64601 * global_values.trace_length)), 65536))).
+ pow2700 = pow58 * pow2699; // pow(trace_generator, &(safe_div(((32301 * global_values.trace_length)), 32768))).
+ pow2701 = pow58 * pow2700; // pow(trace_generator, &(safe_div(((64603 * global_values.trace_length)), 65536))).
+ pow2702 = pow58 * pow2701; // pow(trace_generator, &(safe_div(((16151 * global_values.trace_length)), 16384))).
+ pow2703 = pow58 * pow2702; // pow(trace_generator, &(safe_div(((64605 * global_values.trace_length)), 65536))).
+ pow2704 = pow67 * pow2703; // pow(trace_generator, &(safe_div(((2019 * global_values.trace_length)), 2048))).
+ pow2705 = pow58 * pow2704; // pow(trace_generator, &(safe_div(((64609 * global_values.trace_length)), 65536))).
+ pow2706 = pow58 * pow2705; // pow(trace_generator, &(safe_div(((32305 * global_values.trace_length)), 32768))).
+ pow2707 = pow58 * pow2706; // pow(trace_generator, &(safe_div(((64611 * global_values.trace_length)), 65536))).
+ pow2708 = pow58 * pow2707; // pow(trace_generator, &(safe_div(((16153 * global_values.trace_length)), 16384))).
+ pow2709 = pow58 * pow2708; // pow(trace_generator, &(safe_div(((64613 * global_values.trace_length)), 65536))).
+ pow2710 = pow58 * pow2709; // pow(trace_generator, &(safe_div(((32307 * global_values.trace_length)), 32768))).
+ pow2711 = pow58 * pow2710; // pow(trace_generator, &(safe_div(((64615 * global_values.trace_length)), 65536))).
+ pow2712 = pow58 * pow2711; // pow(trace_generator, &(safe_div(((8077 * global_values.trace_length)), 8192))).
+ pow2713 = pow58 * pow2712; // pow(trace_generator, &(safe_div(((64617 * global_values.trace_length)), 65536))).
+ pow2714 = pow58 * pow2713; // pow(trace_generator, &(safe_div(((32309 * global_values.trace_length)), 32768))).
+ pow2715 = pow58 * pow2714; // pow(trace_generator, &(safe_div(((64619 * global_values.trace_length)), 65536))).
+ pow2716 = pow58 * pow2715; // pow(trace_generator, &(safe_div(((16155 * global_values.trace_length)), 16384))).
+ pow2717 = pow58 * pow2716; // pow(trace_generator, &(safe_div(((64621 * global_values.trace_length)), 65536))).
+ pow2718 = pow58 * pow2717; // pow(trace_generator, &(safe_div(((32311 * global_values.trace_length)), 32768))).
+ pow2719 = pow58 * pow2718; // pow(trace_generator, &(safe_div(((64623 * global_values.trace_length)), 65536))).
+ pow2720 = pow58 * pow2719; // pow(trace_generator, &(safe_div(((4039 * global_values.trace_length)), 4096))).
+ pow2721 = pow58 * pow2720; // pow(trace_generator, &(safe_div(((64625 * global_values.trace_length)), 65536))).
+ pow2722 = pow58 * pow2721; // pow(trace_generator, &(safe_div(((32313 * global_values.trace_length)), 32768))).
+ pow2723 = pow58 * pow2722; // pow(trace_generator, &(safe_div(((64627 * global_values.trace_length)), 65536))).
+ pow2724 = pow58 * pow2723; // pow(trace_generator, &(safe_div(((16157 * global_values.trace_length)), 16384))).
+ pow2725 = pow58 * pow2724; // pow(trace_generator, &(safe_div(((64629 * global_values.trace_length)), 65536))).
+ pow2726 = pow58 * pow2725; // pow(trace_generator, &(safe_div(((32315 * global_values.trace_length)), 32768))).
+ pow2727 = pow58 * pow2726; // pow(trace_generator, &(safe_div(((64631 * global_values.trace_length)), 65536))).
+ pow2728 = pow58 * pow2727; // pow(trace_generator, &(safe_div(((8079 * global_values.trace_length)), 8192))).
+ pow2729 = pow58 * pow2728; // pow(trace_generator, &(safe_div(((64633 * global_values.trace_length)), 65536))).
+ pow2730 = pow58 * pow2729; // pow(trace_generator, &(safe_div(((32317 * global_values.trace_length)), 32768))).
+ pow2731 = pow58 * pow2730; // pow(trace_generator, &(safe_div(((64635 * global_values.trace_length)), 65536))).
+ pow2732 = pow58 * pow2731; // pow(trace_generator, &(safe_div(((16159 * global_values.trace_length)), 16384))).
+ pow2733 = pow58 * pow2732; // pow(trace_generator, &(safe_div(((64637 * global_values.trace_length)), 65536))).
+ pow2734 = pow67 * pow2733; // pow(trace_generator, &(safe_div(((505 * global_values.trace_length)), 512))).
+ pow2735 = pow58 * pow2734; // pow(trace_generator, &(safe_div(((64641 * global_values.trace_length)), 65536))).
+ pow2736 = pow58 * pow2735; // pow(trace_generator, &(safe_div(((32321 * global_values.trace_length)), 32768))).
+ pow2737 = pow58 * pow2736; // pow(trace_generator, &(safe_div(((64643 * global_values.trace_length)), 65536))).
+ pow2738 = pow58 * pow2737; // pow(trace_generator, &(safe_div(((16161 * global_values.trace_length)), 16384))).
+ pow2739 = pow58 * pow2738; // pow(trace_generator, &(safe_div(((64645 * global_values.trace_length)), 65536))).
+ pow2740 = pow58 * pow2739; // pow(trace_generator, &(safe_div(((32323 * global_values.trace_length)), 32768))).
+ pow2741 = pow58 * pow2740; // pow(trace_generator, &(safe_div(((64647 * global_values.trace_length)), 65536))).
+ pow2742 = pow58 * pow2741; // pow(trace_generator, &(safe_div(((8081 * global_values.trace_length)), 8192))).
+ pow2743 = pow58 * pow2742; // pow(trace_generator, &(safe_div(((64649 * global_values.trace_length)), 65536))).
+ pow2744 = pow58 * pow2743; // pow(trace_generator, &(safe_div(((32325 * global_values.trace_length)), 32768))).
+ pow2745 = pow58 * pow2744; // pow(trace_generator, &(safe_div(((64651 * global_values.trace_length)), 65536))).
+ pow2746 = pow58 * pow2745; // pow(trace_generator, &(safe_div(((16163 * global_values.trace_length)), 16384))).
+ pow2747 = pow58 * pow2746; // pow(trace_generator, &(safe_div(((64653 * global_values.trace_length)), 65536))).
+ pow2748 = pow58 * pow2747; // pow(trace_generator, &(safe_div(((32327 * global_values.trace_length)), 32768))).
+ pow2749 = pow58 * pow2748; // pow(trace_generator, &(safe_div(((64655 * global_values.trace_length)), 65536))).
+ pow2750 = pow58 * pow2749; // pow(trace_generator, &(safe_div(((4041 * global_values.trace_length)), 4096))).
+ pow2751 = pow58 * pow2750; // pow(trace_generator, &(safe_div(((64657 * global_values.trace_length)), 65536))).
+ pow2752 = pow58 * pow2751; // pow(trace_generator, &(safe_div(((32329 * global_values.trace_length)), 32768))).
+ pow2753 = pow58 * pow2752; // pow(trace_generator, &(safe_div(((64659 * global_values.trace_length)), 65536))).
+ pow2754 = pow58 * pow2753; // pow(trace_generator, &(safe_div(((16165 * global_values.trace_length)), 16384))).
+ pow2755 = pow58 * pow2754; // pow(trace_generator, &(safe_div(((64661 * global_values.trace_length)), 65536))).
+ pow2756 = pow58 * pow2755; // pow(trace_generator, &(safe_div(((32331 * global_values.trace_length)), 32768))).
+ pow2757 = pow58 * pow2756; // pow(trace_generator, &(safe_div(((64663 * global_values.trace_length)), 65536))).
+ pow2758 = pow58 * pow2757; // pow(trace_generator, &(safe_div(((8083 * global_values.trace_length)), 8192))).
+ pow2759 = pow58 * pow2758; // pow(trace_generator, &(safe_div(((64665 * global_values.trace_length)), 65536))).
+ pow2760 = pow58 * pow2759; // pow(trace_generator, &(safe_div(((32333 * global_values.trace_length)), 32768))).
+ pow2761 = pow58 * pow2760; // pow(trace_generator, &(safe_div(((64667 * global_values.trace_length)), 65536))).
+ pow2762 = pow58 * pow2761; // pow(trace_generator, &(safe_div(((16167 * global_values.trace_length)), 16384))).
+ pow2763 = pow58 * pow2762; // pow(trace_generator, &(safe_div(((64669 * global_values.trace_length)), 65536))).
+ pow2764 = pow67 * pow2763; // pow(trace_generator, &(safe_div(((2021 * global_values.trace_length)), 2048))).
+ pow2765 = pow58 * pow2764; // pow(trace_generator, &(safe_div(((64673 * global_values.trace_length)), 65536))).
+ pow2766 = pow58 * pow2765; // pow(trace_generator, &(safe_div(((32337 * global_values.trace_length)), 32768))).
+ pow2767 = pow58 * pow2766; // pow(trace_generator, &(safe_div(((64675 * global_values.trace_length)), 65536))).
+ pow2768 = pow58 * pow2767; // pow(trace_generator, &(safe_div(((16169 * global_values.trace_length)), 16384))).
+ pow2769 = pow58 * pow2768; // pow(trace_generator, &(safe_div(((64677 * global_values.trace_length)), 65536))).
+ pow2770 = pow58 * pow2769; // pow(trace_generator, &(safe_div(((32339 * global_values.trace_length)), 32768))).
+ pow2771 = pow58 * pow2770; // pow(trace_generator, &(safe_div(((64679 * global_values.trace_length)), 65536))).
+ pow2772 = pow58 * pow2771; // pow(trace_generator, &(safe_div(((8085 * global_values.trace_length)), 8192))).
+ pow2773 = pow58 * pow2772; // pow(trace_generator, &(safe_div(((64681 * global_values.trace_length)), 65536))).
+ pow2774 = pow58 * pow2773; // pow(trace_generator, &(safe_div(((32341 * global_values.trace_length)), 32768))).
+ pow2775 = pow58 * pow2774; // pow(trace_generator, &(safe_div(((64683 * global_values.trace_length)), 65536))).
+ pow2776 = pow58 * pow2775; // pow(trace_generator, &(safe_div(((16171 * global_values.trace_length)), 16384))).
+ pow2777 = pow58 * pow2776; // pow(trace_generator, &(safe_div(((64685 * global_values.trace_length)), 65536))).
+ pow2778 = pow58 * pow2777; // pow(trace_generator, &(safe_div(((32343 * global_values.trace_length)), 32768))).
+ pow2779 = pow58 * pow2778; // pow(trace_generator, &(safe_div(((64687 * global_values.trace_length)), 65536))).
+ pow2780 = pow58 * pow2779; // pow(trace_generator, &(safe_div(((4043 * global_values.trace_length)), 4096))).
+ pow2781 = pow58 * pow2780; // pow(trace_generator, &(safe_div(((64689 * global_values.trace_length)), 65536))).
+ pow2782 = pow58 * pow2781; // pow(trace_generator, &(safe_div(((32345 * global_values.trace_length)), 32768))).
+ pow2783 = pow58 * pow2782; // pow(trace_generator, &(safe_div(((64691 * global_values.trace_length)), 65536))).
+ pow2784 = pow58 * pow2783; // pow(trace_generator, &(safe_div(((16173 * global_values.trace_length)), 16384))).
+ pow2785 = pow58 * pow2784; // pow(trace_generator, &(safe_div(((64693 * global_values.trace_length)), 65536))).
+ pow2786 = pow58 * pow2785; // pow(trace_generator, &(safe_div(((32347 * global_values.trace_length)), 32768))).
+ pow2787 = pow58 * pow2786; // pow(trace_generator, &(safe_div(((64695 * global_values.trace_length)), 65536))).
+ pow2788 = pow58 * pow2787; // pow(trace_generator, &(safe_div(((8087 * global_values.trace_length)), 8192))).
+ pow2789 = pow58 * pow2788; // pow(trace_generator, &(safe_div(((64697 * global_values.trace_length)), 65536))).
+ pow2790 = pow58 * pow2789; // pow(trace_generator, &(safe_div(((32349 * global_values.trace_length)), 32768))).
+ pow2791 = pow58 * pow2790; // pow(trace_generator, &(safe_div(((64699 * global_values.trace_length)), 65536))).
+ pow2792 = pow58 * pow2791; // pow(trace_generator, &(safe_div(((16175 * global_values.trace_length)), 16384))).
+ pow2793 = pow58 * pow2792; // pow(trace_generator, &(safe_div(((64701 * global_values.trace_length)), 65536))).
+ pow2794 = pow67 * pow2793; // pow(trace_generator, &(safe_div(((1011 * global_values.trace_length)), 1024))).
+ pow2795 = pow58 * pow2794; // pow(trace_generator, &(safe_div(((64705 * global_values.trace_length)), 65536))).
+ pow2796 = pow58 * pow2795; // pow(trace_generator, &(safe_div(((32353 * global_values.trace_length)), 32768))).
+ pow2797 = pow58 * pow2796; // pow(trace_generator, &(safe_div(((64707 * global_values.trace_length)), 65536))).
+ pow2798 = pow58 * pow2797; // pow(trace_generator, &(safe_div(((16177 * global_values.trace_length)), 16384))).
+ pow2799 = pow58 * pow2798; // pow(trace_generator, &(safe_div(((64709 * global_values.trace_length)), 65536))).
+ pow2800 = pow58 * pow2799; // pow(trace_generator, &(safe_div(((32355 * global_values.trace_length)), 32768))).
+ pow2801 = pow58 * pow2800; // pow(trace_generator, &(safe_div(((64711 * global_values.trace_length)), 65536))).
+ pow2802 = pow58 * pow2801; // pow(trace_generator, &(safe_div(((8089 * global_values.trace_length)), 8192))).
+ pow2803 = pow58 * pow2802; // pow(trace_generator, &(safe_div(((64713 * global_values.trace_length)), 65536))).
+ pow2804 = pow58 * pow2803; // pow(trace_generator, &(safe_div(((32357 * global_values.trace_length)), 32768))).
+ pow2805 = pow58 * pow2804; // pow(trace_generator, &(safe_div(((64715 * global_values.trace_length)), 65536))).
+ pow2806 = pow58 * pow2805; // pow(trace_generator, &(safe_div(((16179 * global_values.trace_length)), 16384))).
+ pow2807 = pow58 * pow2806; // pow(trace_generator, &(safe_div(((64717 * global_values.trace_length)), 65536))).
+ pow2808 = pow58 * pow2807; // pow(trace_generator, &(safe_div(((32359 * global_values.trace_length)), 32768))).
+ pow2809 = pow58 * pow2808; // pow(trace_generator, &(safe_div(((64719 * global_values.trace_length)), 65536))).
+ pow2810 = pow58 * pow2809; // pow(trace_generator, &(safe_div(((4045 * global_values.trace_length)), 4096))).
+ pow2811 = pow58 * pow2810; // pow(trace_generator, &(safe_div(((64721 * global_values.trace_length)), 65536))).
+ pow2812 = pow58 * pow2811; // pow(trace_generator, &(safe_div(((32361 * global_values.trace_length)), 32768))).
+ pow2813 = pow58 * pow2812; // pow(trace_generator, &(safe_div(((64723 * global_values.trace_length)), 65536))).
+ pow2814 = pow58 * pow2813; // pow(trace_generator, &(safe_div(((16181 * global_values.trace_length)), 16384))).
+ pow2815 = pow58 * pow2814; // pow(trace_generator, &(safe_div(((64725 * global_values.trace_length)), 65536))).
+ pow2816 = pow58 * pow2815; // pow(trace_generator, &(safe_div(((32363 * global_values.trace_length)), 32768))).
+ pow2817 = pow58 * pow2816; // pow(trace_generator, &(safe_div(((64727 * global_values.trace_length)), 65536))).
+ pow2818 = pow58 * pow2817; // pow(trace_generator, &(safe_div(((8091 * global_values.trace_length)), 8192))).
+ pow2819 = pow58 * pow2818; // pow(trace_generator, &(safe_div(((64729 * global_values.trace_length)), 65536))).
+ pow2820 = pow58 * pow2819; // pow(trace_generator, &(safe_div(((32365 * global_values.trace_length)), 32768))).
+ pow2821 = pow58 * pow2820; // pow(trace_generator, &(safe_div(((64731 * global_values.trace_length)), 65536))).
+ pow2822 = pow58 * pow2821; // pow(trace_generator, &(safe_div(((16183 * global_values.trace_length)), 16384))).
+ pow2823 = pow58 * pow2822; // pow(trace_generator, &(safe_div(((64733 * global_values.trace_length)), 65536))).
+ pow2824 = pow67 * pow2823; // pow(trace_generator, &(safe_div(((2023 * global_values.trace_length)), 2048))).
+ pow2825 = pow58 * pow2824; // pow(trace_generator, &(safe_div(((64737 * global_values.trace_length)), 65536))).
+ pow2826 = pow58 * pow2825; // pow(trace_generator, &(safe_div(((32369 * global_values.trace_length)), 32768))).
+ pow2827 = pow58 * pow2826; // pow(trace_generator, &(safe_div(((64739 * global_values.trace_length)), 65536))).
+ pow2828 = pow58 * pow2827; // pow(trace_generator, &(safe_div(((16185 * global_values.trace_length)), 16384))).
+ pow2829 = pow58 * pow2828; // pow(trace_generator, &(safe_div(((64741 * global_values.trace_length)), 65536))).
+ pow2830 = pow58 * pow2829; // pow(trace_generator, &(safe_div(((32371 * global_values.trace_length)), 32768))).
+ pow2831 = pow58 * pow2830; // pow(trace_generator, &(safe_div(((64743 * global_values.trace_length)), 65536))).
+ pow2832 = pow58 * pow2831; // pow(trace_generator, &(safe_div(((8093 * global_values.trace_length)), 8192))).
+ pow2833 = pow58 * pow2832; // pow(trace_generator, &(safe_div(((64745 * global_values.trace_length)), 65536))).
+ pow2834 = pow58 * pow2833; // pow(trace_generator, &(safe_div(((32373 * global_values.trace_length)), 32768))).
+ pow2835 = pow58 * pow2834; // pow(trace_generator, &(safe_div(((64747 * global_values.trace_length)), 65536))).
+ pow2836 = pow58 * pow2835; // pow(trace_generator, &(safe_div(((16187 * global_values.trace_length)), 16384))).
+ pow2837 = pow58 * pow2836; // pow(trace_generator, &(safe_div(((64749 * global_values.trace_length)), 65536))).
+ pow2838 = pow58 * pow2837; // pow(trace_generator, &(safe_div(((32375 * global_values.trace_length)), 32768))).
+ pow2839 = pow58 * pow2838; // pow(trace_generator, &(safe_div(((64751 * global_values.trace_length)), 65536))).
+ pow2840 = pow58 * pow2839; // pow(trace_generator, &(safe_div(((4047 * global_values.trace_length)), 4096))).
+ pow2841 = pow58 * pow2840; // pow(trace_generator, &(safe_div(((64753 * global_values.trace_length)), 65536))).
+ pow2842 = pow58 * pow2841; // pow(trace_generator, &(safe_div(((32377 * global_values.trace_length)), 32768))).
+ pow2843 = pow58 * pow2842; // pow(trace_generator, &(safe_div(((64755 * global_values.trace_length)), 65536))).
+ pow2844 = pow58 * pow2843; // pow(trace_generator, &(safe_div(((16189 * global_values.trace_length)), 16384))).
+ pow2845 = pow58 * pow2844; // pow(trace_generator, &(safe_div(((64757 * global_values.trace_length)), 65536))).
+ pow2846 = pow58 * pow2845; // pow(trace_generator, &(safe_div(((32379 * global_values.trace_length)), 32768))).
+ pow2847 = pow58 * pow2846; // pow(trace_generator, &(safe_div(((64759 * global_values.trace_length)), 65536))).
+ pow2848 = pow58 * pow2847; // pow(trace_generator, &(safe_div(((8095 * global_values.trace_length)), 8192))).
+ pow2849 = pow58 * pow2848; // pow(trace_generator, &(safe_div(((64761 * global_values.trace_length)), 65536))).
+ pow2850 = pow58 * pow2849; // pow(trace_generator, &(safe_div(((32381 * global_values.trace_length)), 32768))).
+ pow2851 = pow58 * pow2850; // pow(trace_generator, &(safe_div(((64763 * global_values.trace_length)), 65536))).
+ pow2852 = pow58 * pow2851; // pow(trace_generator, &(safe_div(((16191 * global_values.trace_length)), 16384))).
+ pow2853 = pow58 * pow2852; // pow(trace_generator, &(safe_div(((64765 * global_values.trace_length)), 65536))).
+ pow2854 = pow67 * pow2853; // pow(trace_generator, &(safe_div(((253 * global_values.trace_length)), 256))).
+ pow2855 = pow58 * pow2854; // pow(trace_generator, &(safe_div(((64769 * global_values.trace_length)), 65536))).
+ pow2856 = pow58 * pow2855; // pow(trace_generator, &(safe_div(((32385 * global_values.trace_length)), 32768))).
+ pow2857 = pow58 * pow2856; // pow(trace_generator, &(safe_div(((64771 * global_values.trace_length)), 65536))).
+ pow2858 = pow58 * pow2857; // pow(trace_generator, &(safe_div(((16193 * global_values.trace_length)), 16384))).
+ pow2859 = pow58 * pow2858; // pow(trace_generator, &(safe_div(((64773 * global_values.trace_length)), 65536))).
+ pow2860 = pow58 * pow2859; // pow(trace_generator, &(safe_div(((32387 * global_values.trace_length)), 32768))).
+ pow2861 = pow58 * pow2860; // pow(trace_generator, &(safe_div(((64775 * global_values.trace_length)), 65536))).
+ pow2862 = pow58 * pow2861; // pow(trace_generator, &(safe_div(((8097 * global_values.trace_length)), 8192))).
+ pow2863 = pow58 * pow2862; // pow(trace_generator, &(safe_div(((64777 * global_values.trace_length)), 65536))).
+ pow2864 = pow58 * pow2863; // pow(trace_generator, &(safe_div(((32389 * global_values.trace_length)), 32768))).
+ pow2865 = pow58 * pow2864; // pow(trace_generator, &(safe_div(((64779 * global_values.trace_length)), 65536))).
+ pow2866 = pow58 * pow2865; // pow(trace_generator, &(safe_div(((16195 * global_values.trace_length)), 16384))).
+ pow2867 = pow58 * pow2866; // pow(trace_generator, &(safe_div(((64781 * global_values.trace_length)), 65536))).
+ pow2868 = pow58 * pow2867; // pow(trace_generator, &(safe_div(((32391 * global_values.trace_length)), 32768))).
+ pow2869 = pow58 * pow2868; // pow(trace_generator, &(safe_div(((64783 * global_values.trace_length)), 65536))).
+ pow2870 = pow58 * pow2869; // pow(trace_generator, &(safe_div(((4049 * global_values.trace_length)), 4096))).
+ pow2871 = pow58 * pow2870; // pow(trace_generator, &(safe_div(((64785 * global_values.trace_length)), 65536))).
+ pow2872 = pow58 * pow2871; // pow(trace_generator, &(safe_div(((32393 * global_values.trace_length)), 32768))).
+ pow2873 = pow58 * pow2872; // pow(trace_generator, &(safe_div(((64787 * global_values.trace_length)), 65536))).
+ pow2874 = pow58 * pow2873; // pow(trace_generator, &(safe_div(((16197 * global_values.trace_length)), 16384))).
+ pow2875 = pow58 * pow2874; // pow(trace_generator, &(safe_div(((64789 * global_values.trace_length)), 65536))).
+ pow2876 = pow58 * pow2875; // pow(trace_generator, &(safe_div(((32395 * global_values.trace_length)), 32768))).
+ pow2877 = pow58 * pow2876; // pow(trace_generator, &(safe_div(((64791 * global_values.trace_length)), 65536))).
+ pow2878 = pow58 * pow2877; // pow(trace_generator, &(safe_div(((8099 * global_values.trace_length)), 8192))).
+ pow2879 = pow58 * pow2878; // pow(trace_generator, &(safe_div(((64793 * global_values.trace_length)), 65536))).
+ pow2880 = pow58 * pow2879; // pow(trace_generator, &(safe_div(((32397 * global_values.trace_length)), 32768))).
+ pow2881 = pow58 * pow2880; // pow(trace_generator, &(safe_div(((64795 * global_values.trace_length)), 65536))).
+ pow2882 = pow58 * pow2881; // pow(trace_generator, &(safe_div(((16199 * global_values.trace_length)), 16384))).
+ pow2883 = pow58 * pow2882; // pow(trace_generator, &(safe_div(((64797 * global_values.trace_length)), 65536))).
+ pow2884 = pow67 * pow2883; // pow(trace_generator, &(safe_div(((2025 * global_values.trace_length)), 2048))).
+ pow2885 = pow58 * pow2884; // pow(trace_generator, &(safe_div(((64801 * global_values.trace_length)), 65536))).
+ pow2886 = pow58 * pow2885; // pow(trace_generator, &(safe_div(((32401 * global_values.trace_length)), 32768))).
+ pow2887 = pow58 * pow2886; // pow(trace_generator, &(safe_div(((64803 * global_values.trace_length)), 65536))).
+ pow2888 = pow58 * pow2887; // pow(trace_generator, &(safe_div(((16201 * global_values.trace_length)), 16384))).
+ pow2889 = pow58 * pow2888; // pow(trace_generator, &(safe_div(((64805 * global_values.trace_length)), 65536))).
+ pow2890 = pow58 * pow2889; // pow(trace_generator, &(safe_div(((32403 * global_values.trace_length)), 32768))).
+ pow2891 = pow58 * pow2890; // pow(trace_generator, &(safe_div(((64807 * global_values.trace_length)), 65536))).
+ pow2892 = pow58 * pow2891; // pow(trace_generator, &(safe_div(((8101 * global_values.trace_length)), 8192))).
+ pow2893 = pow58 * pow2892; // pow(trace_generator, &(safe_div(((64809 * global_values.trace_length)), 65536))).
+ pow2894 = pow58 * pow2893; // pow(trace_generator, &(safe_div(((32405 * global_values.trace_length)), 32768))).
+ pow2895 = pow58 * pow2894; // pow(trace_generator, &(safe_div(((64811 * global_values.trace_length)), 65536))).
+ pow2896 = pow58 * pow2895; // pow(trace_generator, &(safe_div(((16203 * global_values.trace_length)), 16384))).
+ pow2897 = pow58 * pow2896; // pow(trace_generator, &(safe_div(((64813 * global_values.trace_length)), 65536))).
+ pow2898 = pow58 * pow2897; // pow(trace_generator, &(safe_div(((32407 * global_values.trace_length)), 32768))).
+ pow2899 = pow58 * pow2898; // pow(trace_generator, &(safe_div(((64815 * global_values.trace_length)), 65536))).
+ pow2900 = pow58 * pow2899; // pow(trace_generator, &(safe_div(((4051 * global_values.trace_length)), 4096))).
+ pow2901 = pow58 * pow2900; // pow(trace_generator, &(safe_div(((64817 * global_values.trace_length)), 65536))).
+ pow2902 = pow58 * pow2901; // pow(trace_generator, &(safe_div(((32409 * global_values.trace_length)), 32768))).
+ pow2903 = pow58 * pow2902; // pow(trace_generator, &(safe_div(((64819 * global_values.trace_length)), 65536))).
+ pow2904 = pow58 * pow2903; // pow(trace_generator, &(safe_div(((16205 * global_values.trace_length)), 16384))).
+ pow2905 = pow58 * pow2904; // pow(trace_generator, &(safe_div(((64821 * global_values.trace_length)), 65536))).
+ pow2906 = pow58 * pow2905; // pow(trace_generator, &(safe_div(((32411 * global_values.trace_length)), 32768))).
+ pow2907 = pow58 * pow2906; // pow(trace_generator, &(safe_div(((64823 * global_values.trace_length)), 65536))).
+ pow2908 = pow58 * pow2907; // pow(trace_generator, &(safe_div(((8103 * global_values.trace_length)), 8192))).
+ pow2909 = pow58 * pow2908; // pow(trace_generator, &(safe_div(((64825 * global_values.trace_length)), 65536))).
+ pow2910 = pow58 * pow2909; // pow(trace_generator, &(safe_div(((32413 * global_values.trace_length)), 32768))).
+ pow2911 = pow58 * pow2910; // pow(trace_generator, &(safe_div(((64827 * global_values.trace_length)), 65536))).
+ pow2912 = pow58 * pow2911; // pow(trace_generator, &(safe_div(((16207 * global_values.trace_length)), 16384))).
+ pow2913 = pow58 * pow2912; // pow(trace_generator, &(safe_div(((64829 * global_values.trace_length)), 65536))).
+ pow2914 = pow67 * pow2913; // pow(trace_generator, &(safe_div(((1013 * global_values.trace_length)), 1024))).
+ pow2915 = pow58 * pow2914; // pow(trace_generator, &(safe_div(((64833 * global_values.trace_length)), 65536))).
+ pow2916 = pow58 * pow2915; // pow(trace_generator, &(safe_div(((32417 * global_values.trace_length)), 32768))).
+ pow2917 = pow58 * pow2916; // pow(trace_generator, &(safe_div(((64835 * global_values.trace_length)), 65536))).
+ pow2918 = pow58 * pow2917; // pow(trace_generator, &(safe_div(((16209 * global_values.trace_length)), 16384))).
+ pow2919 = pow58 * pow2918; // pow(trace_generator, &(safe_div(((64837 * global_values.trace_length)), 65536))).
+ pow2920 = pow58 * pow2919; // pow(trace_generator, &(safe_div(((32419 * global_values.trace_length)), 32768))).
+ pow2921 = pow58 * pow2920; // pow(trace_generator, &(safe_div(((64839 * global_values.trace_length)), 65536))).
+ pow2922 = pow58 * pow2921; // pow(trace_generator, &(safe_div(((8105 * global_values.trace_length)), 8192))).
+ pow2923 = pow58 * pow2922; // pow(trace_generator, &(safe_div(((64841 * global_values.trace_length)), 65536))).
+ pow2924 = pow58 * pow2923; // pow(trace_generator, &(safe_div(((32421 * global_values.trace_length)), 32768))).
+ pow2925 = pow58 * pow2924; // pow(trace_generator, &(safe_div(((64843 * global_values.trace_length)), 65536))).
+ pow2926 = pow58 * pow2925; // pow(trace_generator, &(safe_div(((16211 * global_values.trace_length)), 16384))).
+ pow2927 = pow58 * pow2926; // pow(trace_generator, &(safe_div(((64845 * global_values.trace_length)), 65536))).
+ pow2928 = pow58 * pow2927; // pow(trace_generator, &(safe_div(((32423 * global_values.trace_length)), 32768))).
+ pow2929 = pow58 * pow2928; // pow(trace_generator, &(safe_div(((64847 * global_values.trace_length)), 65536))).
+ pow2930 = pow58 * pow2929; // pow(trace_generator, &(safe_div(((4053 * global_values.trace_length)), 4096))).
+ pow2931 = pow58 * pow2930; // pow(trace_generator, &(safe_div(((64849 * global_values.trace_length)), 65536))).
+ pow2932 = pow58 * pow2931; // pow(trace_generator, &(safe_div(((32425 * global_values.trace_length)), 32768))).
+ pow2933 = pow58 * pow2932; // pow(trace_generator, &(safe_div(((64851 * global_values.trace_length)), 65536))).
+ pow2934 = pow58 * pow2933; // pow(trace_generator, &(safe_div(((16213 * global_values.trace_length)), 16384))).
+ pow2935 = pow58 * pow2934; // pow(trace_generator, &(safe_div(((64853 * global_values.trace_length)), 65536))).
+ pow2936 = pow58 * pow2935; // pow(trace_generator, &(safe_div(((32427 * global_values.trace_length)), 32768))).
+ pow2937 = pow58 * pow2936; // pow(trace_generator, &(safe_div(((64855 * global_values.trace_length)), 65536))).
+ pow2938 = pow58 * pow2937; // pow(trace_generator, &(safe_div(((8107 * global_values.trace_length)), 8192))).
+ pow2939 = pow58 * pow2938; // pow(trace_generator, &(safe_div(((64857 * global_values.trace_length)), 65536))).
+ pow2940 = pow58 * pow2939; // pow(trace_generator, &(safe_div(((32429 * global_values.trace_length)), 32768))).
+ pow2941 = pow58 * pow2940; // pow(trace_generator, &(safe_div(((64859 * global_values.trace_length)), 65536))).
+ pow2942 = pow58 * pow2941; // pow(trace_generator, &(safe_div(((16215 * global_values.trace_length)), 16384))).
+ pow2943 = pow58 * pow2942; // pow(trace_generator, &(safe_div(((64861 * global_values.trace_length)), 65536))).
+ pow2944 = pow67 * pow2943; // pow(trace_generator, &(safe_div(((2027 * global_values.trace_length)), 2048))).
+ pow2945 = pow58 * pow2944; // pow(trace_generator, &(safe_div(((64865 * global_values.trace_length)), 65536))).
+ pow2946 = pow58 * pow2945; // pow(trace_generator, &(safe_div(((32433 * global_values.trace_length)), 32768))).
+ pow2947 = pow58 * pow2946; // pow(trace_generator, &(safe_div(((64867 * global_values.trace_length)), 65536))).
+ pow2948 = pow58 * pow2947; // pow(trace_generator, &(safe_div(((16217 * global_values.trace_length)), 16384))).
+ pow2949 = pow58 * pow2948; // pow(trace_generator, &(safe_div(((64869 * global_values.trace_length)), 65536))).
+ pow2950 = pow58 * pow2949; // pow(trace_generator, &(safe_div(((32435 * global_values.trace_length)), 32768))).
+ pow2951 = pow58 * pow2950; // pow(trace_generator, &(safe_div(((64871 * global_values.trace_length)), 65536))).
+ pow2952 = pow58 * pow2951; // pow(trace_generator, &(safe_div(((8109 * global_values.trace_length)), 8192))).
+ pow2953 = pow58 * pow2952; // pow(trace_generator, &(safe_div(((64873 * global_values.trace_length)), 65536))).
+ pow2954 = pow58 * pow2953; // pow(trace_generator, &(safe_div(((32437 * global_values.trace_length)), 32768))).
+ pow2955 = pow58 * pow2954; // pow(trace_generator, &(safe_div(((64875 * global_values.trace_length)), 65536))).
+ pow2956 = pow58 * pow2955; // pow(trace_generator, &(safe_div(((16219 * global_values.trace_length)), 16384))).
+ pow2957 = pow58 * pow2956; // pow(trace_generator, &(safe_div(((64877 * global_values.trace_length)), 65536))).
+ pow2958 = pow58 * pow2957; // pow(trace_generator, &(safe_div(((32439 * global_values.trace_length)), 32768))).
+ pow2959 = pow58 * pow2958; // pow(trace_generator, &(safe_div(((64879 * global_values.trace_length)), 65536))).
+ pow2960 = pow58 * pow2959; // pow(trace_generator, &(safe_div(((4055 * global_values.trace_length)), 4096))).
+ pow2961 = pow58 * pow2960; // pow(trace_generator, &(safe_div(((64881 * global_values.trace_length)), 65536))).
+ pow2962 = pow58 * pow2961; // pow(trace_generator, &(safe_div(((32441 * global_values.trace_length)), 32768))).
+ pow2963 = pow58 * pow2962; // pow(trace_generator, &(safe_div(((64883 * global_values.trace_length)), 65536))).
+ pow2964 = pow58 * pow2963; // pow(trace_generator, &(safe_div(((16221 * global_values.trace_length)), 16384))).
+ pow2965 = pow58 * pow2964; // pow(trace_generator, &(safe_div(((64885 * global_values.trace_length)), 65536))).
+ pow2966 = pow58 * pow2965; // pow(trace_generator, &(safe_div(((32443 * global_values.trace_length)), 32768))).
+ pow2967 = pow58 * pow2966; // pow(trace_generator, &(safe_div(((64887 * global_values.trace_length)), 65536))).
+ pow2968 = pow58 * pow2967; // pow(trace_generator, &(safe_div(((8111 * global_values.trace_length)), 8192))).
+ pow2969 = pow58 * pow2968; // pow(trace_generator, &(safe_div(((64889 * global_values.trace_length)), 65536))).
+ pow2970 = pow58 * pow2969; // pow(trace_generator, &(safe_div(((32445 * global_values.trace_length)), 32768))).
+ pow2971 = pow58 * pow2970; // pow(trace_generator, &(safe_div(((64891 * global_values.trace_length)), 65536))).
+ pow2972 = pow58 * pow2971; // pow(trace_generator, &(safe_div(((16223 * global_values.trace_length)), 16384))).
+ pow2973 = pow58 * pow2972; // pow(trace_generator, &(safe_div(((64893 * global_values.trace_length)), 65536))).
+ pow2974 = pow67 * pow2973; // pow(trace_generator, &(safe_div(((507 * global_values.trace_length)), 512))).
+ pow2975 = pow58 * pow2974; // pow(trace_generator, &(safe_div(((64897 * global_values.trace_length)), 65536))).
+ pow2976 = pow58 * pow2975; // pow(trace_generator, &(safe_div(((32449 * global_values.trace_length)), 32768))).
+ pow2977 = pow58 * pow2976; // pow(trace_generator, &(safe_div(((64899 * global_values.trace_length)), 65536))).
+ pow2978 = pow58 * pow2977; // pow(trace_generator, &(safe_div(((16225 * global_values.trace_length)), 16384))).
+ pow2979 = pow58 * pow2978; // pow(trace_generator, &(safe_div(((64901 * global_values.trace_length)), 65536))).
+ pow2980 = pow58 * pow2979; // pow(trace_generator, &(safe_div(((32451 * global_values.trace_length)), 32768))).
+ pow2981 = pow58 * pow2980; // pow(trace_generator, &(safe_div(((64903 * global_values.trace_length)), 65536))).
+ pow2982 = pow58 * pow2981; // pow(trace_generator, &(safe_div(((8113 * global_values.trace_length)), 8192))).
+ pow2983 = pow58 * pow2982; // pow(trace_generator, &(safe_div(((64905 * global_values.trace_length)), 65536))).
+ pow2984 = pow58 * pow2983; // pow(trace_generator, &(safe_div(((32453 * global_values.trace_length)), 32768))).
+ pow2985 = pow58 * pow2984; // pow(trace_generator, &(safe_div(((64907 * global_values.trace_length)), 65536))).
+ pow2986 = pow58 * pow2985; // pow(trace_generator, &(safe_div(((16227 * global_values.trace_length)), 16384))).
+ pow2987 = pow58 * pow2986; // pow(trace_generator, &(safe_div(((64909 * global_values.trace_length)), 65536))).
+ pow2988 = pow58 * pow2987; // pow(trace_generator, &(safe_div(((32455 * global_values.trace_length)), 32768))).
+ pow2989 = pow58 * pow2988; // pow(trace_generator, &(safe_div(((64911 * global_values.trace_length)), 65536))).
+ pow2990 = pow58 * pow2989; // pow(trace_generator, &(safe_div(((4057 * global_values.trace_length)), 4096))).
+ pow2991 = pow58 * pow2990; // pow(trace_generator, &(safe_div(((64913 * global_values.trace_length)), 65536))).
+ pow2992 = pow58 * pow2991; // pow(trace_generator, &(safe_div(((32457 * global_values.trace_length)), 32768))).
+ pow2993 = pow58 * pow2992; // pow(trace_generator, &(safe_div(((64915 * global_values.trace_length)), 65536))).
+ pow2994 = pow58 * pow2993; // pow(trace_generator, &(safe_div(((16229 * global_values.trace_length)), 16384))).
+ pow2995 = pow58 * pow2994; // pow(trace_generator, &(safe_div(((64917 * global_values.trace_length)), 65536))).
+ pow2996 = pow58 * pow2995; // pow(trace_generator, &(safe_div(((32459 * global_values.trace_length)), 32768))).
+ pow2997 = pow58 * pow2996; // pow(trace_generator, &(safe_div(((64919 * global_values.trace_length)), 65536))).
+ pow2998 = pow58 * pow2997; // pow(trace_generator, &(safe_div(((8115 * global_values.trace_length)), 8192))).
+ pow2999 = pow58 * pow2998; // pow(trace_generator, &(safe_div(((64921 * global_values.trace_length)), 65536))).
+ pow3000 = pow58 * pow2999; // pow(trace_generator, &(safe_div(((32461 * global_values.trace_length)), 32768))).
+ pow3001 = pow58 * pow3000; // pow(trace_generator, &(safe_div(((64923 * global_values.trace_length)), 65536))).
+ pow3002 = pow58 * pow3001; // pow(trace_generator, &(safe_div(((16231 * global_values.trace_length)), 16384))).
+ pow3003 = pow58 * pow3002; // pow(trace_generator, &(safe_div(((64925 * global_values.trace_length)), 65536))).
+ pow3004 = pow67 * pow3003; // pow(trace_generator, &(safe_div(((2029 * global_values.trace_length)), 2048))).
+ pow3005 = pow58 * pow3004; // pow(trace_generator, &(safe_div(((64929 * global_values.trace_length)), 65536))).
+ pow3006 = pow58 * pow3005; // pow(trace_generator, &(safe_div(((32465 * global_values.trace_length)), 32768))).
+ pow3007 = pow58 * pow3006; // pow(trace_generator, &(safe_div(((64931 * global_values.trace_length)), 65536))).
+ pow3008 = pow58 * pow3007; // pow(trace_generator, &(safe_div(((16233 * global_values.trace_length)), 16384))).
+ pow3009 = pow58 * pow3008; // pow(trace_generator, &(safe_div(((64933 * global_values.trace_length)), 65536))).
+ pow3010 = pow58 * pow3009; // pow(trace_generator, &(safe_div(((32467 * global_values.trace_length)), 32768))).
+ pow3011 = pow58 * pow3010; // pow(trace_generator, &(safe_div(((64935 * global_values.trace_length)), 65536))).
+ pow3012 = pow58 * pow3011; // pow(trace_generator, &(safe_div(((8117 * global_values.trace_length)), 8192))).
+ pow3013 = pow58 * pow3012; // pow(trace_generator, &(safe_div(((64937 * global_values.trace_length)), 65536))).
+ pow3014 = pow58 * pow3013; // pow(trace_generator, &(safe_div(((32469 * global_values.trace_length)), 32768))).
+ pow3015 = pow58 * pow3014; // pow(trace_generator, &(safe_div(((64939 * global_values.trace_length)), 65536))).
+ pow3016 = pow58 * pow3015; // pow(trace_generator, &(safe_div(((16235 * global_values.trace_length)), 16384))).
+ pow3017 = pow58 * pow3016; // pow(trace_generator, &(safe_div(((64941 * global_values.trace_length)), 65536))).
+ pow3018 = pow58 * pow3017; // pow(trace_generator, &(safe_div(((32471 * global_values.trace_length)), 32768))).
+ pow3019 = pow58 * pow3018; // pow(trace_generator, &(safe_div(((64943 * global_values.trace_length)), 65536))).
+ pow3020 = pow58 * pow3019; // pow(trace_generator, &(safe_div(((4059 * global_values.trace_length)), 4096))).
+ pow3021 = pow58 * pow3020; // pow(trace_generator, &(safe_div(((64945 * global_values.trace_length)), 65536))).
+ pow3022 = pow58 * pow3021; // pow(trace_generator, &(safe_div(((32473 * global_values.trace_length)), 32768))).
+ pow3023 = pow58 * pow3022; // pow(trace_generator, &(safe_div(((64947 * global_values.trace_length)), 65536))).
+ pow3024 = pow58 * pow3023; // pow(trace_generator, &(safe_div(((16237 * global_values.trace_length)), 16384))).
+ pow3025 = pow58 * pow3024; // pow(trace_generator, &(safe_div(((64949 * global_values.trace_length)), 65536))).
+ pow3026 = pow58 * pow3025; // pow(trace_generator, &(safe_div(((32475 * global_values.trace_length)), 32768))).
+ pow3027 = pow58 * pow3026; // pow(trace_generator, &(safe_div(((64951 * global_values.trace_length)), 65536))).
+ pow3028 = pow58 * pow3027; // pow(trace_generator, &(safe_div(((8119 * global_values.trace_length)), 8192))).
+ pow3029 = pow58 * pow3028; // pow(trace_generator, &(safe_div(((64953 * global_values.trace_length)), 65536))).
+ pow3030 = pow58 * pow3029; // pow(trace_generator, &(safe_div(((32477 * global_values.trace_length)), 32768))).
+ pow3031 = pow58 * pow3030; // pow(trace_generator, &(safe_div(((64955 * global_values.trace_length)), 65536))).
+ pow3032 = pow58 * pow3031; // pow(trace_generator, &(safe_div(((16239 * global_values.trace_length)), 16384))).
+ pow3033 = pow58 * pow3032; // pow(trace_generator, &(safe_div(((64957 * global_values.trace_length)), 65536))).
+ pow3034 = pow67 * pow3033; // pow(trace_generator, &(safe_div(((1015 * global_values.trace_length)), 1024))).
+ pow3035 = pow58 * pow3034; // pow(trace_generator, &(safe_div(((64961 * global_values.trace_length)), 65536))).
+ pow3036 = pow58 * pow3035; // pow(trace_generator, &(safe_div(((32481 * global_values.trace_length)), 32768))).
+ pow3037 = pow58 * pow3036; // pow(trace_generator, &(safe_div(((64963 * global_values.trace_length)), 65536))).
+ pow3038 = pow58 * pow3037; // pow(trace_generator, &(safe_div(((16241 * global_values.trace_length)), 16384))).
+ pow3039 = pow58 * pow3038; // pow(trace_generator, &(safe_div(((64965 * global_values.trace_length)), 65536))).
+ pow3040 = pow58 * pow3039; // pow(trace_generator, &(safe_div(((32483 * global_values.trace_length)), 32768))).
+ pow3041 = pow58 * pow3040; // pow(trace_generator, &(safe_div(((64967 * global_values.trace_length)), 65536))).
+ pow3042 = pow58 * pow3041; // pow(trace_generator, &(safe_div(((8121 * global_values.trace_length)), 8192))).
+ pow3043 = pow58 * pow3042; // pow(trace_generator, &(safe_div(((64969 * global_values.trace_length)), 65536))).
+ pow3044 = pow58 * pow3043; // pow(trace_generator, &(safe_div(((32485 * global_values.trace_length)), 32768))).
+ pow3045 = pow58 * pow3044; // pow(trace_generator, &(safe_div(((64971 * global_values.trace_length)), 65536))).
+ pow3046 = pow58 * pow3045; // pow(trace_generator, &(safe_div(((16243 * global_values.trace_length)), 16384))).
+ pow3047 = pow58 * pow3046; // pow(trace_generator, &(safe_div(((64973 * global_values.trace_length)), 65536))).
+ pow3048 = pow58 * pow3047; // pow(trace_generator, &(safe_div(((32487 * global_values.trace_length)), 32768))).
+ pow3049 = pow58 * pow3048; // pow(trace_generator, &(safe_div(((64975 * global_values.trace_length)), 65536))).
+ pow3050 = pow58 * pow3049; // pow(trace_generator, &(safe_div(((4061 * global_values.trace_length)), 4096))).
+ pow3051 = pow58 * pow3050; // pow(trace_generator, &(safe_div(((64977 * global_values.trace_length)), 65536))).
+ pow3052 = pow58 * pow3051; // pow(trace_generator, &(safe_div(((32489 * global_values.trace_length)), 32768))).
+ pow3053 = pow58 * pow3052; // pow(trace_generator, &(safe_div(((64979 * global_values.trace_length)), 65536))).
+ pow3054 = pow58 * pow3053; // pow(trace_generator, &(safe_div(((16245 * global_values.trace_length)), 16384))).
+ pow3055 = pow58 * pow3054; // pow(trace_generator, &(safe_div(((64981 * global_values.trace_length)), 65536))).
+ pow3056 = pow58 * pow3055; // pow(trace_generator, &(safe_div(((32491 * global_values.trace_length)), 32768))).
+ pow3057 = pow58 * pow3056; // pow(trace_generator, &(safe_div(((64983 * global_values.trace_length)), 65536))).
+ pow3058 = pow58 * pow3057; // pow(trace_generator, &(safe_div(((8123 * global_values.trace_length)), 8192))).
+ pow3059 = pow58 * pow3058; // pow(trace_generator, &(safe_div(((64985 * global_values.trace_length)), 65536))).
+ pow3060 = pow58 * pow3059; // pow(trace_generator, &(safe_div(((32493 * global_values.trace_length)), 32768))).
+ pow3061 = pow58 * pow3060; // pow(trace_generator, &(safe_div(((64987 * global_values.trace_length)), 65536))).
+ pow3062 = pow58 * pow3061; // pow(trace_generator, &(safe_div(((16247 * global_values.trace_length)), 16384))).
+ pow3063 = pow58 * pow3062; // pow(trace_generator, &(safe_div(((64989 * global_values.trace_length)), 65536))).
+ pow3064 = pow67 * pow3063; // pow(trace_generator, &(safe_div(((2031 * global_values.trace_length)), 2048))).
+ pow3065 = pow58 * pow3064; // pow(trace_generator, &(safe_div(((64993 * global_values.trace_length)), 65536))).
+ pow3066 = pow58 * pow3065; // pow(trace_generator, &(safe_div(((32497 * global_values.trace_length)), 32768))).
+ pow3067 = pow58 * pow3066; // pow(trace_generator, &(safe_div(((64995 * global_values.trace_length)), 65536))).
+ pow3068 = pow58 * pow3067; // pow(trace_generator, &(safe_div(((16249 * global_values.trace_length)), 16384))).
+ pow3069 = pow58 * pow3068; // pow(trace_generator, &(safe_div(((64997 * global_values.trace_length)), 65536))).
+ pow3070 = pow58 * pow3069; // pow(trace_generator, &(safe_div(((32499 * global_values.trace_length)), 32768))).
+ pow3071 = pow58 * pow3070; // pow(trace_generator, &(safe_div(((64999 * global_values.trace_length)), 65536))).
+ pow3072 = pow58 * pow3071; // pow(trace_generator, &(safe_div(((8125 * global_values.trace_length)), 8192))).
+ pow3073 = pow58 * pow3072; // pow(trace_generator, &(safe_div(((65001 * global_values.trace_length)), 65536))).
+ pow3074 = pow58 * pow3073; // pow(trace_generator, &(safe_div(((32501 * global_values.trace_length)), 32768))).
+ pow3075 = pow58 * pow3074; // pow(trace_generator, &(safe_div(((65003 * global_values.trace_length)), 65536))).
+ pow3076 = pow58 * pow3075; // pow(trace_generator, &(safe_div(((16251 * global_values.trace_length)), 16384))).
+ pow3077 = pow58 * pow3076; // pow(trace_generator, &(safe_div(((65005 * global_values.trace_length)), 65536))).
+ pow3078 = pow58 * pow3077; // pow(trace_generator, &(safe_div(((32503 * global_values.trace_length)), 32768))).
+ pow3079 = pow58 * pow3078; // pow(trace_generator, &(safe_div(((65007 * global_values.trace_length)), 65536))).
+ pow3080 = pow58 * pow3079; // pow(trace_generator, &(safe_div(((4063 * global_values.trace_length)), 4096))).
+ pow3081 = pow58 * pow3080; // pow(trace_generator, &(safe_div(((65009 * global_values.trace_length)), 65536))).
+ pow3082 = pow58 * pow3081; // pow(trace_generator, &(safe_div(((32505 * global_values.trace_length)), 32768))).
+ pow3083 = pow58 * pow3082; // pow(trace_generator, &(safe_div(((65011 * global_values.trace_length)), 65536))).
+ pow3084 = pow58 * pow3083; // pow(trace_generator, &(safe_div(((16253 * global_values.trace_length)), 16384))).
+ pow3085 = pow58 * pow3084; // pow(trace_generator, &(safe_div(((65013 * global_values.trace_length)), 65536))).
+ pow3086 = pow58 * pow3085; // pow(trace_generator, &(safe_div(((32507 * global_values.trace_length)), 32768))).
+ pow3087 = pow58 * pow3086; // pow(trace_generator, &(safe_div(((65015 * global_values.trace_length)), 65536))).
+ pow3088 = pow58 * pow3087; // pow(trace_generator, &(safe_div(((8127 * global_values.trace_length)), 8192))).
+ pow3089 = pow58 * pow3088; // pow(trace_generator, &(safe_div(((65017 * global_values.trace_length)), 65536))).
+ pow3090 = pow58 * pow3089; // pow(trace_generator, &(safe_div(((32509 * global_values.trace_length)), 32768))).
+ pow3091 = pow58 * pow3090; // pow(trace_generator, &(safe_div(((65019 * global_values.trace_length)), 65536))).
+ pow3092 = pow58 * pow3091; // pow(trace_generator, &(safe_div(((16255 * global_values.trace_length)), 16384))).
+ pow3093 = pow58 * pow3092; // pow(trace_generator, &(safe_div(((65021 * global_values.trace_length)), 65536))).
+ pow3094 = pow67 * pow3093; // pow(trace_generator, &(safe_div(((127 * global_values.trace_length)), 128))).
+ pow3095 = pow58 * pow3094; // pow(trace_generator, &(safe_div(((65025 * global_values.trace_length)), 65536))).
+ pow3096 = pow58 * pow3095; // pow(trace_generator, &(safe_div(((32513 * global_values.trace_length)), 32768))).
+ pow3097 = pow58 * pow3096; // pow(trace_generator, &(safe_div(((65027 * global_values.trace_length)), 65536))).
+ pow3098 = pow58 * pow3097; // pow(trace_generator, &(safe_div(((16257 * global_values.trace_length)), 16384))).
+ pow3099 = pow58 * pow3098; // pow(trace_generator, &(safe_div(((65029 * global_values.trace_length)), 65536))).
+ pow3100 = pow58 * pow3099; // pow(trace_generator, &(safe_div(((32515 * global_values.trace_length)), 32768))).
+ pow3101 = pow58 * pow3100; // pow(trace_generator, &(safe_div(((65031 * global_values.trace_length)), 65536))).
+ pow3102 = pow58 * pow3101; // pow(trace_generator, &(safe_div(((8129 * global_values.trace_length)), 8192))).
+ pow3103 = pow58 * pow3102; // pow(trace_generator, &(safe_div(((65033 * global_values.trace_length)), 65536))).
+ pow3104 = pow58 * pow3103; // pow(trace_generator, &(safe_div(((32517 * global_values.trace_length)), 32768))).
+ pow3105 = pow58 * pow3104; // pow(trace_generator, &(safe_div(((65035 * global_values.trace_length)), 65536))).
+ pow3106 = pow58 * pow3105; // pow(trace_generator, &(safe_div(((16259 * global_values.trace_length)), 16384))).
+ pow3107 = pow58 * pow3106; // pow(trace_generator, &(safe_div(((65037 * global_values.trace_length)), 65536))).
+ pow3108 = pow58 * pow3107; // pow(trace_generator, &(safe_div(((32519 * global_values.trace_length)), 32768))).
+ pow3109 = pow58 * pow3108; // pow(trace_generator, &(safe_div(((65039 * global_values.trace_length)), 65536))).
+ pow3110 = pow58 * pow3109; // pow(trace_generator, &(safe_div(((4065 * global_values.trace_length)), 4096))).
+ pow3111 = pow58 * pow3110; // pow(trace_generator, &(safe_div(((65041 * global_values.trace_length)), 65536))).
+ pow3112 = pow58 * pow3111; // pow(trace_generator, &(safe_div(((32521 * global_values.trace_length)), 32768))).
+ pow3113 = pow58 * pow3112; // pow(trace_generator, &(safe_div(((65043 * global_values.trace_length)), 65536))).
+ pow3114 = pow58 * pow3113; // pow(trace_generator, &(safe_div(((16261 * global_values.trace_length)), 16384))).
+ pow3115 = pow58 * pow3114; // pow(trace_generator, &(safe_div(((65045 * global_values.trace_length)), 65536))).
+ pow3116 = pow58 * pow3115; // pow(trace_generator, &(safe_div(((32523 * global_values.trace_length)), 32768))).
+ pow3117 = pow58 * pow3116; // pow(trace_generator, &(safe_div(((65047 * global_values.trace_length)), 65536))).
+ pow3118 = pow58 * pow3117; // pow(trace_generator, &(safe_div(((8131 * global_values.trace_length)), 8192))).
+ pow3119 = pow58 * pow3118; // pow(trace_generator, &(safe_div(((65049 * global_values.trace_length)), 65536))).
+ pow3120 = pow58 * pow3119; // pow(trace_generator, &(safe_div(((32525 * global_values.trace_length)), 32768))).
+ pow3121 = pow58 * pow3120; // pow(trace_generator, &(safe_div(((65051 * global_values.trace_length)), 65536))).
+ pow3122 = pow58 * pow3121; // pow(trace_generator, &(safe_div(((16263 * global_values.trace_length)), 16384))).
+ pow3123 = pow58 * pow3122; // pow(trace_generator, &(safe_div(((65053 * global_values.trace_length)), 65536))).
+ pow3124 = pow67 * pow3123; // pow(trace_generator, &(safe_div(((2033 * global_values.trace_length)), 2048))).
+ pow3125 = pow58 * pow3124; // pow(trace_generator, &(safe_div(((65057 * global_values.trace_length)), 65536))).
+ pow3126 = pow58 * pow3125; // pow(trace_generator, &(safe_div(((32529 * global_values.trace_length)), 32768))).
+ pow3127 = pow58 * pow3126; // pow(trace_generator, &(safe_div(((65059 * global_values.trace_length)), 65536))).
+ pow3128 = pow58 * pow3127; // pow(trace_generator, &(safe_div(((16265 * global_values.trace_length)), 16384))).
+ pow3129 = pow58 * pow3128; // pow(trace_generator, &(safe_div(((65061 * global_values.trace_length)), 65536))).
+ pow3130 = pow58 * pow3129; // pow(trace_generator, &(safe_div(((32531 * global_values.trace_length)), 32768))).
+ pow3131 = pow58 * pow3130; // pow(trace_generator, &(safe_div(((65063 * global_values.trace_length)), 65536))).
+ pow3132 = pow58 * pow3131; // pow(trace_generator, &(safe_div(((8133 * global_values.trace_length)), 8192))).
+ pow3133 = pow58 * pow3132; // pow(trace_generator, &(safe_div(((65065 * global_values.trace_length)), 65536))).
+ pow3134 = pow58 * pow3133; // pow(trace_generator, &(safe_div(((32533 * global_values.trace_length)), 32768))).
+ pow3135 = pow58 * pow3134; // pow(trace_generator, &(safe_div(((65067 * global_values.trace_length)), 65536))).
+ pow3136 = pow58 * pow3135; // pow(trace_generator, &(safe_div(((16267 * global_values.trace_length)), 16384))).
+ pow3137 = pow58 * pow3136; // pow(trace_generator, &(safe_div(((65069 * global_values.trace_length)), 65536))).
+ pow3138 = pow58 * pow3137; // pow(trace_generator, &(safe_div(((32535 * global_values.trace_length)), 32768))).
+ pow3139 = pow58 * pow3138; // pow(trace_generator, &(safe_div(((65071 * global_values.trace_length)), 65536))).
+ pow3140 = pow58 * pow3139; // pow(trace_generator, &(safe_div(((4067 * global_values.trace_length)), 4096))).
+ pow3141 = pow58 * pow3140; // pow(trace_generator, &(safe_div(((65073 * global_values.trace_length)), 65536))).
+ pow3142 = pow58 * pow3141; // pow(trace_generator, &(safe_div(((32537 * global_values.trace_length)), 32768))).
+ pow3143 = pow58 * pow3142; // pow(trace_generator, &(safe_div(((65075 * global_values.trace_length)), 65536))).
+ pow3144 = pow58 * pow3143; // pow(trace_generator, &(safe_div(((16269 * global_values.trace_length)), 16384))).
+ pow3145 = pow58 * pow3144; // pow(trace_generator, &(safe_div(((65077 * global_values.trace_length)), 65536))).
+ pow3146 = pow58 * pow3145; // pow(trace_generator, &(safe_div(((32539 * global_values.trace_length)), 32768))).
+ pow3147 = pow58 * pow3146; // pow(trace_generator, &(safe_div(((65079 * global_values.trace_length)), 65536))).
+ pow3148 = pow58 * pow3147; // pow(trace_generator, &(safe_div(((8135 * global_values.trace_length)), 8192))).
+ pow3149 = pow58 * pow3148; // pow(trace_generator, &(safe_div(((65081 * global_values.trace_length)), 65536))).
+ pow3150 = pow58 * pow3149; // pow(trace_generator, &(safe_div(((32541 * global_values.trace_length)), 32768))).
+ pow3151 = pow58 * pow3150; // pow(trace_generator, &(safe_div(((65083 * global_values.trace_length)), 65536))).
+ pow3152 = pow58 * pow3151; // pow(trace_generator, &(safe_div(((16271 * global_values.trace_length)), 16384))).
+ pow3153 = pow58 * pow3152; // pow(trace_generator, &(safe_div(((65085 * global_values.trace_length)), 65536))).
+ pow3154 = pow67 * pow3153; // pow(trace_generator, &(safe_div(((1017 * global_values.trace_length)), 1024))).
+ pow3155 = pow58 * pow3154; // pow(trace_generator, &(safe_div(((65089 * global_values.trace_length)), 65536))).
+ pow3156 = pow58 * pow3155; // pow(trace_generator, &(safe_div(((32545 * global_values.trace_length)), 32768))).
+ pow3157 = pow58 * pow3156; // pow(trace_generator, &(safe_div(((65091 * global_values.trace_length)), 65536))).
+ pow3158 = pow58 * pow3157; // pow(trace_generator, &(safe_div(((16273 * global_values.trace_length)), 16384))).
+ pow3159 = pow58 * pow3158; // pow(trace_generator, &(safe_div(((65093 * global_values.trace_length)), 65536))).
+ pow3160 = pow58 * pow3159; // pow(trace_generator, &(safe_div(((32547 * global_values.trace_length)), 32768))).
+ pow3161 = pow58 * pow3160; // pow(trace_generator, &(safe_div(((65095 * global_values.trace_length)), 65536))).
+ pow3162 = pow58 * pow3161; // pow(trace_generator, &(safe_div(((8137 * global_values.trace_length)), 8192))).
+ pow3163 = pow58 * pow3162; // pow(trace_generator, &(safe_div(((65097 * global_values.trace_length)), 65536))).
+ pow3164 = pow58 * pow3163; // pow(trace_generator, &(safe_div(((32549 * global_values.trace_length)), 32768))).
+ pow3165 = pow58 * pow3164; // pow(trace_generator, &(safe_div(((65099 * global_values.trace_length)), 65536))).
+ pow3166 = pow58 * pow3165; // pow(trace_generator, &(safe_div(((16275 * global_values.trace_length)), 16384))).
+ pow3167 = pow58 * pow3166; // pow(trace_generator, &(safe_div(((65101 * global_values.trace_length)), 65536))).
+ pow3168 = pow58 * pow3167; // pow(trace_generator, &(safe_div(((32551 * global_values.trace_length)), 32768))).
+ pow3169 = pow58 * pow3168; // pow(trace_generator, &(safe_div(((65103 * global_values.trace_length)), 65536))).
+ pow3170 = pow58 * pow3169; // pow(trace_generator, &(safe_div(((4069 * global_values.trace_length)), 4096))).
+ pow3171 = pow58 * pow3170; // pow(trace_generator, &(safe_div(((65105 * global_values.trace_length)), 65536))).
+ pow3172 = pow58 * pow3171; // pow(trace_generator, &(safe_div(((32553 * global_values.trace_length)), 32768))).
+ pow3173 = pow58 * pow3172; // pow(trace_generator, &(safe_div(((65107 * global_values.trace_length)), 65536))).
+ pow3174 = pow58 * pow3173; // pow(trace_generator, &(safe_div(((16277 * global_values.trace_length)), 16384))).
+ pow3175 = pow58 * pow3174; // pow(trace_generator, &(safe_div(((65109 * global_values.trace_length)), 65536))).
+ pow3176 = pow58 * pow3175; // pow(trace_generator, &(safe_div(((32555 * global_values.trace_length)), 32768))).
+ pow3177 = pow58 * pow3176; // pow(trace_generator, &(safe_div(((65111 * global_values.trace_length)), 65536))).
+ pow3178 = pow58 * pow3177; // pow(trace_generator, &(safe_div(((8139 * global_values.trace_length)), 8192))).
+ pow3179 = pow58 * pow3178; // pow(trace_generator, &(safe_div(((65113 * global_values.trace_length)), 65536))).
+ pow3180 = pow58 * pow3179; // pow(trace_generator, &(safe_div(((32557 * global_values.trace_length)), 32768))).
+ pow3181 = pow58 * pow3180; // pow(trace_generator, &(safe_div(((65115 * global_values.trace_length)), 65536))).
+ pow3182 = pow58 * pow3181; // pow(trace_generator, &(safe_div(((16279 * global_values.trace_length)), 16384))).
+ pow3183 = pow58 * pow3182; // pow(trace_generator, &(safe_div(((65117 * global_values.trace_length)), 65536))).
+ pow3184 = pow67 * pow3183; // pow(trace_generator, &(safe_div(((2035 * global_values.trace_length)), 2048))).
+ pow3185 = pow58 * pow3184; // pow(trace_generator, &(safe_div(((65121 * global_values.trace_length)), 65536))).
+ pow3186 = pow58 * pow3185; // pow(trace_generator, &(safe_div(((32561 * global_values.trace_length)), 32768))).
+ pow3187 = pow58 * pow3186; // pow(trace_generator, &(safe_div(((65123 * global_values.trace_length)), 65536))).
+ pow3188 = pow58 * pow3187; // pow(trace_generator, &(safe_div(((16281 * global_values.trace_length)), 16384))).
+ pow3189 = pow58 * pow3188; // pow(trace_generator, &(safe_div(((65125 * global_values.trace_length)), 65536))).
+ pow3190 = pow58 * pow3189; // pow(trace_generator, &(safe_div(((32563 * global_values.trace_length)), 32768))).
+ pow3191 = pow58 * pow3190; // pow(trace_generator, &(safe_div(((65127 * global_values.trace_length)), 65536))).
+ pow3192 = pow58 * pow3191; // pow(trace_generator, &(safe_div(((8141 * global_values.trace_length)), 8192))).
+ pow3193 = pow58 * pow3192; // pow(trace_generator, &(safe_div(((65129 * global_values.trace_length)), 65536))).
+ pow3194 = pow58 * pow3193; // pow(trace_generator, &(safe_div(((32565 * global_values.trace_length)), 32768))).
+ pow3195 = pow58 * pow3194; // pow(trace_generator, &(safe_div(((65131 * global_values.trace_length)), 65536))).
+ pow3196 = pow58 * pow3195; // pow(trace_generator, &(safe_div(((16283 * global_values.trace_length)), 16384))).
+ pow3197 = pow58 * pow3196; // pow(trace_generator, &(safe_div(((65133 * global_values.trace_length)), 65536))).
+ pow3198 = pow58 * pow3197; // pow(trace_generator, &(safe_div(((32567 * global_values.trace_length)), 32768))).
+ pow3199 = pow58 * pow3198; // pow(trace_generator, &(safe_div(((65135 * global_values.trace_length)), 65536))).
+ pow3200 = pow58 * pow3199; // pow(trace_generator, &(safe_div(((4071 * global_values.trace_length)), 4096))).
+ pow3201 = pow58 * pow3200; // pow(trace_generator, &(safe_div(((65137 * global_values.trace_length)), 65536))).
+ pow3202 = pow58 * pow3201; // pow(trace_generator, &(safe_div(((32569 * global_values.trace_length)), 32768))).
+ pow3203 = pow58 * pow3202; // pow(trace_generator, &(safe_div(((65139 * global_values.trace_length)), 65536))).
+ pow3204 = pow58 * pow3203; // pow(trace_generator, &(safe_div(((16285 * global_values.trace_length)), 16384))).
+ pow3205 = pow58 * pow3204; // pow(trace_generator, &(safe_div(((65141 * global_values.trace_length)), 65536))).
+ pow3206 = pow58 * pow3205; // pow(trace_generator, &(safe_div(((32571 * global_values.trace_length)), 32768))).
+ pow3207 = pow58 * pow3206; // pow(trace_generator, &(safe_div(((65143 * global_values.trace_length)), 65536))).
+ pow3208 = pow58 * pow3207; // pow(trace_generator, &(safe_div(((8143 * global_values.trace_length)), 8192))).
+ pow3209 = pow58 * pow3208; // pow(trace_generator, &(safe_div(((65145 * global_values.trace_length)), 65536))).
+ pow3210 = pow58 * pow3209; // pow(trace_generator, &(safe_div(((32573 * global_values.trace_length)), 32768))).
+ pow3211 = pow58 * pow3210; // pow(trace_generator, &(safe_div(((65147 * global_values.trace_length)), 65536))).
+ pow3212 = pow58 * pow3211; // pow(trace_generator, &(safe_div(((16287 * global_values.trace_length)), 16384))).
+ pow3213 = pow58 * pow3212; // pow(trace_generator, &(safe_div(((65149 * global_values.trace_length)), 65536))).
+ pow3214 = pow67 * pow3213; // pow(trace_generator, &(safe_div(((509 * global_values.trace_length)), 512))).
+ pow3215 = pow58 * pow3214; // pow(trace_generator, &(safe_div(((65153 * global_values.trace_length)), 65536))).
+ pow3216 = pow58 * pow3215; // pow(trace_generator, &(safe_div(((32577 * global_values.trace_length)), 32768))).
+ pow3217 = pow58 * pow3216; // pow(trace_generator, &(safe_div(((65155 * global_values.trace_length)), 65536))).
+ pow3218 = pow58 * pow3217; // pow(trace_generator, &(safe_div(((16289 * global_values.trace_length)), 16384))).
+ pow3219 = pow58 * pow3218; // pow(trace_generator, &(safe_div(((65157 * global_values.trace_length)), 65536))).
+ pow3220 = pow58 * pow3219; // pow(trace_generator, &(safe_div(((32579 * global_values.trace_length)), 32768))).
+ pow3221 = pow58 * pow3220; // pow(trace_generator, &(safe_div(((65159 * global_values.trace_length)), 65536))).
+ pow3222 = pow58 * pow3221; // pow(trace_generator, &(safe_div(((8145 * global_values.trace_length)), 8192))).
+ pow3223 = pow58 * pow3222; // pow(trace_generator, &(safe_div(((65161 * global_values.trace_length)), 65536))).
+ pow3224 = pow58 * pow3223; // pow(trace_generator, &(safe_div(((32581 * global_values.trace_length)), 32768))).
+ pow3225 = pow58 * pow3224; // pow(trace_generator, &(safe_div(((65163 * global_values.trace_length)), 65536))).
+ pow3226 = pow58 * pow3225; // pow(trace_generator, &(safe_div(((16291 * global_values.trace_length)), 16384))).
+ pow3227 = pow58 * pow3226; // pow(trace_generator, &(safe_div(((65165 * global_values.trace_length)), 65536))).
+ pow3228 = pow58 * pow3227; // pow(trace_generator, &(safe_div(((32583 * global_values.trace_length)), 32768))).
+ pow3229 = pow58 * pow3228; // pow(trace_generator, &(safe_div(((65167 * global_values.trace_length)), 65536))).
+ pow3230 = pow58 * pow3229; // pow(trace_generator, &(safe_div(((4073 * global_values.trace_length)), 4096))).
+ pow3231 = pow58 * pow3230; // pow(trace_generator, &(safe_div(((65169 * global_values.trace_length)), 65536))).
+ pow3232 = pow58 * pow3231; // pow(trace_generator, &(safe_div(((32585 * global_values.trace_length)), 32768))).
+ pow3233 = pow58 * pow3232; // pow(trace_generator, &(safe_div(((65171 * global_values.trace_length)), 65536))).
+ pow3234 = pow58 * pow3233; // pow(trace_generator, &(safe_div(((16293 * global_values.trace_length)), 16384))).
+ pow3235 = pow58 * pow3234; // pow(trace_generator, &(safe_div(((65173 * global_values.trace_length)), 65536))).
+ pow3236 = pow58 * pow3235; // pow(trace_generator, &(safe_div(((32587 * global_values.trace_length)), 32768))).
+ pow3237 = pow58 * pow3236; // pow(trace_generator, &(safe_div(((65175 * global_values.trace_length)), 65536))).
+ pow3238 = pow58 * pow3237; // pow(trace_generator, &(safe_div(((8147 * global_values.trace_length)), 8192))).
+ pow3239 = pow58 * pow3238; // pow(trace_generator, &(safe_div(((65177 * global_values.trace_length)), 65536))).
+ pow3240 = pow58 * pow3239; // pow(trace_generator, &(safe_div(((32589 * global_values.trace_length)), 32768))).
+ pow3241 = pow58 * pow3240; // pow(trace_generator, &(safe_div(((65179 * global_values.trace_length)), 65536))).
+ pow3242 = pow58 * pow3241; // pow(trace_generator, &(safe_div(((16295 * global_values.trace_length)), 16384))).
+ pow3243 = pow58 * pow3242; // pow(trace_generator, &(safe_div(((65181 * global_values.trace_length)), 65536))).
+ pow3244 = pow67 * pow3243; // pow(trace_generator, &(safe_div(((2037 * global_values.trace_length)), 2048))).
+ pow3245 = pow58 * pow3244; // pow(trace_generator, &(safe_div(((65185 * global_values.trace_length)), 65536))).
+ pow3246 = pow58 * pow3245; // pow(trace_generator, &(safe_div(((32593 * global_values.trace_length)), 32768))).
+ pow3247 = pow58 * pow3246; // pow(trace_generator, &(safe_div(((65187 * global_values.trace_length)), 65536))).
+ pow3248 = pow58 * pow3247; // pow(trace_generator, &(safe_div(((16297 * global_values.trace_length)), 16384))).
+ pow3249 = pow58 * pow3248; // pow(trace_generator, &(safe_div(((65189 * global_values.trace_length)), 65536))).
+ pow3250 = pow58 * pow3249; // pow(trace_generator, &(safe_div(((32595 * global_values.trace_length)), 32768))).
+ pow3251 = pow58 * pow3250; // pow(trace_generator, &(safe_div(((65191 * global_values.trace_length)), 65536))).
+ pow3252 = pow58 * pow3251; // pow(trace_generator, &(safe_div(((8149 * global_values.trace_length)), 8192))).
+ pow3253 = pow58 * pow3252; // pow(trace_generator, &(safe_div(((65193 * global_values.trace_length)), 65536))).
+ pow3254 = pow58 * pow3253; // pow(trace_generator, &(safe_div(((32597 * global_values.trace_length)), 32768))).
+ pow3255 = pow58 * pow3254; // pow(trace_generator, &(safe_div(((65195 * global_values.trace_length)), 65536))).
+ pow3256 = pow58 * pow3255; // pow(trace_generator, &(safe_div(((16299 * global_values.trace_length)), 16384))).
+ pow3257 = pow58 * pow3256; // pow(trace_generator, &(safe_div(((65197 * global_values.trace_length)), 65536))).
+ pow3258 = pow58 * pow3257; // pow(trace_generator, &(safe_div(((32599 * global_values.trace_length)), 32768))).
+ pow3259 = pow58 * pow3258; // pow(trace_generator, &(safe_div(((65199 * global_values.trace_length)), 65536))).
+ pow3260 = pow58 * pow3259; // pow(trace_generator, &(safe_div(((4075 * global_values.trace_length)), 4096))).
+ pow3261 = pow58 * pow3260; // pow(trace_generator, &(safe_div(((65201 * global_values.trace_length)), 65536))).
+ pow3262 = pow58 * pow3261; // pow(trace_generator, &(safe_div(((32601 * global_values.trace_length)), 32768))).
+ pow3263 = pow58 * pow3262; // pow(trace_generator, &(safe_div(((65203 * global_values.trace_length)), 65536))).
+ pow3264 = pow58 * pow3263; // pow(trace_generator, &(safe_div(((16301 * global_values.trace_length)), 16384))).
+ pow3265 = pow58 * pow3264; // pow(trace_generator, &(safe_div(((65205 * global_values.trace_length)), 65536))).
+ pow3266 = pow58 * pow3265; // pow(trace_generator, &(safe_div(((32603 * global_values.trace_length)), 32768))).
+ pow3267 = pow58 * pow3266; // pow(trace_generator, &(safe_div(((65207 * global_values.trace_length)), 65536))).
+ pow3268 = pow58 * pow3267; // pow(trace_generator, &(safe_div(((8151 * global_values.trace_length)), 8192))).
+ pow3269 = pow58 * pow3268; // pow(trace_generator, &(safe_div(((65209 * global_values.trace_length)), 65536))).
+ pow3270 = pow58 * pow3269; // pow(trace_generator, &(safe_div(((32605 * global_values.trace_length)), 32768))).
+ pow3271 = pow58 * pow3270; // pow(trace_generator, &(safe_div(((65211 * global_values.trace_length)), 65536))).
+ pow3272 = pow58 * pow3271; // pow(trace_generator, &(safe_div(((16303 * global_values.trace_length)), 16384))).
+ pow3273 = pow58 * pow3272; // pow(trace_generator, &(safe_div(((65213 * global_values.trace_length)), 65536))).
+ pow3274 = pow67 * pow3273; // pow(trace_generator, &(safe_div(((1019 * global_values.trace_length)), 1024))).
+ pow3275 = pow58 * pow3274; // pow(trace_generator, &(safe_div(((65217 * global_values.trace_length)), 65536))).
+ pow3276 = pow58 * pow3275; // pow(trace_generator, &(safe_div(((32609 * global_values.trace_length)), 32768))).
+ pow3277 = pow58 * pow3276; // pow(trace_generator, &(safe_div(((65219 * global_values.trace_length)), 65536))).
+ pow3278 = pow58 * pow3277; // pow(trace_generator, &(safe_div(((16305 * global_values.trace_length)), 16384))).
+ pow3279 = pow58 * pow3278; // pow(trace_generator, &(safe_div(((65221 * global_values.trace_length)), 65536))).
+ pow3280 = pow58 * pow3279; // pow(trace_generator, &(safe_div(((32611 * global_values.trace_length)), 32768))).
+ pow3281 = pow58 * pow3280; // pow(trace_generator, &(safe_div(((65223 * global_values.trace_length)), 65536))).
+ pow3282 = pow58 * pow3281; // pow(trace_generator, &(safe_div(((8153 * global_values.trace_length)), 8192))).
+ pow3283 = pow58 * pow3282; // pow(trace_generator, &(safe_div(((65225 * global_values.trace_length)), 65536))).
+ pow3284 = pow58 * pow3283; // pow(trace_generator, &(safe_div(((32613 * global_values.trace_length)), 32768))).
+ pow3285 = pow58 * pow3284; // pow(trace_generator, &(safe_div(((65227 * global_values.trace_length)), 65536))).
+ pow3286 = pow58 * pow3285; // pow(trace_generator, &(safe_div(((16307 * global_values.trace_length)), 16384))).
+ pow3287 = pow58 * pow3286; // pow(trace_generator, &(safe_div(((65229 * global_values.trace_length)), 65536))).
+ pow3288 = pow58 * pow3287; // pow(trace_generator, &(safe_div(((32615 * global_values.trace_length)), 32768))).
+ pow3289 = pow58 * pow3288; // pow(trace_generator, &(safe_div(((65231 * global_values.trace_length)), 65536))).
+ pow3290 = pow58 * pow3289; // pow(trace_generator, &(safe_div(((4077 * global_values.trace_length)), 4096))).
+ pow3291 = pow58 * pow3290; // pow(trace_generator, &(safe_div(((65233 * global_values.trace_length)), 65536))).
+ pow3292 = pow58 * pow3291; // pow(trace_generator, &(safe_div(((32617 * global_values.trace_length)), 32768))).
+ pow3293 = pow58 * pow3292; // pow(trace_generator, &(safe_div(((65235 * global_values.trace_length)), 65536))).
+ pow3294 = pow58 * pow3293; // pow(trace_generator, &(safe_div(((16309 * global_values.trace_length)), 16384))).
+ pow3295 = pow58 * pow3294; // pow(trace_generator, &(safe_div(((65237 * global_values.trace_length)), 65536))).
+ pow3296 = pow58 * pow3295; // pow(trace_generator, &(safe_div(((32619 * global_values.trace_length)), 32768))).
+ pow3297 = pow58 * pow3296; // pow(trace_generator, &(safe_div(((65239 * global_values.trace_length)), 65536))).
+ pow3298 = pow58 * pow3297; // pow(trace_generator, &(safe_div(((8155 * global_values.trace_length)), 8192))).
+ pow3299 = pow58 * pow3298; // pow(trace_generator, &(safe_div(((65241 * global_values.trace_length)), 65536))).
+ pow3300 = pow58 * pow3299; // pow(trace_generator, &(safe_div(((32621 * global_values.trace_length)), 32768))).
+ pow3301 = pow58 * pow3300; // pow(trace_generator, &(safe_div(((65243 * global_values.trace_length)), 65536))).
+ pow3302 = pow58 * pow3301; // pow(trace_generator, &(safe_div(((16311 * global_values.trace_length)), 16384))).
+ pow3303 = pow58 * pow3302; // pow(trace_generator, &(safe_div(((65245 * global_values.trace_length)), 65536))).
+ pow3304 = pow67 * pow3303; // pow(trace_generator, &(safe_div(((2039 * global_values.trace_length)), 2048))).
+ pow3305 = pow58 * pow3304; // pow(trace_generator, &(safe_div(((65249 * global_values.trace_length)), 65536))).
+ pow3306 = pow58 * pow3305; // pow(trace_generator, &(safe_div(((32625 * global_values.trace_length)), 32768))).
+ pow3307 = pow58 * pow3306; // pow(trace_generator, &(safe_div(((65251 * global_values.trace_length)), 65536))).
+ pow3308 = pow58 * pow3307; // pow(trace_generator, &(safe_div(((16313 * global_values.trace_length)), 16384))).
+ pow3309 = pow58 * pow3308; // pow(trace_generator, &(safe_div(((65253 * global_values.trace_length)), 65536))).
+ pow3310 = pow58 * pow3309; // pow(trace_generator, &(safe_div(((32627 * global_values.trace_length)), 32768))).
+ pow3311 = pow58 * pow3310; // pow(trace_generator, &(safe_div(((65255 * global_values.trace_length)), 65536))).
+ pow3312 = pow58 * pow3311; // pow(trace_generator, &(safe_div(((8157 * global_values.trace_length)), 8192))).
+ pow3313 = pow58 * pow3312; // pow(trace_generator, &(safe_div(((65257 * global_values.trace_length)), 65536))).
+ pow3314 = pow58 * pow3313; // pow(trace_generator, &(safe_div(((32629 * global_values.trace_length)), 32768))).
+ pow3315 = pow58 * pow3314; // pow(trace_generator, &(safe_div(((65259 * global_values.trace_length)), 65536))).
+ pow3316 = pow58 * pow3315; // pow(trace_generator, &(safe_div(((16315 * global_values.trace_length)), 16384))).
+ pow3317 = pow58 * pow3316; // pow(trace_generator, &(safe_div(((65261 * global_values.trace_length)), 65536))).
+ pow3318 = pow58 * pow3317; // pow(trace_generator, &(safe_div(((32631 * global_values.trace_length)), 32768))).
+ pow3319 = pow58 * pow3318; // pow(trace_generator, &(safe_div(((65263 * global_values.trace_length)), 65536))).
+ pow3320 = pow58 * pow3319; // pow(trace_generator, &(safe_div(((4079 * global_values.trace_length)), 4096))).
+ pow3321 = pow58 * pow3320; // pow(trace_generator, &(safe_div(((65265 * global_values.trace_length)), 65536))).
+ pow3322 = pow58 * pow3321; // pow(trace_generator, &(safe_div(((32633 * global_values.trace_length)), 32768))).
+ pow3323 = pow58 * pow3322; // pow(trace_generator, &(safe_div(((65267 * global_values.trace_length)), 65536))).
+ pow3324 = pow58 * pow3323; // pow(trace_generator, &(safe_div(((16317 * global_values.trace_length)), 16384))).
+ pow3325 = pow58 * pow3324; // pow(trace_generator, &(safe_div(((65269 * global_values.trace_length)), 65536))).
+ pow3326 = pow58 * pow3325; // pow(trace_generator, &(safe_div(((32635 * global_values.trace_length)), 32768))).
+ pow3327 = pow58 * pow3326; // pow(trace_generator, &(safe_div(((65271 * global_values.trace_length)), 65536))).
+ pow3328 = pow58 * pow3327; // pow(trace_generator, &(safe_div(((8159 * global_values.trace_length)), 8192))).
+ pow3329 = pow58 * pow3328; // pow(trace_generator, &(safe_div(((65273 * global_values.trace_length)), 65536))).
+ pow3330 = pow58 * pow3329; // pow(trace_generator, &(safe_div(((32637 * global_values.trace_length)), 32768))).
+ pow3331 = pow58 * pow3330; // pow(trace_generator, &(safe_div(((65275 * global_values.trace_length)), 65536))).
+ pow3332 = pow58 * pow3331; // pow(trace_generator, &(safe_div(((16319 * global_values.trace_length)), 16384))).
+ pow3333 = pow58 * pow3332; // pow(trace_generator, &(safe_div(((65277 * global_values.trace_length)), 65536))).
+ pow3334 = pow67 * pow3333; // pow(trace_generator, &(safe_div(((255 * global_values.trace_length)), 256))).
+ pow3335 = pow58 * pow3334; // pow(trace_generator, &(safe_div(((65281 * global_values.trace_length)), 65536))).
+ pow3336 = pow58 * pow3335; // pow(trace_generator, &(safe_div(((32641 * global_values.trace_length)), 32768))).
+ pow3337 = pow58 * pow3336; // pow(trace_generator, &(safe_div(((65283 * global_values.trace_length)), 65536))).
+ pow3338 = pow58 * pow3337; // pow(trace_generator, &(safe_div(((16321 * global_values.trace_length)), 16384))).
+ pow3339 = pow58 * pow3338; // pow(trace_generator, &(safe_div(((65285 * global_values.trace_length)), 65536))).
+ pow3340 = pow58 * pow3339; // pow(trace_generator, &(safe_div(((32643 * global_values.trace_length)), 32768))).
+ pow3341 = pow58 * pow3340; // pow(trace_generator, &(safe_div(((65287 * global_values.trace_length)), 65536))).
+ pow3342 = pow58 * pow3341; // pow(trace_generator, &(safe_div(((8161 * global_values.trace_length)), 8192))).
+ pow3343 = pow58 * pow3342; // pow(trace_generator, &(safe_div(((65289 * global_values.trace_length)), 65536))).
+ pow3344 = pow58 * pow3343; // pow(trace_generator, &(safe_div(((32645 * global_values.trace_length)), 32768))).
+ pow3345 = pow58 * pow3344; // pow(trace_generator, &(safe_div(((65291 * global_values.trace_length)), 65536))).
+ pow3346 = pow58 * pow3345; // pow(trace_generator, &(safe_div(((16323 * global_values.trace_length)), 16384))).
+ pow3347 = pow58 * pow3346; // pow(trace_generator, &(safe_div(((65293 * global_values.trace_length)), 65536))).
+ pow3348 = pow58 * pow3347; // pow(trace_generator, &(safe_div(((32647 * global_values.trace_length)), 32768))).
+ pow3349 = pow58 * pow3348; // pow(trace_generator, &(safe_div(((65295 * global_values.trace_length)), 65536))).
+ pow3350 = pow58 * pow3349; // pow(trace_generator, &(safe_div(((4081 * global_values.trace_length)), 4096))).
+ pow3351 = pow58 * pow3350; // pow(trace_generator, &(safe_div(((65297 * global_values.trace_length)), 65536))).
+ pow3352 = pow58 * pow3351; // pow(trace_generator, &(safe_div(((32649 * global_values.trace_length)), 32768))).
+ pow3353 = pow58 * pow3352; // pow(trace_generator, &(safe_div(((65299 * global_values.trace_length)), 65536))).
+ pow3354 = pow58 * pow3353; // pow(trace_generator, &(safe_div(((16325 * global_values.trace_length)), 16384))).
+ pow3355 = pow58 * pow3354; // pow(trace_generator, &(safe_div(((65301 * global_values.trace_length)), 65536))).
+ pow3356 = pow58 * pow3355; // pow(trace_generator, &(safe_div(((32651 * global_values.trace_length)), 32768))).
+ pow3357 = pow58 * pow3356; // pow(trace_generator, &(safe_div(((65303 * global_values.trace_length)), 65536))).
+ pow3358 = pow58 * pow3357; // pow(trace_generator, &(safe_div(((8163 * global_values.trace_length)), 8192))).
+ pow3359 = pow58 * pow3358; // pow(trace_generator, &(safe_div(((65305 * global_values.trace_length)), 65536))).
+ pow3360 = pow58 * pow3359; // pow(trace_generator, &(safe_div(((32653 * global_values.trace_length)), 32768))).
+ pow3361 = pow58 * pow3360; // pow(trace_generator, &(safe_div(((65307 * global_values.trace_length)), 65536))).
+ pow3362 = pow58 * pow3361; // pow(trace_generator, &(safe_div(((16327 * global_values.trace_length)), 16384))).
+ pow3363 = pow58 * pow3362; // pow(trace_generator, &(safe_div(((65309 * global_values.trace_length)), 65536))).
+ pow3364 = pow67 * pow3363; // pow(trace_generator, &(safe_div(((2041 * global_values.trace_length)), 2048))).
+ pow3365 = pow58 * pow3364; // pow(trace_generator, &(safe_div(((65313 * global_values.trace_length)), 65536))).
+ pow3366 = pow58 * pow3365; // pow(trace_generator, &(safe_div(((32657 * global_values.trace_length)), 32768))).
+ pow3367 = pow58 * pow3366; // pow(trace_generator, &(safe_div(((65315 * global_values.trace_length)), 65536))).
+ pow3368 = pow58 * pow3367; // pow(trace_generator, &(safe_div(((16329 * global_values.trace_length)), 16384))).
+ pow3369 = pow58 * pow3368; // pow(trace_generator, &(safe_div(((65317 * global_values.trace_length)), 65536))).
+ pow3370 = pow58 * pow3369; // pow(trace_generator, &(safe_div(((32659 * global_values.trace_length)), 32768))).
+ pow3371 = pow58 * pow3370; // pow(trace_generator, &(safe_div(((65319 * global_values.trace_length)), 65536))).
+ pow3372 = pow58 * pow3371; // pow(trace_generator, &(safe_div(((8165 * global_values.trace_length)), 8192))).
+ pow3373 = pow58 * pow3372; // pow(trace_generator, &(safe_div(((65321 * global_values.trace_length)), 65536))).
+ pow3374 = pow58 * pow3373; // pow(trace_generator, &(safe_div(((32661 * global_values.trace_length)), 32768))).
+ pow3375 = pow58 * pow3374; // pow(trace_generator, &(safe_div(((65323 * global_values.trace_length)), 65536))).
+ pow3376 = pow58 * pow3375; // pow(trace_generator, &(safe_div(((16331 * global_values.trace_length)), 16384))).
+ pow3377 = pow58 * pow3376; // pow(trace_generator, &(safe_div(((65325 * global_values.trace_length)), 65536))).
+ pow3378 = pow58 * pow3377; // pow(trace_generator, &(safe_div(((32663 * global_values.trace_length)), 32768))).
+ pow3379 = pow58 * pow3378; // pow(trace_generator, &(safe_div(((65327 * global_values.trace_length)), 65536))).
+ pow3380 = pow58 * pow3379; // pow(trace_generator, &(safe_div(((4083 * global_values.trace_length)), 4096))).
+ pow3381 = pow58 * pow3380; // pow(trace_generator, &(safe_div(((65329 * global_values.trace_length)), 65536))).
+ pow3382 = pow58 * pow3381; // pow(trace_generator, &(safe_div(((32665 * global_values.trace_length)), 32768))).
+ pow3383 = pow58 * pow3382; // pow(trace_generator, &(safe_div(((65331 * global_values.trace_length)), 65536))).
+ pow3384 = pow58 * pow3383; // pow(trace_generator, &(safe_div(((16333 * global_values.trace_length)), 16384))).
+ pow3385 = pow58 * pow3384; // pow(trace_generator, &(safe_div(((65333 * global_values.trace_length)), 65536))).
+ pow3386 = pow58 * pow3385; // pow(trace_generator, &(safe_div(((32667 * global_values.trace_length)), 32768))).
+ pow3387 = pow58 * pow3386; // pow(trace_generator, &(safe_div(((65335 * global_values.trace_length)), 65536))).
+ pow3388 = pow58 * pow3387; // pow(trace_generator, &(safe_div(((8167 * global_values.trace_length)), 8192))).
+ pow3389 = pow58 * pow3388; // pow(trace_generator, &(safe_div(((65337 * global_values.trace_length)), 65536))).
+ pow3390 = pow58 * pow3389; // pow(trace_generator, &(safe_div(((32669 * global_values.trace_length)), 32768))).
+ pow3391 = pow58 * pow3390; // pow(trace_generator, &(safe_div(((65339 * global_values.trace_length)), 65536))).
+ pow3392 = pow58 * pow3391; // pow(trace_generator, &(safe_div(((16335 * global_values.trace_length)), 16384))).
+ pow3393 = pow58 * pow3392; // pow(trace_generator, &(safe_div(((65341 * global_values.trace_length)), 65536))).
+ pow3394 = pow67 * pow3393; // pow(trace_generator, &(safe_div(((1021 * global_values.trace_length)), 1024))).
+
+ domain37 = pow49 - 1;
+ domain38 = pow48 - 1;
+ let mut temp = pow48 - pow850;
+ domain39 = temp * (domain38);
+ domain40 = pow47 - 1;
+ temp = pow46 - 1;
+ temp *= pow46 - pow126;
+ temp *= pow46 - pow186;
+ temp *= pow46 - pow246;
+ temp *= pow46 - pow306;
+ temp *= pow46 - pow366;
+ temp *= pow46 - pow426;
+ domain41 = temp * (pow46 - pow486);
+ temp = pow46 - pow546;
+ temp *= pow46 - pow606;
+ temp *= pow46 - pow666;
+ temp *= pow46 - pow726;
+ temp *= pow46 - pow786;
+ temp *= pow46 - pow816;
+ temp *= pow46 - pow817;
+ temp *= pow46 - pow818;
+ temp *= pow46 - pow819;
+ temp *= pow46 - pow843;
+ temp *= pow46 - pow844;
+ temp *= pow46 - pow845;
+ temp *= pow46 - pow846;
+ temp *= pow46 - pow847;
+ temp *= pow46 - pow848;
+ temp *= pow46 - pow849;
+ domain42 = temp * (domain41);
+ temp = pow46 - pow1086;
+ temp *= pow46 - pow1110;
+ temp *= pow46 - pow1111;
+ temp *= pow46 - pow1112;
+ temp *= pow46 - pow1113;
+ temp *= pow46 - pow1114;
+ temp *= pow46 - pow1115;
+ temp *= pow46 - pow1116;
+ temp *= pow46 - pow1117;
+ temp *= pow46 - pow1118;
+ temp *= pow46 - pow1119;
+ temp *= pow46 - pow1120;
+ temp *= pow46 - pow1121;
+ temp *= pow46 - pow1122;
+ temp *= pow46 - pow1123;
+ temp *= pow46 - pow1124;
+ temp *= pow46 - pow1125;
+ temp *= pow46 - pow1149;
+ temp *= pow46 - pow1150;
+ temp *= pow46 - pow1151;
+ temp *= pow46 - pow1152;
+ temp *= pow46 - pow1153;
+ temp *= pow46 - pow1154;
+ temp *= pow46 - pow1155;
+ temp *= pow46 - pow1392;
+ temp *= pow46 - pow1416;
+ temp *= pow46 - pow1417;
+ temp *= pow46 - pow1418;
+ temp *= pow46 - pow1419;
+ temp *= pow46 - pow1420;
+ temp *= pow46 - pow1421;
+ temp *= pow46 - pow1422;
+ temp *= pow46 - pow1423;
+ temp *= pow46 - pow1424;
+ temp *= pow46 - pow1425;
+ temp *= pow46 - pow1426;
+ temp *= pow46 - pow1427;
+ temp *= pow46 - pow1428;
+ temp *= pow46 - pow1429;
+ temp *= pow46 - pow1430;
+ temp *= pow46 - pow1431;
+ temp *= pow46 - pow1455;
+ temp *= pow46 - pow1456;
+ temp *= pow46 - pow1457;
+ temp *= pow46 - pow1458;
+ temp *= pow46 - pow1459;
+ temp *= pow46 - pow1460;
+ temp *= pow46 - pow1461;
+ temp *= pow46 - pow1650;
+ temp *= pow46 - pow1651;
+ temp *= pow46 - pow1652;
+ temp *= pow46 - pow1653;
+ temp *= pow46 - pow1654;
+ temp *= pow46 - pow1655;
+ temp *= pow46 - pow1656;
+ temp *= pow46 - pow1657;
+ temp *= pow46 - pow1658;
+ temp *= pow46 - pow1659;
+ temp *= pow46 - pow1660;
+ temp *= pow46 - pow1661;
+ temp *= pow46 - pow1662;
+ temp *= pow46 - pow1663;
+ temp *= pow46 - pow1664;
+ temp *= pow46 - pow1665;
+ temp *= pow46 - pow1666;
+ temp *= pow46 - pow1690;
+ temp *= pow46 - pow1691;
+ temp *= pow46 - pow1692;
+ temp *= pow46 - pow1693;
+ temp *= pow46 - pow1694;
+ temp *= pow46 - pow1695;
+ temp *= pow46 - pow1696;
+ temp *= pow46 - pow1841;
+ temp *= pow46 - pow1865;
+ temp *= pow46 - pow1866;
+ temp *= pow46 - pow1867;
+ temp *= pow46 - pow1868;
+ temp *= pow46 - pow1869;
+ temp *= pow46 - pow1870;
+ temp *= pow46 - pow1871;
+ temp *= pow46 - pow1872;
+ temp *= pow46 - pow1873;
+ temp *= pow46 - pow1874;
+ temp *= pow46 - pow1875;
+ temp *= pow46 - pow1876;
+ temp *= pow46 - pow1877;
+ temp *= pow46 - pow1878;
+ temp *= pow46 - pow1879;
+ temp *= pow46 - pow1880;
+ temp *= pow46 - pow1904;
+ temp *= pow46 - pow1905;
+ temp *= pow46 - pow1906;
+ temp *= pow46 - pow1907;
+ temp *= pow46 - pow1908;
+ temp *= pow46 - pow1909;
+ temp *= pow46 - pow1910;
+ domain43 = temp * (domain42);
+ temp = pow46 - pow850;
+ temp *= pow46 - pow874;
+ temp *= pow46 - pow875;
+ temp *= pow46 - pow876;
+ temp *= pow46 - pow877;
+ temp *= pow46 - pow878;
+ temp *= pow46 - pow879;
+ temp *= pow46 - pow880;
+ temp *= pow46 - pow881;
+ temp *= pow46 - pow882;
+ temp *= pow46 - pow883;
+ temp *= pow46 - pow884;
+ temp *= pow46 - pow885;
+ temp *= pow46 - pow886;
+ temp *= pow46 - pow887;
+ temp *= pow46 - pow888;
+ temp *= pow46 - pow889;
+ temp *= pow46 - pow913;
+ temp *= pow46 - pow914;
+ temp *= pow46 - pow915;
+ temp *= pow46 - pow916;
+ temp *= pow46 - pow917;
+ temp *= pow46 - pow918;
+ temp *= pow46 - pow919;
+ temp *= pow46 - pow920;
+ temp *= pow46 - pow944;
+ temp *= pow46 - pow945;
+ temp *= pow46 - pow946;
+ temp *= pow46 - pow947;
+ temp *= pow46 - pow948;
+ temp *= pow46 - pow949;
+ temp *= pow46 - pow950;
+ temp *= pow46 - pow951;
+ temp *= pow46 - pow952;
+ temp *= pow46 - pow953;
+ temp *= pow46 - pow954;
+ temp *= pow46 - pow955;
+ temp *= pow46 - pow956;
+ temp *= pow46 - pow957;
+ temp *= pow46 - pow958;
+ temp *= pow46 - pow959;
+ temp *= pow46 - pow983;
+ temp *= pow46 - pow984;
+ temp *= pow46 - pow985;
+ temp *= pow46 - pow986;
+ temp *= pow46 - pow987;
+ temp *= pow46 - pow988;
+ temp *= pow46 - pow989;
+ temp *= pow46 - pow1156;
+ temp *= pow46 - pow1180;
+ temp *= pow46 - pow1181;
+ temp *= pow46 - pow1182;
+ temp *= pow46 - pow1183;
+ temp *= pow46 - pow1184;
+ temp *= pow46 - pow1185;
+ temp *= pow46 - pow1186;
+ temp *= pow46 - pow1187;
+ temp *= pow46 - pow1188;
+ temp *= pow46 - pow1189;
+ temp *= pow46 - pow1190;
+ temp *= pow46 - pow1191;
+ temp *= pow46 - pow1192;
+ temp *= pow46 - pow1193;
+ temp *= pow46 - pow1194;
+ temp *= pow46 - pow1195;
+ temp *= pow46 - pow1219;
+ temp *= pow46 - pow1220;
+ temp *= pow46 - pow1221;
+ temp *= pow46 - pow1222;
+ temp *= pow46 - pow1223;
+ temp *= pow46 - pow1224;
+ temp *= pow46 - pow1225;
+ temp *= pow46 - pow1226;
+ temp *= pow46 - pow1250;
+ temp *= pow46 - pow1251;
+ temp *= pow46 - pow1252;
+ temp *= pow46 - pow1253;
+ temp *= pow46 - pow1254;
+ temp *= pow46 - pow1255;
+ temp *= pow46 - pow1256;
+ temp *= pow46 - pow1257;
+ temp *= pow46 - pow1258;
+ temp *= pow46 - pow1259;
+ temp *= pow46 - pow1260;
+ temp *= pow46 - pow1261;
+ temp *= pow46 - pow1262;
+ temp *= pow46 - pow1263;
+ temp *= pow46 - pow1264;
+ temp *= pow46 - pow1265;
+ temp *= pow46 - pow1289;
+ temp *= pow46 - pow1290;
+ temp *= pow46 - pow1291;
+ temp *= pow46 - pow1292;
+ temp *= pow46 - pow1293;
+ temp *= pow46 - pow1294;
+ temp *= pow46 - pow1295;
+ temp *= pow46 - pow1462;
+ temp *= pow46 - pow1486;
+ temp *= pow46 - pow1487;
+ temp *= pow46 - pow1488;
+ temp *= pow46 - pow1489;
+ temp *= pow46 - pow1490;
+ temp *= pow46 - pow1491;
+ temp *= pow46 - pow1492;
+ temp *= pow46 - pow1493;
+ temp *= pow46 - pow1494;
+ temp *= pow46 - pow1495;
+ temp *= pow46 - pow1496;
+ temp *= pow46 - pow1497;
+ temp *= pow46 - pow1498;
+ temp *= pow46 - pow1499;
+ temp *= pow46 - pow1500;
+ temp *= pow46 - pow1501;
+ temp *= pow46 - pow1525;
+ temp *= pow46 - pow1526;
+ temp *= pow46 - pow1527;
+ temp *= pow46 - pow1528;
+ temp *= pow46 - pow1529;
+ temp *= pow46 - pow1530;
+ temp *= pow46 - pow1531;
+ temp *= pow46 - pow1532;
+ temp *= pow46 - pow1556;
+ temp *= pow46 - pow1557;
+ temp *= pow46 - pow1558;
+ temp *= pow46 - pow1559;
+ temp *= pow46 - pow1560;
+ temp *= pow46 - pow1561;
+ temp *= pow46 - pow1562;
+ temp *= pow46 - pow1563;
+ temp *= pow46 - pow1564;
+ temp *= pow46 - pow1565;
+ temp *= pow46 - pow1566;
+ temp *= pow46 - pow1567;
+ temp *= pow46 - pow1568;
+ temp *= pow46 - pow1569;
+ temp *= pow46 - pow1570;
+ temp *= pow46 - pow1571;
+ temp *= pow46 - pow1595;
+ temp *= pow46 - pow1596;
+ temp *= pow46 - pow1597;
+ temp *= pow46 - pow1598;
+ temp *= pow46 - pow1599;
+ temp *= pow46 - pow1600;
+ temp *= pow46 - pow1601;
+ temp *= pow46 - pow1697;
+ temp *= pow46 - pow1698;
+ temp *= pow46 - pow1699;
+ temp *= pow46 - pow1700;
+ temp *= pow46 - pow1701;
+ temp *= pow46 - pow1702;
+ temp *= pow46 - pow1703;
+ temp *= pow46 - pow1704;
+ temp *= pow46 - pow1705;
+ temp *= pow46 - pow1706;
+ temp *= pow46 - pow1707;
+ temp *= pow46 - pow1708;
+ temp *= pow46 - pow1709;
+ temp *= pow46 - pow1710;
+ temp *= pow46 - pow1711;
+ temp *= pow46 - pow1712;
+ temp *= pow46 - pow1713;
+ temp *= pow46 - pow1714;
+ temp *= pow46 - pow1715;
+ temp *= pow46 - pow1716;
+ temp *= pow46 - pow1717;
+ temp *= pow46 - pow1718;
+ temp *= pow46 - pow1719;
+ temp *= pow46 - pow1720;
+ temp *= pow46 - pow1721;
+ temp *= pow46 - pow1722;
+ temp *= pow46 - pow1723;
+ temp *= pow46 - pow1724;
+ temp *= pow46 - pow1725;
+ temp *= pow46 - pow1726;
+ temp *= pow46 - pow1727;
+ temp *= pow46 - pow1728;
+ temp *= pow46 - pow1729;
+ temp *= pow46 - pow1730;
+ temp *= pow46 - pow1731;
+ temp *= pow46 - pow1732;
+ temp *= pow46 - pow1733;
+ temp *= pow46 - pow1734;
+ temp *= pow46 - pow1735;
+ temp *= pow46 - pow1736;
+ temp *= pow46 - pow1737;
+ temp *= pow46 - pow1738;
+ temp *= pow46 - pow1739;
+ temp *= pow46 - pow1740;
+ temp *= pow46 - pow1741;
+ temp *= pow46 - pow1742;
+ temp *= pow46 - pow1743;
+ temp *= pow46 - pow1744;
+ temp *= pow46 - pow1911;
+ temp *= pow46 - pow1935;
+ temp *= pow46 - pow1936;
+ temp *= pow46 - pow1937;
+ temp *= pow46 - pow1938;
+ temp *= pow46 - pow1939;
+ temp *= pow46 - pow1940;
+ temp *= pow46 - pow1941;
+ temp *= pow46 - pow1942;
+ temp *= pow46 - pow1943;
+ temp *= pow46 - pow1944;
+ temp *= pow46 - pow1945;
+ temp *= pow46 - pow1946;
+ temp *= pow46 - pow1947;
+ temp *= pow46 - pow1948;
+ temp *= pow46 - pow1949;
+ temp *= pow46 - pow1950;
+ temp *= pow46 - pow1974;
+ temp *= pow46 - pow1975;
+ temp *= pow46 - pow1976;
+ temp *= pow46 - pow1977;
+ temp *= pow46 - pow1978;
+ temp *= pow46 - pow1979;
+ temp *= pow46 - pow1980;
+ temp *= pow46 - pow1981;
+ temp *= pow46 - pow2005;
+ temp *= pow46 - pow2006;
+ temp *= pow46 - pow2007;
+ temp *= pow46 - pow2008;
+ temp *= pow46 - pow2009;
+ temp *= pow46 - pow2010;
+ temp *= pow46 - pow2011;
+ temp *= pow46 - pow2012;
+ temp *= pow46 - pow2013;
+ temp *= pow46 - pow2014;
+ temp *= pow46 - pow2015;
+ temp *= pow46 - pow2016;
+ temp *= pow46 - pow2017;
+ temp *= pow46 - pow2018;
+ temp *= pow46 - pow2019;
+ temp *= pow46 - pow2020;
+ temp *= pow46 - pow2044;
+ temp *= pow46 - pow2045;
+ temp *= pow46 - pow2046;
+ temp *= pow46 - pow2047;
+ temp *= pow46 - pow2048;
+ temp *= pow46 - pow2049;
+ temp *= pow46 - pow2050;
+ domain44 = temp * (domain43);
+ domain45 = pow45 - 1;
+ domain46 = pow44 - 1;
+ temp = pow44 - pow58;
+ domain47 = temp * (domain46);
+ temp = pow44 - pow51;
+ temp *= pow44 - pow52;
+ temp *= pow44 - pow53;
+ temp *= pow44 - pow54;
+ temp *= pow44 - pow55;
+ temp *= pow44 - pow56;
+ temp *= pow44 - pow57;
+ temp *= pow44 - pow59;
+ temp *= pow44 - pow60;
+ temp *= pow44 - pow61;
+ temp *= pow44 - pow62;
+ temp *= pow44 - pow63;
+ temp *= pow44 - pow64;
+ temp *= pow44 - pow65;
+ domain48 = temp * (domain47);
+ temp = pow44 - pow66;
+ temp *= pow44 - pow67;
+ temp *= pow44 - pow68;
+ temp *= pow44 - pow69;
+ temp *= pow44 - pow70;
+ temp *= pow44 - pow71;
+ domain49 = temp * (domain47);
+ temp = pow44 - pow72;
+ temp *= pow44 - pow73;
+ temp *= pow44 - pow74;
+ temp *= pow44 - pow75;
+ temp *= pow44 - pow76;
+ temp *= pow44 - pow77;
+ temp *= pow44 - pow78;
+ temp *= pow44 - pow79;
+ temp *= pow44 - pow80;
+ temp *= pow44 - pow81;
+ temp *= pow44 - pow82;
+ temp *= pow44 - pow83;
+ temp *= pow44 - pow84;
+ temp *= pow44 - pow85;
+ temp *= pow44 - pow86;
+ temp *= pow44 - pow87;
+ domain50 = temp * (domain49);
+ temp = pow44 - pow88;
+ temp *= pow44 - pow89;
+ temp *= pow44 - pow90;
+ temp *= pow44 - pow91;
+ temp *= pow44 - pow92;
+ temp *= pow44 - pow93;
+ domain51 = temp * (domain50);
+ temp = pow44 - pow94;
+ temp *= pow44 - pow95;
+ domain52 = temp * (domain51);
+ temp = pow44 - pow96;
+ temp *= pow44 - pow126;
+ temp *= pow44 - pow156;
+ temp *= pow44 - pow186;
+ temp *= pow44 - pow216;
+ temp *= pow44 - pow246;
+ temp *= pow44 - pow276;
+ temp *= pow44 - pow306;
+ temp *= pow44 - pow336;
+ temp *= pow44 - pow366;
+ temp *= pow44 - pow396;
+ temp *= pow44 - pow426;
+ temp *= pow44 - pow456;
+ temp *= pow44 - pow486;
+ temp *= pow44 - pow516;
+ temp *= pow44 - pow546;
+ temp *= pow44 - pow576;
+ temp *= pow44 - pow606;
+ temp *= pow44 - pow636;
+ temp *= pow44 - pow666;
+ temp *= pow44 - pow696;
+ temp *= pow44 - pow726;
+ temp *= pow44 - pow756;
+ domain53 = temp * (pow44 - pow786);
+ temp = pow44 - pow97;
+ temp *= pow44 - pow127;
+ temp *= pow44 - pow157;
+ temp *= pow44 - pow187;
+ temp *= pow44 - pow217;
+ temp *= pow44 - pow247;
+ temp *= pow44 - pow277;
+ temp *= pow44 - pow307;
+ temp *= pow44 - pow337;
+ temp *= pow44 - pow367;
+ temp *= pow44 - pow397;
+ temp *= pow44 - pow427;
+ temp *= pow44 - pow457;
+ temp *= pow44 - pow487;
+ temp *= pow44 - pow517;
+ temp *= pow44 - pow547;
+ temp *= pow44 - pow577;
+ temp *= pow44 - pow607;
+ temp *= pow44 - pow637;
+ temp *= pow44 - pow667;
+ temp *= pow44 - pow697;
+ temp *= pow44 - pow727;
+ temp *= pow44 - pow757;
+ temp *= pow44 - pow787;
+ domain54 = temp * (domain53);
+ temp = domain47;
+ domain55 = temp * (domain54);
+ temp = pow44 - pow98;
+ temp *= pow44 - pow99;
+ temp *= pow44 - pow100;
+ temp *= pow44 - pow101;
+ temp *= pow44 - pow102;
+ temp *= pow44 - pow103;
+ temp *= pow44 - pow104;
+ temp *= pow44 - pow105;
+ temp *= pow44 - pow106;
+ temp *= pow44 - pow107;
+ temp *= pow44 - pow108;
+ temp *= pow44 - pow109;
+ temp *= pow44 - pow110;
+ temp *= pow44 - pow111;
+ temp *= pow44 - pow112;
+ temp *= pow44 - pow113;
+ temp *= pow44 - pow114;
+ temp *= pow44 - pow115;
+ temp *= pow44 - pow116;
+ temp *= pow44 - pow117;
+ temp *= pow44 - pow118;
+ temp *= pow44 - pow119;
+ temp *= pow44 - pow120;
+ temp *= pow44 - pow121;
+ temp *= pow44 - pow122;
+ temp *= pow44 - pow123;
+ temp *= pow44 - pow124;
+ temp *= pow44 - pow125;
+ temp *= pow44 - pow128;
+ temp *= pow44 - pow129;
+ temp *= pow44 - pow130;
+ temp *= pow44 - pow131;
+ temp *= pow44 - pow132;
+ temp *= pow44 - pow133;
+ temp *= pow44 - pow134;
+ temp *= pow44 - pow135;
+ temp *= pow44 - pow136;
+ temp *= pow44 - pow137;
+ temp *= pow44 - pow138;
+ temp *= pow44 - pow139;
+ temp *= pow44 - pow140;
+ temp *= pow44 - pow141;
+ temp *= pow44 - pow142;
+ temp *= pow44 - pow143;
+ temp *= pow44 - pow144;
+ temp *= pow44 - pow145;
+ temp *= pow44 - pow146;
+ temp *= pow44 - pow147;
+ temp *= pow44 - pow148;
+ temp *= pow44 - pow149;
+ temp *= pow44 - pow150;
+ temp *= pow44 - pow151;
+ temp *= pow44 - pow152;
+ temp *= pow44 - pow153;
+ temp *= pow44 - pow154;
+ temp *= pow44 - pow155;
+ temp *= pow44 - pow158;
+ temp *= pow44 - pow159;
+ temp *= pow44 - pow160;
+ temp *= pow44 - pow161;
+ temp *= pow44 - pow162;
+ temp *= pow44 - pow163;
+ temp *= pow44 - pow164;
+ temp *= pow44 - pow165;
+ temp *= pow44 - pow166;
+ temp *= pow44 - pow167;
+ temp *= pow44 - pow168;
+ temp *= pow44 - pow169;
+ temp *= pow44 - pow170;
+ temp *= pow44 - pow171;
+ temp *= pow44 - pow172;
+ temp *= pow44 - pow173;
+ temp *= pow44 - pow174;
+ temp *= pow44 - pow175;
+ temp *= pow44 - pow176;
+ temp *= pow44 - pow177;
+ temp *= pow44 - pow178;
+ temp *= pow44 - pow179;
+ temp *= pow44 - pow180;
+ temp *= pow44 - pow181;
+ temp *= pow44 - pow182;
+ temp *= pow44 - pow183;
+ temp *= pow44 - pow184;
+ temp *= pow44 - pow185;
+ temp *= pow44 - pow188;
+ temp *= pow44 - pow189;
+ temp *= pow44 - pow190;
+ temp *= pow44 - pow191;
+ temp *= pow44 - pow192;
+ temp *= pow44 - pow193;
+ temp *= pow44 - pow194;
+ temp *= pow44 - pow195;
+ temp *= pow44 - pow196;
+ temp *= pow44 - pow197;
+ temp *= pow44 - pow198;
+ temp *= pow44 - pow199;
+ temp *= pow44 - pow200;
+ temp *= pow44 - pow201;
+ temp *= pow44 - pow202;
+ temp *= pow44 - pow203;
+ temp *= pow44 - pow204;
+ temp *= pow44 - pow205;
+ temp *= pow44 - pow206;
+ temp *= pow44 - pow207;
+ temp *= pow44 - pow208;
+ temp *= pow44 - pow209;
+ temp *= pow44 - pow210;
+ temp *= pow44 - pow211;
+ temp *= pow44 - pow212;
+ temp *= pow44 - pow213;
+ temp *= pow44 - pow214;
+ temp *= pow44 - pow215;
+ temp *= pow44 - pow218;
+ temp *= pow44 - pow219;
+ temp *= pow44 - pow220;
+ temp *= pow44 - pow221;
+ temp *= pow44 - pow222;
+ temp *= pow44 - pow223;
+ temp *= pow44 - pow224;
+ temp *= pow44 - pow225;
+ temp *= pow44 - pow226;
+ temp *= pow44 - pow227;
+ temp *= pow44 - pow228;
+ temp *= pow44 - pow229;
+ temp *= pow44 - pow230;
+ temp *= pow44 - pow231;
+ temp *= pow44 - pow232;
+ temp *= pow44 - pow233;
+ temp *= pow44 - pow234;
+ temp *= pow44 - pow235;
+ temp *= pow44 - pow236;
+ temp *= pow44 - pow237;
+ temp *= pow44 - pow238;
+ temp *= pow44 - pow239;
+ temp *= pow44 - pow240;
+ temp *= pow44 - pow241;
+ temp *= pow44 - pow242;
+ temp *= pow44 - pow243;
+ temp *= pow44 - pow244;
+ temp *= pow44 - pow245;
+ temp *= pow44 - pow248;
+ temp *= pow44 - pow249;
+ temp *= pow44 - pow250;
+ temp *= pow44 - pow251;
+ temp *= pow44 - pow252;
+ temp *= pow44 - pow253;
+ temp *= pow44 - pow254;
+ temp *= pow44 - pow255;
+ temp *= pow44 - pow256;
+ temp *= pow44 - pow257;
+ temp *= pow44 - pow258;
+ temp *= pow44 - pow259;
+ temp *= pow44 - pow260;
+ temp *= pow44 - pow261;
+ temp *= pow44 - pow262;
+ temp *= pow44 - pow263;
+ temp *= pow44 - pow264;
+ temp *= pow44 - pow265;
+ temp *= pow44 - pow266;
+ temp *= pow44 - pow267;
+ temp *= pow44 - pow268;
+ temp *= pow44 - pow269;
+ temp *= pow44 - pow270;
+ temp *= pow44 - pow271;
+ temp *= pow44 - pow272;
+ temp *= pow44 - pow273;
+ temp *= pow44 - pow274;
+ temp *= pow44 - pow275;
+ temp *= pow44 - pow278;
+ temp *= pow44 - pow279;
+ temp *= pow44 - pow280;
+ temp *= pow44 - pow281;
+ temp *= pow44 - pow282;
+ temp *= pow44 - pow283;
+ temp *= pow44 - pow284;
+ temp *= pow44 - pow285;
+ temp *= pow44 - pow286;
+ temp *= pow44 - pow287;
+ temp *= pow44 - pow288;
+ temp *= pow44 - pow289;
+ temp *= pow44 - pow290;
+ temp *= pow44 - pow291;
+ temp *= pow44 - pow292;
+ temp *= pow44 - pow293;
+ temp *= pow44 - pow294;
+ temp *= pow44 - pow295;
+ temp *= pow44 - pow296;
+ temp *= pow44 - pow297;
+ temp *= pow44 - pow298;
+ temp *= pow44 - pow299;
+ temp *= pow44 - pow300;
+ temp *= pow44 - pow301;
+ temp *= pow44 - pow302;
+ temp *= pow44 - pow303;
+ temp *= pow44 - pow304;
+ temp *= pow44 - pow305;
+ temp *= pow44 - pow308;
+ temp *= pow44 - pow309;
+ temp *= pow44 - pow310;
+ temp *= pow44 - pow311;
+ temp *= pow44 - pow312;
+ temp *= pow44 - pow313;
+ temp *= pow44 - pow314;
+ temp *= pow44 - pow315;
+ temp *= pow44 - pow316;
+ temp *= pow44 - pow317;
+ temp *= pow44 - pow318;
+ temp *= pow44 - pow319;
+ temp *= pow44 - pow320;
+ temp *= pow44 - pow321;
+ temp *= pow44 - pow322;
+ temp *= pow44 - pow323;
+ temp *= pow44 - pow324;
+ temp *= pow44 - pow325;
+ temp *= pow44 - pow326;
+ temp *= pow44 - pow327;
+ temp *= pow44 - pow328;
+ temp *= pow44 - pow329;
+ temp *= pow44 - pow330;
+ temp *= pow44 - pow331;
+ temp *= pow44 - pow332;
+ temp *= pow44 - pow333;
+ temp *= pow44 - pow334;
+ temp *= pow44 - pow335;
+ temp *= pow44 - pow338;
+ temp *= pow44 - pow339;
+ temp *= pow44 - pow340;
+ temp *= pow44 - pow341;
+ temp *= pow44 - pow342;
+ temp *= pow44 - pow343;
+ temp *= pow44 - pow344;
+ temp *= pow44 - pow345;
+ temp *= pow44 - pow346;
+ temp *= pow44 - pow347;
+ temp *= pow44 - pow348;
+ temp *= pow44 - pow349;
+ temp *= pow44 - pow350;
+ temp *= pow44 - pow351;
+ temp *= pow44 - pow352;
+ temp *= pow44 - pow353;
+ temp *= pow44 - pow354;
+ temp *= pow44 - pow355;
+ temp *= pow44 - pow356;
+ temp *= pow44 - pow357;
+ temp *= pow44 - pow358;
+ temp *= pow44 - pow359;
+ temp *= pow44 - pow360;
+ temp *= pow44 - pow361;
+ temp *= pow44 - pow362;
+ temp *= pow44 - pow363;
+ temp *= pow44 - pow364;
+ temp *= pow44 - pow365;
+ temp *= pow44 - pow368;
+ temp *= pow44 - pow369;
+ temp *= pow44 - pow370;
+ temp *= pow44 - pow371;
+ temp *= pow44 - pow372;
+ temp *= pow44 - pow373;
+ temp *= pow44 - pow374;
+ temp *= pow44 - pow375;
+ temp *= pow44 - pow376;
+ temp *= pow44 - pow377;
+ temp *= pow44 - pow378;
+ temp *= pow44 - pow379;
+ temp *= pow44 - pow380;
+ temp *= pow44 - pow381;
+ temp *= pow44 - pow382;
+ temp *= pow44 - pow383;
+ temp *= pow44 - pow384;
+ temp *= pow44 - pow385;
+ temp *= pow44 - pow386;
+ temp *= pow44 - pow387;
+ temp *= pow44 - pow388;
+ temp *= pow44 - pow389;
+ temp *= pow44 - pow390;
+ temp *= pow44 - pow391;
+ temp *= pow44 - pow392;
+ temp *= pow44 - pow393;
+ temp *= pow44 - pow394;
+ temp *= pow44 - pow395;
+ temp *= pow44 - pow398;
+ temp *= pow44 - pow399;
+ temp *= pow44 - pow400;
+ temp *= pow44 - pow401;
+ temp *= pow44 - pow402;
+ temp *= pow44 - pow403;
+ temp *= pow44 - pow404;
+ temp *= pow44 - pow405;
+ temp *= pow44 - pow406;
+ temp *= pow44 - pow407;
+ temp *= pow44 - pow408;
+ temp *= pow44 - pow409;
+ temp *= pow44 - pow410;
+ temp *= pow44 - pow411;
+ temp *= pow44 - pow412;
+ temp *= pow44 - pow413;
+ temp *= pow44 - pow414;
+ temp *= pow44 - pow415;
+ temp *= pow44 - pow416;
+ temp *= pow44 - pow417;
+ temp *= pow44 - pow418;
+ temp *= pow44 - pow419;
+ temp *= pow44 - pow420;
+ temp *= pow44 - pow421;
+ temp *= pow44 - pow422;
+ temp *= pow44 - pow423;
+ temp *= pow44 - pow424;
+ temp *= pow44 - pow425;
+ temp *= pow44 - pow428;
+ temp *= pow44 - pow429;
+ temp *= pow44 - pow430;
+ temp *= pow44 - pow431;
+ temp *= pow44 - pow432;
+ temp *= pow44 - pow433;
+ temp *= pow44 - pow434;
+ temp *= pow44 - pow435;
+ temp *= pow44 - pow436;
+ temp *= pow44 - pow437;
+ temp *= pow44 - pow438;
+ temp *= pow44 - pow439;
+ temp *= pow44 - pow440;
+ temp *= pow44 - pow441;
+ temp *= pow44 - pow442;
+ temp *= pow44 - pow443;
+ temp *= pow44 - pow444;
+ temp *= pow44 - pow445;
+ temp *= pow44 - pow446;
+ temp *= pow44 - pow447;
+ temp *= pow44 - pow448;
+ temp *= pow44 - pow449;
+ temp *= pow44 - pow450;
+ temp *= pow44 - pow451;
+ temp *= pow44 - pow452;
+ temp *= pow44 - pow453;
+ temp *= pow44 - pow454;
+ temp *= pow44 - pow455;
+ temp *= pow44 - pow458;
+ temp *= pow44 - pow459;
+ temp *= pow44 - pow460;
+ temp *= pow44 - pow461;
+ temp *= pow44 - pow462;
+ temp *= pow44 - pow463;
+ temp *= pow44 - pow464;
+ temp *= pow44 - pow465;
+ temp *= pow44 - pow466;
+ temp *= pow44 - pow467;
+ temp *= pow44 - pow468;
+ temp *= pow44 - pow469;
+ temp *= pow44 - pow470;
+ temp *= pow44 - pow471;
+ temp *= pow44 - pow472;
+ temp *= pow44 - pow473;
+ temp *= pow44 - pow474;
+ temp *= pow44 - pow475;
+ temp *= pow44 - pow476;
+ temp *= pow44 - pow477;
+ temp *= pow44 - pow478;
+ temp *= pow44 - pow479;
+ temp *= pow44 - pow480;
+ temp *= pow44 - pow481;
+ temp *= pow44 - pow482;
+ temp *= pow44 - pow483;
+ temp *= pow44 - pow484;
+ temp *= pow44 - pow485;
+ temp *= pow44 - pow488;
+ temp *= pow44 - pow489;
+ temp *= pow44 - pow490;
+ temp *= pow44 - pow491;
+ temp *= pow44 - pow492;
+ temp *= pow44 - pow493;
+ temp *= pow44 - pow494;
+ temp *= pow44 - pow495;
+ temp *= pow44 - pow496;
+ temp *= pow44 - pow497;
+ temp *= pow44 - pow498;
+ temp *= pow44 - pow499;
+ temp *= pow44 - pow500;
+ temp *= pow44 - pow501;
+ temp *= pow44 - pow502;
+ temp *= pow44 - pow503;
+ temp *= pow44 - pow504;
+ temp *= pow44 - pow505;
+ temp *= pow44 - pow506;
+ temp *= pow44 - pow507;
+ temp *= pow44 - pow508;
+ temp *= pow44 - pow509;
+ temp *= pow44 - pow510;
+ temp *= pow44 - pow511;
+ temp *= pow44 - pow512;
+ temp *= pow44 - pow513;
+ temp *= pow44 - pow514;
+ temp *= pow44 - pow515;
+ temp *= pow44 - pow518;
+ temp *= pow44 - pow519;
+ temp *= pow44 - pow520;
+ temp *= pow44 - pow521;
+ temp *= pow44 - pow522;
+ temp *= pow44 - pow523;
+ temp *= pow44 - pow524;
+ temp *= pow44 - pow525;
+ temp *= pow44 - pow526;
+ temp *= pow44 - pow527;
+ temp *= pow44 - pow528;
+ temp *= pow44 - pow529;
+ temp *= pow44 - pow530;
+ temp *= pow44 - pow531;
+ temp *= pow44 - pow532;
+ temp *= pow44 - pow533;
+ temp *= pow44 - pow534;
+ temp *= pow44 - pow535;
+ temp *= pow44 - pow536;
+ temp *= pow44 - pow537;
+ temp *= pow44 - pow538;
+ temp *= pow44 - pow539;
+ temp *= pow44 - pow540;
+ temp *= pow44 - pow541;
+ temp *= pow44 - pow542;
+ temp *= pow44 - pow543;
+ temp *= pow44 - pow544;
+ temp *= pow44 - pow545;
+ temp *= pow44 - pow548;
+ temp *= pow44 - pow549;
+ temp *= pow44 - pow550;
+ temp *= pow44 - pow551;
+ temp *= pow44 - pow552;
+ temp *= pow44 - pow553;
+ temp *= pow44 - pow554;
+ temp *= pow44 - pow555;
+ temp *= pow44 - pow556;
+ temp *= pow44 - pow557;
+ temp *= pow44 - pow558;
+ temp *= pow44 - pow559;
+ temp *= pow44 - pow560;
+ temp *= pow44 - pow561;
+ temp *= pow44 - pow562;
+ temp *= pow44 - pow563;
+ temp *= pow44 - pow564;
+ temp *= pow44 - pow565;
+ temp *= pow44 - pow566;
+ temp *= pow44 - pow567;
+ temp *= pow44 - pow568;
+ temp *= pow44 - pow569;
+ temp *= pow44 - pow570;
+ temp *= pow44 - pow571;
+ temp *= pow44 - pow572;
+ temp *= pow44 - pow573;
+ temp *= pow44 - pow574;
+ temp *= pow44 - pow575;
+ temp *= pow44 - pow578;
+ temp *= pow44 - pow579;
+ temp *= pow44 - pow580;
+ temp *= pow44 - pow581;
+ temp *= pow44 - pow582;
+ temp *= pow44 - pow583;
+ temp *= pow44 - pow584;
+ temp *= pow44 - pow585;
+ temp *= pow44 - pow586;
+ temp *= pow44 - pow587;
+ temp *= pow44 - pow588;
+ temp *= pow44 - pow589;
+ temp *= pow44 - pow590;
+ temp *= pow44 - pow591;
+ temp *= pow44 - pow592;
+ temp *= pow44 - pow593;
+ temp *= pow44 - pow594;
+ temp *= pow44 - pow595;
+ temp *= pow44 - pow596;
+ temp *= pow44 - pow597;
+ temp *= pow44 - pow598;
+ temp *= pow44 - pow599;
+ temp *= pow44 - pow600;
+ temp *= pow44 - pow601;
+ temp *= pow44 - pow602;
+ temp *= pow44 - pow603;
+ temp *= pow44 - pow604;
+ temp *= pow44 - pow605;
+ temp *= pow44 - pow608;
+ temp *= pow44 - pow609;
+ temp *= pow44 - pow610;
+ temp *= pow44 - pow611;
+ temp *= pow44 - pow612;
+ temp *= pow44 - pow613;
+ temp *= pow44 - pow614;
+ temp *= pow44 - pow615;
+ temp *= pow44 - pow616;
+ temp *= pow44 - pow617;
+ temp *= pow44 - pow618;
+ temp *= pow44 - pow619;
+ temp *= pow44 - pow620;
+ temp *= pow44 - pow621;
+ temp *= pow44 - pow622;
+ temp *= pow44 - pow623;
+ temp *= pow44 - pow624;
+ temp *= pow44 - pow625;
+ temp *= pow44 - pow626;
+ temp *= pow44 - pow627;
+ temp *= pow44 - pow628;
+ temp *= pow44 - pow629;
+ temp *= pow44 - pow630;
+ temp *= pow44 - pow631;
+ temp *= pow44 - pow632;
+ temp *= pow44 - pow633;
+ temp *= pow44 - pow634;
+ temp *= pow44 - pow635;
+ temp *= pow44 - pow638;
+ temp *= pow44 - pow639;
+ temp *= pow44 - pow640;
+ temp *= pow44 - pow641;
+ temp *= pow44 - pow642;
+ temp *= pow44 - pow643;
+ temp *= pow44 - pow644;
+ temp *= pow44 - pow645;
+ temp *= pow44 - pow646;
+ temp *= pow44 - pow647;
+ temp *= pow44 - pow648;
+ temp *= pow44 - pow649;
+ temp *= pow44 - pow650;
+ temp *= pow44 - pow651;
+ temp *= pow44 - pow652;
+ temp *= pow44 - pow653;
+ temp *= pow44 - pow654;
+ temp *= pow44 - pow655;
+ temp *= pow44 - pow656;
+ temp *= pow44 - pow657;
+ temp *= pow44 - pow658;
+ temp *= pow44 - pow659;
+ temp *= pow44 - pow660;
+ temp *= pow44 - pow661;
+ temp *= pow44 - pow662;
+ temp *= pow44 - pow663;
+ temp *= pow44 - pow664;
+ temp *= pow44 - pow665;
+ temp *= pow44 - pow668;
+ temp *= pow44 - pow669;
+ temp *= pow44 - pow670;
+ temp *= pow44 - pow671;
+ temp *= pow44 - pow672;
+ temp *= pow44 - pow673;
+ temp *= pow44 - pow674;
+ temp *= pow44 - pow675;
+ temp *= pow44 - pow676;
+ temp *= pow44 - pow677;
+ temp *= pow44 - pow678;
+ temp *= pow44 - pow679;
+ temp *= pow44 - pow680;
+ temp *= pow44 - pow681;
+ temp *= pow44 - pow682;
+ temp *= pow44 - pow683;
+ temp *= pow44 - pow684;
+ temp *= pow44 - pow685;
+ temp *= pow44 - pow686;
+ temp *= pow44 - pow687;
+ temp *= pow44 - pow688;
+ temp *= pow44 - pow689;
+ temp *= pow44 - pow690;
+ temp *= pow44 - pow691;
+ temp *= pow44 - pow692;
+ temp *= pow44 - pow693;
+ temp *= pow44 - pow694;
+ temp *= pow44 - pow695;
+ temp *= pow44 - pow698;
+ temp *= pow44 - pow699;
+ temp *= pow44 - pow700;
+ temp *= pow44 - pow701;
+ temp *= pow44 - pow702;
+ temp *= pow44 - pow703;
+ temp *= pow44 - pow704;
+ temp *= pow44 - pow705;
+ temp *= pow44 - pow706;
+ temp *= pow44 - pow707;
+ temp *= pow44 - pow708;
+ temp *= pow44 - pow709;
+ temp *= pow44 - pow710;
+ temp *= pow44 - pow711;
+ temp *= pow44 - pow712;
+ temp *= pow44 - pow713;
+ temp *= pow44 - pow714;
+ temp *= pow44 - pow715;
+ temp *= pow44 - pow716;
+ temp *= pow44 - pow717;
+ temp *= pow44 - pow718;
+ temp *= pow44 - pow719;
+ temp *= pow44 - pow720;
+ temp *= pow44 - pow721;
+ temp *= pow44 - pow722;
+ temp *= pow44 - pow723;
+ temp *= pow44 - pow724;
+ temp *= pow44 - pow725;
+ temp *= pow44 - pow728;
+ temp *= pow44 - pow729;
+ temp *= pow44 - pow730;
+ temp *= pow44 - pow731;
+ temp *= pow44 - pow732;
+ temp *= pow44 - pow733;
+ temp *= pow44 - pow734;
+ temp *= pow44 - pow735;
+ temp *= pow44 - pow736;
+ temp *= pow44 - pow737;
+ temp *= pow44 - pow738;
+ temp *= pow44 - pow739;
+ temp *= pow44 - pow740;
+ temp *= pow44 - pow741;
+ temp *= pow44 - pow742;
+ temp *= pow44 - pow743;
+ temp *= pow44 - pow744;
+ temp *= pow44 - pow745;
+ temp *= pow44 - pow746;
+ temp *= pow44 - pow747;
+ temp *= pow44 - pow748;
+ temp *= pow44 - pow749;
+ temp *= pow44 - pow750;
+ temp *= pow44 - pow751;
+ temp *= pow44 - pow752;
+ temp *= pow44 - pow753;
+ temp *= pow44 - pow754;
+ temp *= pow44 - pow755;
+ temp *= pow44 - pow758;
+ temp *= pow44 - pow759;
+ temp *= pow44 - pow760;
+ temp *= pow44 - pow761;
+ temp *= pow44 - pow762;
+ temp *= pow44 - pow763;
+ temp *= pow44 - pow764;
+ temp *= pow44 - pow765;
+ temp *= pow44 - pow766;
+ temp *= pow44 - pow767;
+ temp *= pow44 - pow768;
+ temp *= pow44 - pow769;
+ temp *= pow44 - pow770;
+ temp *= pow44 - pow771;
+ temp *= pow44 - pow772;
+ temp *= pow44 - pow773;
+ temp *= pow44 - pow774;
+ temp *= pow44 - pow775;
+ temp *= pow44 - pow776;
+ temp *= pow44 - pow777;
+ temp *= pow44 - pow778;
+ temp *= pow44 - pow779;
+ temp *= pow44 - pow780;
+ temp *= pow44 - pow781;
+ temp *= pow44 - pow782;
+ temp *= pow44 - pow783;
+ temp *= pow44 - pow784;
+ temp *= pow44 - pow785;
+ temp *= pow44 - pow788;
+ temp *= pow44 - pow789;
+ temp *= pow44 - pow790;
+ temp *= pow44 - pow791;
+ temp *= pow44 - pow792;
+ temp *= pow44 - pow793;
+ temp *= pow44 - pow794;
+ temp *= pow44 - pow795;
+ temp *= pow44 - pow796;
+ temp *= pow44 - pow797;
+ temp *= pow44 - pow798;
+ temp *= pow44 - pow799;
+ temp *= pow44 - pow800;
+ temp *= pow44 - pow801;
+ temp *= pow44 - pow802;
+ temp *= pow44 - pow803;
+ temp *= pow44 - pow804;
+ temp *= pow44 - pow805;
+ temp *= pow44 - pow806;
+ temp *= pow44 - pow807;
+ temp *= pow44 - pow808;
+ temp *= pow44 - pow809;
+ temp *= pow44 - pow810;
+ temp *= pow44 - pow811;
+ temp *= pow44 - pow812;
+ temp *= pow44 - pow813;
+ temp *= pow44 - pow814;
+ temp *= pow44 - pow815;
+ temp *= domain51;
+ domain56 = temp * (domain54);
+ temp = domain46;
+ domain57 = temp * (domain53);
+ domain58 = pow44 - pow2614;
+ temp = pow46 - pow2149;
+ temp *= pow46 - pow2271;
+ temp *= pow46 - pow2347;
+ temp *= pow46 - pow2423;
+ temp *= pow46 - pow2499;
+ temp *= pow46 - pow2575;
+ temp *= pow44 - pow2644;
+ temp *= pow44 - pow2674;
+ temp *= pow44 - pow2704;
+ temp *= pow44 - pow2734;
+ temp *= pow44 - pow2764;
+ temp *= pow44 - pow2794;
+ temp *= pow44 - pow2824;
+ temp *= pow44 - pow2854;
+ temp *= pow44 - pow2884;
+ temp *= pow44 - pow2914;
+ temp *= pow44 - pow2944;
+ temp *= pow44 - pow2974;
+ temp *= pow44 - pow3004;
+ temp *= pow44 - pow3034;
+ temp *= pow44 - pow3064;
+ temp *= pow44 - pow3094;
+ temp *= pow44 - pow3124;
+ temp *= pow44 - pow3154;
+ temp *= pow44 - pow3184;
+ temp *= pow44 - pow3214;
+ temp *= pow44 - pow3244;
+ temp *= pow44 - pow3274;
+ temp *= pow44 - pow3304;
+ temp *= pow44 - pow3334;
+ domain59 = temp * (domain58);
+ domain60 = pow44 - pow2615;
+ temp = pow46 - pow2219;
+ temp *= pow46 - pow2295;
+ temp *= pow46 - pow2371;
+ temp *= pow46 - pow2447;
+ temp *= pow46 - pow2523;
+ temp *= pow46 - pow2599;
+ temp *= pow44 - pow2645;
+ temp *= pow44 - pow2675;
+ temp *= pow44 - pow2705;
+ temp *= pow44 - pow2735;
+ temp *= pow44 - pow2765;
+ temp *= pow44 - pow2795;
+ temp *= pow44 - pow2825;
+ temp *= pow44 - pow2855;
+ temp *= pow44 - pow2885;
+ temp *= pow44 - pow2915;
+ temp *= pow44 - pow2945;
+ temp *= pow44 - pow2975;
+ temp *= pow44 - pow3005;
+ temp *= pow44 - pow3035;
+ temp *= pow44 - pow3065;
+ temp *= pow44 - pow3095;
+ temp *= pow44 - pow3125;
+ temp *= pow44 - pow3155;
+ temp *= pow44 - pow3185;
+ temp *= pow44 - pow3215;
+ temp *= pow44 - pow3245;
+ temp *= pow44 - pow3275;
+ temp *= pow44 - pow3305;
+ temp *= pow44 - pow3335;
+ temp *= pow44 - pow3364;
+ temp *= pow44 - pow3365;
+ temp *= domain59;
+ domain61 = temp * (domain60);
+ temp = pow44 - pow2616;
+ temp *= pow44 - pow2617;
+ temp *= pow44 - pow2618;
+ temp *= pow44 - pow2619;
+ temp *= pow44 - pow2620;
+ domain62 = temp * (pow44 - pow2621);
+ temp = pow44 - pow2622;
+ temp *= pow44 - pow2623;
+ temp *= pow44 - pow2624;
+ temp *= pow44 - pow2625;
+ temp *= pow44 - pow2626;
+ temp *= pow44 - pow2627;
+ temp *= pow44 - pow2628;
+ temp *= pow44 - pow2629;
+ temp *= pow44 - pow2630;
+ temp *= pow44 - pow2631;
+ temp *= pow44 - pow2632;
+ temp *= pow44 - pow2633;
+ temp *= pow44 - pow2634;
+ temp *= pow44 - pow2635;
+ temp *= pow44 - pow2636;
+ temp *= pow44 - pow2637;
+ domain63 = temp * (domain62);
+ temp = pow48 - pow2499;
+ temp *= pow48 - pow2575;
+ temp *= pow46 - pow2220;
+ temp *= pow46 - pow2221;
+ temp *= pow46 - pow2222;
+ temp *= pow46 - pow2223;
+ temp *= pow46 - pow2224;
+ temp *= pow46 - pow2225;
+ temp *= pow46 - pow2226;
+ temp *= pow46 - pow2227;
+ temp *= pow46 - pow2228;
+ temp *= pow46 - pow2229;
+ temp *= pow46 - pow2230;
+ temp *= pow46 - pow2231;
+ temp *= pow46 - pow2232;
+ temp *= pow46 - pow2233;
+ temp *= pow46 - pow2234;
+ temp *= pow46 - pow2258;
+ temp *= pow46 - pow2259;
+ temp *= pow46 - pow2260;
+ temp *= pow46 - pow2261;
+ temp *= pow46 - pow2262;
+ temp *= pow46 - pow2263;
+ temp *= pow46 - pow2264;
+ temp *= pow46 - pow2265;
+ temp *= pow46 - pow2266;
+ temp *= pow46 - pow2267;
+ temp *= pow46 - pow2268;
+ temp *= pow46 - pow2269;
+ temp *= pow46 - pow2270;
+ temp *= pow46 - pow2296;
+ temp *= pow46 - pow2297;
+ temp *= pow46 - pow2298;
+ temp *= pow46 - pow2299;
+ temp *= pow46 - pow2300;
+ temp *= pow46 - pow2301;
+ temp *= pow46 - pow2302;
+ temp *= pow46 - pow2303;
+ temp *= pow46 - pow2304;
+ temp *= pow46 - pow2305;
+ temp *= pow46 - pow2306;
+ temp *= pow46 - pow2307;
+ temp *= pow46 - pow2308;
+ temp *= pow46 - pow2309;
+ temp *= pow46 - pow2310;
+ temp *= pow46 - pow2334;
+ temp *= pow46 - pow2335;
+ temp *= pow46 - pow2336;
+ temp *= pow46 - pow2337;
+ temp *= pow46 - pow2338;
+ temp *= pow46 - pow2339;
+ temp *= pow46 - pow2340;
+ temp *= pow46 - pow2341;
+ temp *= pow46 - pow2342;
+ temp *= pow46 - pow2343;
+ temp *= pow46 - pow2344;
+ temp *= pow46 - pow2345;
+ temp *= pow46 - pow2346;
+ temp *= pow46 - pow2372;
+ temp *= pow46 - pow2373;
+ temp *= pow46 - pow2374;
+ temp *= pow46 - pow2375;
+ temp *= pow46 - pow2376;
+ temp *= pow46 - pow2377;
+ temp *= pow46 - pow2378;
+ temp *= pow46 - pow2379;
+ temp *= pow46 - pow2380;
+ temp *= pow46 - pow2381;
+ temp *= pow46 - pow2382;
+ temp *= pow46 - pow2383;
+ temp *= pow46 - pow2384;
+ temp *= pow46 - pow2385;
+ temp *= pow46 - pow2386;
+ temp *= pow46 - pow2410;
+ temp *= pow46 - pow2411;
+ temp *= pow46 - pow2412;
+ temp *= pow46 - pow2413;
+ temp *= pow46 - pow2414;
+ temp *= pow46 - pow2415;
+ temp *= pow46 - pow2416;
+ temp *= pow46 - pow2417;
+ temp *= pow46 - pow2418;
+ temp *= pow46 - pow2419;
+ temp *= pow46 - pow2420;
+ temp *= pow46 - pow2421;
+ temp *= pow46 - pow2422;
+ temp *= pow46 - pow2448;
+ temp *= pow46 - pow2449;
+ temp *= pow46 - pow2450;
+ temp *= pow46 - pow2451;
+ temp *= pow46 - pow2452;
+ temp *= pow46 - pow2453;
+ temp *= pow46 - pow2454;
+ temp *= pow46 - pow2455;
+ temp *= pow46 - pow2456;
+ temp *= pow46 - pow2457;
+ temp *= pow46 - pow2458;
+ temp *= pow46 - pow2459;
+ temp *= pow46 - pow2460;
+ temp *= pow46 - pow2461;
+ temp *= pow46 - pow2462;
+ temp *= pow46 - pow2486;
+ temp *= pow46 - pow2487;
+ temp *= pow46 - pow2488;
+ temp *= pow46 - pow2489;
+ temp *= pow46 - pow2490;
+ temp *= pow46 - pow2491;
+ temp *= pow46 - pow2492;
+ temp *= pow46 - pow2493;
+ temp *= pow46 - pow2494;
+ temp *= pow46 - pow2495;
+ temp *= pow46 - pow2496;
+ temp *= pow46 - pow2497;
+ temp *= pow46 - pow2498;
+ temp *= pow46 - pow2524;
+ temp *= pow46 - pow2525;
+ temp *= pow46 - pow2526;
+ temp *= pow46 - pow2527;
+ temp *= pow46 - pow2528;
+ temp *= pow46 - pow2529;
+ temp *= pow46 - pow2530;
+ temp *= pow46 - pow2531;
+ temp *= pow46 - pow2532;
+ temp *= pow46 - pow2533;
+ temp *= pow46 - pow2534;
+ temp *= pow46 - pow2535;
+ temp *= pow46 - pow2536;
+ temp *= pow46 - pow2537;
+ temp *= pow46 - pow2538;
+ temp *= pow46 - pow2562;
+ temp *= pow46 - pow2563;
+ temp *= pow46 - pow2564;
+ temp *= pow46 - pow2565;
+ temp *= pow46 - pow2566;
+ temp *= pow46 - pow2567;
+ temp *= pow46 - pow2568;
+ temp *= pow46 - pow2569;
+ temp *= pow46 - pow2570;
+ temp *= pow46 - pow2571;
+ temp *= pow46 - pow2572;
+ temp *= pow46 - pow2573;
+ temp *= pow46 - pow2574;
+ temp *= pow46 - pow2600;
+ temp *= pow46 - pow2601;
+ temp *= pow46 - pow2602;
+ temp *= pow46 - pow2603;
+ temp *= pow46 - pow2604;
+ temp *= pow46 - pow2605;
+ temp *= pow46 - pow2606;
+ temp *= pow46 - pow2607;
+ temp *= pow46 - pow2608;
+ temp *= pow46 - pow2609;
+ temp *= pow46 - pow2610;
+ temp *= pow46 - pow2611;
+ temp *= pow46 - pow2612;
+ temp *= pow46 - pow2613;
+ temp *= pow46 - pow2614;
+ temp *= pow46 - pow2674;
+ temp *= pow46 - pow2734;
+ temp *= pow46 - pow2794;
+ temp *= pow46 - pow2854;
+ temp *= pow46 - pow2914;
+ temp *= pow46 - pow2974;
+ temp *= pow46 - pow3034;
+ temp *= pow46 - pow3094;
+ temp *= pow46 - pow3154;
+ temp *= pow46 - pow3214;
+ temp *= pow46 - pow3274;
+ temp *= pow46 - pow3334;
+ temp *= pow46 - pow3394;
+ temp *= pow44 - pow2638;
+ temp *= pow44 - pow2639;
+ temp *= pow44 - pow2640;
+ temp *= pow44 - pow2641;
+ temp *= pow44 - pow2642;
+ temp *= pow44 - pow2643;
+ temp *= pow44 - pow2646;
+ temp *= pow44 - pow2647;
+ temp *= pow44 - pow2648;
+ temp *= pow44 - pow2649;
+ temp *= pow44 - pow2650;
+ temp *= pow44 - pow2651;
+ temp *= pow44 - pow2652;
+ temp *= pow44 - pow2653;
+ temp *= pow44 - pow2654;
+ temp *= pow44 - pow2655;
+ temp *= pow44 - pow2656;
+ temp *= pow44 - pow2657;
+ temp *= pow44 - pow2658;
+ temp *= pow44 - pow2659;
+ temp *= pow44 - pow2660;
+ temp *= pow44 - pow2661;
+ temp *= pow44 - pow2662;
+ temp *= pow44 - pow2663;
+ temp *= pow44 - pow2664;
+ temp *= pow44 - pow2665;
+ temp *= pow44 - pow2666;
+ temp *= pow44 - pow2667;
+ temp *= pow44 - pow2668;
+ temp *= pow44 - pow2669;
+ temp *= pow44 - pow2670;
+ temp *= pow44 - pow2671;
+ temp *= pow44 - pow2672;
+ temp *= pow44 - pow2673;
+ temp *= pow44 - pow2676;
+ temp *= pow44 - pow2677;
+ temp *= pow44 - pow2678;
+ temp *= pow44 - pow2679;
+ temp *= pow44 - pow2680;
+ temp *= pow44 - pow2681;
+ temp *= pow44 - pow2682;
+ temp *= pow44 - pow2683;
+ temp *= pow44 - pow2684;
+ temp *= pow44 - pow2685;
+ temp *= pow44 - pow2686;
+ temp *= pow44 - pow2687;
+ temp *= pow44 - pow2688;
+ temp *= pow44 - pow2689;
+ temp *= pow44 - pow2690;
+ temp *= pow44 - pow2691;
+ temp *= pow44 - pow2692;
+ temp *= pow44 - pow2693;
+ temp *= pow44 - pow2694;
+ temp *= pow44 - pow2695;
+ temp *= pow44 - pow2696;
+ temp *= pow44 - pow2697;
+ temp *= pow44 - pow2698;
+ temp *= pow44 - pow2699;
+ temp *= pow44 - pow2700;
+ temp *= pow44 - pow2701;
+ temp *= pow44 - pow2702;
+ temp *= pow44 - pow2703;
+ temp *= pow44 - pow2706;
+ temp *= pow44 - pow2707;
+ temp *= pow44 - pow2708;
+ temp *= pow44 - pow2709;
+ temp *= pow44 - pow2710;
+ temp *= pow44 - pow2711;
+ temp *= pow44 - pow2712;
+ temp *= pow44 - pow2713;
+ temp *= pow44 - pow2714;
+ temp *= pow44 - pow2715;
+ temp *= pow44 - pow2716;
+ temp *= pow44 - pow2717;
+ temp *= pow44 - pow2718;
+ temp *= pow44 - pow2719;
+ temp *= pow44 - pow2720;
+ temp *= pow44 - pow2721;
+ temp *= pow44 - pow2722;
+ temp *= pow44 - pow2723;
+ temp *= pow44 - pow2724;
+ temp *= pow44 - pow2725;
+ temp *= pow44 - pow2726;
+ temp *= pow44 - pow2727;
+ temp *= pow44 - pow2728;
+ temp *= pow44 - pow2729;
+ temp *= pow44 - pow2730;
+ temp *= pow44 - pow2731;
+ temp *= pow44 - pow2732;
+ temp *= pow44 - pow2733;
+ temp *= pow44 - pow2736;
+ temp *= pow44 - pow2737;
+ temp *= pow44 - pow2738;
+ temp *= pow44 - pow2739;
+ temp *= pow44 - pow2740;
+ temp *= pow44 - pow2741;
+ temp *= pow44 - pow2742;
+ temp *= pow44 - pow2743;
+ temp *= pow44 - pow2744;
+ temp *= pow44 - pow2745;
+ temp *= pow44 - pow2746;
+ temp *= pow44 - pow2747;
+ temp *= pow44 - pow2748;
+ temp *= pow44 - pow2749;
+ temp *= pow44 - pow2750;
+ temp *= pow44 - pow2751;
+ temp *= pow44 - pow2752;
+ temp *= pow44 - pow2753;
+ temp *= pow44 - pow2754;
+ temp *= pow44 - pow2755;
+ temp *= pow44 - pow2756;
+ temp *= pow44 - pow2757;
+ temp *= pow44 - pow2758;
+ temp *= pow44 - pow2759;
+ temp *= pow44 - pow2760;
+ temp *= pow44 - pow2761;
+ temp *= pow44 - pow2762;
+ temp *= pow44 - pow2763;
+ temp *= pow44 - pow2766;
+ temp *= pow44 - pow2767;
+ temp *= pow44 - pow2768;
+ temp *= pow44 - pow2769;
+ temp *= pow44 - pow2770;
+ temp *= pow44 - pow2771;
+ temp *= pow44 - pow2772;
+ temp *= pow44 - pow2773;
+ temp *= pow44 - pow2774;
+ temp *= pow44 - pow2775;
+ temp *= pow44 - pow2776;
+ temp *= pow44 - pow2777;
+ temp *= pow44 - pow2778;
+ temp *= pow44 - pow2779;
+ temp *= pow44 - pow2780;
+ temp *= pow44 - pow2781;
+ temp *= pow44 - pow2782;
+ temp *= pow44 - pow2783;
+ temp *= pow44 - pow2784;
+ temp *= pow44 - pow2785;
+ temp *= pow44 - pow2786;
+ temp *= pow44 - pow2787;
+ temp *= pow44 - pow2788;
+ temp *= pow44 - pow2789;
+ temp *= pow44 - pow2790;
+ temp *= pow44 - pow2791;
+ temp *= pow44 - pow2792;
+ temp *= pow44 - pow2793;
+ temp *= pow44 - pow2796;
+ temp *= pow44 - pow2797;
+ temp *= pow44 - pow2798;
+ temp *= pow44 - pow2799;
+ temp *= pow44 - pow2800;
+ temp *= pow44 - pow2801;
+ temp *= pow44 - pow2802;
+ temp *= pow44 - pow2803;
+ temp *= pow44 - pow2804;
+ temp *= pow44 - pow2805;
+ temp *= pow44 - pow2806;
+ temp *= pow44 - pow2807;
+ temp *= pow44 - pow2808;
+ temp *= pow44 - pow2809;
+ temp *= pow44 - pow2810;
+ temp *= pow44 - pow2811;
+ temp *= pow44 - pow2812;
+ temp *= pow44 - pow2813;
+ temp *= pow44 - pow2814;
+ temp *= pow44 - pow2815;
+ temp *= pow44 - pow2816;
+ temp *= pow44 - pow2817;
+ temp *= pow44 - pow2818;
+ temp *= pow44 - pow2819;
+ temp *= pow44 - pow2820;
+ temp *= pow44 - pow2821;
+ temp *= pow44 - pow2822;
+ temp *= pow44 - pow2823;
+ temp *= pow44 - pow2826;
+ temp *= pow44 - pow2827;
+ temp *= pow44 - pow2828;
+ temp *= pow44 - pow2829;
+ temp *= pow44 - pow2830;
+ temp *= pow44 - pow2831;
+ temp *= pow44 - pow2832;
+ temp *= pow44 - pow2833;
+ temp *= pow44 - pow2834;
+ temp *= pow44 - pow2835;
+ temp *= pow44 - pow2836;
+ temp *= pow44 - pow2837;
+ temp *= pow44 - pow2838;
+ temp *= pow44 - pow2839;
+ temp *= pow44 - pow2840;
+ temp *= pow44 - pow2841;
+ temp *= pow44 - pow2842;
+ temp *= pow44 - pow2843;
+ temp *= pow44 - pow2844;
+ temp *= pow44 - pow2845;
+ temp *= pow44 - pow2846;
+ temp *= pow44 - pow2847;
+ temp *= pow44 - pow2848;
+ temp *= pow44 - pow2849;
+ temp *= pow44 - pow2850;
+ temp *= pow44 - pow2851;
+ temp *= pow44 - pow2852;
+ temp *= pow44 - pow2853;
+ temp *= pow44 - pow2856;
+ temp *= pow44 - pow2857;
+ temp *= pow44 - pow2858;
+ temp *= pow44 - pow2859;
+ temp *= pow44 - pow2860;
+ temp *= pow44 - pow2861;
+ temp *= pow44 - pow2862;
+ temp *= pow44 - pow2863;
+ temp *= pow44 - pow2864;
+ temp *= pow44 - pow2865;
+ temp *= pow44 - pow2866;
+ temp *= pow44 - pow2867;
+ temp *= pow44 - pow2868;
+ temp *= pow44 - pow2869;
+ temp *= pow44 - pow2870;
+ temp *= pow44 - pow2871;
+ temp *= pow44 - pow2872;
+ temp *= pow44 - pow2873;
+ temp *= pow44 - pow2874;
+ temp *= pow44 - pow2875;
+ temp *= pow44 - pow2876;
+ temp *= pow44 - pow2877;
+ temp *= pow44 - pow2878;
+ temp *= pow44 - pow2879;
+ temp *= pow44 - pow2880;
+ temp *= pow44 - pow2881;
+ temp *= pow44 - pow2882;
+ temp *= pow44 - pow2883;
+ temp *= pow44 - pow2886;
+ temp *= pow44 - pow2887;
+ temp *= pow44 - pow2888;
+ temp *= pow44 - pow2889;
+ temp *= pow44 - pow2890;
+ temp *= pow44 - pow2891;
+ temp *= pow44 - pow2892;
+ temp *= pow44 - pow2893;
+ temp *= pow44 - pow2894;
+ temp *= pow44 - pow2895;
+ temp *= pow44 - pow2896;
+ temp *= pow44 - pow2897;
+ temp *= pow44 - pow2898;
+ temp *= pow44 - pow2899;
+ temp *= pow44 - pow2900;
+ temp *= pow44 - pow2901;
+ temp *= pow44 - pow2902;
+ temp *= pow44 - pow2903;
+ temp *= pow44 - pow2904;
+ temp *= pow44 - pow2905;
+ temp *= pow44 - pow2906;
+ temp *= pow44 - pow2907;
+ temp *= pow44 - pow2908;
+ temp *= pow44 - pow2909;
+ temp *= pow44 - pow2910;
+ temp *= pow44 - pow2911;
+ temp *= pow44 - pow2912;
+ temp *= pow44 - pow2913;
+ temp *= pow44 - pow2916;
+ temp *= pow44 - pow2917;
+ temp *= pow44 - pow2918;
+ temp *= pow44 - pow2919;
+ temp *= pow44 - pow2920;
+ temp *= pow44 - pow2921;
+ temp *= pow44 - pow2922;
+ temp *= pow44 - pow2923;
+ temp *= pow44 - pow2924;
+ temp *= pow44 - pow2925;
+ temp *= pow44 - pow2926;
+ temp *= pow44 - pow2927;
+ temp *= pow44 - pow2928;
+ temp *= pow44 - pow2929;
+ temp *= pow44 - pow2930;
+ temp *= pow44 - pow2931;
+ temp *= pow44 - pow2932;
+ temp *= pow44 - pow2933;
+ temp *= pow44 - pow2934;
+ temp *= pow44 - pow2935;
+ temp *= pow44 - pow2936;
+ temp *= pow44 - pow2937;
+ temp *= pow44 - pow2938;
+ temp *= pow44 - pow2939;
+ temp *= pow44 - pow2940;
+ temp *= pow44 - pow2941;
+ temp *= pow44 - pow2942;
+ temp *= pow44 - pow2943;
+ temp *= pow44 - pow2946;
+ temp *= pow44 - pow2947;
+ temp *= pow44 - pow2948;
+ temp *= pow44 - pow2949;
+ temp *= pow44 - pow2950;
+ temp *= pow44 - pow2951;
+ temp *= pow44 - pow2952;
+ temp *= pow44 - pow2953;
+ temp *= pow44 - pow2954;
+ temp *= pow44 - pow2955;
+ temp *= pow44 - pow2956;
+ temp *= pow44 - pow2957;
+ temp *= pow44 - pow2958;
+ temp *= pow44 - pow2959;
+ temp *= pow44 - pow2960;
+ temp *= pow44 - pow2961;
+ temp *= pow44 - pow2962;
+ temp *= pow44 - pow2963;
+ temp *= pow44 - pow2964;
+ temp *= pow44 - pow2965;
+ temp *= pow44 - pow2966;
+ temp *= pow44 - pow2967;
+ temp *= pow44 - pow2968;
+ temp *= pow44 - pow2969;
+ temp *= pow44 - pow2970;
+ temp *= pow44 - pow2971;
+ temp *= pow44 - pow2972;
+ temp *= pow44 - pow2973;
+ temp *= pow44 - pow2976;
+ temp *= pow44 - pow2977;
+ temp *= pow44 - pow2978;
+ temp *= pow44 - pow2979;
+ temp *= pow44 - pow2980;
+ temp *= pow44 - pow2981;
+ temp *= pow44 - pow2982;
+ temp *= pow44 - pow2983;
+ temp *= pow44 - pow2984;
+ temp *= pow44 - pow2985;
+ temp *= pow44 - pow2986;
+ temp *= pow44 - pow2987;
+ temp *= pow44 - pow2988;
+ temp *= pow44 - pow2989;
+ temp *= pow44 - pow2990;
+ temp *= pow44 - pow2991;
+ temp *= pow44 - pow2992;
+ temp *= pow44 - pow2993;
+ temp *= pow44 - pow2994;
+ temp *= pow44 - pow2995;
+ temp *= pow44 - pow2996;
+ temp *= pow44 - pow2997;
+ temp *= pow44 - pow2998;
+ temp *= pow44 - pow2999;
+ temp *= pow44 - pow3000;
+ temp *= pow44 - pow3001;
+ temp *= pow44 - pow3002;
+ temp *= pow44 - pow3003;
+ temp *= pow44 - pow3006;
+ temp *= pow44 - pow3007;
+ temp *= pow44 - pow3008;
+ temp *= pow44 - pow3009;
+ temp *= pow44 - pow3010;
+ temp *= pow44 - pow3011;
+ temp *= pow44 - pow3012;
+ temp *= pow44 - pow3013;
+ temp *= pow44 - pow3014;
+ temp *= pow44 - pow3015;
+ temp *= pow44 - pow3016;
+ temp *= pow44 - pow3017;
+ temp *= pow44 - pow3018;
+ temp *= pow44 - pow3019;
+ temp *= pow44 - pow3020;
+ temp *= pow44 - pow3021;
+ temp *= pow44 - pow3022;
+ temp *= pow44 - pow3023;
+ temp *= pow44 - pow3024;
+ temp *= pow44 - pow3025;
+ temp *= pow44 - pow3026;
+ temp *= pow44 - pow3027;
+ temp *= pow44 - pow3028;
+ temp *= pow44 - pow3029;
+ temp *= pow44 - pow3030;
+ temp *= pow44 - pow3031;
+ temp *= pow44 - pow3032;
+ temp *= pow44 - pow3033;
+ temp *= pow44 - pow3036;
+ temp *= pow44 - pow3037;
+ temp *= pow44 - pow3038;
+ temp *= pow44 - pow3039;
+ temp *= pow44 - pow3040;
+ temp *= pow44 - pow3041;
+ temp *= pow44 - pow3042;
+ temp *= pow44 - pow3043;
+ temp *= pow44 - pow3044;
+ temp *= pow44 - pow3045;
+ temp *= pow44 - pow3046;
+ temp *= pow44 - pow3047;
+ temp *= pow44 - pow3048;
+ temp *= pow44 - pow3049;
+ temp *= pow44 - pow3050;
+ temp *= pow44 - pow3051;
+ temp *= pow44 - pow3052;
+ temp *= pow44 - pow3053;
+ temp *= pow44 - pow3054;
+ temp *= pow44 - pow3055;
+ temp *= pow44 - pow3056;
+ temp *= pow44 - pow3057;
+ temp *= pow44 - pow3058;
+ temp *= pow44 - pow3059;
+ temp *= pow44 - pow3060;
+ temp *= pow44 - pow3061;
+ temp *= pow44 - pow3062;
+ temp *= pow44 - pow3063;
+ temp *= pow44 - pow3066;
+ temp *= pow44 - pow3067;
+ temp *= pow44 - pow3068;
+ temp *= pow44 - pow3069;
+ temp *= pow44 - pow3070;
+ temp *= pow44 - pow3071;
+ temp *= pow44 - pow3072;
+ temp *= pow44 - pow3073;
+ temp *= pow44 - pow3074;
+ temp *= pow44 - pow3075;
+ temp *= pow44 - pow3076;
+ temp *= pow44 - pow3077;
+ temp *= pow44 - pow3078;
+ temp *= pow44 - pow3079;
+ temp *= pow44 - pow3080;
+ temp *= pow44 - pow3081;
+ temp *= pow44 - pow3082;
+ temp *= pow44 - pow3083;
+ temp *= pow44 - pow3084;
+ temp *= pow44 - pow3085;
+ temp *= pow44 - pow3086;
+ temp *= pow44 - pow3087;
+ temp *= pow44 - pow3088;
+ temp *= pow44 - pow3089;
+ temp *= pow44 - pow3090;
+ temp *= pow44 - pow3091;
+ temp *= pow44 - pow3092;
+ temp *= pow44 - pow3093;
+ temp *= pow44 - pow3096;
+ temp *= pow44 - pow3097;
+ temp *= pow44 - pow3098;
+ temp *= pow44 - pow3099;
+ temp *= pow44 - pow3100;
+ temp *= pow44 - pow3101;
+ temp *= pow44 - pow3102;
+ temp *= pow44 - pow3103;
+ temp *= pow44 - pow3104;
+ temp *= pow44 - pow3105;
+ temp *= pow44 - pow3106;
+ temp *= pow44 - pow3107;
+ temp *= pow44 - pow3108;
+ temp *= pow44 - pow3109;
+ temp *= pow44 - pow3110;
+ temp *= pow44 - pow3111;
+ temp *= pow44 - pow3112;
+ temp *= pow44 - pow3113;
+ temp *= pow44 - pow3114;
+ temp *= pow44 - pow3115;
+ temp *= pow44 - pow3116;
+ temp *= pow44 - pow3117;
+ temp *= pow44 - pow3118;
+ temp *= pow44 - pow3119;
+ temp *= pow44 - pow3120;
+ temp *= pow44 - pow3121;
+ temp *= pow44 - pow3122;
+ temp *= pow44 - pow3123;
+ temp *= pow44 - pow3126;
+ temp *= pow44 - pow3127;
+ temp *= pow44 - pow3128;
+ temp *= pow44 - pow3129;
+ temp *= pow44 - pow3130;
+ temp *= pow44 - pow3131;
+ temp *= pow44 - pow3132;
+ temp *= pow44 - pow3133;
+ temp *= pow44 - pow3134;
+ temp *= pow44 - pow3135;
+ temp *= pow44 - pow3136;
+ temp *= pow44 - pow3137;
+ temp *= pow44 - pow3138;
+ temp *= pow44 - pow3139;
+ temp *= pow44 - pow3140;
+ temp *= pow44 - pow3141;
+ temp *= pow44 - pow3142;
+ temp *= pow44 - pow3143;
+ temp *= pow44 - pow3144;
+ temp *= pow44 - pow3145;
+ temp *= pow44 - pow3146;
+ temp *= pow44 - pow3147;
+ temp *= pow44 - pow3148;
+ temp *= pow44 - pow3149;
+ temp *= pow44 - pow3150;
+ temp *= pow44 - pow3151;
+ temp *= pow44 - pow3152;
+ temp *= pow44 - pow3153;
+ temp *= pow44 - pow3156;
+ temp *= pow44 - pow3157;
+ temp *= pow44 - pow3158;
+ temp *= pow44 - pow3159;
+ temp *= pow44 - pow3160;
+ temp *= pow44 - pow3161;
+ temp *= pow44 - pow3162;
+ temp *= pow44 - pow3163;
+ temp *= pow44 - pow3164;
+ temp *= pow44 - pow3165;
+ temp *= pow44 - pow3166;
+ temp *= pow44 - pow3167;
+ temp *= pow44 - pow3168;
+ temp *= pow44 - pow3169;
+ temp *= pow44 - pow3170;
+ temp *= pow44 - pow3171;
+ temp *= pow44 - pow3172;
+ temp *= pow44 - pow3173;
+ temp *= pow44 - pow3174;
+ temp *= pow44 - pow3175;
+ temp *= pow44 - pow3176;
+ temp *= pow44 - pow3177;
+ temp *= pow44 - pow3178;
+ temp *= pow44 - pow3179;
+ temp *= pow44 - pow3180;
+ temp *= pow44 - pow3181;
+ temp *= pow44 - pow3182;
+ temp *= pow44 - pow3183;
+ temp *= pow44 - pow3186;
+ temp *= pow44 - pow3187;
+ temp *= pow44 - pow3188;
+ temp *= pow44 - pow3189;
+ temp *= pow44 - pow3190;
+ temp *= pow44 - pow3191;
+ temp *= pow44 - pow3192;
+ temp *= pow44 - pow3193;
+ temp *= pow44 - pow3194;
+ temp *= pow44 - pow3195;
+ temp *= pow44 - pow3196;
+ temp *= pow44 - pow3197;
+ temp *= pow44 - pow3198;
+ temp *= pow44 - pow3199;
+ temp *= pow44 - pow3200;
+ temp *= pow44 - pow3201;
+ temp *= pow44 - pow3202;
+ temp *= pow44 - pow3203;
+ temp *= pow44 - pow3204;
+ temp *= pow44 - pow3205;
+ temp *= pow44 - pow3206;
+ temp *= pow44 - pow3207;
+ temp *= pow44 - pow3208;
+ temp *= pow44 - pow3209;
+ temp *= pow44 - pow3210;
+ temp *= pow44 - pow3211;
+ temp *= pow44 - pow3212;
+ temp *= pow44 - pow3213;
+ temp *= pow44 - pow3216;
+ temp *= pow44 - pow3217;
+ temp *= pow44 - pow3218;
+ temp *= pow44 - pow3219;
+ temp *= pow44 - pow3220;
+ temp *= pow44 - pow3221;
+ temp *= pow44 - pow3222;
+ temp *= pow44 - pow3223;
+ temp *= pow44 - pow3224;
+ temp *= pow44 - pow3225;
+ temp *= pow44 - pow3226;
+ temp *= pow44 - pow3227;
+ temp *= pow44 - pow3228;
+ temp *= pow44 - pow3229;
+ temp *= pow44 - pow3230;
+ temp *= pow44 - pow3231;
+ temp *= pow44 - pow3232;
+ temp *= pow44 - pow3233;
+ temp *= pow44 - pow3234;
+ temp *= pow44 - pow3235;
+ temp *= pow44 - pow3236;
+ temp *= pow44 - pow3237;
+ temp *= pow44 - pow3238;
+ temp *= pow44 - pow3239;
+ temp *= pow44 - pow3240;
+ temp *= pow44 - pow3241;
+ temp *= pow44 - pow3242;
+ temp *= pow44 - pow3243;
+ temp *= pow44 - pow3246;
+ temp *= pow44 - pow3247;
+ temp *= pow44 - pow3248;
+ temp *= pow44 - pow3249;
+ temp *= pow44 - pow3250;
+ temp *= pow44 - pow3251;
+ temp *= pow44 - pow3252;
+ temp *= pow44 - pow3253;
+ temp *= pow44 - pow3254;
+ temp *= pow44 - pow3255;
+ temp *= pow44 - pow3256;
+ temp *= pow44 - pow3257;
+ temp *= pow44 - pow3258;
+ temp *= pow44 - pow3259;
+ temp *= pow44 - pow3260;
+ temp *= pow44 - pow3261;
+ temp *= pow44 - pow3262;
+ temp *= pow44 - pow3263;
+ temp *= pow44 - pow3264;
+ temp *= pow44 - pow3265;
+ temp *= pow44 - pow3266;
+ temp *= pow44 - pow3267;
+ temp *= pow44 - pow3268;
+ temp *= pow44 - pow3269;
+ temp *= pow44 - pow3270;
+ temp *= pow44 - pow3271;
+ temp *= pow44 - pow3272;
+ temp *= pow44 - pow3273;
+ temp *= pow44 - pow3276;
+ temp *= pow44 - pow3277;
+ temp *= pow44 - pow3278;
+ temp *= pow44 - pow3279;
+ temp *= pow44 - pow3280;
+ temp *= pow44 - pow3281;
+ temp *= pow44 - pow3282;
+ temp *= pow44 - pow3283;
+ temp *= pow44 - pow3284;
+ temp *= pow44 - pow3285;
+ temp *= pow44 - pow3286;
+ temp *= pow44 - pow3287;
+ temp *= pow44 - pow3288;
+ temp *= pow44 - pow3289;
+ temp *= pow44 - pow3290;
+ temp *= pow44 - pow3291;
+ temp *= pow44 - pow3292;
+ temp *= pow44 - pow3293;
+ temp *= pow44 - pow3294;
+ temp *= pow44 - pow3295;
+ temp *= pow44 - pow3296;
+ temp *= pow44 - pow3297;
+ temp *= pow44 - pow3298;
+ temp *= pow44 - pow3299;
+ temp *= pow44 - pow3300;
+ temp *= pow44 - pow3301;
+ temp *= pow44 - pow3302;
+ temp *= pow44 - pow3303;
+ temp *= pow44 - pow3306;
+ temp *= pow44 - pow3307;
+ temp *= pow44 - pow3308;
+ temp *= pow44 - pow3309;
+ temp *= pow44 - pow3310;
+ temp *= pow44 - pow3311;
+ temp *= pow44 - pow3312;
+ temp *= pow44 - pow3313;
+ temp *= pow44 - pow3314;
+ temp *= pow44 - pow3315;
+ temp *= pow44 - pow3316;
+ temp *= pow44 - pow3317;
+ temp *= pow44 - pow3318;
+ temp *= pow44 - pow3319;
+ temp *= pow44 - pow3320;
+ temp *= pow44 - pow3321;
+ temp *= pow44 - pow3322;
+ temp *= pow44 - pow3323;
+ temp *= pow44 - pow3324;
+ temp *= pow44 - pow3325;
+ temp *= pow44 - pow3326;
+ temp *= pow44 - pow3327;
+ temp *= pow44 - pow3328;
+ temp *= pow44 - pow3329;
+ temp *= pow44 - pow3330;
+ temp *= pow44 - pow3331;
+ temp *= pow44 - pow3332;
+ temp *= pow44 - pow3333;
+ temp *= pow44 - pow3336;
+ temp *= pow44 - pow3337;
+ temp *= pow44 - pow3338;
+ temp *= pow44 - pow3339;
+ temp *= pow44 - pow3340;
+ temp *= pow44 - pow3341;
+ temp *= pow44 - pow3342;
+ temp *= pow44 - pow3343;
+ temp *= pow44 - pow3344;
+ temp *= pow44 - pow3345;
+ temp *= pow44 - pow3346;
+ temp *= pow44 - pow3347;
+ temp *= pow44 - pow3348;
+ temp *= pow44 - pow3349;
+ temp *= pow44 - pow3350;
+ temp *= pow44 - pow3351;
+ temp *= pow44 - pow3352;
+ temp *= pow44 - pow3353;
+ temp *= pow44 - pow3354;
+ temp *= pow44 - pow3355;
+ temp *= pow44 - pow3356;
+ temp *= pow44 - pow3357;
+ temp *= pow44 - pow3358;
+ temp *= pow44 - pow3359;
+ temp *= pow44 - pow3360;
+ temp *= pow44 - pow3361;
+ temp *= pow44 - pow3362;
+ temp *= pow44 - pow3363;
+ temp *= pow44 - pow3366;
+ temp *= pow44 - pow3367;
+ temp *= pow44 - pow3368;
+ temp *= pow44 - pow3369;
+ temp *= pow44 - pow3370;
+ temp *= pow44 - pow3371;
+ temp *= pow44 - pow3372;
+ temp *= pow44 - pow3373;
+ temp *= pow44 - pow3374;
+ temp *= pow44 - pow3375;
+ temp *= pow44 - pow3376;
+ temp *= pow44 - pow3377;
+ temp *= pow44 - pow3378;
+ temp *= pow44 - pow3379;
+ temp *= pow44 - pow3380;
+ temp *= pow44 - pow3381;
+ temp *= pow44 - pow3382;
+ temp *= pow44 - pow3383;
+ temp *= pow44 - pow3384;
+ temp *= pow44 - pow3385;
+ temp *= pow44 - pow3386;
+ temp *= pow44 - pow3387;
+ temp *= pow44 - pow3388;
+ temp *= pow44 - pow3389;
+ temp *= pow44 - pow3390;
+ temp *= pow44 - pow3391;
+ temp *= pow44 - pow3392;
+ temp *= pow44 - pow3393;
+ temp *= domain61;
+ domain64 = temp * (domain63);
+ temp = pow46 - pow2147;
+ domain65 = temp * (domain59);
+ temp = domain58;
+ domain66 = temp * (domain60);
+ temp = domain63;
+ domain67 = temp * (domain66);
+ domain68 = pow44 - pow819;
+ temp = pow44 - pow820;
+ temp *= pow44 - pow821;
+ temp *= pow44 - pow822;
+ temp *= pow44 - pow823;
+ temp *= pow44 - pow824;
+ temp *= pow44 - pow825;
+ temp *= pow44 - pow826;
+ domain69 = temp * (domain68);
+ temp = pow44 - pow827;
+ temp *= pow44 - pow828;
+ temp *= pow44 - pow829;
+ temp *= pow44 - pow830;
+ temp *= pow44 - pow831;
+ temp *= pow44 - pow832;
+ temp *= pow44 - pow833;
+ temp *= pow44 - pow834;
+ temp *= pow44 - pow835;
+ temp *= pow44 - pow836;
+ temp *= pow44 - pow837;
+ temp *= pow44 - pow838;
+ temp *= pow44 - pow839;
+ temp *= pow44 - pow840;
+ temp *= pow44 - pow841;
+ temp *= pow44 - pow842;
+ temp *= domain50;
+ domain70 = temp * (domain69);
+ temp = pow44 - pow2575;
+ temp *= pow44 - pow2576;
+ temp *= pow44 - pow2577;
+ temp *= pow44 - pow2578;
+ temp *= pow44 - pow2579;
+ temp *= pow44 - pow2580;
+ temp *= pow44 - pow2581;
+ domain71 = temp * (pow44 - pow2582);
+ temp = pow44 - pow2583;
+ temp *= pow44 - pow2584;
+ temp *= pow44 - pow2585;
+ temp *= pow44 - pow2586;
+ temp *= pow44 - pow2587;
+ temp *= pow44 - pow2588;
+ temp *= pow44 - pow2589;
+ temp *= pow44 - pow2590;
+ temp *= pow44 - pow2591;
+ temp *= pow44 - pow2592;
+ temp *= pow44 - pow2593;
+ temp *= pow44 - pow2594;
+ temp *= pow44 - pow2595;
+ temp *= pow44 - pow2596;
+ temp *= pow44 - pow2597;
+ temp *= pow44 - pow2598;
+ temp *= domain67;
+ domain72 = temp * (domain71);
+ temp = pow44 - pow2538;
+ temp *= pow44 - pow2539;
+ temp *= pow44 - pow2540;
+ temp *= pow44 - pow2541;
+ temp *= pow44 - pow2542;
+ temp *= pow44 - pow2543;
+ temp *= pow44 - pow2544;
+ domain73 = temp * (pow44 - pow2545);
+ temp = pow44 - pow2423;
+ temp *= pow44 - pow2424;
+ temp *= pow44 - pow2425;
+ temp *= pow44 - pow2426;
+ temp *= pow44 - pow2427;
+ temp *= pow44 - pow2428;
+ temp *= pow44 - pow2429;
+ temp *= pow44 - pow2430;
+ temp *= pow44 - pow2462;
+ temp *= pow44 - pow2463;
+ temp *= pow44 - pow2464;
+ temp *= pow44 - pow2465;
+ temp *= pow44 - pow2466;
+ temp *= pow44 - pow2467;
+ temp *= pow44 - pow2468;
+ temp *= pow44 - pow2469;
+ temp *= pow44 - pow2499;
+ temp *= pow44 - pow2500;
+ temp *= pow44 - pow2501;
+ temp *= pow44 - pow2502;
+ temp *= pow44 - pow2503;
+ temp *= pow44 - pow2504;
+ temp *= pow44 - pow2505;
+ temp *= pow44 - pow2506;
+ domain74 = temp * (domain73);
+ temp = pow44 - pow2546;
+ temp *= pow44 - pow2547;
+ temp *= pow44 - pow2548;
+ temp *= pow44 - pow2549;
+ temp *= pow44 - pow2550;
+ temp *= pow44 - pow2551;
+ temp *= pow44 - pow2552;
+ temp *= pow44 - pow2553;
+ temp *= pow44 - pow2554;
+ temp *= pow44 - pow2555;
+ temp *= pow44 - pow2556;
+ temp *= pow44 - pow2557;
+ temp *= pow44 - pow2558;
+ temp *= pow44 - pow2559;
+ temp *= pow44 - pow2560;
+ temp *= pow44 - pow2561;
+ domain75 = temp * (domain72);
+ temp = pow44 - pow2431;
+ temp *= pow44 - pow2432;
+ temp *= pow44 - pow2433;
+ temp *= pow44 - pow2434;
+ temp *= pow44 - pow2435;
+ temp *= pow44 - pow2436;
+ temp *= pow44 - pow2437;
+ temp *= pow44 - pow2438;
+ temp *= pow44 - pow2439;
+ temp *= pow44 - pow2440;
+ temp *= pow44 - pow2441;
+ temp *= pow44 - pow2442;
+ temp *= pow44 - pow2443;
+ temp *= pow44 - pow2444;
+ temp *= pow44 - pow2445;
+ temp *= pow44 - pow2446;
+ temp *= pow44 - pow2470;
+ temp *= pow44 - pow2471;
+ temp *= pow44 - pow2472;
+ temp *= pow44 - pow2473;
+ temp *= pow44 - pow2474;
+ temp *= pow44 - pow2475;
+ temp *= pow44 - pow2476;
+ temp *= pow44 - pow2477;
+ temp *= pow44 - pow2478;
+ temp *= pow44 - pow2479;
+ temp *= pow44 - pow2480;
+ temp *= pow44 - pow2481;
+ temp *= pow44 - pow2482;
+ temp *= pow44 - pow2483;
+ temp *= pow44 - pow2484;
+ temp *= pow44 - pow2485;
+ temp *= pow44 - pow2507;
+ temp *= pow44 - pow2508;
+ temp *= pow44 - pow2509;
+ temp *= pow44 - pow2510;
+ temp *= pow44 - pow2511;
+ temp *= pow44 - pow2512;
+ temp *= pow44 - pow2513;
+ temp *= pow44 - pow2514;
+ temp *= pow44 - pow2515;
+ temp *= pow44 - pow2516;
+ temp *= pow44 - pow2517;
+ temp *= pow44 - pow2518;
+ temp *= pow44 - pow2519;
+ temp *= pow44 - pow2520;
+ temp *= pow44 - pow2521;
+ temp *= pow44 - pow2522;
+ temp *= domain74;
+ domain76 = temp * (domain75);
+ temp = pow44 - pow2347;
+ temp *= pow44 - pow2348;
+ temp *= pow44 - pow2349;
+ temp *= pow44 - pow2350;
+ temp *= pow44 - pow2351;
+ temp *= pow44 - pow2352;
+ temp *= pow44 - pow2353;
+ temp *= pow44 - pow2354;
+ temp *= pow44 - pow2386;
+ temp *= pow44 - pow2387;
+ temp *= pow44 - pow2388;
+ temp *= pow44 - pow2389;
+ temp *= pow44 - pow2390;
+ temp *= pow44 - pow2391;
+ temp *= pow44 - pow2392;
+ domain77 = temp * (pow44 - pow2393);
+ temp = pow44 - pow2310;
+ temp *= pow44 - pow2311;
+ temp *= pow44 - pow2312;
+ temp *= pow44 - pow2313;
+ temp *= pow44 - pow2314;
+ temp *= pow44 - pow2315;
+ temp *= pow44 - pow2316;
+ temp *= pow44 - pow2317;
+ domain78 = temp * (domain77);
+ temp = pow44 - pow2271;
+ temp *= pow44 - pow2272;
+ temp *= pow44 - pow2273;
+ temp *= pow44 - pow2274;
+ temp *= pow44 - pow2275;
+ temp *= pow44 - pow2276;
+ temp *= pow44 - pow2277;
+ temp *= pow44 - pow2278;
+ domain79 = temp * (domain78);
+ temp = pow44 - pow2355;
+ temp *= pow44 - pow2356;
+ temp *= pow44 - pow2357;
+ temp *= pow44 - pow2358;
+ temp *= pow44 - pow2359;
+ temp *= pow44 - pow2360;
+ temp *= pow44 - pow2361;
+ temp *= pow44 - pow2362;
+ temp *= pow44 - pow2363;
+ temp *= pow44 - pow2364;
+ temp *= pow44 - pow2365;
+ temp *= pow44 - pow2366;
+ temp *= pow44 - pow2367;
+ temp *= pow44 - pow2368;
+ temp *= pow44 - pow2369;
+ temp *= pow44 - pow2370;
+ temp *= pow44 - pow2394;
+ temp *= pow44 - pow2395;
+ temp *= pow44 - pow2396;
+ temp *= pow44 - pow2397;
+ temp *= pow44 - pow2398;
+ temp *= pow44 - pow2399;
+ temp *= pow44 - pow2400;
+ temp *= pow44 - pow2401;
+ temp *= pow44 - pow2402;
+ temp *= pow44 - pow2403;
+ temp *= pow44 - pow2404;
+ temp *= pow44 - pow2405;
+ temp *= pow44 - pow2406;
+ temp *= pow44 - pow2407;
+ temp *= pow44 - pow2408;
+ temp *= pow44 - pow2409;
+ domain80 = temp * (domain76);
+ temp = pow44 - pow2279;
+ temp *= pow44 - pow2280;
+ temp *= pow44 - pow2281;
+ temp *= pow44 - pow2282;
+ temp *= pow44 - pow2283;
+ temp *= pow44 - pow2284;
+ temp *= pow44 - pow2285;
+ temp *= pow44 - pow2286;
+ temp *= pow44 - pow2287;
+ temp *= pow44 - pow2288;
+ temp *= pow44 - pow2289;
+ temp *= pow44 - pow2290;
+ temp *= pow44 - pow2291;
+ temp *= pow44 - pow2292;
+ temp *= pow44 - pow2293;
+ temp *= pow44 - pow2294;
+ temp *= pow44 - pow2318;
+ temp *= pow44 - pow2319;
+ temp *= pow44 - pow2320;
+ temp *= pow44 - pow2321;
+ temp *= pow44 - pow2322;
+ temp *= pow44 - pow2323;
+ temp *= pow44 - pow2324;
+ temp *= pow44 - pow2325;
+ temp *= pow44 - pow2326;
+ temp *= pow44 - pow2327;
+ temp *= pow44 - pow2328;
+ temp *= pow44 - pow2329;
+ temp *= pow44 - pow2330;
+ temp *= pow44 - pow2331;
+ temp *= pow44 - pow2332;
+ temp *= pow44 - pow2333;
+ temp *= domain79;
+ domain81 = temp * (domain80);
+ temp = pow44 - pow2147;
+ temp *= pow44 - pow2150;
+ temp *= pow44 - pow2153;
+ temp *= pow44 - pow2156;
+ temp *= pow44 - pow2159;
+ temp *= pow44 - pow2162;
+ temp *= pow44 - pow2165;
+ temp *= pow44 - pow2168;
+ temp *= pow44 - pow2148;
+ temp *= pow44 - pow2151;
+ temp *= pow44 - pow2154;
+ temp *= pow44 - pow2157;
+ temp *= pow44 - pow2160;
+ temp *= pow44 - pow2163;
+ temp *= pow44 - pow2166;
+ temp *= pow44 - pow2185;
+ temp *= pow44 - pow2149;
+ temp *= pow44 - pow2152;
+ temp *= pow44 - pow2155;
+ temp *= pow44 - pow2158;
+ temp *= pow44 - pow2161;
+ temp *= pow44 - pow2164;
+ temp *= pow44 - pow2167;
+ temp *= pow44 - pow2202;
+ temp *= pow44 - pow2234;
+ temp *= pow44 - pow2235;
+ temp *= pow44 - pow2236;
+ temp *= pow44 - pow2237;
+ temp *= pow44 - pow2238;
+ temp *= pow44 - pow2239;
+ temp *= pow44 - pow2240;
+ domain82 = temp * (pow44 - pow2241);
+ temp = pow44 - pow2069;
+ temp *= pow44 - pow2070;
+ temp *= pow44 - pow2071;
+ temp *= pow44 - pow2072;
+ temp *= pow44 - pow2073;
+ temp *= pow44 - pow2074;
+ temp *= pow44 - pow2129;
+ temp *= pow44 - pow2130;
+ domain83 = temp * (domain82);
+ temp = pow44 - pow2051;
+ temp *= pow44 - pow2054;
+ temp *= pow44 - pow2057;
+ temp *= pow44 - pow2060;
+ temp *= pow44 - pow2063;
+ temp *= pow44 - pow2066;
+ temp *= pow44 - pow2075;
+ temp *= pow44 - pow2078;
+ temp *= pow44 - pow2052;
+ temp *= pow44 - pow2055;
+ temp *= pow44 - pow2058;
+ temp *= pow44 - pow2061;
+ temp *= pow44 - pow2064;
+ temp *= pow44 - pow2067;
+ temp *= pow44 - pow2076;
+ temp *= pow44 - pow2095;
+ temp *= pow44 - pow2053;
+ temp *= pow44 - pow2056;
+ temp *= pow44 - pow2059;
+ temp *= pow44 - pow2062;
+ temp *= pow44 - pow2065;
+ temp *= pow44 - pow2068;
+ temp *= pow44 - pow2077;
+ temp *= pow44 - pow2112;
+ domain84 = temp * (domain83);
+ temp = pow44 - pow2020;
+ temp *= pow44 - pow2021;
+ temp *= pow44 - pow2022;
+ temp *= pow44 - pow2023;
+ temp *= pow44 - pow2024;
+ temp *= pow44 - pow2025;
+ temp *= pow44 - pow2026;
+ temp *= pow44 - pow2027;
+ domain85 = temp * (domain84);
+ temp = pow44 - pow1981;
+ temp *= pow44 - pow1982;
+ temp *= pow44 - pow1983;
+ temp *= pow44 - pow1984;
+ temp *= pow44 - pow1985;
+ temp *= pow44 - pow1986;
+ temp *= pow44 - pow1987;
+ temp *= pow44 - pow1988;
+ domain86 = temp * (domain85);
+ temp = pow44 - pow2169;
+ temp *= pow44 - pow2170;
+ temp *= pow44 - pow2171;
+ temp *= pow44 - pow2172;
+ temp *= pow44 - pow2173;
+ temp *= pow44 - pow2174;
+ temp *= pow44 - pow2175;
+ temp *= pow44 - pow2176;
+ temp *= pow44 - pow2177;
+ temp *= pow44 - pow2178;
+ temp *= pow44 - pow2179;
+ temp *= pow44 - pow2180;
+ temp *= pow44 - pow2181;
+ temp *= pow44 - pow2182;
+ temp *= pow44 - pow2183;
+ temp *= pow44 - pow2184;
+ temp *= pow44 - pow2186;
+ temp *= pow44 - pow2187;
+ temp *= pow44 - pow2188;
+ temp *= pow44 - pow2189;
+ temp *= pow44 - pow2190;
+ temp *= pow44 - pow2191;
+ temp *= pow44 - pow2192;
+ temp *= pow44 - pow2193;
+ temp *= pow44 - pow2194;
+ temp *= pow44 - pow2195;
+ temp *= pow44 - pow2196;
+ temp *= pow44 - pow2197;
+ temp *= pow44 - pow2198;
+ temp *= pow44 - pow2199;
+ temp *= pow44 - pow2200;
+ temp *= pow44 - pow2201;
+ temp *= pow44 - pow2203;
+ temp *= pow44 - pow2204;
+ temp *= pow44 - pow2205;
+ temp *= pow44 - pow2206;
+ temp *= pow44 - pow2207;
+ temp *= pow44 - pow2208;
+ temp *= pow44 - pow2209;
+ temp *= pow44 - pow2210;
+ temp *= pow44 - pow2211;
+ temp *= pow44 - pow2212;
+ temp *= pow44 - pow2213;
+ temp *= pow44 - pow2214;
+ temp *= pow44 - pow2215;
+ temp *= pow44 - pow2216;
+ temp *= pow44 - pow2217;
+ temp *= pow44 - pow2218;
+ temp *= pow44 - pow2242;
+ temp *= pow44 - pow2243;
+ temp *= pow44 - pow2244;
+ temp *= pow44 - pow2245;
+ temp *= pow44 - pow2246;
+ temp *= pow44 - pow2247;
+ temp *= pow44 - pow2248;
+ temp *= pow44 - pow2249;
+ temp *= pow44 - pow2250;
+ temp *= pow44 - pow2251;
+ temp *= pow44 - pow2252;
+ temp *= pow44 - pow2253;
+ temp *= pow44 - pow2254;
+ temp *= pow44 - pow2255;
+ temp *= pow44 - pow2256;
+ temp *= pow44 - pow2257;
+ domain87 = temp * (domain81);
+ temp = pow44 - pow2131;
+ temp *= pow44 - pow2132;
+ temp *= pow44 - pow2133;
+ temp *= pow44 - pow2134;
+ temp *= pow44 - pow2135;
+ temp *= pow44 - pow2136;
+ temp *= pow44 - pow2137;
+ temp *= pow44 - pow2138;
+ temp *= pow44 - pow2139;
+ temp *= pow44 - pow2140;
+ temp *= pow44 - pow2141;
+ temp *= pow44 - pow2142;
+ temp *= pow44 - pow2143;
+ temp *= pow44 - pow2144;
+ temp *= pow44 - pow2145;
+ temp *= pow44 - pow2146;
+ domain88 = temp * (domain87);
+ temp = pow44 - pow2079;
+ temp *= pow44 - pow2080;
+ temp *= pow44 - pow2081;
+ temp *= pow44 - pow2082;
+ temp *= pow44 - pow2083;
+ temp *= pow44 - pow2084;
+ temp *= pow44 - pow2085;
+ temp *= pow44 - pow2086;
+ temp *= pow44 - pow2087;
+ temp *= pow44 - pow2088;
+ temp *= pow44 - pow2089;
+ temp *= pow44 - pow2090;
+ temp *= pow44 - pow2091;
+ temp *= pow44 - pow2092;
+ temp *= pow44 - pow2093;
+ temp *= pow44 - pow2094;
+ temp *= pow44 - pow2096;
+ temp *= pow44 - pow2097;
+ temp *= pow44 - pow2098;
+ temp *= pow44 - pow2099;
+ temp *= pow44 - pow2100;
+ temp *= pow44 - pow2101;
+ temp *= pow44 - pow2102;
+ temp *= pow44 - pow2103;
+ temp *= pow44 - pow2104;
+ temp *= pow44 - pow2105;
+ temp *= pow44 - pow2106;
+ temp *= pow44 - pow2107;
+ temp *= pow44 - pow2108;
+ temp *= pow44 - pow2109;
+ temp *= pow44 - pow2110;
+ temp *= pow44 - pow2111;
+ temp *= pow44 - pow2113;
+ temp *= pow44 - pow2114;
+ temp *= pow44 - pow2115;
+ temp *= pow44 - pow2116;
+ temp *= pow44 - pow2117;
+ temp *= pow44 - pow2118;
+ temp *= pow44 - pow2119;
+ temp *= pow44 - pow2120;
+ temp *= pow44 - pow2121;
+ temp *= pow44 - pow2122;
+ temp *= pow44 - pow2123;
+ temp *= pow44 - pow2124;
+ temp *= pow44 - pow2125;
+ temp *= pow44 - pow2126;
+ temp *= pow44 - pow2127;
+ temp *= pow44 - pow2128;
+ domain89 = temp * (domain88);
+ temp = pow44 - pow2028;
+ temp *= pow44 - pow2029;
+ temp *= pow44 - pow2030;
+ temp *= pow44 - pow2031;
+ temp *= pow44 - pow2032;
+ temp *= pow44 - pow2033;
+ temp *= pow44 - pow2034;
+ temp *= pow44 - pow2035;
+ temp *= pow44 - pow2036;
+ temp *= pow44 - pow2037;
+ temp *= pow44 - pow2038;
+ temp *= pow44 - pow2039;
+ temp *= pow44 - pow2040;
+ temp *= pow44 - pow2041;
+ temp *= pow44 - pow2042;
+ temp *= pow44 - pow2043;
+ domain90 = temp * (domain89);
+ temp = pow44 - pow1989;
+ temp *= pow44 - pow1990;
+ temp *= pow44 - pow1991;
+ temp *= pow44 - pow1992;
+ temp *= pow44 - pow1993;
+ temp *= pow44 - pow1994;
+ temp *= pow44 - pow1995;
+ temp *= pow44 - pow1996;
+ temp *= pow44 - pow1997;
+ temp *= pow44 - pow1998;
+ temp *= pow44 - pow1999;
+ temp *= pow44 - pow2000;
+ temp *= pow44 - pow2001;
+ temp *= pow44 - pow2002;
+ temp *= pow44 - pow2003;
+ temp *= pow44 - pow2004;
+ temp *= domain86;
+ domain91 = temp * (domain90);
+ temp = pow44 - pow1950;
+ temp *= pow44 - pow1951;
+ temp *= pow44 - pow1952;
+ temp *= pow44 - pow1953;
+ temp *= pow44 - pow1954;
+ temp *= pow44 - pow1955;
+ temp *= pow44 - pow1956;
+ domain92 = temp * (pow44 - pow1957);
+ temp = pow44 - pow1958;
+ temp *= pow44 - pow1959;
+ temp *= pow44 - pow1960;
+ temp *= pow44 - pow1961;
+ temp *= pow44 - pow1962;
+ temp *= pow44 - pow1963;
+ temp *= pow44 - pow1964;
+ temp *= pow44 - pow1965;
+ temp *= pow44 - pow1966;
+ temp *= pow44 - pow1967;
+ temp *= pow44 - pow1968;
+ temp *= pow44 - pow1969;
+ temp *= pow44 - pow1970;
+ temp *= pow44 - pow1971;
+ temp *= pow44 - pow1972;
+ temp *= pow44 - pow1973;
+ temp *= domain91;
+ domain93 = temp * (domain92);
+ temp = pow44 - pow1880;
+ temp *= pow44 - pow1881;
+ temp *= pow44 - pow1882;
+ temp *= pow44 - pow1883;
+ temp *= pow44 - pow1884;
+ temp *= pow44 - pow1885;
+ temp *= pow44 - pow1886;
+ temp *= pow44 - pow1887;
+ temp *= pow44 - pow1911;
+ temp *= pow44 - pow1912;
+ temp *= pow44 - pow1913;
+ temp *= pow44 - pow1914;
+ temp *= pow44 - pow1915;
+ temp *= pow44 - pow1916;
+ temp *= pow44 - pow1917;
+ domain94 = temp * (pow44 - pow1918);
+ temp = pow44 - pow1817;
+ temp *= pow44 - pow1818;
+ temp *= pow44 - pow1819;
+ temp *= pow44 - pow1820;
+ temp *= pow44 - pow1821;
+ temp *= pow44 - pow1822;
+ temp *= pow44 - pow1823;
+ temp *= pow44 - pow1824;
+ temp *= pow44 - pow1841;
+ temp *= pow44 - pow1842;
+ temp *= pow44 - pow1843;
+ temp *= pow44 - pow1844;
+ temp *= pow44 - pow1845;
+ temp *= pow44 - pow1846;
+ temp *= pow44 - pow1847;
+ temp *= pow44 - pow1848;
+ domain95 = temp * (domain94);
+ temp = pow44 - pow1825;
+ temp *= pow44 - pow1826;
+ temp *= pow44 - pow1827;
+ temp *= pow44 - pow1828;
+ temp *= pow44 - pow1829;
+ temp *= pow44 - pow1830;
+ temp *= pow44 - pow1831;
+ temp *= pow44 - pow1832;
+ temp *= pow44 - pow1833;
+ temp *= pow44 - pow1834;
+ temp *= pow44 - pow1835;
+ temp *= pow44 - pow1836;
+ temp *= pow44 - pow1837;
+ temp *= pow44 - pow1838;
+ temp *= pow44 - pow1839;
+ temp *= pow44 - pow1840;
+ temp *= pow44 - pow1849;
+ temp *= pow44 - pow1850;
+ temp *= pow44 - pow1851;
+ temp *= pow44 - pow1852;
+ temp *= pow44 - pow1853;
+ temp *= pow44 - pow1854;
+ temp *= pow44 - pow1855;
+ temp *= pow44 - pow1856;
+ temp *= pow44 - pow1857;
+ temp *= pow44 - pow1858;
+ temp *= pow44 - pow1859;
+ temp *= pow44 - pow1860;
+ temp *= pow44 - pow1861;
+ temp *= pow44 - pow1862;
+ temp *= pow44 - pow1863;
+ temp *= pow44 - pow1864;
+ temp *= pow44 - pow1888;
+ temp *= pow44 - pow1889;
+ temp *= pow44 - pow1890;
+ temp *= pow44 - pow1891;
+ temp *= pow44 - pow1892;
+ temp *= pow44 - pow1893;
+ temp *= pow44 - pow1894;
+ temp *= pow44 - pow1895;
+ temp *= pow44 - pow1896;
+ temp *= pow44 - pow1897;
+ temp *= pow44 - pow1898;
+ temp *= pow44 - pow1899;
+ temp *= pow44 - pow1900;
+ temp *= pow44 - pow1901;
+ temp *= pow44 - pow1902;
+ temp *= pow44 - pow1903;
+ temp *= pow44 - pow1919;
+ temp *= pow44 - pow1920;
+ temp *= pow44 - pow1921;
+ temp *= pow44 - pow1922;
+ temp *= pow44 - pow1923;
+ temp *= pow44 - pow1924;
+ temp *= pow44 - pow1925;
+ temp *= pow44 - pow1926;
+ temp *= pow44 - pow1927;
+ temp *= pow44 - pow1928;
+ temp *= pow44 - pow1929;
+ temp *= pow44 - pow1930;
+ temp *= pow44 - pow1931;
+ temp *= pow44 - pow1932;
+ temp *= pow44 - pow1933;
+ temp *= pow44 - pow1934;
+ temp *= domain93;
+ domain96 = temp * (domain95);
+ temp = pow44 - pow1769;
+ temp *= pow44 - pow1770;
+ temp *= pow44 - pow1771;
+ temp *= pow44 - pow1772;
+ temp *= pow44 - pow1773;
+ temp *= pow44 - pow1774;
+ temp *= pow44 - pow1775;
+ temp *= pow44 - pow1776;
+ temp *= pow44 - pow1777;
+ temp *= pow44 - pow1778;
+ temp *= pow44 - pow1779;
+ temp *= pow44 - pow1780;
+ temp *= pow44 - pow1781;
+ temp *= pow44 - pow1782;
+ temp *= pow44 - pow1783;
+ temp *= pow44 - pow1784;
+ temp *= pow44 - pow1785;
+ temp *= pow44 - pow1786;
+ temp *= pow44 - pow1787;
+ temp *= pow44 - pow1788;
+ temp *= pow44 - pow1789;
+ temp *= pow44 - pow1790;
+ temp *= pow44 - pow1791;
+ temp *= pow44 - pow1792;
+ temp *= pow44 - pow1793;
+ temp *= pow44 - pow1794;
+ temp *= pow44 - pow1795;
+ temp *= pow44 - pow1796;
+ temp *= pow44 - pow1797;
+ temp *= pow44 - pow1798;
+ temp *= pow44 - pow1799;
+ temp *= pow44 - pow1800;
+ temp *= pow44 - pow1801;
+ temp *= pow44 - pow1802;
+ temp *= pow44 - pow1803;
+ temp *= pow44 - pow1804;
+ temp *= pow44 - pow1805;
+ temp *= pow44 - pow1806;
+ temp *= pow44 - pow1807;
+ temp *= pow44 - pow1808;
+ temp *= pow44 - pow1809;
+ temp *= pow44 - pow1810;
+ temp *= pow44 - pow1811;
+ temp *= pow44 - pow1812;
+ temp *= pow44 - pow1813;
+ temp *= pow44 - pow1814;
+ temp *= pow44 - pow1815;
+ temp *= pow44 - pow1816;
+ domain97 = temp * (domain96);
+ temp = pow44 - pow1745;
+ temp *= pow44 - pow1746;
+ temp *= pow44 - pow1747;
+ temp *= pow44 - pow1748;
+ temp *= pow44 - pow1749;
+ temp *= pow44 - pow1750;
+ temp *= pow44 - pow1751;
+ temp *= pow44 - pow1752;
+ temp *= pow44 - pow1753;
+ temp *= pow44 - pow1754;
+ temp *= pow44 - pow1755;
+ temp *= pow44 - pow1756;
+ temp *= pow44 - pow1757;
+ temp *= pow44 - pow1758;
+ temp *= pow44 - pow1759;
+ temp *= pow44 - pow1760;
+ temp *= pow44 - pow1761;
+ temp *= pow44 - pow1762;
+ temp *= pow44 - pow1763;
+ temp *= pow44 - pow1764;
+ temp *= pow44 - pow1765;
+ temp *= pow44 - pow1766;
+ temp *= pow44 - pow1767;
+ temp *= pow44 - pow1768;
+ domain98 = temp * (domain97);
+ temp = pow44 - pow850;
+ temp *= pow44 - pow851;
+ temp *= pow44 - pow852;
+ temp *= pow44 - pow853;
+ temp *= pow44 - pow854;
+ temp *= pow44 - pow855;
+ temp *= pow44 - pow856;
+ domain99 = temp * (pow44 - pow857);
+ domain100 = pow44 - pow889;
+ temp = pow44 - pow890;
+ temp *= pow44 - pow891;
+ temp *= pow44 - pow892;
+ temp *= pow44 - pow893;
+ temp *= pow44 - pow894;
+ temp *= pow44 - pow895;
+ temp *= pow44 - pow896;
+ temp *= pow44 - pow920;
+ temp *= pow44 - pow921;
+ temp *= pow44 - pow922;
+ temp *= pow44 - pow923;
+ temp *= pow44 - pow924;
+ temp *= pow44 - pow925;
+ temp *= pow44 - pow926;
+ temp *= pow44 - pow927;
+ temp *= pow44 - pow959;
+ temp *= pow44 - pow960;
+ temp *= pow44 - pow961;
+ temp *= pow44 - pow962;
+ temp *= pow44 - pow963;
+ temp *= pow44 - pow964;
+ temp *= pow44 - pow965;
+ temp *= pow44 - pow966;
+ temp *= domain99;
+ domain101 = temp * (domain100);
+ temp = pow44 - pow858;
+ temp *= pow44 - pow859;
+ temp *= pow44 - pow860;
+ temp *= pow44 - pow861;
+ temp *= pow44 - pow862;
+ temp *= pow44 - pow863;
+ temp *= pow44 - pow864;
+ temp *= pow44 - pow865;
+ temp *= pow44 - pow866;
+ temp *= pow44 - pow867;
+ temp *= pow44 - pow868;
+ temp *= pow44 - pow869;
+ temp *= pow44 - pow870;
+ temp *= pow44 - pow871;
+ temp *= pow44 - pow872;
+ temp *= pow44 - pow873;
+ domain102 = temp * (domain70);
+ temp = pow44 - pow897;
+ temp *= pow44 - pow898;
+ temp *= pow44 - pow899;
+ temp *= pow44 - pow900;
+ temp *= pow44 - pow901;
+ temp *= pow44 - pow902;
+ temp *= pow44 - pow903;
+ temp *= pow44 - pow904;
+ temp *= pow44 - pow905;
+ temp *= pow44 - pow906;
+ temp *= pow44 - pow907;
+ temp *= pow44 - pow908;
+ temp *= pow44 - pow909;
+ temp *= pow44 - pow910;
+ temp *= pow44 - pow911;
+ temp *= pow44 - pow912;
+ temp *= pow44 - pow928;
+ temp *= pow44 - pow929;
+ temp *= pow44 - pow930;
+ temp *= pow44 - pow931;
+ temp *= pow44 - pow932;
+ temp *= pow44 - pow933;
+ temp *= pow44 - pow934;
+ temp *= pow44 - pow935;
+ temp *= pow44 - pow936;
+ temp *= pow44 - pow937;
+ temp *= pow44 - pow938;
+ temp *= pow44 - pow939;
+ temp *= pow44 - pow940;
+ temp *= pow44 - pow941;
+ temp *= pow44 - pow942;
+ temp *= pow44 - pow943;
+ temp *= pow44 - pow967;
+ temp *= pow44 - pow968;
+ temp *= pow44 - pow969;
+ temp *= pow44 - pow970;
+ temp *= pow44 - pow971;
+ temp *= pow44 - pow972;
+ temp *= pow44 - pow973;
+ temp *= pow44 - pow974;
+ temp *= pow44 - pow975;
+ temp *= pow44 - pow976;
+ temp *= pow44 - pow977;
+ temp *= pow44 - pow978;
+ temp *= pow44 - pow979;
+ temp *= pow44 - pow980;
+ temp *= pow44 - pow981;
+ temp *= pow44 - pow982;
+ temp *= domain101;
+ domain103 = temp * (domain102);
+ domain104 = pow44 - pow1014;
+ temp = pow44 - pow990;
+ temp *= pow44 - pow991;
+ temp *= pow44 - pow992;
+ temp *= pow44 - pow993;
+ temp *= pow44 - pow994;
+ temp *= pow44 - pow995;
+ temp *= pow44 - pow996;
+ temp *= pow44 - pow997;
+ temp *= pow44 - pow1017;
+ temp *= pow44 - pow1020;
+ temp *= pow44 - pow1023;
+ temp *= pow44 - pow1026;
+ temp *= pow44 - pow1029;
+ temp *= pow44 - pow1032;
+ temp *= pow44 - pow1035;
+ domain105 = temp * (domain104);
+ temp = pow44 - pow1015;
+ temp *= pow44 - pow1018;
+ temp *= pow44 - pow1021;
+ temp *= pow44 - pow1024;
+ temp *= pow44 - pow1027;
+ temp *= pow44 - pow1030;
+ temp *= pow44 - pow1033;
+ temp *= pow44 - pow1052;
+ domain106 = temp * (domain105);
+ temp = pow44 - pow1016;
+ temp *= pow44 - pow1019;
+ temp *= pow44 - pow1022;
+ temp *= pow44 - pow1025;
+ temp *= pow44 - pow1028;
+ temp *= pow44 - pow1031;
+ temp *= pow44 - pow1034;
+ temp *= pow44 - pow1069;
+ domain107 = temp * (domain106);
+ temp = pow44 - pow998;
+ temp *= pow44 - pow999;
+ temp *= pow44 - pow1000;
+ temp *= pow44 - pow1001;
+ temp *= pow44 - pow1002;
+ temp *= pow44 - pow1003;
+ temp *= pow44 - pow1004;
+ temp *= pow44 - pow1005;
+ temp *= pow44 - pow1006;
+ temp *= pow44 - pow1007;
+ temp *= pow44 - pow1008;
+ temp *= pow44 - pow1009;
+ temp *= pow44 - pow1010;
+ temp *= pow44 - pow1011;
+ temp *= pow44 - pow1012;
+ temp *= pow44 - pow1013;
+ temp *= pow44 - pow1036;
+ temp *= pow44 - pow1037;
+ temp *= pow44 - pow1038;
+ temp *= pow44 - pow1039;
+ temp *= pow44 - pow1040;
+ temp *= pow44 - pow1041;
+ temp *= pow44 - pow1042;
+ temp *= pow44 - pow1043;
+ temp *= pow44 - pow1044;
+ temp *= pow44 - pow1045;
+ temp *= pow44 - pow1046;
+ temp *= pow44 - pow1047;
+ temp *= pow44 - pow1048;
+ temp *= pow44 - pow1049;
+ temp *= pow44 - pow1050;
+ temp *= pow44 - pow1051;
+ domain108 = temp * (domain103);
+ temp = pow44 - pow1053;
+ temp *= pow44 - pow1054;
+ temp *= pow44 - pow1055;
+ temp *= pow44 - pow1056;
+ temp *= pow44 - pow1057;
+ temp *= pow44 - pow1058;
+ temp *= pow44 - pow1059;
+ temp *= pow44 - pow1060;
+ temp *= pow44 - pow1061;
+ temp *= pow44 - pow1062;
+ temp *= pow44 - pow1063;
+ temp *= pow44 - pow1064;
+ temp *= pow44 - pow1065;
+ temp *= pow44 - pow1066;
+ temp *= pow44 - pow1067;
+ temp *= pow44 - pow1068;
+ temp *= pow44 - pow1070;
+ temp *= pow44 - pow1071;
+ temp *= pow44 - pow1072;
+ temp *= pow44 - pow1073;
+ temp *= pow44 - pow1074;
+ temp *= pow44 - pow1075;
+ temp *= pow44 - pow1076;
+ temp *= pow44 - pow1077;
+ temp *= pow44 - pow1078;
+ temp *= pow44 - pow1079;
+ temp *= pow44 - pow1080;
+ temp *= pow44 - pow1081;
+ temp *= pow44 - pow1082;
+ temp *= pow44 - pow1083;
+ temp *= pow44 - pow1084;
+ temp *= pow44 - pow1085;
+ temp *= domain107;
+ domain109 = temp * (domain108);
+ temp = pow44 - pow1086;
+ temp *= pow44 - pow1087;
+ temp *= pow44 - pow1088;
+ temp *= pow44 - pow1089;
+ temp *= pow44 - pow1090;
+ temp *= pow44 - pow1091;
+ temp *= pow44 - pow1092;
+ temp *= pow44 - pow1093;
+ temp *= pow44 - pow1125;
+ temp *= pow44 - pow1126;
+ temp *= pow44 - pow1127;
+ temp *= pow44 - pow1128;
+ temp *= pow44 - pow1129;
+ temp *= pow44 - pow1130;
+ temp *= pow44 - pow1131;
+ temp *= pow44 - pow1132;
+ temp *= pow44 - pow1156;
+ temp *= pow44 - pow1157;
+ temp *= pow44 - pow1158;
+ temp *= pow44 - pow1159;
+ temp *= pow44 - pow1160;
+ temp *= pow44 - pow1161;
+ temp *= pow44 - pow1162;
+ temp *= pow44 - pow1163;
+ temp *= pow44 - pow1195;
+ temp *= pow44 - pow1196;
+ temp *= pow44 - pow1197;
+ temp *= pow44 - pow1198;
+ temp *= pow44 - pow1199;
+ temp *= pow44 - pow1200;
+ temp *= pow44 - pow1201;
+ domain110 = temp * (pow44 - pow1202);
+ temp = pow44 - pow1226;
+ temp *= pow44 - pow1227;
+ temp *= pow44 - pow1228;
+ temp *= pow44 - pow1229;
+ temp *= pow44 - pow1230;
+ temp *= pow44 - pow1231;
+ temp *= pow44 - pow1232;
+ temp *= pow44 - pow1233;
+ domain111 = temp * (domain110);
+ domain112 = pow44 - pow1265;
+ temp = pow44 - pow1266;
+ temp *= pow44 - pow1267;
+ temp *= pow44 - pow1268;
+ temp *= pow44 - pow1269;
+ temp *= pow44 - pow1270;
+ temp *= pow44 - pow1271;
+ temp *= pow44 - pow1272;
+ temp *= pow44 - pow1296;
+ temp *= pow44 - pow1300;
+ temp *= pow44 - pow1304;
+ temp *= pow44 - pow1308;
+ temp *= pow44 - pow1312;
+ temp *= pow44 - pow1316;
+ temp *= pow44 - pow1320;
+ temp *= pow44 - pow1324;
+ temp *= pow44 - pow1297;
+ temp *= pow44 - pow1301;
+ temp *= pow44 - pow1305;
+ temp *= pow44 - pow1309;
+ temp *= pow44 - pow1313;
+ temp *= pow44 - pow1317;
+ temp *= pow44 - pow1321;
+ temp *= pow44 - pow1326;
+ temp *= domain111;
+ domain113 = temp * (domain112);
+ temp = pow44 - pow1298;
+ temp *= pow44 - pow1302;
+ temp *= pow44 - pow1306;
+ temp *= pow44 - pow1310;
+ temp *= pow44 - pow1314;
+ temp *= pow44 - pow1318;
+ temp *= pow44 - pow1322;
+ temp *= pow44 - pow1328;
+ domain114 = temp * (domain113);
+ temp = pow44 - pow1299;
+ temp *= pow44 - pow1303;
+ temp *= pow44 - pow1307;
+ temp *= pow44 - pow1311;
+ temp *= pow44 - pow1315;
+ temp *= pow44 - pow1319;
+ temp *= pow44 - pow1323;
+ temp *= pow44 - pow1330;
+ domain115 = temp * (domain114);
+ temp = pow44 - pow1094;
+ temp *= pow44 - pow1095;
+ temp *= pow44 - pow1096;
+ temp *= pow44 - pow1097;
+ temp *= pow44 - pow1098;
+ temp *= pow44 - pow1099;
+ temp *= pow44 - pow1100;
+ temp *= pow44 - pow1101;
+ temp *= pow44 - pow1102;
+ temp *= pow44 - pow1103;
+ temp *= pow44 - pow1104;
+ temp *= pow44 - pow1105;
+ temp *= pow44 - pow1106;
+ temp *= pow44 - pow1107;
+ temp *= pow44 - pow1108;
+ temp *= pow44 - pow1109;
+ temp *= pow44 - pow1133;
+ temp *= pow44 - pow1134;
+ temp *= pow44 - pow1135;
+ temp *= pow44 - pow1136;
+ temp *= pow44 - pow1137;
+ temp *= pow44 - pow1138;
+ temp *= pow44 - pow1139;
+ temp *= pow44 - pow1140;
+ temp *= pow44 - pow1141;
+ temp *= pow44 - pow1142;
+ temp *= pow44 - pow1143;
+ temp *= pow44 - pow1144;
+ temp *= pow44 - pow1145;
+ temp *= pow44 - pow1146;
+ temp *= pow44 - pow1147;
+ temp *= pow44 - pow1148;
+ temp *= pow44 - pow1164;
+ temp *= pow44 - pow1165;
+ temp *= pow44 - pow1166;
+ temp *= pow44 - pow1167;
+ temp *= pow44 - pow1168;
+ temp *= pow44 - pow1169;
+ temp *= pow44 - pow1170;
+ temp *= pow44 - pow1171;
+ temp *= pow44 - pow1172;
+ temp *= pow44 - pow1173;
+ temp *= pow44 - pow1174;
+ temp *= pow44 - pow1175;
+ temp *= pow44 - pow1176;
+ temp *= pow44 - pow1177;
+ temp *= pow44 - pow1178;
+ temp *= pow44 - pow1179;
+ temp *= pow44 - pow1203;
+ temp *= pow44 - pow1204;
+ temp *= pow44 - pow1205;
+ temp *= pow44 - pow1206;
+ temp *= pow44 - pow1207;
+ temp *= pow44 - pow1208;
+ temp *= pow44 - pow1209;
+ temp *= pow44 - pow1210;
+ temp *= pow44 - pow1211;
+ temp *= pow44 - pow1212;
+ temp *= pow44 - pow1213;
+ temp *= pow44 - pow1214;
+ temp *= pow44 - pow1215;
+ temp *= pow44 - pow1216;
+ temp *= pow44 - pow1217;
+ temp *= pow44 - pow1218;
+ domain116 = temp * (domain109);
+ temp = pow44 - pow1234;
+ temp *= pow44 - pow1235;
+ temp *= pow44 - pow1236;
+ temp *= pow44 - pow1237;
+ temp *= pow44 - pow1238;
+ temp *= pow44 - pow1239;
+ temp *= pow44 - pow1240;
+ temp *= pow44 - pow1241;
+ temp *= pow44 - pow1242;
+ temp *= pow44 - pow1243;
+ temp *= pow44 - pow1244;
+ temp *= pow44 - pow1245;
+ temp *= pow44 - pow1246;
+ temp *= pow44 - pow1247;
+ temp *= pow44 - pow1248;
+ temp *= pow44 - pow1249;
+ domain117 = temp * (domain116);
+ temp = pow44 - pow1273;
+ temp *= pow44 - pow1274;
+ temp *= pow44 - pow1275;
+ temp *= pow44 - pow1276;
+ temp *= pow44 - pow1277;
+ temp *= pow44 - pow1278;
+ temp *= pow44 - pow1279;
+ temp *= pow44 - pow1280;
+ temp *= pow44 - pow1281;
+ temp *= pow44 - pow1282;
+ temp *= pow44 - pow1283;
+ temp *= pow44 - pow1284;
+ temp *= pow44 - pow1285;
+ temp *= pow44 - pow1286;
+ temp *= pow44 - pow1287;
+ temp *= pow44 - pow1288;
+ temp *= pow44 - pow1325;
+ temp *= pow44 - pow1332;
+ temp *= pow44 - pow1336;
+ temp *= pow44 - pow1340;
+ temp *= pow44 - pow1344;
+ temp *= pow44 - pow1348;
+ temp *= pow44 - pow1352;
+ temp *= pow44 - pow1356;
+ temp *= pow44 - pow1360;
+ temp *= pow44 - pow1364;
+ temp *= pow44 - pow1368;
+ temp *= pow44 - pow1372;
+ temp *= pow44 - pow1376;
+ temp *= pow44 - pow1380;
+ temp *= pow44 - pow1384;
+ temp *= pow44 - pow1388;
+ temp *= pow44 - pow1327;
+ temp *= pow44 - pow1333;
+ temp *= pow44 - pow1337;
+ temp *= pow44 - pow1341;
+ temp *= pow44 - pow1345;
+ temp *= pow44 - pow1349;
+ temp *= pow44 - pow1353;
+ temp *= pow44 - pow1357;
+ temp *= pow44 - pow1361;
+ temp *= pow44 - pow1365;
+ temp *= pow44 - pow1369;
+ temp *= pow44 - pow1373;
+ temp *= pow44 - pow1377;
+ temp *= pow44 - pow1381;
+ temp *= pow44 - pow1385;
+ temp *= pow44 - pow1389;
+ domain118 = temp * (domain117);
+ temp = pow44 - pow1329;
+ temp *= pow44 - pow1334;
+ temp *= pow44 - pow1338;
+ temp *= pow44 - pow1342;
+ temp *= pow44 - pow1346;
+ temp *= pow44 - pow1350;
+ temp *= pow44 - pow1354;
+ temp *= pow44 - pow1358;
+ temp *= pow44 - pow1362;
+ temp *= pow44 - pow1366;
+ temp *= pow44 - pow1370;
+ temp *= pow44 - pow1374;
+ temp *= pow44 - pow1378;
+ temp *= pow44 - pow1382;
+ temp *= pow44 - pow1386;
+ temp *= pow44 - pow1390;
+ domain119 = temp * (domain118);
+ temp = pow44 - pow1331;
+ temp *= pow44 - pow1335;
+ temp *= pow44 - pow1339;
+ temp *= pow44 - pow1343;
+ temp *= pow44 - pow1347;
+ temp *= pow44 - pow1351;
+ temp *= pow44 - pow1355;
+ temp *= pow44 - pow1359;
+ temp *= pow44 - pow1363;
+ temp *= pow44 - pow1367;
+ temp *= pow44 - pow1371;
+ temp *= pow44 - pow1375;
+ temp *= pow44 - pow1379;
+ temp *= pow44 - pow1383;
+ temp *= pow44 - pow1387;
+ temp *= pow44 - pow1391;
+ temp *= domain115;
+ domain120 = temp * (domain119);
+ temp = pow44 - pow1392;
+ temp *= pow44 - pow1393;
+ temp *= pow44 - pow1394;
+ temp *= pow44 - pow1395;
+ temp *= pow44 - pow1396;
+ temp *= pow44 - pow1397;
+ temp *= pow44 - pow1398;
+ domain121 = temp * (pow44 - pow1399);
+ temp = pow44 - pow1400;
+ temp *= pow44 - pow1401;
+ temp *= pow44 - pow1402;
+ temp *= pow44 - pow1403;
+ temp *= pow44 - pow1404;
+ temp *= pow44 - pow1405;
+ temp *= pow44 - pow1406;
+ temp *= pow44 - pow1407;
+ temp *= pow44 - pow1408;
+ temp *= pow44 - pow1409;
+ temp *= pow44 - pow1410;
+ temp *= pow44 - pow1411;
+ temp *= pow44 - pow1412;
+ temp *= pow44 - pow1413;
+ temp *= pow44 - pow1414;
+ temp *= pow44 - pow1415;
+ temp *= domain120;
+ domain122 = temp * (domain121);
+ temp = pow44 - pow1431;
+ temp *= pow44 - pow1432;
+ temp *= pow44 - pow1433;
+ temp *= pow44 - pow1434;
+ temp *= pow44 - pow1435;
+ temp *= pow44 - pow1436;
+ temp *= pow44 - pow1437;
+ temp *= pow44 - pow1438;
+ temp *= pow44 - pow1462;
+ temp *= pow44 - pow1463;
+ temp *= pow44 - pow1464;
+ temp *= pow44 - pow1465;
+ temp *= pow44 - pow1466;
+ temp *= pow44 - pow1467;
+ temp *= pow44 - pow1468;
+ domain123 = temp * (pow44 - pow1469);
+ temp = pow44 - pow1501;
+ temp *= pow44 - pow1502;
+ temp *= pow44 - pow1503;
+ temp *= pow44 - pow1504;
+ temp *= pow44 - pow1505;
+ temp *= pow44 - pow1506;
+ temp *= pow44 - pow1507;
+ temp *= pow44 - pow1508;
+ temp *= pow44 - pow1532;
+ temp *= pow44 - pow1533;
+ temp *= pow44 - pow1534;
+ temp *= pow44 - pow1535;
+ temp *= pow44 - pow1536;
+ temp *= pow44 - pow1537;
+ temp *= pow44 - pow1538;
+ temp *= pow44 - pow1539;
+ domain124 = temp * (domain123);
+ temp = pow44 - pow1439;
+ temp *= pow44 - pow1440;
+ temp *= pow44 - pow1441;
+ temp *= pow44 - pow1442;
+ temp *= pow44 - pow1443;
+ temp *= pow44 - pow1444;
+ temp *= pow44 - pow1445;
+ temp *= pow44 - pow1446;
+ temp *= pow44 - pow1447;
+ temp *= pow44 - pow1448;
+ temp *= pow44 - pow1449;
+ temp *= pow44 - pow1450;
+ temp *= pow44 - pow1451;
+ temp *= pow44 - pow1452;
+ temp *= pow44 - pow1453;
+ temp *= pow44 - pow1454;
+ temp *= pow44 - pow1470;
+ temp *= pow44 - pow1471;
+ temp *= pow44 - pow1472;
+ temp *= pow44 - pow1473;
+ temp *= pow44 - pow1474;
+ temp *= pow44 - pow1475;
+ temp *= pow44 - pow1476;
+ temp *= pow44 - pow1477;
+ temp *= pow44 - pow1478;
+ temp *= pow44 - pow1479;
+ temp *= pow44 - pow1480;
+ temp *= pow44 - pow1481;
+ temp *= pow44 - pow1482;
+ temp *= pow44 - pow1483;
+ temp *= pow44 - pow1484;
+ temp *= pow44 - pow1485;
+ temp *= pow44 - pow1509;
+ temp *= pow44 - pow1510;
+ temp *= pow44 - pow1511;
+ temp *= pow44 - pow1512;
+ temp *= pow44 - pow1513;
+ temp *= pow44 - pow1514;
+ temp *= pow44 - pow1515;
+ temp *= pow44 - pow1516;
+ temp *= pow44 - pow1517;
+ temp *= pow44 - pow1518;
+ temp *= pow44 - pow1519;
+ temp *= pow44 - pow1520;
+ temp *= pow44 - pow1521;
+ temp *= pow44 - pow1522;
+ temp *= pow44 - pow1523;
+ temp *= pow44 - pow1524;
+ temp *= pow44 - pow1540;
+ temp *= pow44 - pow1541;
+ temp *= pow44 - pow1542;
+ temp *= pow44 - pow1543;
+ temp *= pow44 - pow1544;
+ temp *= pow44 - pow1545;
+ temp *= pow44 - pow1546;
+ temp *= pow44 - pow1547;
+ temp *= pow44 - pow1548;
+ temp *= pow44 - pow1549;
+ temp *= pow44 - pow1550;
+ temp *= pow44 - pow1551;
+ temp *= pow44 - pow1552;
+ temp *= pow44 - pow1553;
+ temp *= pow44 - pow1554;
+ temp *= pow44 - pow1555;
+ temp *= domain122;
+ domain125 = temp * (domain124);
+ temp = pow44 - pow1571;
+ temp *= pow44 - pow1572;
+ temp *= pow44 - pow1573;
+ temp *= pow44 - pow1574;
+ temp *= pow44 - pow1575;
+ temp *= pow44 - pow1576;
+ temp *= pow44 - pow1577;
+ temp *= pow44 - pow1578;
+ temp *= pow44 - pow1579;
+ temp *= pow44 - pow1580;
+ temp *= pow44 - pow1581;
+ temp *= pow44 - pow1582;
+ temp *= pow44 - pow1583;
+ temp *= pow44 - pow1584;
+ temp *= pow44 - pow1585;
+ temp *= pow44 - pow1586;
+ temp *= pow44 - pow1587;
+ temp *= pow44 - pow1588;
+ temp *= pow44 - pow1589;
+ temp *= pow44 - pow1590;
+ temp *= pow44 - pow1591;
+ temp *= pow44 - pow1592;
+ temp *= pow44 - pow1593;
+ temp *= pow44 - pow1594;
+ temp *= pow44 - pow1602;
+ temp *= pow44 - pow1604;
+ temp *= pow44 - pow1606;
+ temp *= pow44 - pow1608;
+ temp *= pow44 - pow1610;
+ temp *= pow44 - pow1612;
+ temp *= pow44 - pow1614;
+ temp *= pow44 - pow1616;
+ temp *= pow44 - pow1618;
+ temp *= pow44 - pow1619;
+ temp *= pow44 - pow1620;
+ temp *= pow44 - pow1621;
+ temp *= pow44 - pow1622;
+ temp *= pow44 - pow1623;
+ temp *= pow44 - pow1624;
+ temp *= pow44 - pow1625;
+ temp *= pow44 - pow1626;
+ temp *= pow44 - pow1627;
+ temp *= pow44 - pow1628;
+ temp *= pow44 - pow1629;
+ temp *= pow44 - pow1630;
+ temp *= pow44 - pow1631;
+ temp *= pow44 - pow1632;
+ temp *= pow44 - pow1633;
+ domain126 = temp * (domain125);
+ temp = pow44 - pow1603;
+ temp *= pow44 - pow1605;
+ temp *= pow44 - pow1607;
+ temp *= pow44 - pow1609;
+ temp *= pow44 - pow1611;
+ temp *= pow44 - pow1613;
+ temp *= pow44 - pow1615;
+ temp *= pow44 - pow1617;
+ temp *= pow44 - pow1634;
+ temp *= pow44 - pow1635;
+ temp *= pow44 - pow1636;
+ temp *= pow44 - pow1637;
+ temp *= pow44 - pow1638;
+ temp *= pow44 - pow1639;
+ temp *= pow44 - pow1640;
+ temp *= pow44 - pow1641;
+ temp *= pow44 - pow1642;
+ temp *= pow44 - pow1643;
+ temp *= pow44 - pow1644;
+ temp *= pow44 - pow1645;
+ temp *= pow44 - pow1646;
+ temp *= pow44 - pow1647;
+ temp *= pow44 - pow1648;
+ temp *= pow44 - pow1649;
+ domain127 = temp * (domain126);
+ temp = domain49;
+ domain128 = temp * (domain69);
+ temp = domain101;
+ domain129 = temp * (domain128);
+ temp = domain106;
+ domain130 = temp * (domain129);
+ temp = domain62;
+ temp *= domain66;
+ domain131 = temp * (domain71);
+ temp = domain74;
+ domain132 = temp * (domain131);
+ temp = domain78;
+ domain133 = temp * (domain132);
+ temp = domain73;
+ domain134 = temp * (domain75);
+ temp = domain99;
+ domain135 = temp * (domain102);
+ temp = domain107;
+ temp *= domain115;
+ temp *= domain121;
+ domain136 = temp * (domain129);
+ temp = domain124;
+ domain137 = temp * (domain136);
+ temp = domain79;
+ temp *= domain86;
+ temp *= domain92;
+ domain138 = temp * (domain132);
+ temp = domain95;
+ domain139 = temp * (domain138);
+ temp = domain123;
+ domain140 = temp * (domain136);
+ temp = domain94;
+ domain141 = temp * (domain138);
+ temp = domain114;
+ domain142 = temp * (domain119);
+ temp = domain85;
+ domain143 = temp * (domain90);
+ temp = domain83;
+ domain144 = temp * (domain88);
+ temp = domain111;
+ domain145 = temp * (domain117);
+ temp = domain77;
+ domain146 = temp * (domain80);
+ temp = domain105;
+ domain147 = temp * (domain108);
+ temp = domain84;
+ domain148 = temp * (domain89);
+ temp = domain113;
+ domain149 = temp * (domain118);
+ temp = domain82;
+ domain150 = temp * (domain87);
+ temp = domain110;
+ domain151 = temp * (domain116);
+ temp = pow44 - pow820;
+ temp *= pow44 - pow821;
+ temp *= pow44 - pow822;
+ temp *= pow44 - pow823;
+ temp *= pow44 - pow824;
+ temp *= pow44 - pow825;
+ temp *= pow44 - pow826;
+ temp *= pow44 - pow827;
+ temp *= pow44 - pow828;
+ temp *= pow44 - pow829;
+ temp *= pow44 - pow830;
+ temp *= pow44 - pow831;
+ temp *= pow44 - pow832;
+ temp *= pow44 - pow833;
+ temp *= pow44 - pow834;
+ temp *= pow44 - pow835;
+ temp *= pow44 - pow836;
+ temp *= pow44 - pow837;
+ temp *= pow44 - pow838;
+ temp *= pow44 - pow839;
+ temp *= pow44 - pow840;
+ temp *= pow44 - pow841;
+ temp *= pow44 - pow842;
+ temp *= pow44 - pow890;
+ temp *= pow44 - pow891;
+ temp *= pow44 - pow892;
+ temp *= pow44 - pow893;
+ temp *= pow44 - pow894;
+ temp *= pow44 - pow895;
+ temp *= pow44 - pow896;
+ temp *= pow44 - pow897;
+ temp *= pow44 - pow898;
+ temp *= pow44 - pow899;
+ temp *= pow44 - pow900;
+ temp *= pow44 - pow901;
+ temp *= pow44 - pow902;
+ temp *= pow44 - pow903;
+ temp *= pow44 - pow904;
+ temp *= pow44 - pow905;
+ temp *= pow44 - pow906;
+ temp *= pow44 - pow907;
+ temp *= pow44 - pow908;
+ temp *= pow44 - pow909;
+ temp *= pow44 - pow910;
+ temp *= pow44 - pow911;
+ temp *= pow44 - pow912;
+ temp *= pow44 - pow1017;
+ temp *= pow44 - pow1020;
+ temp *= pow44 - pow1023;
+ temp *= pow44 - pow1026;
+ temp *= pow44 - pow1029;
+ temp *= pow44 - pow1032;
+ temp *= pow44 - pow1035;
+ temp *= pow44 - pow1036;
+ temp *= pow44 - pow1037;
+ temp *= pow44 - pow1038;
+ temp *= pow44 - pow1039;
+ temp *= pow44 - pow1040;
+ temp *= pow44 - pow1041;
+ temp *= pow44 - pow1042;
+ temp *= pow44 - pow1043;
+ temp *= pow44 - pow1044;
+ temp *= pow44 - pow1045;
+ temp *= pow44 - pow1046;
+ temp *= pow44 - pow1047;
+ temp *= pow44 - pow1048;
+ temp *= pow44 - pow1049;
+ temp *= pow44 - pow1050;
+ temp *= pow44 - pow1051;
+ temp *= pow44 - pow1266;
+ temp *= pow44 - pow1267;
+ temp *= pow44 - pow1268;
+ temp *= pow44 - pow1269;
+ temp *= pow44 - pow1270;
+ temp *= pow44 - pow1271;
+ temp *= pow44 - pow1272;
+ temp *= pow44 - pow1273;
+ temp *= pow44 - pow1274;
+ temp *= pow44 - pow1275;
+ temp *= pow44 - pow1276;
+ temp *= pow44 - pow1277;
+ temp *= pow44 - pow1278;
+ temp *= pow44 - pow1279;
+ temp *= pow44 - pow1280;
+ temp *= pow44 - pow1281;
+ temp *= pow44 - pow1282;
+ temp *= pow44 - pow1283;
+ temp *= pow44 - pow1284;
+ temp *= pow44 - pow1285;
+ temp *= pow44 - pow1286;
+ temp *= pow44 - pow1287;
+ temp *= pow44 - pow1288;
+ temp *= pow44 - pow1666;
+ temp *= pow44 - pow1667;
+ temp *= pow44 - pow1668;
+ temp *= pow44 - pow1669;
+ temp *= pow44 - pow1670;
+ temp *= pow44 - pow1671;
+ temp *= pow44 - pow1672;
+ temp *= pow44 - pow1673;
+ temp *= pow44 - pow1674;
+ temp *= pow44 - pow1675;
+ temp *= pow44 - pow1676;
+ temp *= pow44 - pow1677;
+ temp *= pow44 - pow1678;
+ temp *= pow44 - pow1679;
+ temp *= pow44 - pow1680;
+ temp *= pow44 - pow1681;
+ temp *= pow44 - pow1682;
+ temp *= pow44 - pow1683;
+ temp *= pow44 - pow1684;
+ temp *= pow44 - pow1685;
+ temp *= pow44 - pow1686;
+ temp *= pow44 - pow1687;
+ temp *= pow44 - pow1688;
+ temp *= pow44 - pow1689;
+ temp *= pow44 - pow2615;
+ temp *= pow44 - pow2616;
+ temp *= pow44 - pow2617;
+ temp *= pow44 - pow2618;
+ temp *= pow44 - pow2619;
+ temp *= pow44 - pow2620;
+ temp *= pow44 - pow2621;
+ temp *= pow44 - pow2622;
+ temp *= pow44 - pow2623;
+ temp *= pow44 - pow2624;
+ temp *= pow44 - pow2625;
+ temp *= pow44 - pow2626;
+ temp *= pow44 - pow2627;
+ temp *= pow44 - pow2628;
+ temp *= pow44 - pow2629;
+ temp *= pow44 - pow2630;
+ temp *= pow44 - pow2631;
+ temp *= pow44 - pow2632;
+ temp *= pow44 - pow2633;
+ temp *= pow44 - pow2634;
+ temp *= pow44 - pow2635;
+ temp *= pow44 - pow2636;
+ temp *= pow44 - pow2637;
+ temp *= domain50;
+ temp *= domain58;
+ temp *= domain68;
+ temp *= domain100;
+ temp *= domain104;
+ domain152 = temp * (domain112);
+ domain153 = point - 1;
+ domain154 = point - pow50;
+ };
+ let pow3395;
+ let pow3396;
+ if uses_mul_mod_builtin != 0 {
+ let temp3395 = point.pow_felt(&(safe_div(global_values.trace_length, mul_mod_row_ratio)?));
+ pow3395 = temp3395;
+ let temp3396 = trace_generator.pow_felt(&(global_values.trace_length - mul_mod_row_ratio));
+ pow3396 = temp3396;
+ domain155 = pow3395 - 1;
+ domain156 = point - 1;
+ domain157 = point - pow3396;
+ };
+ let pow3397;
+ let pow3398;
+ let pow3399;
+ let pow3400;
+ let pow3401;
+ let pow3402;
+ let pow3403;
+ if uses_pedersen_builtin != 0 {
+ let temp3397 =
+ point.pow_felt(&(safe_div(global_values.trace_length, pedersen_builtin_row_ratio)?));
+ pow3397 = temp3397;
+ pow3398 = pow3397 * pow3397; // pow(point, &(safe_div(((2 * global_values.trace_length)), pedersen_builtin_row_ratio))).
+ let temp3399 = point.pow_felt(
+ &(safe_div(FELT_512 * global_values.trace_length, pedersen_builtin_row_ratio)?),
+ );
+ pow3399 = temp3399;
+ let temp3400 =
+ trace_generator.pow_felt(&(global_values.trace_length - pedersen_builtin_row_ratio));
+ pow3400 = temp3400;
+ let temp3401 = trace_generator.pow_felt(&(safe_div(global_values.trace_length, FELT_2)?));
+ pow3401 = temp3401;
+ let temp3402 =
+ trace_generator.pow_felt(&(safe_div(FELT_63 * global_values.trace_length, FELT_64)?));
+ pow3402 = temp3402;
+ let temp3403 =
+ trace_generator.pow_felt(&(safe_div(FELT_255 * global_values.trace_length, FELT_256)?));
+ pow3403 = temp3403;
+
+ domain158 = pow3399 - 1;
+ domain159 = pow3398 - 1;
+ domain160 = pow3398 - pow3403;
+ domain161 = pow3398 - pow3402;
+ domain162 = pow3397 - pow3401;
+ domain163 = pow3397 - 1;
+ domain164 = point - pow3400;
+ domain165 = point - 1;
+ };
+ let pow3404;
+ let pow3405;
+ let pow3406;
+ let pow3407;
+ let pow3408;
+ let pow3409;
+ let pow3410;
+ let pow3411;
+ let pow3412;
+ let pow3413;
+ let pow3414;
+ let pow3415;
+ let pow3416;
+ let pow3417;
+ let pow3418;
+ let pow3419;
+ let pow3420;
+ let pow3421;
+ let pow3422;
+ let pow3423;
+ let pow3424;
+ if uses_poseidon_builtin != 0 {
+ let temp3404 = point.pow_felt(&(safe_div(global_values.trace_length, poseidon_row_ratio)?));
+ pow3404 = temp3404;
+ pow3405 = pow3404 * pow3404; // pow(point, &(safe_div(((2 * global_values.trace_length)), poseidon_row_ratio))).
+ let temp3406 =
+ point.pow_felt(&(safe_div(FELT_8 * global_values.trace_length, poseidon_row_ratio)?));
+ pow3406 = temp3406;
+ let temp3407 =
+ point.pow_felt(&(safe_div(FELT_32 * global_values.trace_length, poseidon_row_ratio)?));
+ pow3407 = temp3407;
+ pow3408 = pow3407 * pow3407; // pow(point, &(safe_div(((64 * global_values.trace_length)), poseidon_row_ratio))).
+ let temp3409 = trace_generator
+ .pow_felt(&(global_values.trace_length - (safe_div(poseidon_row_ratio, FELT_2)?)));
+ pow3409 = temp3409;
+ let temp3410 =
+ trace_generator.pow_felt(&(safe_div(FELT_21 * global_values.trace_length, FELT_32)?));
+ pow3410 = temp3410;
+ let temp3411 =
+ trace_generator.pow_felt(&(safe_div(FELT_5 * global_values.trace_length, FELT_8)?));
+ pow3411 = temp3411;
+ let temp3412 =
+ trace_generator.pow_felt(&(safe_div(FELT_19 * global_values.trace_length, FELT_32)?));
+ pow3412 = temp3412;
+ let temp3413 =
+ trace_generator.pow_felt(&(safe_div(FELT_63 * global_values.trace_length, FELT_64)?));
+ pow3413 = temp3413;
+ let temp3414 =
+ trace_generator.pow_felt(&(safe_div(FELT_61 * global_values.trace_length, FELT_64)?));
+ pow3414 = temp3414;
+ let temp3415 =
+ trace_generator.pow_felt(&(safe_div(FELT_15 * global_values.trace_length, FELT_16)?));
+ pow3415 = temp3415;
+ let temp3416 =
+ trace_generator.pow_felt(&(safe_div(FELT_29 * global_values.trace_length, FELT_32)?));
+ pow3416 = temp3416;
+ let temp3417 =
+ trace_generator.pow_felt(&(safe_div(FELT_7 * global_values.trace_length, FELT_8)?));
+ pow3417 = temp3417;
+ let temp3418 =
+ trace_generator.pow_felt(&(safe_div(FELT_27 * global_values.trace_length, FELT_32)?));
+ pow3418 = temp3418;
+ let temp3419 =
+ trace_generator.pow_felt(&(safe_div(FELT_13 * global_values.trace_length, FELT_16)?));
+ pow3419 = temp3419;
+ let temp3420 =
+ trace_generator.pow_felt(&(safe_div(FELT_25 * global_values.trace_length, FELT_32)?));
+ pow3420 = temp3420;
+ let temp3421 =
+ trace_generator.pow_felt(&(safe_div(FELT_23 * global_values.trace_length, FELT_32)?));
+ pow3421 = temp3421;
+ let temp3422 =
+ trace_generator.pow_felt(&(safe_div(FELT_11 * global_values.trace_length, FELT_16)?));
+ pow3422 = temp3422;
+ let temp3423 =
+ trace_generator.pow_felt(&(safe_div(FELT_31 * global_values.trace_length, FELT_32)?));
+ pow3423 = temp3423;
+ let temp3424 =
+ trace_generator.pow_felt(&(safe_div(FELT_3 * global_values.trace_length, FELT_4)?));
+ pow3424 = temp3424;
+
+ domain166 = pow3408 - 1;
+ domain167 = pow3407 - 1;
+ domain168 = pow3406 - 1;
+ domain169 = pow3405 - 1;
+ domain170 = pow3405 - pow3424;
+ domain171 = pow3404 - pow3423;
+ let mut temp = pow3404 - pow3422;
+ temp *= pow3404 - pow3421;
+ temp *= pow3404 - pow3424;
+ temp *= pow3404 - pow3420;
+ temp *= pow3404 - pow3419;
+ temp *= pow3404 - pow3418;
+ temp *= pow3404 - pow3417;
+ temp *= pow3404 - pow3416;
+ temp *= pow3404 - pow3415;
+ domain172 = temp * (domain171);
+ domain173 = pow3404 - 1;
+ temp = pow3404 - pow3414;
+ temp *= pow3404 - pow3413;
+ domain174 = temp * (domain171);
+ temp = pow3404 - pow3412;
+ temp *= pow3404 - pow3411;
+ temp *= pow3404 - pow3410;
+ domain175 = temp * (domain172);
+ domain176 = point - 1;
+ domain177 = point - pow3409;
+ };
+ let pow3425;
+ let pow3426;
+ if uses_range_check96_builtin != 0 {
+ let temp3425 = point
+ .pow_felt(&(safe_div(global_values.trace_length, range_check96_builtin_row_ratio)?));
+ pow3425 = temp3425;
+ let temp3426 = trace_generator
+ .pow_felt(&(global_values.trace_length - range_check96_builtin_row_ratio));
+ pow3426 = temp3426;
+
+ domain178 = pow3425 - 1;
+ domain179 = point - pow3426;
+ domain180 = point - 1;
+ };
+ let pow3427;
+ let pow3428;
+ if uses_range_check_builtin != 0 {
+ let temp3427 =
+ point.pow_felt(&(safe_div(global_values.trace_length, range_check_builtin_row_ratio)?));
+ pow3427 = temp3427;
+ let temp3428 =
+ trace_generator.pow_felt(&(global_values.trace_length - range_check_builtin_row_ratio));
+ pow3428 = temp3428;
+
+ domain181 = pow3427 - 1;
+ domain182 = point - pow3428;
+ domain183 = point - 1;
+ };
+
+ // Fetch mask variables.
+ let cpu_decode_opcode_range_check_column_column_row_expr0 = mask_values[0];
+ let cpu_decode_opcode_range_check_column_column_row_expr680 = mask_values[1];
+ let mem_pool_value_column_row_expr1 = mask_values[2];
+ let range_check16_pool_column_row_expr2 = mask_values[3];
+ let range_check16_pool_column_row_expr3 = mask_values[4];
+ let range_check16_pool_column_row_expr4 = mask_values[5];
+ let cpu_decode_opcode_range_check_column_column_row_expr681 = mask_values[6];
+ let cpu_decode_opcode_range_check_column_column_row_expr682 = mask_values[7];
+ let cpu_decode_opcode_range_check_column_column_row_expr683 = mask_values[8];
+ let cpu_decode_opcode_range_check_column_column_row_expr684 = mask_values[9];
+ let cpu_decode_opcode_range_check_column_column_row_expr685 = mask_values[10];
+ let cpu_decode_opcode_range_check_column_column_row_expr686 = mask_values[11];
+ let cpu_decode_opcode_range_check_column_column_row_expr687 = mask_values[12];
+ let cpu_decode_opcode_range_check_column_column_row_expr688 = mask_values[13];
+ let cpu_decode_opcode_range_check_column_column_row_expr689 = mask_values[14];
+ let cpu_decode_opcode_range_check_column_column_row_expr690 = mask_values[15];
+ let cpu_decode_opcode_range_check_column_column_row_expr691 = mask_values[16];
+ let cpu_decode_opcode_range_check_column_column_row_expr692 = mask_values[17];
+ let cpu_decode_opcode_range_check_column_column_row_expr693 = mask_values[18];
+ let cpu_decode_opcode_range_check_column_column_row_expr694 = mask_values[19];
+ let cpu_decode_opcode_range_check_column_column_row_expr695 = mask_values[20];
+ let cpu_decode_opcode_range_check_column_column_row_expr696 = mask_values[21];
+ let cpu_decode_opcode_range_check_column_column_row_expr697 = mask_values[22];
+ let cpu_decode_opcode_range_check_column_column_row_expr698 = mask_values[23];
+ let cpu_decode_opcode_range_check_column_column_row_expr699 = mask_values[24];
+ let cpu_decode_opcode_range_check_column_column_row_expr700 = mask_values[25];
+ let mem_pool_addr_column_row_expr5 = mask_values[26];
+ let cpu_registers_fp_column_row_expr6 = mask_values[27];
+ let cpu_registers_ap_column_row_expr7 = mask_values[28];
+ let mem_pool_addr_column_row_expr8 = mask_values[29];
+ let cpu_decode_opcode_range_check_column_column_row_expr701 = mask_values[30];
+ let mem_pool_addr_column_row_expr9 = mask_values[31];
+ let mem_pool_addr_column_row_expr10 = mask_values[32];
+ let mem_pool_value_column_row_expr11 = mask_values[33];
+ let cpu_operands_ops_mul_column_row_expr12 = mask_values[34];
+ let mem_pool_value_column_row_expr13 = mask_values[35];
+ let cpu_operands_res_column_row_expr14 = mask_values[36];
+ let cpu_update_registers_update_pc_tmp0_column_row_expr15 = mask_values[37];
+ let mem_pool_value_column_row_expr16 = mask_values[38];
+ let cpu_update_registers_update_pc_tmp1_column_row_expr17 = mask_values[39];
+ let mem_pool_addr_column_row_expr18 = mask_values[40];
+ let cpu_registers_ap_column_row_expr19 = mask_values[41];
+ let cpu_decode_opcode_range_check_column_column_row_expr702 = mask_values[42];
+ let cpu_decode_opcode_range_check_column_column_row_expr703 = mask_values[43];
+ let cpu_decode_opcode_range_check_column_column_row_expr704 = mask_values[44];
+ let cpu_decode_opcode_range_check_column_column_row_expr705 = mask_values[45];
+ let cpu_registers_fp_column_row_expr20 = mask_values[46];
+ let cpu_decode_opcode_range_check_column_column_row_expr706 = mask_values[47];
+ let cpu_decode_opcode_range_check_column_column_row_expr707 = mask_values[48];
+ let memory_sorted_addr_column_row_expr21 = mask_values[49];
+ let memory_sorted_value_column_row_expr22 = mask_values[50];
+ let mem_pool_addr_column_row_expr24 = mask_values[51];
+ let mem_pool_value_column_row_expr25 = mask_values[52];
+ let memory_sorted_addr_column_row_expr26 = mask_values[53];
+ let memory_sorted_value_column_row_expr27 = mask_values[54];
+ let mem_pool_addr_column_row_expr29 = mask_values[55];
+ let mem_pool_value_column_row_expr30 = mask_values[56];
+ let mem_pool_addr_column_row_expr31 = mask_values[57];
+ let mem_pool_value_column_row_expr32 = mask_values[58];
+ let range_check16_sorted_column_row_expr33 = mask_values[59];
+ let range_check16_pool_column_row_expr35 = mask_values[60];
+ let range_check16_sorted_column_row_expr36 = mask_values[61];
+ let range_check16_pool_column_row_expr38 = mask_values[62];
+ let diluted_check_permuted_values_column_row_expr39 = mask_values[63];
+ let diluted_pool_column_row_expr41 = mask_values[64];
+ let diluted_check_permuted_values_column_row_expr42 = mask_values[65];
+ let diluted_pool_column_row_expr44 = mask_values[66];
+ let pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones192_column_row_expr47 = mask_values[67];
+ let pedersen_hash0_ec_subset_sum_selector_column_row_expr48 = mask_values[68];
+ let pedersen_hash0_ec_subset_sum_selector_column_row_expr49 = mask_values[69];
+ let pedersen_hash0_ec_subset_sum_selector_column_row_expr50 = mask_values[70];
+ let pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones196_column_row_expr51 = mask_values[71];
+ let pedersen_hash0_ec_subset_sum_selector_column_row_expr52 = mask_values[72];
+ let pedersen_hash0_ec_subset_sum_selector_column_row_expr53 = mask_values[73];
+ let pedersen_hash0_ec_subset_sum_selector_column_row_expr54 = mask_values[74];
+ let pedersen_hash0_ec_subset_sum_selector_column_row_expr55 = mask_values[75];
+ let pedersen_hash0_ec_subset_sum_selector_column_row_expr56 = mask_values[76];
+ let pedersen_hash0_ec_subset_sum_partial_sum_x_column_row_expr59 = mask_values[77];
+ let pedersen_hash0_ec_subset_sum_partial_sum_y_column_row_expr57 = mask_values[78];
+ let pedersen_hash0_ec_subset_sum_partial_sum_x_column_row_expr60 = mask_values[79];
+ let pedersen_hash0_ec_subset_sum_partial_sum_y_column_row_expr61 = mask_values[80];
+ let pedersen_hash0_ec_subset_sum_slope_column_row_expr58 = mask_values[81];
+ let pedersen_hash0_ec_subset_sum_partial_sum_x_column_row_expr63 = mask_values[82];
+ let pedersen_hash0_ec_subset_sum_partial_sum_y_column_row_expr65 = mask_values[83];
+ let pedersen_hash0_ec_subset_sum_partial_sum_x_column_row_expr62 = mask_values[84];
+ let pedersen_hash0_ec_subset_sum_partial_sum_y_column_row_expr64 = mask_values[85];
+ let mem_pool_value_column_row_expr66 = mask_values[86];
+ let mem_pool_addr_column_row_expr67 = mask_values[87];
+ let mem_pool_addr_column_row_expr68 = mask_values[88];
+ let mem_pool_addr_column_row_expr69 = mask_values[89];
+ let pedersen_hash0_ec_subset_sum_selector_column_row_expr71 = mask_values[90];
+ let mem_pool_value_column_row_expr70 = mask_values[91];
+ let mem_pool_addr_column_row_expr72 = mask_values[92];
+ let mem_pool_value_column_row_expr73 = mask_values[93];
+ let pedersen_hash0_ec_subset_sum_partial_sum_x_column_row_expr74 = mask_values[94];
+ let mem_pool_value_column_row_expr75 = mask_values[95];
+ let range_check16_pool_column_row_expr708 = mask_values[96];
+ let range_check16_pool_column_row_expr709 = mask_values[97];
+ let range_check16_pool_column_row_expr710 = mask_values[98];
+ let range_check16_pool_column_row_expr711 = mask_values[99];
+ let range_check16_pool_column_row_expr712 = mask_values[100];
+ let range_check16_pool_column_row_expr713 = mask_values[101];
+ let range_check16_pool_column_row_expr714 = mask_values[102];
+ let range_check16_pool_column_row_expr715 = mask_values[103];
+ let mem_pool_addr_column_row_expr76 = mask_values[104];
+ let mem_pool_addr_column_row_expr77 = mask_values[105];
+ let ecdsa_signature0_key_points_x_column_row_expr80 = mask_values[106];
+ let ecdsa_signature0_key_points_y_column_row_expr78 = mask_values[107];
+ let ecdsa_signature0_key_points_x_column_row_expr81 = mask_values[108];
+ let ecdsa_signature0_key_points_y_column_row_expr82 = mask_values[109];
+ let ecdsa_signature0_doubling_slope_column_row_expr79 = mask_values[110];
+ let ecdsa_signature0_exponentiate_generator_selector_column_row_expr83 = mask_values[111];
+ let ecdsa_signature0_exponentiate_generator_selector_column_row_expr716 = mask_values[112];
+ let ecdsa_signature0_exponentiate_generator_partial_sum_x_column_row_expr86 = mask_values[113];
+ let ecdsa_signature0_exponentiate_generator_partial_sum_y_column_row_expr84 = mask_values[114];
+ let ecdsa_signature0_exponentiate_generator_partial_sum_x_column_row_expr87 = mask_values[115];
+ let ecdsa_signature0_exponentiate_generator_partial_sum_y_column_row_expr88 = mask_values[116];
+ let ecdsa_signature0_exponentiate_generator_slope_column_row_expr85 = mask_values[117];
+ let ecdsa_signature0_exponentiate_generator_x_diff_inv_column_row_expr89 = mask_values[118];
+ let ecdsa_signature0_exponentiate_key_selector_column_row_expr90 = mask_values[119];
+ let ecdsa_signature0_exponentiate_key_selector_column_row_expr717 = mask_values[120];
+ let ecdsa_signature0_exponentiate_key_partial_sum_x_column_row_expr93 = mask_values[121];
+ let ecdsa_signature0_exponentiate_key_partial_sum_y_column_row_expr91 = mask_values[122];
+ let ecdsa_signature0_exponentiate_key_partial_sum_x_column_row_expr94 = mask_values[123];
+ let ecdsa_signature0_exponentiate_key_partial_sum_y_column_row_expr95 = mask_values[124];
+ let ecdsa_signature0_exponentiate_key_slope_column_row_expr92 = mask_values[125];
+ let ecdsa_signature0_exponentiate_key_x_diff_inv_column_row_expr96 = mask_values[126];
+ let ecdsa_signature0_exponentiate_generator_partial_sum_x_column_row_expr100 = mask_values[127];
+ let ecdsa_signature0_exponentiate_generator_partial_sum_y_column_row_expr97 = mask_values[128];
+ let ecdsa_signature0_exponentiate_key_partial_sum_x_column_row_expr101 = mask_values[129];
+ let ecdsa_signature0_exponentiate_key_partial_sum_y_column_row_expr98 = mask_values[130];
+ let ecdsa_signature0_key_points_x_column_row_expr102 = mask_values[131];
+ let ecdsa_signature0_key_points_y_column_row_expr103 = mask_values[132];
+ let ecdsa_signature0_add_results_slope_column_row_expr99 = mask_values[133];
+ let ecdsa_signature0_add_results_inv_column_row_expr104 = mask_values[134];
+ let ecdsa_signature0_exponentiate_key_partial_sum_x_column_row_expr107 = mask_values[135];
+ let ecdsa_signature0_exponentiate_key_partial_sum_y_column_row_expr105 = mask_values[136];
+ let ecdsa_signature0_extract_r_slope_column_row_expr106 = mask_values[137];
+ let ecdsa_signature0_extract_r_inv_column_row_expr108 = mask_values[138];
+ let ecdsa_signature0_z_inv_column_row_expr109 = mask_values[139];
+ let ecdsa_signature0_r_w_inv_column_row_expr110 = mask_values[140];
+ let ecdsa_signature0_q_x_squared_column_row_expr111 = mask_values[141];
+ let mem_pool_addr_column_row_expr112 = mask_values[142];
+ let mem_pool_addr_column_row_expr113 = mask_values[143];
+ let mem_pool_addr_column_row_expr114 = mask_values[144];
+ let mem_pool_value_column_row_expr115 = mask_values[145];
+ let mem_pool_value_column_row_expr116 = mask_values[146];
+ let mem_pool_addr_column_row_expr117 = mask_values[147];
+ let mem_pool_addr_column_row_expr118 = mask_values[148];
+ let mem_pool_addr_column_row_expr119 = mask_values[149];
+ let mem_pool_addr_column_row_expr120 = mask_values[150];
+ let mem_pool_addr_column_row_expr121 = mask_values[151];
+ let mem_pool_value_column_row_expr122 = mask_values[152];
+ let diluted_pool_column_row_expr126 = mask_values[153];
+ let diluted_pool_column_row_expr718 = mask_values[154];
+ let diluted_pool_column_row_expr719 = mask_values[155];
+ let diluted_pool_column_row_expr720 = mask_values[156];
+ let diluted_pool_column_row_expr721 = mask_values[157];
+ let diluted_pool_column_row_expr722 = mask_values[158];
+ let diluted_pool_column_row_expr723 = mask_values[159];
+ let diluted_pool_column_row_expr724 = mask_values[160];
+ let diluted_pool_column_row_expr725 = mask_values[161];
+ let diluted_pool_column_row_expr726 = mask_values[162];
+ let diluted_pool_column_row_expr727 = mask_values[163];
+ let diluted_pool_column_row_expr728 = mask_values[164];
+ let diluted_pool_column_row_expr729 = mask_values[165];
+ let diluted_pool_column_row_expr730 = mask_values[166];
+ let diluted_pool_column_row_expr731 = mask_values[167];
+ let diluted_pool_column_row_expr732 = mask_values[168];
+ let mem_pool_value_column_row_expr123 = mask_values[169];
+ let mem_pool_value_column_row_expr124 = mask_values[170];
+ let mem_pool_value_column_row_expr125 = mask_values[171];
+ let diluted_pool_column_row_expr129 = mask_values[172];
+ let diluted_pool_column_row_expr127 = mask_values[173];
+ let diluted_pool_column_row_expr128 = mask_values[174];
+ let diluted_pool_column_row_expr132 = mask_values[175];
+ let diluted_pool_column_row_expr130 = mask_values[176];
+ let diluted_pool_column_row_expr131 = mask_values[177];
+ let diluted_pool_column_row_expr135 = mask_values[178];
+ let diluted_pool_column_row_expr133 = mask_values[179];
+ let diluted_pool_column_row_expr134 = mask_values[180];
+ let diluted_pool_column_row_expr138 = mask_values[181];
+ let diluted_pool_column_row_expr136 = mask_values[182];
+ let diluted_pool_column_row_expr137 = mask_values[183];
+ let diluted_pool_column_row_expr141 = mask_values[184];
+ let diluted_pool_column_row_expr139 = mask_values[185];
+ let diluted_pool_column_row_expr140 = mask_values[186];
+ let mem_pool_addr_column_row_expr142 = mask_values[187];
+ let mem_pool_addr_column_row_expr143 = mask_values[188];
+ let mem_pool_addr_column_row_expr144 = mask_values[189];
+ let mem_pool_addr_column_row_expr145 = mask_values[190];
+ let mem_pool_addr_column_row_expr146 = mask_values[191];
+ let mem_pool_addr_column_row_expr147 = mask_values[192];
+ let mem_pool_addr_column_row_expr148 = mask_values[193];
+ let mem_pool_addr_column_row_expr149 = mask_values[194];
+ let ec_op_doubling_slope_column_row_expr151 = mask_values[195];
+ let ec_op_doubled_points_x_column_row_expr152 = mask_values[196];
+ let ec_op_doubled_points_y_column_row_expr150 = mask_values[197];
+ let ec_op_doubled_points_x_column_row_expr153 = mask_values[198];
+ let ec_op_doubled_points_y_column_row_expr154 = mask_values[199];
+ let mem_pool_value_column_row_expr155 = mask_values[200];
+ let mem_pool_value_column_row_expr156 = mask_values[201];
+ let ec_op_ec_subset_sum_bit_unpacking_prod_ones192_column_row_expr157 = mask_values[202];
+ let ec_op_ec_subset_sum_selector_column_row_expr158 = mask_values[203];
+ let ec_op_ec_subset_sum_selector_column_row_expr159 = mask_values[204];
+ let ec_op_ec_subset_sum_selector_column_row_expr160 = mask_values[205];
+ let ec_op_ec_subset_sum_bit_unpacking_prod_ones196_column_row_expr161 = mask_values[206];
+ let ec_op_ec_subset_sum_selector_column_row_expr162 = mask_values[207];
+ let ec_op_ec_subset_sum_selector_column_row_expr163 = mask_values[208];
+ let ec_op_ec_subset_sum_selector_column_row_expr164 = mask_values[209];
+ let ec_op_ec_subset_sum_selector_column_row_expr165 = mask_values[210];
+ let ec_op_ec_subset_sum_selector_column_row_expr166 = mask_values[211];
+ let ec_op_ec_subset_sum_partial_sum_x_column_row_expr169 = mask_values[212];
+ let ec_op_ec_subset_sum_partial_sum_y_column_row_expr167 = mask_values[213];
+ let ec_op_ec_subset_sum_partial_sum_x_column_row_expr170 = mask_values[214];
+ let ec_op_ec_subset_sum_partial_sum_y_column_row_expr171 = mask_values[215];
+ let ec_op_ec_subset_sum_slope_column_row_expr168 = mask_values[216];
+ let ec_op_ec_subset_sum_x_diff_inv_column_row_expr172 = mask_values[217];
+ let mem_pool_value_column_row_expr173 = mask_values[218];
+ let mem_pool_value_column_row_expr174 = mask_values[219];
+ let mem_pool_value_column_row_expr175 = mask_values[220];
+ let mem_pool_value_column_row_expr176 = mask_values[221];
+ let ec_op_ec_subset_sum_partial_sum_x_column_row_expr177 = mask_values[222];
+ let mem_pool_value_column_row_expr178 = mask_values[223];
+ let ec_op_ec_subset_sum_partial_sum_y_column_row_expr179 = mask_values[224];
+ let mem_pool_addr_column_row_expr180 = mask_values[225];
+ let mem_pool_addr_column_row_expr181 = mask_values[226];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr183 = mask_values[227];
+ let mem_pool_value_column_row_expr182 = mask_values[228];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr185 = mask_values[229];
+ let mem_pool_value_column_row_expr184 = mask_values[230];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr187 = mask_values[231];
+ let mem_pool_value_column_row_expr186 = mask_values[232];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr189 = mask_values[233];
+ let mem_pool_value_column_row_expr188 = mask_values[234];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr191 = mask_values[235];
+ let mem_pool_value_column_row_expr190 = mask_values[236];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr193 = mask_values[237];
+ let mem_pool_value_column_row_expr192 = mask_values[238];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr195 = mask_values[239];
+ let mem_pool_value_column_row_expr194 = mask_values[240];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr197 = mask_values[241];
+ let mem_pool_value_column_row_expr196 = mask_values[242];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr199 = mask_values[243];
+ let mem_pool_value_column_row_expr198 = mask_values[244];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr201 = mask_values[245];
+ let mem_pool_value_column_row_expr200 = mask_values[246];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr203 = mask_values[247];
+ let mem_pool_value_column_row_expr202 = mask_values[248];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr205 = mask_values[249];
+ let mem_pool_value_column_row_expr204 = mask_values[250];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr207 = mask_values[251];
+ let mem_pool_value_column_row_expr206 = mask_values[252];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr209 = mask_values[253];
+ let mem_pool_value_column_row_expr208 = mask_values[254];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr211 = mask_values[255];
+ let mem_pool_value_column_row_expr210 = mask_values[256];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr213 = mask_values[257];
+ let mem_pool_value_column_row_expr212 = mask_values[258];
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr214 = mask_values[259];
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr216 = mask_values[260];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr215 = mask_values[261];
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr218 = mask_values[262];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr217 = mask_values[263];
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr220 = mask_values[264];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr219 = mask_values[265];
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr222 = mask_values[266];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr221 = mask_values[267];
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr224 = mask_values[268];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr223 = mask_values[269];
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr226 = mask_values[270];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr225 = mask_values[271];
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr228 = mask_values[272];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr227 = mask_values[273];
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr230 = mask_values[274];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr229 = mask_values[275];
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr232 = mask_values[276];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr231 = mask_values[277];
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr234 = mask_values[278];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr233 = mask_values[279];
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr236 = mask_values[280];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr235 = mask_values[281];
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr238 = mask_values[282];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr237 = mask_values[283];
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr240 = mask_values[284];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr239 = mask_values[285];
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr242 = mask_values[286];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr241 = mask_values[287];
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr244 = mask_values[288];
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr243 = mask_values[289];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr245 = mask_values[290];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr733 = mask_values[291];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr734 = mask_values[292];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr735 = mask_values[293];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr736 = mask_values[294];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr737 = mask_values[295];
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr246 = mask_values[296];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr738 = mask_values[297];
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr247 = mask_values[298];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr739 = mask_values[299];
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr248 = mask_values[300];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr740 = mask_values[301];
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr249 = mask_values[302];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr741 = mask_values[303];
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr250 = mask_values[304];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr742 = mask_values[305];
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr251 = mask_values[306];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr743 = mask_values[307];
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr252 = mask_values[308];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr744 = mask_values[309];
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr253 = mask_values[310];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr745 = mask_values[311];
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr254 = mask_values[312];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr746 = mask_values[313];
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr255 = mask_values[314];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr747 = mask_values[315];
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr256 = mask_values[316];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr748 = mask_values[317];
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr257 = mask_values[318];
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr258 = mask_values[319];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr749 = mask_values[320];
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr259 = mask_values[321];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr750 = mask_values[322];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr751 = mask_values[323];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr752 = mask_values[324];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr753 = mask_values[325];
+ let diluted_pool_column_row_expr260 = mask_values[326];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr754 = mask_values[327];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr755 = mask_values[328];
+ let diluted_pool_column_row_expr261 = mask_values[329];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr756 = mask_values[330];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr757 = mask_values[331];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr758 = mask_values[332];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr759 = mask_values[333];
+ let diluted_pool_column_row_expr262 = mask_values[334];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr760 = mask_values[335];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr761 = mask_values[336];
+ let diluted_pool_column_row_expr263 = mask_values[337];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr762 = mask_values[338];
+ let keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr763 = mask_values[339];
+ let diluted_pool_column_row_expr268 = mask_values[340];
+ let diluted_pool_column_row_expr264 = mask_values[341];
+ let diluted_pool_column_row_expr265 = mask_values[342];
+ let diluted_pool_column_row_expr266 = mask_values[343];
+ let diluted_pool_column_row_expr267 = mask_values[344];
+ let diluted_pool_column_row_expr269 = mask_values[345];
+ let diluted_pool_column_row_expr270 = mask_values[346];
+ let diluted_pool_column_row_expr276 = mask_values[347];
+ let diluted_pool_column_row_expr271 = mask_values[348];
+ let diluted_pool_column_row_expr272 = mask_values[349];
+ let diluted_pool_column_row_expr273 = mask_values[350];
+ let diluted_pool_column_row_expr274 = mask_values[351];
+ let diluted_pool_column_row_expr275 = mask_values[352];
+ let diluted_pool_column_row_expr277 = mask_values[353];
+ let diluted_pool_column_row_expr278 = mask_values[354];
+ let diluted_pool_column_row_expr284 = mask_values[355];
+ let diluted_pool_column_row_expr279 = mask_values[356];
+ let diluted_pool_column_row_expr280 = mask_values[357];
+ let diluted_pool_column_row_expr281 = mask_values[358];
+ let diluted_pool_column_row_expr282 = mask_values[359];
+ let diluted_pool_column_row_expr283 = mask_values[360];
+ let diluted_pool_column_row_expr285 = mask_values[361];
+ let diluted_pool_column_row_expr286 = mask_values[362];
+ let diluted_pool_column_row_expr292 = mask_values[363];
+ let diluted_pool_column_row_expr287 = mask_values[364];
+ let diluted_pool_column_row_expr288 = mask_values[365];
+ let diluted_pool_column_row_expr289 = mask_values[366];
+ let diluted_pool_column_row_expr290 = mask_values[367];
+ let diluted_pool_column_row_expr291 = mask_values[368];
+ let diluted_pool_column_row_expr293 = mask_values[369];
+ let diluted_pool_column_row_expr294 = mask_values[370];
+ let diluted_pool_column_row_expr300 = mask_values[371];
+ let diluted_pool_column_row_expr295 = mask_values[372];
+ let diluted_pool_column_row_expr296 = mask_values[373];
+ let diluted_pool_column_row_expr297 = mask_values[374];
+ let diluted_pool_column_row_expr298 = mask_values[375];
+ let diluted_pool_column_row_expr299 = mask_values[376];
+ let diluted_pool_column_row_expr301 = mask_values[377];
+ let diluted_pool_column_row_expr302 = mask_values[378];
+ let keccak_keccak_rotated_parity0_column_row_expr305 = mask_values[379];
+ let keccak_keccak_rotated_parity0_column_row_expr303 = mask_values[380];
+ let diluted_pool_column_row_expr304 = mask_values[381];
+ let keccak_keccak_rotated_parity1_column_row_expr308 = mask_values[382];
+ let keccak_keccak_rotated_parity1_column_row_expr306 = mask_values[383];
+ let diluted_pool_column_row_expr307 = mask_values[384];
+ let keccak_keccak_rotated_parity2_column_row_expr311 = mask_values[385];
+ let keccak_keccak_rotated_parity2_column_row_expr309 = mask_values[386];
+ let diluted_pool_column_row_expr310 = mask_values[387];
+ let keccak_keccak_rotated_parity3_column_row_expr314 = mask_values[388];
+ let keccak_keccak_rotated_parity3_column_row_expr312 = mask_values[389];
+ let diluted_pool_column_row_expr313 = mask_values[390];
+ let keccak_keccak_rotated_parity4_column_row_expr317 = mask_values[391];
+ let keccak_keccak_rotated_parity4_column_row_expr315 = mask_values[392];
+ let diluted_pool_column_row_expr316 = mask_values[393];
+ let diluted_pool_column_row_expr318 = mask_values[394];
+ let diluted_pool_column_row_expr319 = mask_values[395];
+ let diluted_pool_column_row_expr323 = mask_values[396];
+ let diluted_pool_column_row_expr320 = mask_values[397];
+ let diluted_pool_column_row_expr321 = mask_values[398];
+ let keccak_keccak_rotated_parity2_column_row_expr764 = mask_values[399];
+ let diluted_pool_column_row_expr322 = mask_values[400];
+ let diluted_pool_column_row_expr324 = mask_values[401];
+ let diluted_pool_column_row_expr328 = mask_values[402];
+ let diluted_pool_column_row_expr325 = mask_values[403];
+ let diluted_pool_column_row_expr326 = mask_values[404];
+ let diluted_pool_column_row_expr765 = mask_values[405];
+ let keccak_keccak_rotated_parity3_column_row_expr766 = mask_values[406];
+ let diluted_pool_column_row_expr327 = mask_values[407];
+ let diluted_pool_column_row_expr329 = mask_values[408];
+ let diluted_pool_column_row_expr333 = mask_values[409];
+ let diluted_pool_column_row_expr330 = mask_values[410];
+ let diluted_pool_column_row_expr331 = mask_values[411];
+ let diluted_pool_column_row_expr767 = mask_values[412];
+ let keccak_keccak_rotated_parity4_column_row_expr768 = mask_values[413];
+ let diluted_pool_column_row_expr332 = mask_values[414];
+ let diluted_pool_column_row_expr334 = mask_values[415];
+ let diluted_pool_column_row_expr338 = mask_values[416];
+ let diluted_pool_column_row_expr335 = mask_values[417];
+ let diluted_pool_column_row_expr336 = mask_values[418];
+ let diluted_pool_column_row_expr769 = mask_values[419];
+ let keccak_keccak_rotated_parity0_column_row_expr770 = mask_values[420];
+ let diluted_pool_column_row_expr337 = mask_values[421];
+ let diluted_pool_column_row_expr339 = mask_values[422];
+ let diluted_pool_column_row_expr343 = mask_values[423];
+ let diluted_pool_column_row_expr340 = mask_values[424];
+ let diluted_pool_column_row_expr341 = mask_values[425];
+ let diluted_pool_column_row_expr771 = mask_values[426];
+ let keccak_keccak_rotated_parity1_column_row_expr772 = mask_values[427];
+ let diluted_pool_column_row_expr342 = mask_values[428];
+ let diluted_pool_column_row_expr344 = mask_values[429];
+ let diluted_pool_column_row_expr348 = mask_values[430];
+ let diluted_pool_column_row_expr345 = mask_values[431];
+ let diluted_pool_column_row_expr346 = mask_values[432];
+ let diluted_pool_column_row_expr773 = mask_values[433];
+ let keccak_keccak_rotated_parity2_column_row_expr774 = mask_values[434];
+ let diluted_pool_column_row_expr347 = mask_values[435];
+ let diluted_pool_column_row_expr349 = mask_values[436];
+ let diluted_pool_column_row_expr353 = mask_values[437];
+ let diluted_pool_column_row_expr350 = mask_values[438];
+ let diluted_pool_column_row_expr351 = mask_values[439];
+ let diluted_pool_column_row_expr775 = mask_values[440];
+ let keccak_keccak_rotated_parity3_column_row_expr776 = mask_values[441];
+ let diluted_pool_column_row_expr352 = mask_values[442];
+ let diluted_pool_column_row_expr354 = mask_values[443];
+ let diluted_pool_column_row_expr370 = mask_values[444];
+ let diluted_pool_column_row_expr355 = mask_values[445];
+ let diluted_pool_column_row_expr356 = mask_values[446];
+ let diluted_pool_column_row_expr777 = mask_values[447];
+ let keccak_keccak_rotated_parity4_column_row_expr778 = mask_values[448];
+ let diluted_pool_column_row_expr357 = mask_values[449];
+ let diluted_pool_column_row_expr358 = mask_values[450];
+ let diluted_pool_column_row_expr359 = mask_values[451];
+ let diluted_pool_column_row_expr779 = mask_values[452];
+ let keccak_keccak_rotated_parity4_column_row_expr780 = mask_values[453];
+ let diluted_pool_column_row_expr360 = mask_values[454];
+ let diluted_pool_column_row_expr361 = mask_values[455];
+ let diluted_pool_column_row_expr362 = mask_values[456];
+ let diluted_pool_column_row_expr781 = mask_values[457];
+ let keccak_keccak_rotated_parity4_column_row_expr782 = mask_values[458];
+ let diluted_pool_column_row_expr363 = mask_values[459];
+ let diluted_pool_column_row_expr364 = mask_values[460];
+ let diluted_pool_column_row_expr365 = mask_values[461];
+ let diluted_pool_column_row_expr783 = mask_values[462];
+ let keccak_keccak_rotated_parity4_column_row_expr784 = mask_values[463];
+ let diluted_pool_column_row_expr366 = mask_values[464];
+ let diluted_pool_column_row_expr367 = mask_values[465];
+ let diluted_pool_column_row_expr368 = mask_values[466];
+ let diluted_pool_column_row_expr785 = mask_values[467];
+ let keccak_keccak_rotated_parity4_column_row_expr786 = mask_values[468];
+ let diluted_pool_column_row_expr369 = mask_values[469];
+ let diluted_pool_column_row_expr371 = mask_values[470];
+ let diluted_pool_column_row_expr375 = mask_values[471];
+ let diluted_pool_column_row_expr372 = mask_values[472];
+ let diluted_pool_column_row_expr373 = mask_values[473];
+ let diluted_pool_column_row_expr787 = mask_values[474];
+ let keccak_keccak_rotated_parity0_column_row_expr788 = mask_values[475];
+ let diluted_pool_column_row_expr374 = mask_values[476];
+ let diluted_pool_column_row_expr376 = mask_values[477];
+ let diluted_pool_column_row_expr380 = mask_values[478];
+ let diluted_pool_column_row_expr377 = mask_values[479];
+ let diluted_pool_column_row_expr378 = mask_values[480];
+ let diluted_pool_column_row_expr789 = mask_values[481];
+ let keccak_keccak_rotated_parity1_column_row_expr790 = mask_values[482];
+ let diluted_pool_column_row_expr379 = mask_values[483];
+ let diluted_pool_column_row_expr381 = mask_values[484];
+ let diluted_pool_column_row_expr385 = mask_values[485];
+ let diluted_pool_column_row_expr382 = mask_values[486];
+ let diluted_pool_column_row_expr383 = mask_values[487];
+ let diluted_pool_column_row_expr791 = mask_values[488];
+ let keccak_keccak_rotated_parity2_column_row_expr792 = mask_values[489];
+ let diluted_pool_column_row_expr384 = mask_values[490];
+ let diluted_pool_column_row_expr386 = mask_values[491];
+ let diluted_pool_column_row_expr390 = mask_values[492];
+ let diluted_pool_column_row_expr387 = mask_values[493];
+ let diluted_pool_column_row_expr388 = mask_values[494];
+ let diluted_pool_column_row_expr793 = mask_values[495];
+ let keccak_keccak_rotated_parity3_column_row_expr794 = mask_values[496];
+ let diluted_pool_column_row_expr389 = mask_values[497];
+ let diluted_pool_column_row_expr391 = mask_values[498];
+ let diluted_pool_column_row_expr395 = mask_values[499];
+ let diluted_pool_column_row_expr392 = mask_values[500];
+ let diluted_pool_column_row_expr393 = mask_values[501];
+ let diluted_pool_column_row_expr795 = mask_values[502];
+ let keccak_keccak_rotated_parity4_column_row_expr796 = mask_values[503];
+ let diluted_pool_column_row_expr394 = mask_values[504];
+ let diluted_pool_column_row_expr396 = mask_values[505];
+ let diluted_pool_column_row_expr412 = mask_values[506];
+ let diluted_pool_column_row_expr397 = mask_values[507];
+ let diluted_pool_column_row_expr398 = mask_values[508];
+ let diluted_pool_column_row_expr797 = mask_values[509];
+ let keccak_keccak_rotated_parity0_column_row_expr798 = mask_values[510];
+ let diluted_pool_column_row_expr399 = mask_values[511];
+ let diluted_pool_column_row_expr400 = mask_values[512];
+ let diluted_pool_column_row_expr401 = mask_values[513];
+ let diluted_pool_column_row_expr799 = mask_values[514];
+ let keccak_keccak_rotated_parity0_column_row_expr800 = mask_values[515];
+ let diluted_pool_column_row_expr402 = mask_values[516];
+ let diluted_pool_column_row_expr403 = mask_values[517];
+ let diluted_pool_column_row_expr404 = mask_values[518];
+ let diluted_pool_column_row_expr801 = mask_values[519];
+ let keccak_keccak_rotated_parity0_column_row_expr802 = mask_values[520];
+ let diluted_pool_column_row_expr405 = mask_values[521];
+ let diluted_pool_column_row_expr406 = mask_values[522];
+ let diluted_pool_column_row_expr407 = mask_values[523];
+ let diluted_pool_column_row_expr803 = mask_values[524];
+ let keccak_keccak_rotated_parity0_column_row_expr804 = mask_values[525];
+ let diluted_pool_column_row_expr408 = mask_values[526];
+ let diluted_pool_column_row_expr409 = mask_values[527];
+ let diluted_pool_column_row_expr410 = mask_values[528];
+ let diluted_pool_column_row_expr805 = mask_values[529];
+ let keccak_keccak_rotated_parity0_column_row_expr806 = mask_values[530];
+ let diluted_pool_column_row_expr411 = mask_values[531];
+ let diluted_pool_column_row_expr413 = mask_values[532];
+ let diluted_pool_column_row_expr429 = mask_values[533];
+ let diluted_pool_column_row_expr414 = mask_values[534];
+ let diluted_pool_column_row_expr415 = mask_values[535];
+ let diluted_pool_column_row_expr807 = mask_values[536];
+ let keccak_keccak_rotated_parity1_column_row_expr808 = mask_values[537];
+ let diluted_pool_column_row_expr416 = mask_values[538];
+ let diluted_pool_column_row_expr417 = mask_values[539];
+ let diluted_pool_column_row_expr418 = mask_values[540];
+ let diluted_pool_column_row_expr809 = mask_values[541];
+ let keccak_keccak_rotated_parity1_column_row_expr810 = mask_values[542];
+ let diluted_pool_column_row_expr419 = mask_values[543];
+ let diluted_pool_column_row_expr420 = mask_values[544];
+ let diluted_pool_column_row_expr421 = mask_values[545];
+ let diluted_pool_column_row_expr811 = mask_values[546];
+ let keccak_keccak_rotated_parity1_column_row_expr812 = mask_values[547];
+ let diluted_pool_column_row_expr422 = mask_values[548];
+ let diluted_pool_column_row_expr423 = mask_values[549];
+ let diluted_pool_column_row_expr424 = mask_values[550];
+ let diluted_pool_column_row_expr813 = mask_values[551];
+ let keccak_keccak_rotated_parity1_column_row_expr814 = mask_values[552];
+ let diluted_pool_column_row_expr425 = mask_values[553];
+ let diluted_pool_column_row_expr426 = mask_values[554];
+ let diluted_pool_column_row_expr427 = mask_values[555];
+ let diluted_pool_column_row_expr815 = mask_values[556];
+ let keccak_keccak_rotated_parity1_column_row_expr816 = mask_values[557];
+ let diluted_pool_column_row_expr428 = mask_values[558];
+ let diluted_pool_column_row_expr430 = mask_values[559];
+ let diluted_pool_column_row_expr434 = mask_values[560];
+ let diluted_pool_column_row_expr431 = mask_values[561];
+ let diluted_pool_column_row_expr432 = mask_values[562];
+ let diluted_pool_column_row_expr817 = mask_values[563];
+ let keccak_keccak_rotated_parity2_column_row_expr818 = mask_values[564];
+ let diluted_pool_column_row_expr433 = mask_values[565];
+ let diluted_pool_column_row_expr435 = mask_values[566];
+ let diluted_pool_column_row_expr439 = mask_values[567];
+ let diluted_pool_column_row_expr436 = mask_values[568];
+ let diluted_pool_column_row_expr437 = mask_values[569];
+ let diluted_pool_column_row_expr819 = mask_values[570];
+ let keccak_keccak_rotated_parity3_column_row_expr820 = mask_values[571];
+ let diluted_pool_column_row_expr438 = mask_values[572];
+ let diluted_pool_column_row_expr440 = mask_values[573];
+ let diluted_pool_column_row_expr444 = mask_values[574];
+ let diluted_pool_column_row_expr441 = mask_values[575];
+ let diluted_pool_column_row_expr442 = mask_values[576];
+ let diluted_pool_column_row_expr821 = mask_values[577];
+ let keccak_keccak_rotated_parity4_column_row_expr822 = mask_values[578];
+ let diluted_pool_column_row_expr443 = mask_values[579];
+ let diluted_pool_column_row_expr445 = mask_values[580];
+ let diluted_pool_column_row_expr449 = mask_values[581];
+ let diluted_pool_column_row_expr446 = mask_values[582];
+ let diluted_pool_column_row_expr447 = mask_values[583];
+ let diluted_pool_column_row_expr823 = mask_values[584];
+ let keccak_keccak_rotated_parity0_column_row_expr824 = mask_values[585];
+ let diluted_pool_column_row_expr448 = mask_values[586];
+ let diluted_pool_column_row_expr450 = mask_values[587];
+ let diluted_pool_column_row_expr454 = mask_values[588];
+ let diluted_pool_column_row_expr451 = mask_values[589];
+ let diluted_pool_column_row_expr452 = mask_values[590];
+ let diluted_pool_column_row_expr825 = mask_values[591];
+ let keccak_keccak_rotated_parity1_column_row_expr826 = mask_values[592];
+ let diluted_pool_column_row_expr453 = mask_values[593];
+ let diluted_pool_column_row_expr455 = mask_values[594];
+ let diluted_pool_column_row_expr471 = mask_values[595];
+ let diluted_pool_column_row_expr456 = mask_values[596];
+ let diluted_pool_column_row_expr457 = mask_values[597];
+ let diluted_pool_column_row_expr827 = mask_values[598];
+ let keccak_keccak_rotated_parity2_column_row_expr828 = mask_values[599];
+ let diluted_pool_column_row_expr458 = mask_values[600];
+ let diluted_pool_column_row_expr459 = mask_values[601];
+ let diluted_pool_column_row_expr460 = mask_values[602];
+ let diluted_pool_column_row_expr829 = mask_values[603];
+ let keccak_keccak_rotated_parity2_column_row_expr830 = mask_values[604];
+ let diluted_pool_column_row_expr461 = mask_values[605];
+ let diluted_pool_column_row_expr462 = mask_values[606];
+ let diluted_pool_column_row_expr463 = mask_values[607];
+ let diluted_pool_column_row_expr831 = mask_values[608];
+ let keccak_keccak_rotated_parity2_column_row_expr832 = mask_values[609];
+ let diluted_pool_column_row_expr464 = mask_values[610];
+ let diluted_pool_column_row_expr465 = mask_values[611];
+ let diluted_pool_column_row_expr466 = mask_values[612];
+ let diluted_pool_column_row_expr833 = mask_values[613];
+ let keccak_keccak_rotated_parity2_column_row_expr834 = mask_values[614];
+ let diluted_pool_column_row_expr467 = mask_values[615];
+ let diluted_pool_column_row_expr468 = mask_values[616];
+ let diluted_pool_column_row_expr469 = mask_values[617];
+ let diluted_pool_column_row_expr835 = mask_values[618];
+ let keccak_keccak_rotated_parity2_column_row_expr836 = mask_values[619];
+ let diluted_pool_column_row_expr470 = mask_values[620];
+ let diluted_pool_column_row_expr472 = mask_values[621];
+ let diluted_pool_column_row_expr476 = mask_values[622];
+ let diluted_pool_column_row_expr473 = mask_values[623];
+ let diluted_pool_column_row_expr474 = mask_values[624];
+ let diluted_pool_column_row_expr837 = mask_values[625];
+ let keccak_keccak_rotated_parity3_column_row_expr838 = mask_values[626];
+ let diluted_pool_column_row_expr475 = mask_values[627];
+ let diluted_pool_column_row_expr477 = mask_values[628];
+ let diluted_pool_column_row_expr481 = mask_values[629];
+ let diluted_pool_column_row_expr478 = mask_values[630];
+ let diluted_pool_column_row_expr479 = mask_values[631];
+ let diluted_pool_column_row_expr839 = mask_values[632];
+ let keccak_keccak_rotated_parity4_column_row_expr840 = mask_values[633];
+ let diluted_pool_column_row_expr480 = mask_values[634];
+ let diluted_pool_column_row_expr482 = mask_values[635];
+ let diluted_pool_column_row_expr486 = mask_values[636];
+ let diluted_pool_column_row_expr483 = mask_values[637];
+ let diluted_pool_column_row_expr484 = mask_values[638];
+ let diluted_pool_column_row_expr841 = mask_values[639];
+ let keccak_keccak_rotated_parity0_column_row_expr842 = mask_values[640];
+ let diluted_pool_column_row_expr485 = mask_values[641];
+ let diluted_pool_column_row_expr487 = mask_values[642];
+ let diluted_pool_column_row_expr489 = mask_values[643];
+ let diluted_pool_column_row_expr488 = mask_values[644];
+ let diluted_pool_column_row_expr490 = mask_values[645];
+ let diluted_pool_column_row_expr494 = mask_values[646];
+ let diluted_pool_column_row_expr491 = mask_values[647];
+ let diluted_pool_column_row_expr843 = mask_values[648];
+ let diluted_pool_column_row_expr492 = mask_values[649];
+ let diluted_pool_column_row_expr493 = mask_values[650];
+ let diluted_pool_column_row_expr495 = mask_values[651];
+ let diluted_pool_column_row_expr499 = mask_values[652];
+ let diluted_pool_column_row_expr496 = mask_values[653];
+ let diluted_pool_column_row_expr844 = mask_values[654];
+ let diluted_pool_column_row_expr497 = mask_values[655];
+ let diluted_pool_column_row_expr498 = mask_values[656];
+ let diluted_pool_column_row_expr500 = mask_values[657];
+ let diluted_pool_column_row_expr504 = mask_values[658];
+ let diluted_pool_column_row_expr501 = mask_values[659];
+ let diluted_pool_column_row_expr845 = mask_values[660];
+ let diluted_pool_column_row_expr502 = mask_values[661];
+ let diluted_pool_column_row_expr503 = mask_values[662];
+ let diluted_pool_column_row_expr505 = mask_values[663];
+ let diluted_pool_column_row_expr509 = mask_values[664];
+ let diluted_pool_column_row_expr506 = mask_values[665];
+ let diluted_pool_column_row_expr846 = mask_values[666];
+ let diluted_pool_column_row_expr507 = mask_values[667];
+ let diluted_pool_column_row_expr508 = mask_values[668];
+ let diluted_pool_column_row_expr510 = mask_values[669];
+ let diluted_pool_column_row_expr514 = mask_values[670];
+ let diluted_pool_column_row_expr511 = mask_values[671];
+ let diluted_pool_column_row_expr847 = mask_values[672];
+ let diluted_pool_column_row_expr512 = mask_values[673];
+ let diluted_pool_column_row_expr513 = mask_values[674];
+ let diluted_pool_column_row_expr515 = mask_values[675];
+ let diluted_pool_column_row_expr519 = mask_values[676];
+ let diluted_pool_column_row_expr516 = mask_values[677];
+ let diluted_pool_column_row_expr848 = mask_values[678];
+ let diluted_pool_column_row_expr517 = mask_values[679];
+ let diluted_pool_column_row_expr518 = mask_values[680];
+ let diluted_pool_column_row_expr520 = mask_values[681];
+ let diluted_pool_column_row_expr522 = mask_values[682];
+ let diluted_pool_column_row_expr521 = mask_values[683];
+ let diluted_pool_column_row_expr523 = mask_values[684];
+ let diluted_pool_column_row_expr525 = mask_values[685];
+ let diluted_pool_column_row_expr524 = mask_values[686];
+ let diluted_pool_column_row_expr526 = mask_values[687];
+ let mem_pool_addr_column_row_expr527 = mask_values[688];
+ let mem_pool_addr_column_row_expr528 = mask_values[689];
+ let mem_pool_addr_column_row_expr529 = mask_values[690];
+ let mem_pool_addr_column_row_expr530 = mask_values[691];
+ let mem_pool_addr_column_row_expr531 = mask_values[692];
+ let mem_pool_addr_column_row_expr532 = mask_values[693];
+ let poseidon_poseidon_full_rounds_state0_squared_column_row_expr534 = mask_values[694];
+ let poseidon_poseidon_full_rounds_state0_column_row_expr533 = mask_values[695];
+ let poseidon_poseidon_full_rounds_state1_squared_column_row_expr536 = mask_values[696];
+ let poseidon_poseidon_full_rounds_state1_column_row_expr535 = mask_values[697];
+ let poseidon_poseidon_full_rounds_state2_squared_column_row_expr538 = mask_values[698];
+ let poseidon_poseidon_full_rounds_state2_column_row_expr537 = mask_values[699];
+ let poseidon_poseidon_partial_rounds_state0_squared_column_row_expr540 = mask_values[700];
+ let poseidon_poseidon_partial_rounds_state0_column_row_expr539 = mask_values[701];
+ let poseidon_poseidon_partial_rounds_state1_squared_column_row_expr542 = mask_values[702];
+ let poseidon_poseidon_partial_rounds_state1_column_row_expr541 = mask_values[703];
+ let mem_pool_value_column_row_expr543 = mask_values[704];
+ let mem_pool_value_column_row_expr544 = mask_values[705];
+ let mem_pool_value_column_row_expr545 = mask_values[706];
+ let poseidon_poseidon_full_rounds_state0_column_row_expr546 = mask_values[707];
+ let poseidon_poseidon_full_rounds_state1_column_row_expr547 = mask_values[708];
+ let poseidon_poseidon_full_rounds_state2_column_row_expr548 = mask_values[709];
+ let mem_pool_value_column_row_expr549 = mask_values[710];
+ let poseidon_poseidon_full_rounds_state0_column_row_expr849 = mask_values[711];
+ let poseidon_poseidon_full_rounds_state0_squared_column_row_expr850 = mask_values[712];
+ let poseidon_poseidon_full_rounds_state1_column_row_expr851 = mask_values[713];
+ let poseidon_poseidon_full_rounds_state1_squared_column_row_expr852 = mask_values[714];
+ let poseidon_poseidon_full_rounds_state2_column_row_expr853 = mask_values[715];
+ let poseidon_poseidon_full_rounds_state2_squared_column_row_expr854 = mask_values[716];
+ let mem_pool_value_column_row_expr550 = mask_values[717];
+ let mem_pool_value_column_row_expr551 = mask_values[718];
+ let poseidon_poseidon_partial_rounds_state0_column_row_expr552 = mask_values[719];
+ let poseidon_poseidon_partial_rounds_state1_column_row_expr554 = mask_values[720];
+ let poseidon_poseidon_partial_rounds_state0_column_row_expr553 = mask_values[721];
+ let poseidon_poseidon_partial_rounds_state1_column_row_expr556 = mask_values[722];
+ let poseidon_poseidon_partial_rounds_state0_column_row_expr555 = mask_values[723];
+ let poseidon_poseidon_full_rounds_state0_column_row_expr855 = mask_values[724];
+ let poseidon_poseidon_full_rounds_state0_squared_column_row_expr856 = mask_values[725];
+ let poseidon_poseidon_full_rounds_state1_column_row_expr857 = mask_values[726];
+ let poseidon_poseidon_full_rounds_state1_squared_column_row_expr858 = mask_values[727];
+ let poseidon_poseidon_full_rounds_state2_column_row_expr859 = mask_values[728];
+ let poseidon_poseidon_full_rounds_state2_squared_column_row_expr860 = mask_values[729];
+ let poseidon_poseidon_partial_rounds_state0_column_row_expr557 = mask_values[730];
+ let poseidon_poseidon_partial_rounds_state0_column_row_expr558 = mask_values[731];
+ let poseidon_poseidon_partial_rounds_state0_squared_column_row_expr861 = mask_values[732];
+ let poseidon_poseidon_partial_rounds_state0_column_row_expr559 = mask_values[733];
+ let poseidon_poseidon_partial_rounds_state0_squared_column_row_expr862 = mask_values[734];
+ let poseidon_poseidon_partial_rounds_state1_column_row_expr560 = mask_values[735];
+ let poseidon_poseidon_partial_rounds_state1_squared_column_row_expr863 = mask_values[736];
+ let poseidon_poseidon_partial_rounds_state1_squared_column_row_expr864 = mask_values[737];
+ let poseidon_poseidon_full_rounds_state0_column_row_expr561 = mask_values[738];
+ let poseidon_poseidon_partial_rounds_state1_column_row_expr865 = mask_values[739];
+ let poseidon_poseidon_partial_rounds_state1_squared_column_row_expr866 = mask_values[740];
+ let poseidon_poseidon_partial_rounds_state1_column_row_expr562 = mask_values[741];
+ let poseidon_poseidon_partial_rounds_state1_squared_column_row_expr867 = mask_values[742];
+ let poseidon_poseidon_partial_rounds_state1_column_row_expr563 = mask_values[743];
+ let poseidon_poseidon_partial_rounds_state1_squared_column_row_expr868 = mask_values[744];
+ let poseidon_poseidon_full_rounds_state1_column_row_expr564 = mask_values[745];
+ let poseidon_poseidon_full_rounds_state2_column_row_expr565 = mask_values[746];
+ let mem_pool_value_column_row_expr566 = mask_values[747];
+ let range_check16_pool_column_row_expr869 = mask_values[748];
+ let range_check16_pool_column_row_expr870 = mask_values[749];
+ let range_check16_pool_column_row_expr871 = mask_values[750];
+ let range_check16_pool_column_row_expr872 = mask_values[751];
+ let range_check16_pool_column_row_expr873 = mask_values[752];
+ let range_check16_pool_column_row_expr874 = mask_values[753];
+ let mem_pool_addr_column_row_expr567 = mask_values[754];
+ let mem_pool_addr_column_row_expr568 = mask_values[755];
+ let mem_pool_addr_column_row_expr569 = mask_values[756];
+ let mem_pool_addr_column_row_expr570 = mask_values[757];
+ let mem_pool_addr_column_row_expr571 = mask_values[758];
+ let mem_pool_addr_column_row_expr572 = mask_values[759];
+ let mem_pool_addr_column_row_expr573 = mask_values[760];
+ let mem_pool_addr_column_row_expr574 = mask_values[761];
+ let mem_pool_addr_column_row_expr575 = mask_values[762];
+ let mem_pool_addr_column_row_expr576 = mask_values[763];
+ let mem_pool_value_column_row_expr577 = mask_values[764];
+ let mem_pool_value_column_row_expr578 = mask_values[765];
+ let mem_pool_value_column_row_expr579 = mask_values[766];
+ let mem_pool_value_column_row_expr580 = mask_values[767];
+ let mem_pool_value_column_row_expr581 = mask_values[768];
+ let mem_pool_value_column_row_expr582 = mask_values[769];
+ let mem_pool_value_column_row_expr583 = mask_values[770];
+ let mem_pool_value_column_row_expr584 = mask_values[771];
+ let mem_pool_value_column_row_expr585 = mask_values[772];
+ let mem_pool_value_column_row_expr586 = mask_values[773];
+ let mem_pool_value_column_row_expr587 = mask_values[774];
+ let mem_pool_value_column_row_expr588 = mask_values[775];
+ let mem_pool_value_column_row_expr589 = mask_values[776];
+ let mem_pool_value_column_row_expr590 = mask_values[777];
+ let mem_pool_addr_column_row_expr591 = mask_values[778];
+ let mem_pool_addr_column_row_expr592 = mask_values[779];
+ let mem_pool_addr_column_row_expr593 = mask_values[780];
+ let mem_pool_addr_column_row_expr594 = mask_values[781];
+ let mem_pool_value_column_row_expr595 = mask_values[782];
+ let mem_pool_addr_column_row_expr596 = mask_values[783];
+ let mem_pool_addr_column_row_expr597 = mask_values[784];
+ let mem_pool_addr_column_row_expr598 = mask_values[785];
+ let mem_pool_addr_column_row_expr599 = mask_values[786];
+ let mem_pool_value_column_row_expr600 = mask_values[787];
+ let mem_pool_addr_column_row_expr601 = mask_values[788];
+ let mem_pool_addr_column_row_expr602 = mask_values[789];
+ let mem_pool_addr_column_row_expr603 = mask_values[790];
+ let mem_pool_addr_column_row_expr604 = mask_values[791];
+ let mem_pool_value_column_row_expr605 = mask_values[792];
+ let mem_pool_addr_column_row_expr606 = mask_values[793];
+ let mem_pool_addr_column_row_expr607 = mask_values[794];
+ let mem_pool_addr_column_row_expr608 = mask_values[795];
+ let add_mod_sub_p_bit_column_row_expr609 = mask_values[796];
+ let add_mod_carry1_bit_column_row_expr610 = mask_values[797];
+ let add_mod_carry1_sign_column_row_expr611 = mask_values[798];
+ let add_mod_carry2_bit_column_row_expr612 = mask_values[799];
+ let add_mod_carry2_sign_column_row_expr613 = mask_values[800];
+ let add_mod_carry3_bit_column_row_expr614 = mask_values[801];
+ let add_mod_carry3_sign_column_row_expr615 = mask_values[802];
+ let mem_pool_value_column_row_expr616 = mask_values[803];
+ let mem_pool_value_column_row_expr617 = mask_values[804];
+ let mem_pool_value_column_row_expr618 = mask_values[805];
+ let mem_pool_value_column_row_expr619 = mask_values[806];
+ let mem_pool_value_column_row_expr620 = mask_values[807];
+ let mem_pool_value_column_row_expr621 = mask_values[808];
+ let mem_pool_value_column_row_expr622 = mask_values[809];
+ let mem_pool_value_column_row_expr623 = mask_values[810];
+ let mem_pool_value_column_row_expr624 = mask_values[811];
+ let mem_pool_value_column_row_expr625 = mask_values[812];
+ let mem_pool_value_column_row_expr626 = mask_values[813];
+ let mem_pool_value_column_row_expr627 = mask_values[814];
+ let mem_pool_addr_column_row_expr628 = mask_values[815];
+ let mem_pool_addr_column_row_expr629 = mask_values[816];
+ let mem_pool_addr_column_row_expr630 = mask_values[817];
+ let mem_pool_addr_column_row_expr631 = mask_values[818];
+ let mem_pool_addr_column_row_expr632 = mask_values[819];
+ let mem_pool_addr_column_row_expr633 = mask_values[820];
+ let mem_pool_addr_column_row_expr634 = mask_values[821];
+ let mem_pool_addr_column_row_expr635 = mask_values[822];
+ let mem_pool_value_column_row_expr636 = mask_values[823];
+ let mem_pool_value_column_row_expr637 = mask_values[824];
+ let mem_pool_value_column_row_expr638 = mask_values[825];
+ let mem_pool_value_column_row_expr639 = mask_values[826];
+ let mem_pool_value_column_row_expr640 = mask_values[827];
+ let mem_pool_value_column_row_expr641 = mask_values[828];
+ let mem_pool_value_column_row_expr642 = mask_values[829];
+ let mem_pool_value_column_row_expr643 = mask_values[830];
+ let mem_pool_value_column_row_expr644 = mask_values[831];
+ let mem_pool_value_column_row_expr645 = mask_values[832];
+ let mem_pool_value_column_row_expr646 = mask_values[833];
+ let mem_pool_value_column_row_expr647 = mask_values[834];
+ let mem_pool_value_column_row_expr648 = mask_values[835];
+ let mem_pool_value_column_row_expr649 = mask_values[836];
+ let mem_pool_addr_column_row_expr650 = mask_values[837];
+ let mem_pool_addr_column_row_expr651 = mask_values[838];
+ let mem_pool_addr_column_row_expr652 = mask_values[839];
+ let mem_pool_addr_column_row_expr653 = mask_values[840];
+ let mem_pool_value_column_row_expr654 = mask_values[841];
+ let mem_pool_addr_column_row_expr655 = mask_values[842];
+ let mem_pool_addr_column_row_expr656 = mask_values[843];
+ let mem_pool_addr_column_row_expr657 = mask_values[844];
+ let mem_pool_addr_column_row_expr658 = mask_values[845];
+ let mem_pool_value_column_row_expr659 = mask_values[846];
+ let mem_pool_addr_column_row_expr660 = mask_values[847];
+ let mem_pool_addr_column_row_expr661 = mask_values[848];
+ let mem_pool_addr_column_row_expr662 = mask_values[849];
+ let mem_pool_addr_column_row_expr663 = mask_values[850];
+ let mem_pool_value_column_row_expr664 = mask_values[851];
+ let mem_pool_addr_column_row_expr665 = mask_values[852];
+ let mem_pool_addr_column_row_expr666 = mask_values[853];
+ let mem_pool_addr_column_row_expr667 = mask_values[854];
+ let mem_pool_value_column_row_expr668 = mask_values[855];
+ let mem_pool_value_column_row_expr669 = mask_values[856];
+ let mem_pool_value_column_row_expr670 = mask_values[857];
+ let mem_pool_value_column_row_expr671 = mask_values[858];
+ let mem_pool_value_column_row_expr672 = mask_values[859];
+ let mem_pool_value_column_row_expr673 = mask_values[860];
+ let mem_pool_value_column_row_expr674 = mask_values[861];
+ let mem_pool_value_column_row_expr675 = mask_values[862];
+ let mem_pool_value_column_row_expr676 = mask_values[863];
+ let mem_pool_value_column_row_expr677 = mask_values[864];
+ let mem_pool_value_column_row_expr678 = mask_values[865];
+ let mem_pool_value_column_row_expr679 = mask_values[866];
+ let range_check16_pool_column_row_expr875 = mask_values[867];
+ let range_check16_pool_column_row_expr876 = mask_values[868];
+ let range_check16_pool_column_row_expr877 = mask_values[869];
+ let range_check16_pool_column_row_expr878 = mask_values[870];
+ let range_check16_pool_column_row_expr879 = mask_values[871];
+ let range_check16_pool_column_row_expr880 = mask_values[872];
+ let range_check16_pool_column_row_expr881 = mask_values[873];
+ let range_check16_pool_column_row_expr882 = mask_values[874];
+ let range_check16_pool_column_row_expr883 = mask_values[875];
+ let range_check16_pool_column_row_expr884 = mask_values[876];
+ let range_check16_pool_column_row_expr885 = mask_values[877];
+ let range_check16_pool_column_row_expr886 = mask_values[878];
+ let range_check16_pool_column_row_expr887 = mask_values[879];
+ let range_check16_pool_column_row_expr888 = mask_values[880];
+ let range_check16_pool_column_row_expr889 = mask_values[881];
+ let range_check16_pool_column_row_expr890 = mask_values[882];
+ let range_check16_pool_column_row_expr891 = mask_values[883];
+ let range_check16_pool_column_row_expr892 = mask_values[884];
+ let range_check16_pool_column_row_expr893 = mask_values[885];
+ let range_check16_pool_column_row_expr894 = mask_values[886];
+ let range_check16_pool_column_row_expr895 = mask_values[887];
+ let range_check16_pool_column_row_expr896 = mask_values[888];
+ let range_check16_pool_column_row_expr897 = mask_values[889];
+ let range_check16_pool_column_row_expr898 = mask_values[890];
+ let range_check16_pool_column_row_expr899 = mask_values[891];
+ let range_check16_pool_column_row_expr900 = mask_values[892];
+ let range_check16_pool_column_row_expr901 = mask_values[893];
+ let range_check16_pool_column_row_expr902 = mask_values[894];
+ let range_check16_pool_column_row_expr903 = mask_values[895];
+ let range_check16_pool_column_row_expr904 = mask_values[896];
+ let range_check16_pool_column_row_expr905 = mask_values[897];
+ let range_check16_pool_column_row_expr906 = mask_values[898];
+ let range_check16_pool_column_row_expr907 = mask_values[899];
+ let range_check16_pool_column_row_expr908 = mask_values[900];
+ let range_check16_pool_column_row_expr909 = mask_values[901];
+ let range_check16_pool_column_row_expr910 = mask_values[902];
+ let range_check16_pool_column_row_expr911 = mask_values[903];
+ let range_check16_pool_column_row_expr912 = mask_values[904];
+ let range_check16_pool_column_row_expr913 = mask_values[905];
+ let range_check16_pool_column_row_expr914 = mask_values[906];
+ let range_check16_pool_column_row_expr915 = mask_values[907];
+ let range_check16_pool_column_row_expr916 = mask_values[908];
+ let range_check16_pool_column_row_expr917 = mask_values[909];
+ let range_check16_pool_column_row_expr918 = mask_values[910];
+ let range_check16_pool_column_row_expr919 = mask_values[911];
+ let range_check16_pool_column_row_expr920 = mask_values[912];
+ let range_check16_pool_column_row_expr921 = mask_values[913];
+ let range_check16_pool_column_row_expr922 = mask_values[914];
+ let range_check16_pool_column_row_expr923 = mask_values[915];
+ let range_check16_pool_column_row_expr924 = mask_values[916];
+ let range_check16_pool_column_row_expr925 = mask_values[917];
+ let range_check16_pool_column_row_expr926 = mask_values[918];
+ let range_check16_pool_column_row_expr927 = mask_values[919];
+ let range_check16_pool_column_row_expr928 = mask_values[920];
+ let range_check16_pool_column_row_expr929 = mask_values[921];
+ let range_check16_pool_column_row_expr930 = mask_values[922];
+ let range_check16_pool_column_row_expr931 = mask_values[923];
+ let range_check16_pool_column_row_expr932 = mask_values[924];
+ let range_check16_pool_column_row_expr933 = mask_values[925];
+ let range_check16_pool_column_row_expr934 = mask_values[926];
+ let range_check16_pool_column_row_expr935 = mask_values[927];
+ let range_check16_pool_column_row_expr936 = mask_values[928];
+ let range_check16_pool_column_row_expr937 = mask_values[929];
+ let range_check16_pool_column_row_expr938 = mask_values[930];
+ let range_check16_pool_column_row_expr939 = mask_values[931];
+ let range_check16_pool_column_row_expr940 = mask_values[932];
+ let memory_multi_column_perm_perm_cum_prod0_column_row_expr23 = mask_values[933];
+ let memory_multi_column_perm_perm_cum_prod0_column_row_expr28 = mask_values[934];
+ let range_check16_perm_cum_prod0_column_row_expr34 = mask_values[935];
+ let range_check16_perm_cum_prod0_column_row_expr37 = mask_values[936];
+ let diluted_check_permutation_cum_prod0_column_row_expr40 = mask_values[937];
+ let diluted_check_permutation_cum_prod0_column_row_expr43 = mask_values[938];
+ let diluted_check_cumulative_value_column_row_expr45 = mask_values[939];
+ let diluted_check_cumulative_value_column_row_expr46 = mask_values[940];
+
+ // Compute intermediate values.
+ let cpu_decode_opcode_range_check_bit_0 = cpu_decode_opcode_range_check_column_column_row_expr0
+ - (cpu_decode_opcode_range_check_column_column_row_expr680
+ + cpu_decode_opcode_range_check_column_column_row_expr680);
+ let cpu_decode_opcode_range_check_bit_2 =
+ cpu_decode_opcode_range_check_column_column_row_expr681
+ - (cpu_decode_opcode_range_check_column_column_row_expr682
+ + cpu_decode_opcode_range_check_column_column_row_expr682);
+ let cpu_decode_opcode_range_check_bit_4 =
+ cpu_decode_opcode_range_check_column_column_row_expr683
+ - (cpu_decode_opcode_range_check_column_column_row_expr684
+ + cpu_decode_opcode_range_check_column_column_row_expr684);
+ let cpu_decode_opcode_range_check_bit_3 =
+ cpu_decode_opcode_range_check_column_column_row_expr685
+ - (cpu_decode_opcode_range_check_column_column_row_expr686
+ + cpu_decode_opcode_range_check_column_column_row_expr686);
+ let cpu_decode_flag_op1_base_op0_0 = FELT_1
+ - (cpu_decode_opcode_range_check_bit_2
+ + cpu_decode_opcode_range_check_bit_4
+ + cpu_decode_opcode_range_check_bit_3);
+ let cpu_decode_opcode_range_check_bit_5 =
+ cpu_decode_opcode_range_check_column_column_row_expr687
+ - (cpu_decode_opcode_range_check_column_column_row_expr688
+ + cpu_decode_opcode_range_check_column_column_row_expr688);
+ let cpu_decode_opcode_range_check_bit_6 =
+ cpu_decode_opcode_range_check_column_column_row_expr689
+ - (cpu_decode_opcode_range_check_column_column_row_expr690
+ + cpu_decode_opcode_range_check_column_column_row_expr690);
+ let cpu_decode_opcode_range_check_bit_9 =
+ cpu_decode_opcode_range_check_column_column_row_expr691
+ - (cpu_decode_opcode_range_check_column_column_row_expr692
+ + cpu_decode_opcode_range_check_column_column_row_expr692);
+ let cpu_decode_flag_res_op1_0 = FELT_1
+ - (cpu_decode_opcode_range_check_bit_5
+ + cpu_decode_opcode_range_check_bit_6
+ + cpu_decode_opcode_range_check_bit_9);
+ let cpu_decode_opcode_range_check_bit_7 =
+ cpu_decode_opcode_range_check_column_column_row_expr693
+ - (cpu_decode_opcode_range_check_column_column_row_expr694
+ + cpu_decode_opcode_range_check_column_column_row_expr694);
+ let cpu_decode_opcode_range_check_bit_8 =
+ cpu_decode_opcode_range_check_column_column_row_expr695
+ - (cpu_decode_opcode_range_check_column_column_row_expr696
+ + cpu_decode_opcode_range_check_column_column_row_expr696);
+ let cpu_decode_flag_pc_update_regular_0 = FELT_1
+ - (cpu_decode_opcode_range_check_bit_7
+ + cpu_decode_opcode_range_check_bit_8
+ + cpu_decode_opcode_range_check_bit_9);
+ let cpu_decode_opcode_range_check_bit_12 =
+ cpu_decode_opcode_range_check_column_column_row_expr697
+ - (cpu_decode_opcode_range_check_column_column_row_expr698
+ + cpu_decode_opcode_range_check_column_column_row_expr698);
+ let cpu_decode_opcode_range_check_bit_13 =
+ cpu_decode_opcode_range_check_column_column_row_expr699
+ - (cpu_decode_opcode_range_check_column_column_row_expr700
+ + cpu_decode_opcode_range_check_column_column_row_expr700);
+ let cpu_decode_fp_update_regular_0 =
+ FELT_1 - (cpu_decode_opcode_range_check_bit_12 + cpu_decode_opcode_range_check_bit_13);
+ let cpu_decode_opcode_range_check_bit_1 =
+ cpu_decode_opcode_range_check_column_column_row_expr680
+ - (cpu_decode_opcode_range_check_column_column_row_expr701
+ + cpu_decode_opcode_range_check_column_column_row_expr701);
+ let npc_reg_0 = mem_pool_addr_column_row_expr10 + cpu_decode_opcode_range_check_bit_2 + FELT_1;
+ let cpu_decode_opcode_range_check_bit_10 =
+ cpu_decode_opcode_range_check_column_column_row_expr702
+ - (cpu_decode_opcode_range_check_column_column_row_expr703
+ + cpu_decode_opcode_range_check_column_column_row_expr703);
+ let cpu_decode_opcode_range_check_bit_11 =
+ cpu_decode_opcode_range_check_column_column_row_expr704
+ - (cpu_decode_opcode_range_check_column_column_row_expr705
+ + cpu_decode_opcode_range_check_column_column_row_expr705);
+ let cpu_decode_opcode_range_check_bit_14 =
+ cpu_decode_opcode_range_check_column_column_row_expr706
+ - (cpu_decode_opcode_range_check_column_column_row_expr707
+ + cpu_decode_opcode_range_check_column_column_row_expr707);
+ let memory_address_diff_0 =
+ memory_sorted_addr_column_row_expr26 - memory_sorted_addr_column_row_expr21;
+ let range_check16_diff_0 =
+ range_check16_sorted_column_row_expr36 - range_check16_sorted_column_row_expr33;
+ let pedersen_hash0_ec_subset_sum_bit_0 = pedersen_hash0_ec_subset_sum_selector_column_row_expr48
+ - (pedersen_hash0_ec_subset_sum_selector_column_row_expr49
+ + pedersen_hash0_ec_subset_sum_selector_column_row_expr49);
+ let pedersen_hash0_ec_subset_sum_bit_neg_0 = FELT_1 - pedersen_hash0_ec_subset_sum_bit_0;
+ let range_check_builtin_value0_0 = range_check16_pool_column_row_expr708;
+ let range_check_builtin_value1_0 = range_check_builtin_value0_0 * global_values.offset_size
+ + range_check16_pool_column_row_expr709;
+ let range_check_builtin_value2_0 = range_check_builtin_value1_0 * global_values.offset_size
+ + range_check16_pool_column_row_expr710;
+ let range_check_builtin_value3_0 = range_check_builtin_value2_0 * global_values.offset_size
+ + range_check16_pool_column_row_expr711;
+ let range_check_builtin_value4_0 = range_check_builtin_value3_0 * global_values.offset_size
+ + range_check16_pool_column_row_expr712;
+ let range_check_builtin_value5_0 = range_check_builtin_value4_0 * global_values.offset_size
+ + range_check16_pool_column_row_expr713;
+ let range_check_builtin_value6_0 = range_check_builtin_value5_0 * global_values.offset_size
+ + range_check16_pool_column_row_expr714;
+ let range_check_builtin_value7_0 = range_check_builtin_value6_0 * global_values.offset_size
+ + range_check16_pool_column_row_expr715;
+ let ecdsa_signature0_doubling_key_x_squared = ecdsa_signature0_key_points_x_column_row_expr80
+ * ecdsa_signature0_key_points_x_column_row_expr80;
+ let ecdsa_signature0_exponentiate_generator_bit_0 =
+ ecdsa_signature0_exponentiate_generator_selector_column_row_expr83
+ - (ecdsa_signature0_exponentiate_generator_selector_column_row_expr716
+ + ecdsa_signature0_exponentiate_generator_selector_column_row_expr716);
+ let ecdsa_signature0_exponentiate_generator_bit_neg_0 =
+ FELT_1 - ecdsa_signature0_exponentiate_generator_bit_0;
+ let ecdsa_signature0_exponentiate_key_bit_0 =
+ ecdsa_signature0_exponentiate_key_selector_column_row_expr90
+ - (ecdsa_signature0_exponentiate_key_selector_column_row_expr717
+ + ecdsa_signature0_exponentiate_key_selector_column_row_expr717);
+ let ecdsa_signature0_exponentiate_key_bit_neg_0 =
+ FELT_1 - ecdsa_signature0_exponentiate_key_bit_0;
+ let bitwise_sum_var_0_0 = diluted_pool_column_row_expr126
+ + diluted_pool_column_row_expr718 * FELT_2
+ + diluted_pool_column_row_expr719 * FELT_4
+ + diluted_pool_column_row_expr720 * FELT_8
+ + diluted_pool_column_row_expr721 * FELT_18446744073709551616
+ + diluted_pool_column_row_expr722 * FELT_36893488147419103232
+ + diluted_pool_column_row_expr723 * FELT_73786976294838206464
+ + diluted_pool_column_row_expr724 * FELT_147573952589676412928;
+ let bitwise_sum_var_8_0 = diluted_pool_column_row_expr725
+ * FELT_340282366920938463463374607431768211456
+ + diluted_pool_column_row_expr726 * FELT_680564733841876926926749214863536422912
+ + diluted_pool_column_row_expr727 * FELT_1361129467683753853853498429727072845824
+ + diluted_pool_column_row_expr728 * FELT_2722258935367507707706996859454145691648
+ + diluted_pool_column_row_expr729
+ * FELT_6277101735386680763835789423207666416102355444464034512896
+ + diluted_pool_column_row_expr730
+ * FELT_12554203470773361527671578846415332832204710888928069025792
+ + diluted_pool_column_row_expr731
+ * FELT_25108406941546723055343157692830665664409421777856138051584
+ + diluted_pool_column_row_expr732
+ * FELT_50216813883093446110686315385661331328818843555712276103168;
+ let ec_op_doubling_q_x_squared_0 =
+ ec_op_doubled_points_x_column_row_expr152 * ec_op_doubled_points_x_column_row_expr152;
+ let ec_op_ec_subset_sum_bit_0 = ec_op_ec_subset_sum_selector_column_row_expr158
+ - (ec_op_ec_subset_sum_selector_column_row_expr159
+ + ec_op_ec_subset_sum_selector_column_row_expr159);
+ let ec_op_ec_subset_sum_bit_neg_0 = FELT_1 - ec_op_ec_subset_sum_bit_0;
+ let keccak_keccak_parse_to_diluted_sum_words_over_instances0_0 =
+ keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr733
+ - keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr734
+ * FELT_1606938044258990275541962092341162602522202993782792835301376;
+ let keccak_keccak_parse_to_diluted_sum_words_over_instances0_2 =
+ keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr735
+ - keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr736
+ * FELT_1606938044258990275541962092341162602522202993782792835301376;
+ let keccak_keccak_parse_to_diluted_sum_words_over_instances1_0 =
+ keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr734
+ - keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr737
+ * FELT_1606938044258990275541962092341162602522202993782792835301376;
+ let keccak_keccak_parse_to_diluted_sum_words_over_instances1_2 =
+ keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr736
+ - keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr738
+ * FELT_1606938044258990275541962092341162602522202993782792835301376;
+ let keccak_keccak_parse_to_diluted_sum_words_over_instances2_0 =
+ keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr737
+ - keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr739
+ * FELT_1606938044258990275541962092341162602522202993782792835301376;
+ let keccak_keccak_parse_to_diluted_sum_words_over_instances2_2 =
+ keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr738
+ - keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr740
+ * FELT_1606938044258990275541962092341162602522202993782792835301376;
+ let keccak_keccak_parse_to_diluted_sum_words_over_instances3_0 =
+ keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr739
+ - keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr741
+ * FELT_1606938044258990275541962092341162602522202993782792835301376;
+ let keccak_keccak_parse_to_diluted_sum_words_over_instances3_2 =
+ keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr740
+ - keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr742
+ * FELT_1606938044258990275541962092341162602522202993782792835301376;
+ let keccak_keccak_parse_to_diluted_sum_words_over_instances4_0 =
+ keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr741
+ - keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr743
+ * FELT_1606938044258990275541962092341162602522202993782792835301376;
+ let keccak_keccak_parse_to_diluted_sum_words_over_instances4_2 =
+ keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr742
+ - keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr744
+ * FELT_1606938044258990275541962092341162602522202993782792835301376;
+ let keccak_keccak_parse_to_diluted_sum_words_over_instances5_0 =
+ keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr743
+ - keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr745
+ * FELT_1606938044258990275541962092341162602522202993782792835301376;
+ let keccak_keccak_parse_to_diluted_sum_words_over_instances5_2 =
+ keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr744
+ - keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr746
+ * FELT_1606938044258990275541962092341162602522202993782792835301376;
+ let keccak_keccak_parse_to_diluted_sum_words_over_instances6_0 =
+ keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr745
+ - keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr747
+ * FELT_1606938044258990275541962092341162602522202993782792835301376;
+ let keccak_keccak_parse_to_diluted_sum_words_over_instances6_2 =
+ keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr746
+ - keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr748
+ * FELT_1606938044258990275541962092341162602522202993782792835301376;
+ let keccak_keccak_parse_to_diluted_sum_words_over_instances7_0 =
+ keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr747
+ - keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr245
+ * FELT_1606938044258990275541962092341162602522202993782792835301376;
+ let keccak_keccak_parse_to_diluted_sum_words_over_instances7_2 =
+ keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr748
+ - keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr749
+ * FELT_1606938044258990275541962092341162602522202993782792835301376;
+ let keccak_keccak_parse_to_diluted_partial_diluted1_0 =
+ keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr750
+ - (keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr751
+ + keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr751);
+ let keccak_keccak_parse_to_diluted_partial_diluted1_2 =
+ keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr752
+ - (keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr753
+ + keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr753);
+ let keccak_keccak_parse_to_diluted_bit_other1_0 =
+ keccak_keccak_parse_to_diluted_partial_diluted1_2
+ - FELT_16 * keccak_keccak_parse_to_diluted_partial_diluted1_0;
+ let keccak_keccak_parse_to_diluted_partial_diluted1_30 =
+ keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr754
+ - (keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr755
+ + keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr755);
+ let keccak_keccak_parse_to_diluted_partial_diluted1_31 =
+ keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr756
+ - (keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr757
+ + keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr757);
+ let keccak_keccak_parse_to_diluted_partial_diluted0_0 =
+ keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr733
+ - (keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr758
+ + keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr758);
+ let keccak_keccak_parse_to_diluted_partial_diluted0_2 =
+ keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr735
+ - (keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr759
+ + keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr759);
+ let keccak_keccak_parse_to_diluted_bit_other0_0 =
+ keccak_keccak_parse_to_diluted_partial_diluted0_2
+ - FELT_16 * keccak_keccak_parse_to_diluted_partial_diluted0_0;
+ let keccak_keccak_parse_to_diluted_partial_diluted0_30 =
+ keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr760
+ - (keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr761
+ + keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr761);
+ let keccak_keccak_parse_to_diluted_partial_diluted0_31 =
+ keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr762
+ - (keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr763
+ + keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr763);
+ let keccak_keccak_sum_parities0_0 =
+ diluted_pool_column_row_expr300 + keccak_keccak_rotated_parity1_column_row_expr306;
+ let keccak_keccak_sum_parities1_0 =
+ diluted_pool_column_row_expr268 + keccak_keccak_rotated_parity2_column_row_expr309;
+ let keccak_keccak_sum_parities1_64512 =
+ diluted_pool_column_row_expr304 + keccak_keccak_rotated_parity2_column_row_expr764;
+ let keccak_keccak_sum_parities2_0 =
+ diluted_pool_column_row_expr276 + keccak_keccak_rotated_parity3_column_row_expr312;
+ let keccak_keccak_sum_parities2_2048 =
+ diluted_pool_column_row_expr765 + keccak_keccak_rotated_parity3_column_row_expr766;
+ let keccak_keccak_sum_parities3_0 =
+ diluted_pool_column_row_expr284 + keccak_keccak_rotated_parity4_column_row_expr315;
+ let keccak_keccak_sum_parities3_36864 =
+ diluted_pool_column_row_expr767 + keccak_keccak_rotated_parity4_column_row_expr768;
+ let keccak_keccak_sum_parities4_0 =
+ diluted_pool_column_row_expr292 + keccak_keccak_rotated_parity0_column_row_expr303;
+ let keccak_keccak_sum_parities4_37888 =
+ diluted_pool_column_row_expr769 + keccak_keccak_rotated_parity0_column_row_expr770;
+ let keccak_keccak_sum_parities0_28672 =
+ diluted_pool_column_row_expr771 + keccak_keccak_rotated_parity1_column_row_expr772;
+ let keccak_keccak_sum_parities1_20480 =
+ diluted_pool_column_row_expr773 + keccak_keccak_rotated_parity2_column_row_expr774;
+ let keccak_keccak_sum_parities2_59392 =
+ diluted_pool_column_row_expr775 + keccak_keccak_rotated_parity3_column_row_expr776;
+ let keccak_keccak_sum_parities3_8 =
+ diluted_pool_column_row_expr777 + keccak_keccak_rotated_parity4_column_row_expr778;
+ let keccak_keccak_sum_parities3_16 =
+ diluted_pool_column_row_expr779 + keccak_keccak_rotated_parity4_column_row_expr780;
+ let keccak_keccak_sum_parities3_9216 =
+ diluted_pool_column_row_expr781 + keccak_keccak_rotated_parity4_column_row_expr782;
+ let keccak_keccak_sum_parities3_9224 =
+ diluted_pool_column_row_expr783 + keccak_keccak_rotated_parity4_column_row_expr784;
+ let keccak_keccak_sum_parities3_9232 =
+ diluted_pool_column_row_expr785 + keccak_keccak_rotated_parity4_column_row_expr786;
+ let keccak_keccak_sum_parities4_45056 =
+ diluted_pool_column_row_expr787 + keccak_keccak_rotated_parity0_column_row_expr788;
+ let keccak_keccak_sum_parities0_62464 =
+ diluted_pool_column_row_expr789 + keccak_keccak_rotated_parity1_column_row_expr790;
+ let keccak_keccak_sum_parities1_55296 =
+ diluted_pool_column_row_expr791 + keccak_keccak_rotated_parity2_column_row_expr792;
+ let keccak_keccak_sum_parities2_21504 =
+ diluted_pool_column_row_expr793 + keccak_keccak_rotated_parity3_column_row_expr794;
+ let keccak_keccak_sum_parities3_39936 =
+ diluted_pool_column_row_expr795 + keccak_keccak_rotated_parity4_column_row_expr796;
+ let keccak_keccak_sum_parities4_8 =
+ diluted_pool_column_row_expr797 + keccak_keccak_rotated_parity0_column_row_expr798;
+ let keccak_keccak_sum_parities4_16 =
+ diluted_pool_column_row_expr799 + keccak_keccak_rotated_parity0_column_row_expr800;
+ let keccak_keccak_sum_parities4_25600 =
+ diluted_pool_column_row_expr801 + keccak_keccak_rotated_parity0_column_row_expr802;
+ let keccak_keccak_sum_parities4_25608 =
+ diluted_pool_column_row_expr803 + keccak_keccak_rotated_parity0_column_row_expr804;
+ let keccak_keccak_sum_parities4_25616 =
+ diluted_pool_column_row_expr805 + keccak_keccak_rotated_parity0_column_row_expr806;
+ let keccak_keccak_sum_parities0_8 =
+ diluted_pool_column_row_expr807 + keccak_keccak_rotated_parity1_column_row_expr808;
+ let keccak_keccak_sum_parities0_16 =
+ diluted_pool_column_row_expr809 + keccak_keccak_rotated_parity1_column_row_expr810;
+ let keccak_keccak_sum_parities0_23552 =
+ diluted_pool_column_row_expr811 + keccak_keccak_rotated_parity1_column_row_expr812;
+ let keccak_keccak_sum_parities0_23560 =
+ diluted_pool_column_row_expr813 + keccak_keccak_rotated_parity1_column_row_expr814;
+ let keccak_keccak_sum_parities0_23568 =
+ diluted_pool_column_row_expr815 + keccak_keccak_rotated_parity1_column_row_expr816;
+ let keccak_keccak_sum_parities1_19456 =
+ diluted_pool_column_row_expr817 + keccak_keccak_rotated_parity2_column_row_expr818;
+ let keccak_keccak_sum_parities2_50176 =
+ diluted_pool_column_row_expr819 + keccak_keccak_rotated_parity3_column_row_expr820;
+ let keccak_keccak_sum_parities3_44032 =
+ diluted_pool_column_row_expr821 + keccak_keccak_rotated_parity4_column_row_expr822;
+ let keccak_keccak_sum_parities4_57344 =
+ diluted_pool_column_row_expr823 + keccak_keccak_rotated_parity0_column_row_expr824;
+ let keccak_keccak_sum_parities0_47104 =
+ diluted_pool_column_row_expr825 + keccak_keccak_rotated_parity1_column_row_expr826;
+ let keccak_keccak_sum_parities1_8 =
+ diluted_pool_column_row_expr827 + keccak_keccak_rotated_parity2_column_row_expr828;
+ let keccak_keccak_sum_parities1_16 =
+ diluted_pool_column_row_expr829 + keccak_keccak_rotated_parity2_column_row_expr830;
+ let keccak_keccak_sum_parities1_63488 =
+ diluted_pool_column_row_expr831 + keccak_keccak_rotated_parity2_column_row_expr832;
+ let keccak_keccak_sum_parities1_63496 =
+ diluted_pool_column_row_expr833 + keccak_keccak_rotated_parity2_column_row_expr834;
+ let keccak_keccak_sum_parities1_63504 =
+ diluted_pool_column_row_expr835 + keccak_keccak_rotated_parity2_column_row_expr836;
+ let keccak_keccak_sum_parities2_3072 =
+ diluted_pool_column_row_expr837 + keccak_keccak_rotated_parity3_column_row_expr838;
+ let keccak_keccak_sum_parities3_8192 =
+ diluted_pool_column_row_expr839 + keccak_keccak_rotated_parity4_column_row_expr840;
+ let keccak_keccak_sum_parities4_51200 =
+ diluted_pool_column_row_expr841 + keccak_keccak_rotated_parity0_column_row_expr842;
+ let keccak_keccak_after_theta_rho_pi_xor_one_32 =
+ FELT_1229782938247303441 - diluted_pool_column_row_expr348;
+ let keccak_keccak_after_theta_rho_pi_xor_one_1056 =
+ FELT_1229782938247303441 - diluted_pool_column_row_expr843;
+ let keccak_keccak_after_theta_rho_pi_xor_one_3104 =
+ FELT_1229782938247303441 - diluted_pool_column_row_expr844;
+ let keccak_keccak_after_theta_rho_pi_xor_one_7200 =
+ FELT_1229782938247303441 - diluted_pool_column_row_expr845;
+ let keccak_keccak_after_theta_rho_pi_xor_one_15392 =
+ FELT_1229782938247303441 - diluted_pool_column_row_expr846;
+ let keccak_keccak_after_theta_rho_pi_xor_one_31776 =
+ FELT_1229782938247303441 - diluted_pool_column_row_expr847;
+ let keccak_keccak_after_theta_rho_pi_xor_one_64544 =
+ FELT_1229782938247303441 - diluted_pool_column_row_expr848;
+ let keccak_keccak_after_theta_rho_pi_xor_one_0 =
+ FELT_1229782938247303441 - diluted_pool_column_row_expr318;
+ let keccak_keccak_after_theta_rho_pi_xor_one_128 =
+ FELT_1229782938247303441 - diluted_pool_column_row_expr486;
+ let poseidon_poseidon_full_rounds_state0_cubed_0 =
+ poseidon_poseidon_full_rounds_state0_column_row_expr533
+ * poseidon_poseidon_full_rounds_state0_squared_column_row_expr534;
+ let poseidon_poseidon_full_rounds_state1_cubed_0 =
+ poseidon_poseidon_full_rounds_state1_column_row_expr535
+ * poseidon_poseidon_full_rounds_state1_squared_column_row_expr536;
+ let poseidon_poseidon_full_rounds_state2_cubed_0 =
+ poseidon_poseidon_full_rounds_state2_column_row_expr537
+ * poseidon_poseidon_full_rounds_state2_squared_column_row_expr538;
+ let poseidon_poseidon_full_rounds_state0_cubed_7 =
+ poseidon_poseidon_full_rounds_state0_column_row_expr849
+ * poseidon_poseidon_full_rounds_state0_squared_column_row_expr850;
+ let poseidon_poseidon_full_rounds_state1_cubed_7 =
+ poseidon_poseidon_full_rounds_state1_column_row_expr851
+ * poseidon_poseidon_full_rounds_state1_squared_column_row_expr852;
+ let poseidon_poseidon_full_rounds_state2_cubed_7 =
+ poseidon_poseidon_full_rounds_state2_column_row_expr853
+ * poseidon_poseidon_full_rounds_state2_squared_column_row_expr854;
+ let poseidon_poseidon_full_rounds_state0_cubed_3 =
+ poseidon_poseidon_full_rounds_state0_column_row_expr855
+ * poseidon_poseidon_full_rounds_state0_squared_column_row_expr856;
+ let poseidon_poseidon_full_rounds_state1_cubed_3 =
+ poseidon_poseidon_full_rounds_state1_column_row_expr857
+ * poseidon_poseidon_full_rounds_state1_squared_column_row_expr858;
+ let poseidon_poseidon_full_rounds_state2_cubed_3 =
+ poseidon_poseidon_full_rounds_state2_column_row_expr859
+ * poseidon_poseidon_full_rounds_state2_squared_column_row_expr860;
+ let poseidon_poseidon_partial_rounds_state0_cubed_0 =
+ poseidon_poseidon_partial_rounds_state0_column_row_expr539
+ * poseidon_poseidon_partial_rounds_state0_squared_column_row_expr540;
+ let poseidon_poseidon_partial_rounds_state0_cubed_1 =
+ poseidon_poseidon_partial_rounds_state0_column_row_expr557
+ * poseidon_poseidon_partial_rounds_state0_squared_column_row_expr861;
+ let poseidon_poseidon_partial_rounds_state0_cubed_2 =
+ poseidon_poseidon_partial_rounds_state0_column_row_expr558
+ * poseidon_poseidon_partial_rounds_state0_squared_column_row_expr862;
+ let poseidon_poseidon_partial_rounds_state1_cubed_0 =
+ poseidon_poseidon_partial_rounds_state1_column_row_expr541
+ * poseidon_poseidon_partial_rounds_state1_squared_column_row_expr542;
+ let poseidon_poseidon_partial_rounds_state1_cubed_1 =
+ poseidon_poseidon_partial_rounds_state1_column_row_expr554
+ * poseidon_poseidon_partial_rounds_state1_squared_column_row_expr863;
+ let poseidon_poseidon_partial_rounds_state1_cubed_2 =
+ poseidon_poseidon_partial_rounds_state1_column_row_expr556
+ * poseidon_poseidon_partial_rounds_state1_squared_column_row_expr864;
+ let poseidon_poseidon_partial_rounds_state1_cubed_19 =
+ poseidon_poseidon_partial_rounds_state1_column_row_expr865
+ * poseidon_poseidon_partial_rounds_state1_squared_column_row_expr866;
+ let poseidon_poseidon_partial_rounds_state1_cubed_20 =
+ poseidon_poseidon_partial_rounds_state1_column_row_expr562
+ * poseidon_poseidon_partial_rounds_state1_squared_column_row_expr867;
+ let poseidon_poseidon_partial_rounds_state1_cubed_21 =
+ poseidon_poseidon_partial_rounds_state1_column_row_expr563
+ * poseidon_poseidon_partial_rounds_state1_squared_column_row_expr868;
+ let range_check96_builtin_value0_0 = range_check16_pool_column_row_expr869;
+ let range_check96_builtin_value1_0 = range_check96_builtin_value0_0 * global_values.offset_size
+ + range_check16_pool_column_row_expr870;
+ let range_check96_builtin_value2_0 = range_check96_builtin_value1_0 * global_values.offset_size
+ + range_check16_pool_column_row_expr871;
+ let range_check96_builtin_value3_0 = range_check96_builtin_value2_0 * global_values.offset_size
+ + range_check16_pool_column_row_expr872;
+ let range_check96_builtin_value4_0 = range_check96_builtin_value3_0 * global_values.offset_size
+ + range_check16_pool_column_row_expr873;
+ let range_check96_builtin_value5_0 = range_check96_builtin_value4_0 * global_values.offset_size
+ + range_check16_pool_column_row_expr874;
+ let mul_mod_p_multiplier1_0 = range_check16_pool_column_row_expr875
+ + FELT_65536 * range_check16_pool_column_row_expr876
+ + FELT_4294967296 * range_check16_pool_column_row_expr877
+ + FELT_281474976710656 * range_check16_pool_column_row_expr878
+ + FELT_18446744073709551616 * range_check16_pool_column_row_expr879
+ + FELT_1208925819614629174706176 * range_check16_pool_column_row_expr880;
+ let mul_mod_p_multiplier2_0 = range_check16_pool_column_row_expr881
+ + FELT_65536 * range_check16_pool_column_row_expr882
+ + FELT_4294967296 * range_check16_pool_column_row_expr883
+ + FELT_281474976710656 * range_check16_pool_column_row_expr884
+ + FELT_18446744073709551616 * range_check16_pool_column_row_expr885
+ + FELT_1208925819614629174706176 * range_check16_pool_column_row_expr886;
+ let mul_mod_p_multiplier3_0 = range_check16_pool_column_row_expr887
+ + FELT_65536 * range_check16_pool_column_row_expr888
+ + FELT_4294967296 * range_check16_pool_column_row_expr889
+ + FELT_281474976710656 * range_check16_pool_column_row_expr890
+ + FELT_18446744073709551616 * range_check16_pool_column_row_expr891
+ + FELT_1208925819614629174706176 * range_check16_pool_column_row_expr892;
+ let mul_mod_p_multiplier0_0 = range_check16_pool_column_row_expr893
+ + FELT_65536 * range_check16_pool_column_row_expr894
+ + FELT_4294967296 * range_check16_pool_column_row_expr895
+ + FELT_281474976710656 * range_check16_pool_column_row_expr896
+ + FELT_18446744073709551616 * range_check16_pool_column_row_expr897
+ + FELT_1208925819614629174706176 * range_check16_pool_column_row_expr898;
+ let mul_mod_carry1_0 = range_check16_pool_column_row_expr899
+ + FELT_65536 * range_check16_pool_column_row_expr900
+ + FELT_4294967296 * range_check16_pool_column_row_expr901
+ + FELT_281474976710656 * range_check16_pool_column_row_expr902
+ + FELT_18446744073709551616 * range_check16_pool_column_row_expr903
+ + FELT_1208925819614629174706176 * range_check16_pool_column_row_expr904
+ + FELT_79228162514264337593543950336 * range_check16_pool_column_row_expr905;
+ let mul_mod_carry2_0 = range_check16_pool_column_row_expr906
+ + FELT_65536 * range_check16_pool_column_row_expr907
+ + FELT_4294967296 * range_check16_pool_column_row_expr908
+ + FELT_281474976710656 * range_check16_pool_column_row_expr909
+ + FELT_18446744073709551616 * range_check16_pool_column_row_expr910
+ + FELT_1208925819614629174706176 * range_check16_pool_column_row_expr911
+ + FELT_79228162514264337593543950336 * range_check16_pool_column_row_expr912;
+ let mul_mod_carry3_0 = range_check16_pool_column_row_expr913
+ + FELT_65536 * range_check16_pool_column_row_expr914
+ + FELT_4294967296 * range_check16_pool_column_row_expr915
+ + FELT_281474976710656 * range_check16_pool_column_row_expr916
+ + FELT_18446744073709551616 * range_check16_pool_column_row_expr917
+ + FELT_1208925819614629174706176 * range_check16_pool_column_row_expr918
+ + FELT_79228162514264337593543950336 * range_check16_pool_column_row_expr919;
+ let mul_mod_carry4_0 = range_check16_pool_column_row_expr920
+ + FELT_65536 * range_check16_pool_column_row_expr921
+ + FELT_4294967296 * range_check16_pool_column_row_expr922
+ + FELT_281474976710656 * range_check16_pool_column_row_expr923
+ + FELT_18446744073709551616 * range_check16_pool_column_row_expr924
+ + FELT_1208925819614629174706176 * range_check16_pool_column_row_expr925
+ + FELT_79228162514264337593543950336 * range_check16_pool_column_row_expr926;
+ let mul_mod_carry5_0 = range_check16_pool_column_row_expr927
+ + FELT_65536 * range_check16_pool_column_row_expr928
+ + FELT_4294967296 * range_check16_pool_column_row_expr929
+ + FELT_281474976710656 * range_check16_pool_column_row_expr930
+ + FELT_18446744073709551616 * range_check16_pool_column_row_expr931
+ + FELT_1208925819614629174706176 * range_check16_pool_column_row_expr932
+ + FELT_79228162514264337593543950336 * range_check16_pool_column_row_expr933;
+ let mul_mod_carry0_0 = range_check16_pool_column_row_expr934
+ + FELT_65536 * range_check16_pool_column_row_expr935
+ + FELT_4294967296 * range_check16_pool_column_row_expr936
+ + FELT_281474976710656 * range_check16_pool_column_row_expr937
+ + FELT_18446744073709551616 * range_check16_pool_column_row_expr938
+ + FELT_1208925819614629174706176 * range_check16_pool_column_row_expr939
+ + FELT_79228162514264337593543950336 * range_check16_pool_column_row_expr940;
+
+ // Sum constraints.
+
+ // Constraint: cpu/decode/opcode_range_check/bit.
+ let mut value: Felt = (cpu_decode_opcode_range_check_bit_0
+ * cpu_decode_opcode_range_check_bit_0
+ - cpu_decode_opcode_range_check_bit_0)
+ * domain1.field_div(&NonZeroFelt::try_from(domain0)?);
+ let mut total_sum: Felt = constraint_coefficients[0] * value;
+
+ // Constraint: cpu/decode/opcode_range_check/zero.
+ value = (cpu_decode_opcode_range_check_column_column_row_expr0)
+ .field_div(&NonZeroFelt::try_from(domain1)?);
+ total_sum += constraint_coefficients[1] * value;
+
+ // Constraint: cpu/decode/opcode_range_check_input.
+ value = (mem_pool_value_column_row_expr1
+ - (((cpu_decode_opcode_range_check_column_column_row_expr0 * global_values.offset_size
+ + range_check16_pool_column_row_expr2)
+ * global_values.offset_size
+ + range_check16_pool_column_row_expr3)
+ * global_values.offset_size
+ + range_check16_pool_column_row_expr4))
+ .field_div(&NonZeroFelt::try_from(domain2)?);
+ total_sum += constraint_coefficients[2] * value;
+
+ // Constraint: cpu/decode/flag_op1_base_op0_bit.
+ value = (cpu_decode_flag_op1_base_op0_0 * cpu_decode_flag_op1_base_op0_0
+ - cpu_decode_flag_op1_base_op0_0)
+ .field_div(&NonZeroFelt::try_from(domain2)?);
+ total_sum += constraint_coefficients[3] * value;
+
+ // Constraint: cpu/decode/flag_res_op1_bit.
+ value = (cpu_decode_flag_res_op1_0 * cpu_decode_flag_res_op1_0 - cpu_decode_flag_res_op1_0)
+ .field_div(&NonZeroFelt::try_from(domain2)?);
+ total_sum += constraint_coefficients[4] * value;
+
+ // Constraint: cpu/decode/flag_pc_update_regular_bit.
+ value = (cpu_decode_flag_pc_update_regular_0 * cpu_decode_flag_pc_update_regular_0
+ - cpu_decode_flag_pc_update_regular_0)
+ .field_div(&NonZeroFelt::try_from(domain2)?);
+ total_sum += constraint_coefficients[5] * value;
+
+ // Constraint: cpu/decode/fp_update_regular_bit.
+ value = (cpu_decode_fp_update_regular_0 * cpu_decode_fp_update_regular_0
+ - cpu_decode_fp_update_regular_0)
+ .field_div(&NonZeroFelt::try_from(domain2)?);
+ total_sum += constraint_coefficients[6] * value;
+
+ // Constraint: cpu/operands/mem_dst_addr.
+ value = (mem_pool_addr_column_row_expr5 + global_values.half_offset_size
+ - (cpu_decode_opcode_range_check_bit_0 * cpu_registers_fp_column_row_expr6
+ + (FELT_1 - cpu_decode_opcode_range_check_bit_0) * cpu_registers_ap_column_row_expr7
+ + range_check16_pool_column_row_expr4))
+ .field_div(&NonZeroFelt::try_from(domain2)?);
+ total_sum += constraint_coefficients[7] * value;
+
+ // Constraint: cpu/operands/mem0_addr.
+ value = (mem_pool_addr_column_row_expr8 + global_values.half_offset_size
+ - (cpu_decode_opcode_range_check_bit_1 * cpu_registers_fp_column_row_expr6
+ + (FELT_1 - cpu_decode_opcode_range_check_bit_1) * cpu_registers_ap_column_row_expr7
+ + range_check16_pool_column_row_expr3))
+ .field_div(&NonZeroFelt::try_from(domain2)?);
+ total_sum += constraint_coefficients[8] * value;
+
+ // Constraint: cpu/operands/mem1_addr.
+ value = (mem_pool_addr_column_row_expr9 + global_values.half_offset_size
+ - (cpu_decode_opcode_range_check_bit_2 * mem_pool_addr_column_row_expr10
+ + cpu_decode_opcode_range_check_bit_4 * cpu_registers_ap_column_row_expr7
+ + cpu_decode_opcode_range_check_bit_3 * cpu_registers_fp_column_row_expr6
+ + cpu_decode_flag_op1_base_op0_0 * mem_pool_value_column_row_expr11
+ + range_check16_pool_column_row_expr2))
+ .field_div(&NonZeroFelt::try_from(domain2)?);
+ total_sum += constraint_coefficients[9] * value;
+
+ // Constraint: cpu/operands/ops_mul.
+ value = (cpu_operands_ops_mul_column_row_expr12
+ - mem_pool_value_column_row_expr11 * mem_pool_value_column_row_expr13)
+ .field_div(&NonZeroFelt::try_from(domain2)?);
+ total_sum += constraint_coefficients[10] * value;
+
+ // Constraint: cpu/operands/res.
+ value = ((FELT_1 - cpu_decode_opcode_range_check_bit_9) * cpu_operands_res_column_row_expr14
+ - (cpu_decode_opcode_range_check_bit_5
+ * (mem_pool_value_column_row_expr11 + mem_pool_value_column_row_expr13)
+ + cpu_decode_opcode_range_check_bit_6 * cpu_operands_ops_mul_column_row_expr12
+ + cpu_decode_flag_res_op1_0 * mem_pool_value_column_row_expr13))
+ .field_div(&NonZeroFelt::try_from(domain2)?);
+ total_sum += constraint_coefficients[11] * value;
+
+ // Constraint: cpu/update_registers/update_pc/tmp0.
+ value = (cpu_update_registers_update_pc_tmp0_column_row_expr15
+ - cpu_decode_opcode_range_check_bit_9 * mem_pool_value_column_row_expr16)
+ * domain7.field_div(&NonZeroFelt::try_from(domain2)?);
+ total_sum += constraint_coefficients[12] * value;
+
+ // Constraint: cpu/update_registers/update_pc/tmp1.
+ value = (cpu_update_registers_update_pc_tmp1_column_row_expr17
+ - cpu_update_registers_update_pc_tmp0_column_row_expr15
+ * cpu_operands_res_column_row_expr14)
+ * domain7.field_div(&NonZeroFelt::try_from(domain2)?);
+ total_sum += constraint_coefficients[13] * value;
+
+ // Constraint: cpu/update_registers/update_pc/pc_cond_negative.
+ value = ((FELT_1 - cpu_decode_opcode_range_check_bit_9) * mem_pool_addr_column_row_expr18
+ + cpu_update_registers_update_pc_tmp0_column_row_expr15
+ * (mem_pool_addr_column_row_expr18
+ - (mem_pool_addr_column_row_expr10 + mem_pool_value_column_row_expr13))
+ - (cpu_decode_flag_pc_update_regular_0 * npc_reg_0
+ + cpu_decode_opcode_range_check_bit_7 * cpu_operands_res_column_row_expr14
+ + cpu_decode_opcode_range_check_bit_8
+ * (mem_pool_addr_column_row_expr10 + cpu_operands_res_column_row_expr14)))
+ * domain7.field_div(&NonZeroFelt::try_from(domain2)?);
+ total_sum += constraint_coefficients[14] * value;
+
+ // Constraint: cpu/update_registers/update_pc/pc_cond_positive.
+ value = ((cpu_update_registers_update_pc_tmp1_column_row_expr17
+ - cpu_decode_opcode_range_check_bit_9)
+ * (mem_pool_addr_column_row_expr18 - npc_reg_0))
+ * domain7.field_div(&NonZeroFelt::try_from(domain2)?);
+ total_sum += constraint_coefficients[15] * value;
+
+ // Constraint: cpu/update_registers/update_ap/ap_update.
+ value = (cpu_registers_ap_column_row_expr19
+ - (cpu_registers_ap_column_row_expr7
+ + cpu_decode_opcode_range_check_bit_10 * cpu_operands_res_column_row_expr14
+ + cpu_decode_opcode_range_check_bit_11
+ + cpu_decode_opcode_range_check_bit_12 * FELT_2))
+ * domain7.field_div(&NonZeroFelt::try_from(domain2)?);
+ total_sum += constraint_coefficients[16] * value;
+
+ // Constraint: cpu/update_registers/update_fp/fp_update.
+ value = (cpu_registers_fp_column_row_expr20
+ - (cpu_decode_fp_update_regular_0 * cpu_registers_fp_column_row_expr6
+ + cpu_decode_opcode_range_check_bit_13 * mem_pool_value_column_row_expr16
+ + cpu_decode_opcode_range_check_bit_12 * (cpu_registers_ap_column_row_expr7 + FELT_2)))
+ * domain7.field_div(&NonZeroFelt::try_from(domain2)?);
+ total_sum += constraint_coefficients[17] * value;
+
+ // Constraint: cpu/opcodes/call/push_fp.
+ value = (cpu_decode_opcode_range_check_bit_12
+ * (mem_pool_value_column_row_expr16 - cpu_registers_fp_column_row_expr6))
+ .field_div(&NonZeroFelt::try_from(domain2)?);
+ total_sum += constraint_coefficients[18] * value;
+
+ // Constraint: cpu/opcodes/call/push_pc.
+ value = (cpu_decode_opcode_range_check_bit_12
+ * (mem_pool_value_column_row_expr11
+ - (mem_pool_addr_column_row_expr10 + cpu_decode_opcode_range_check_bit_2 + FELT_1)))
+ .field_div(&NonZeroFelt::try_from(domain2)?);
+ total_sum += constraint_coefficients[19] * value;
+
+ // Constraint: cpu/opcodes/call/off0.
+ value = (cpu_decode_opcode_range_check_bit_12
+ * (range_check16_pool_column_row_expr4 - global_values.half_offset_size))
+ .field_div(&NonZeroFelt::try_from(domain2)?);
+ total_sum += constraint_coefficients[20] * value;
+
+ // Constraint: cpu/opcodes/call/off1.
+ value = (cpu_decode_opcode_range_check_bit_12
+ * (range_check16_pool_column_row_expr3 - (global_values.half_offset_size + FELT_1)))
+ .field_div(&NonZeroFelt::try_from(domain2)?);
+ total_sum += constraint_coefficients[21] * value;
+
+ // Constraint: cpu/opcodes/call/flags.
+ value = (cpu_decode_opcode_range_check_bit_12
+ * (cpu_decode_opcode_range_check_bit_12
+ + cpu_decode_opcode_range_check_bit_12
+ + FELT_1
+ + FELT_1
+ - (cpu_decode_opcode_range_check_bit_0
+ + cpu_decode_opcode_range_check_bit_1
+ + FELT_4)))
+ .field_div(&NonZeroFelt::try_from(domain2)?);
+ total_sum += constraint_coefficients[22] * value;
+
+ // Constraint: cpu/opcodes/ret/off0.
+ value = (cpu_decode_opcode_range_check_bit_13
+ * (range_check16_pool_column_row_expr4 + FELT_2 - global_values.half_offset_size))
+ .field_div(&NonZeroFelt::try_from(domain2)?);
+ total_sum += constraint_coefficients[23] * value;
+
+ // Constraint: cpu/opcodes/ret/off2.
+ value = (cpu_decode_opcode_range_check_bit_13
+ * (range_check16_pool_column_row_expr2 + FELT_1 - global_values.half_offset_size))
+ .field_div(&NonZeroFelt::try_from(domain2)?);
+ total_sum += constraint_coefficients[24] * value;
+
+ // Constraint: cpu/opcodes/ret/flags.
+ value = (cpu_decode_opcode_range_check_bit_13
+ * (cpu_decode_opcode_range_check_bit_7
+ + cpu_decode_opcode_range_check_bit_0
+ + cpu_decode_opcode_range_check_bit_3
+ + cpu_decode_flag_res_op1_0
+ - 4))
+ .field_div(&NonZeroFelt::try_from(domain2)?);
+ total_sum += constraint_coefficients[25] * value;
+
+ // Constraint: cpu/opcodes/assert_eq/assert_eq.
+ value = (cpu_decode_opcode_range_check_bit_14
+ * (mem_pool_value_column_row_expr16 - cpu_operands_res_column_row_expr14))
+ .field_div(&NonZeroFelt::try_from(domain2)?);
+ total_sum += constraint_coefficients[26] * value;
+
+ // Constraint: initial_ap.
+ value = (cpu_registers_ap_column_row_expr7 - global_values.initial_ap)
+ .field_div(&NonZeroFelt::try_from(domain8)?);
+ total_sum += constraint_coefficients[27] * value;
+
+ // Constraint: initial_fp.
+ value = (cpu_registers_fp_column_row_expr6 - global_values.initial_ap)
+ .field_div(&NonZeroFelt::try_from(domain8)?);
+ total_sum += constraint_coefficients[28] * value;
+
+ // Constraint: initial_pc.
+ value = (mem_pool_addr_column_row_expr10 - global_values.initial_pc)
+ .field_div(&NonZeroFelt::try_from(domain8)?);
+ total_sum += constraint_coefficients[29] * value;
+
+ // Constraint: final_ap.
+ value = (cpu_registers_ap_column_row_expr7 - global_values.final_ap)
+ .field_div(&NonZeroFelt::try_from(domain7)?);
+ total_sum += constraint_coefficients[30] * value;
+
+ // Constraint: final_fp.
+ value = (cpu_registers_fp_column_row_expr6 - global_values.initial_ap)
+ .field_div(&NonZeroFelt::try_from(domain7)?);
+ total_sum += constraint_coefficients[31] * value;
+
+ // Constraint: final_pc.
+ value = (mem_pool_addr_column_row_expr10 - global_values.final_pc)
+ .field_div(&NonZeroFelt::try_from(domain7)?);
+ total_sum += constraint_coefficients[32] * value;
+
+ // Constraint: memory/multi_column_perm/perm/init0.
+ value = ((global_values.memory_multi_column_perm_perm_interaction_elm
+ - (memory_sorted_addr_column_row_expr21
+ + global_values.memory_multi_column_perm_hash_interaction_elm0
+ * memory_sorted_value_column_row_expr22))
+ * memory_multi_column_perm_perm_cum_prod0_column_row_expr23
+ + mem_pool_addr_column_row_expr24
+ + global_values.memory_multi_column_perm_hash_interaction_elm0
+ * mem_pool_value_column_row_expr25
+ - global_values.memory_multi_column_perm_perm_interaction_elm)
+ .field_div(&NonZeroFelt::try_from(domain8)?);
+ total_sum += constraint_coefficients[33] * value;
+
+ // Constraint: memory/multi_column_perm/perm/step0.
+ value = ((global_values.memory_multi_column_perm_perm_interaction_elm
+ - (memory_sorted_addr_column_row_expr26
+ + global_values.memory_multi_column_perm_hash_interaction_elm0
+ * memory_sorted_value_column_row_expr27))
+ * memory_multi_column_perm_perm_cum_prod0_column_row_expr28
+ - (global_values.memory_multi_column_perm_perm_interaction_elm
+ - (mem_pool_addr_column_row_expr29
+ + global_values.memory_multi_column_perm_hash_interaction_elm0
+ * mem_pool_value_column_row_expr30))
+ * memory_multi_column_perm_perm_cum_prod0_column_row_expr23)
+ * domain9.field_div(&NonZeroFelt::try_from(domain4)?);
+ total_sum += constraint_coefficients[34] * value;
+
+ // Constraint: memory/multi_column_perm/perm/last.
+ value = (memory_multi_column_perm_perm_cum_prod0_column_row_expr23
+ - global_values.memory_multi_column_perm_perm_public_memory_prod)
+ .field_div(&NonZeroFelt::try_from(domain9)?);
+ total_sum += constraint_coefficients[35] * value;
+
+ // Constraint: memory/diff_is_bit.
+ value = (memory_address_diff_0 * memory_address_diff_0 - memory_address_diff_0)
+ * domain9.field_div(&NonZeroFelt::try_from(domain4)?);
+ total_sum += constraint_coefficients[36] * value;
+
+ // Constraint: memory/is_func.
+ value = ((memory_address_diff_0 - 1)
+ * (memory_sorted_value_column_row_expr22 - memory_sorted_value_column_row_expr27))
+ * domain9.field_div(&NonZeroFelt::try_from(domain4)?);
+ total_sum += constraint_coefficients[37] * value;
+
+ // Constraint: memory/initial_addr.
+ value = (memory_sorted_addr_column_row_expr21 - 1).field_div(&NonZeroFelt::try_from(domain8)?);
+ total_sum += constraint_coefficients[38] * value;
+
+ // Constraint: public_memory_addr_zero.
+ value = (mem_pool_addr_column_row_expr31).field_div(&NonZeroFelt::try_from(domain5)?);
+ total_sum += constraint_coefficients[39] * value;
+
+ // Constraint: public_memory_value_zero.
+ value = (mem_pool_value_column_row_expr32).field_div(&NonZeroFelt::try_from(domain5)?);
+ total_sum += constraint_coefficients[40] * value;
+
+ // Constraint: range_check16/perm/init0.
+ value = ((global_values.range_check16_perm_interaction_elm
+ - range_check16_sorted_column_row_expr33)
+ * range_check16_perm_cum_prod0_column_row_expr34
+ + range_check16_pool_column_row_expr35
+ - global_values.range_check16_perm_interaction_elm)
+ .field_div(&NonZeroFelt::try_from(domain8)?);
+ total_sum += constraint_coefficients[41] * value;
+
+ // Constraint: range_check16/perm/step0.
+ value = ((global_values.range_check16_perm_interaction_elm
+ - range_check16_sorted_column_row_expr36)
+ * range_check16_perm_cum_prod0_column_row_expr37
+ - (global_values.range_check16_perm_interaction_elm
+ - range_check16_pool_column_row_expr38)
+ * range_check16_perm_cum_prod0_column_row_expr34)
+ * domain10.field_div(&NonZeroFelt::try_from(domain6)?);
+ total_sum += constraint_coefficients[42] * value;
+
+ // Constraint: range_check16/perm/last.
+ value = (range_check16_perm_cum_prod0_column_row_expr34
+ - global_values.range_check16_perm_public_memory_prod)
+ .field_div(&NonZeroFelt::try_from(domain10)?);
+ total_sum += constraint_coefficients[43] * value;
+
+ // Constraint: range_check16/diff_is_bit.
+ value = (range_check16_diff_0 * range_check16_diff_0 - range_check16_diff_0)
+ * domain10.field_div(&NonZeroFelt::try_from(domain6)?);
+ total_sum += constraint_coefficients[44] * value;
+
+ // Constraint: range_check16/minimum.
+ value = (range_check16_sorted_column_row_expr33 - global_values.range_check_min)
+ .field_div(&NonZeroFelt::try_from(domain8)?);
+ total_sum += constraint_coefficients[45] * value;
+
+ // Constraint: range_check16/maximum.
+ value = (range_check16_sorted_column_row_expr33 - global_values.range_check_max)
+ .field_div(&NonZeroFelt::try_from(domain10)?);
+ total_sum += constraint_coefficients[46] * value;
+
+ // Constraint: diluted_check/permutation/init0.
+ value = ((global_values.diluted_check_permutation_interaction_elm
+ - diluted_check_permuted_values_column_row_expr39)
+ * diluted_check_permutation_cum_prod0_column_row_expr40
+ + diluted_pool_column_row_expr41
+ - global_values.diluted_check_permutation_interaction_elm)
+ .field_div(&NonZeroFelt::try_from(domain8)?);
+ total_sum += constraint_coefficients[47] * value;
+
+ // Constraint: diluted_check/permutation/step0.
+ value = ((global_values.diluted_check_permutation_interaction_elm
+ - diluted_check_permuted_values_column_row_expr42)
+ * diluted_check_permutation_cum_prod0_column_row_expr43
+ - (global_values.diluted_check_permutation_interaction_elm
+ - diluted_pool_column_row_expr44)
+ * diluted_check_permutation_cum_prod0_column_row_expr40)
+ * domain11.field_div(&NonZeroFelt::try_from(domain3)?);
+ total_sum += constraint_coefficients[48] * value;
+
+ // Constraint: diluted_check/permutation/last.
+ value = (diluted_check_permutation_cum_prod0_column_row_expr40
+ - global_values.diluted_check_permutation_public_memory_prod)
+ .field_div(&NonZeroFelt::try_from(domain11)?);
+ total_sum += constraint_coefficients[49] * value;
+
+ // Constraint: diluted_check/init.
+ value = (diluted_check_cumulative_value_column_row_expr45 - 1)
+ .field_div(&NonZeroFelt::try_from(domain8)?);
+ total_sum += constraint_coefficients[50] * value;
+
+ // Constraint: diluted_check/first_element.
+ value = (diluted_check_permuted_values_column_row_expr39
+ - global_values.diluted_check_first_elm)
+ .field_div(&NonZeroFelt::try_from(domain8)?);
+ total_sum += constraint_coefficients[51] * value;
+
+ // Constraint: diluted_check/step.
+ value = (diluted_check_cumulative_value_column_row_expr46
+ - (diluted_check_cumulative_value_column_row_expr45
+ * (FELT_1
+ + global_values.diluted_check_interaction_z
+ * (diluted_check_permuted_values_column_row_expr42
+ - diluted_check_permuted_values_column_row_expr39))
+ + global_values.diluted_check_interaction_alpha
+ * (diluted_check_permuted_values_column_row_expr42
+ - diluted_check_permuted_values_column_row_expr39)
+ * (diluted_check_permuted_values_column_row_expr42
+ - diluted_check_permuted_values_column_row_expr39)))
+ * domain11.field_div(&NonZeroFelt::try_from(domain3)?);
+ total_sum += constraint_coefficients[52] * value;
+
+ // Constraint: diluted_check/last.
+ value = (diluted_check_cumulative_value_column_row_expr45
+ - global_values.diluted_check_final_cum_val)
+ .field_div(&NonZeroFelt::try_from(domain11)?);
+ total_sum += constraint_coefficients[53] * value;
+
+ if uses_pedersen_builtin != 0 {
+ // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/last_one_is_zero.
+ value = (pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones192_column_row_expr47
+ * (pedersen_hash0_ec_subset_sum_selector_column_row_expr48
+ - (pedersen_hash0_ec_subset_sum_selector_column_row_expr49
+ + pedersen_hash0_ec_subset_sum_selector_column_row_expr49)))
+ .field_div(&NonZeroFelt::try_from(domain159)?);
+ total_sum += constraint_coefficients[54] * value;
+
+ // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/zeroes_between_ones0.
+ value = (pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones192_column_row_expr47
+ * (pedersen_hash0_ec_subset_sum_selector_column_row_expr49
+ - FELT_3138550867693340381917894711603833208051177722232017256448
+ * pedersen_hash0_ec_subset_sum_selector_column_row_expr50))
+ .field_div(&NonZeroFelt::try_from(domain159)?);
+ total_sum += constraint_coefficients[55] * value;
+
+ // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/cumulative_bit192.
+ value = (pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones192_column_row_expr47
+ - pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones196_column_row_expr51
+ * (pedersen_hash0_ec_subset_sum_selector_column_row_expr50
+ - (pedersen_hash0_ec_subset_sum_selector_column_row_expr52
+ + pedersen_hash0_ec_subset_sum_selector_column_row_expr52)))
+ .field_div(&NonZeroFelt::try_from(domain159)?);
+ total_sum += constraint_coefficients[56] * value;
+
+ // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/zeroes_between_ones192.
+ value = (pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones196_column_row_expr51
+ * (pedersen_hash0_ec_subset_sum_selector_column_row_expr52
+ - FELT_8 * pedersen_hash0_ec_subset_sum_selector_column_row_expr53))
+ .field_div(&NonZeroFelt::try_from(domain159)?);
+ total_sum += constraint_coefficients[57] * value;
+
+ // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/cumulative_bit196.
+ value = (pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones196_column_row_expr51
+ - (pedersen_hash0_ec_subset_sum_selector_column_row_expr54
+ - (pedersen_hash0_ec_subset_sum_selector_column_row_expr55
+ + pedersen_hash0_ec_subset_sum_selector_column_row_expr55))
+ * (pedersen_hash0_ec_subset_sum_selector_column_row_expr53
+ - (pedersen_hash0_ec_subset_sum_selector_column_row_expr56
+ + pedersen_hash0_ec_subset_sum_selector_column_row_expr56)))
+ .field_div(&NonZeroFelt::try_from(domain159)?);
+ total_sum += constraint_coefficients[58] * value;
+
+ // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/zeroes_between_ones196.
+ value = ((pedersen_hash0_ec_subset_sum_selector_column_row_expr54
+ - (pedersen_hash0_ec_subset_sum_selector_column_row_expr55
+ + pedersen_hash0_ec_subset_sum_selector_column_row_expr55))
+ * (pedersen_hash0_ec_subset_sum_selector_column_row_expr56
+ - FELT_18014398509481984
+ * pedersen_hash0_ec_subset_sum_selector_column_row_expr54))
+ .field_div(&NonZeroFelt::try_from(domain159)?);
+ total_sum += constraint_coefficients[59] * value;
+
+ // Constraint: pedersen/hash0/ec_subset_sum/booleanity_test.
+ value = (pedersen_hash0_ec_subset_sum_bit_0 * (pedersen_hash0_ec_subset_sum_bit_0 - 1))
+ * domain160.field_div(&NonZeroFelt::try_from(domain158)?);
+ total_sum += constraint_coefficients[60] * value;
+
+ // Constraint: pedersen/hash0/ec_subset_sum/bit_extraction_end.
+ value = (pedersen_hash0_ec_subset_sum_selector_column_row_expr48)
+ .field_div(&NonZeroFelt::try_from(domain161)?);
+ total_sum += constraint_coefficients[61] * value;
+
+ // Constraint: pedersen/hash0/ec_subset_sum/zeros_tail.
+ value = (pedersen_hash0_ec_subset_sum_selector_column_row_expr48)
+ .field_div(&NonZeroFelt::try_from(domain160)?);
+ total_sum += constraint_coefficients[62] * value;
+
+ // Constraint: pedersen/hash0/ec_subset_sum/add_points/slope.
+ value = (pedersen_hash0_ec_subset_sum_bit_0
+ * (pedersen_hash0_ec_subset_sum_partial_sum_y_column_row_expr57
+ - global_values.pedersen_points_y)
+ - pedersen_hash0_ec_subset_sum_slope_column_row_expr58
+ * (pedersen_hash0_ec_subset_sum_partial_sum_x_column_row_expr59
+ - global_values.pedersen_points_x))
+ * domain160.field_div(&NonZeroFelt::try_from(domain158)?);
+ total_sum += constraint_coefficients[63] * value;
+
+ // Constraint: pedersen/hash0/ec_subset_sum/add_points/x.
+ value = (pedersen_hash0_ec_subset_sum_slope_column_row_expr58
+ * pedersen_hash0_ec_subset_sum_slope_column_row_expr58
+ - pedersen_hash0_ec_subset_sum_bit_0
+ * (pedersen_hash0_ec_subset_sum_partial_sum_x_column_row_expr59
+ + global_values.pedersen_points_x
+ + pedersen_hash0_ec_subset_sum_partial_sum_x_column_row_expr60))
+ * domain160.field_div(&NonZeroFelt::try_from(domain158)?);
+ total_sum += constraint_coefficients[64] * value;
+
+ // Constraint: pedersen/hash0/ec_subset_sum/add_points/y.
+ value = (pedersen_hash0_ec_subset_sum_bit_0
+ * (pedersen_hash0_ec_subset_sum_partial_sum_y_column_row_expr57
+ + pedersen_hash0_ec_subset_sum_partial_sum_y_column_row_expr61)
+ - pedersen_hash0_ec_subset_sum_slope_column_row_expr58
+ * (pedersen_hash0_ec_subset_sum_partial_sum_x_column_row_expr59
+ - pedersen_hash0_ec_subset_sum_partial_sum_x_column_row_expr60))
+ * domain160.field_div(&NonZeroFelt::try_from(domain158)?);
+ total_sum += constraint_coefficients[65] * value;
+
+ // Constraint: pedersen/hash0/ec_subset_sum/copy_point/x.
+ value = (pedersen_hash0_ec_subset_sum_bit_neg_0
+ * (pedersen_hash0_ec_subset_sum_partial_sum_x_column_row_expr60
+ - pedersen_hash0_ec_subset_sum_partial_sum_x_column_row_expr59))
+ * domain160.field_div(&NonZeroFelt::try_from(domain158)?);
+ total_sum += constraint_coefficients[66] * value;
+
+ // Constraint: pedersen/hash0/ec_subset_sum/copy_point/y.
+ value = (pedersen_hash0_ec_subset_sum_bit_neg_0
+ * (pedersen_hash0_ec_subset_sum_partial_sum_y_column_row_expr61
+ - pedersen_hash0_ec_subset_sum_partial_sum_y_column_row_expr57))
+ * domain160.field_div(&NonZeroFelt::try_from(domain158)?);
+ total_sum += constraint_coefficients[67] * value;
+
+ // Constraint: pedersen/hash0/copy_point/x.
+ value = (pedersen_hash0_ec_subset_sum_partial_sum_x_column_row_expr62
+ - pedersen_hash0_ec_subset_sum_partial_sum_x_column_row_expr63)
+ * domain162.field_div(&NonZeroFelt::try_from(domain159)?);
+ total_sum += constraint_coefficients[68] * value;
+
+ // Constraint: pedersen/hash0/copy_point/y.
+ value = (pedersen_hash0_ec_subset_sum_partial_sum_y_column_row_expr64
+ - pedersen_hash0_ec_subset_sum_partial_sum_y_column_row_expr65)
+ * domain162.field_div(&NonZeroFelt::try_from(domain159)?);
+ total_sum += constraint_coefficients[69] * value;
+
+ // Constraint: pedersen/hash0/init/x.
+ value = (pedersen_hash0_ec_subset_sum_partial_sum_x_column_row_expr59
+ - global_values.pedersen_shift_point.x)
+ .field_div(&NonZeroFelt::try_from(domain163)?);
+ total_sum += constraint_coefficients[70] * value;
+
+ // Constraint: pedersen/hash0/init/y.
+ value = (pedersen_hash0_ec_subset_sum_partial_sum_y_column_row_expr57
+ - global_values.pedersen_shift_point.y)
+ .field_div(&NonZeroFelt::try_from(domain163)?);
+ total_sum += constraint_coefficients[71] * value;
+
+ // Constraint: pedersen/input0_value0.
+ value = (mem_pool_value_column_row_expr66
+ - pedersen_hash0_ec_subset_sum_selector_column_row_expr48)
+ .field_div(&NonZeroFelt::try_from(domain163)?);
+ total_sum += constraint_coefficients[72] * value;
+
+ // Constraint: pedersen/input0_addr.
+ value = (mem_pool_addr_column_row_expr67 - (mem_pool_addr_column_row_expr68 + FELT_1))
+ * domain164.field_div(&NonZeroFelt::try_from(domain163)?);
+ total_sum += constraint_coefficients[73] * value;
+
+ // Constraint: pedersen/init_addr.
+ value = (mem_pool_addr_column_row_expr69 - global_values.initial_pedersen_addr)
+ .field_div(&NonZeroFelt::try_from(domain165)?);
+ total_sum += constraint_coefficients[74] * value;
+
+ // Constraint: pedersen/input1_value0.
+ value = (mem_pool_value_column_row_expr70
+ - pedersen_hash0_ec_subset_sum_selector_column_row_expr71)
+ .field_div(&NonZeroFelt::try_from(domain163)?);
+ total_sum += constraint_coefficients[75] * value;
+
+ // Constraint: pedersen/input1_addr.
+ value = (mem_pool_addr_column_row_expr72 - (mem_pool_addr_column_row_expr69 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain163)?);
+ total_sum += constraint_coefficients[76] * value;
+
+ // Constraint: pedersen/output_value0.
+ value = (mem_pool_value_column_row_expr73
+ - pedersen_hash0_ec_subset_sum_partial_sum_x_column_row_expr74)
+ .field_div(&NonZeroFelt::try_from(domain163)?);
+ total_sum += constraint_coefficients[77] * value;
+
+ // Constraint: pedersen/output_addr.
+ value = (mem_pool_addr_column_row_expr68 - (mem_pool_addr_column_row_expr72 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain163)?);
+ total_sum += constraint_coefficients[78] * value;
+ }
+ if uses_range_check_builtin != 0 {
+ // Constraint: range_check_builtin/value.
+ value = (range_check_builtin_value7_0 - mem_pool_value_column_row_expr75)
+ .field_div(&NonZeroFelt::try_from(domain181)?);
+ total_sum += constraint_coefficients[79] * value;
+
+ // Constraint: range_check_builtin/addr_step.
+ value = (mem_pool_addr_column_row_expr76 - (mem_pool_addr_column_row_expr77 + FELT_1))
+ * domain182.field_div(&NonZeroFelt::try_from(domain181)?);
+ total_sum += constraint_coefficients[80] * value;
+
+ // Constraint: range_check_builtin/init_addr.
+ value = (mem_pool_addr_column_row_expr77 - global_values.initial_range_check_addr)
+ .field_div(&NonZeroFelt::try_from(domain183)?);
+ total_sum += constraint_coefficients[81] * value;
+ }
+ if uses_ecdsa_builtin != 0 {
+ // Constraint: ecdsa/signature0/doubling_key/slope.
+ value = (ecdsa_signature0_doubling_key_x_squared
+ + ecdsa_signature0_doubling_key_x_squared
+ + ecdsa_signature0_doubling_key_x_squared
+ + global_values.ecdsa_sig_config.alpha
+ - (ecdsa_signature0_key_points_y_column_row_expr78
+ + ecdsa_signature0_key_points_y_column_row_expr78)
+ * ecdsa_signature0_doubling_slope_column_row_expr79)
+ * domain29.field_div(&NonZeroFelt::try_from(domain27)?);
+ total_sum += constraint_coefficients[82] * value;
+
+ // Constraint: ecdsa/signature0/doubling_key/x.
+ value = (ecdsa_signature0_doubling_slope_column_row_expr79
+ * ecdsa_signature0_doubling_slope_column_row_expr79
+ - (ecdsa_signature0_key_points_x_column_row_expr80
+ + ecdsa_signature0_key_points_x_column_row_expr80
+ + ecdsa_signature0_key_points_x_column_row_expr81))
+ * domain29.field_div(&NonZeroFelt::try_from(domain27)?);
+ total_sum += constraint_coefficients[83] * value;
+
+ // Constraint: ecdsa/signature0/doubling_key/y.
+ value = (ecdsa_signature0_key_points_y_column_row_expr78
+ + ecdsa_signature0_key_points_y_column_row_expr82
+ - ecdsa_signature0_doubling_slope_column_row_expr79
+ * (ecdsa_signature0_key_points_x_column_row_expr80
+ - ecdsa_signature0_key_points_x_column_row_expr81))
+ * domain29.field_div(&NonZeroFelt::try_from(domain27)?);
+ total_sum += constraint_coefficients[84] * value;
+
+ // Constraint: ecdsa/signature0/exponentiate_generator/booleanity_test.
+ value = (ecdsa_signature0_exponentiate_generator_bit_0
+ * (ecdsa_signature0_exponentiate_generator_bit_0 - 1))
+ * domain32.field_div(&NonZeroFelt::try_from(domain28)?);
+ total_sum += constraint_coefficients[85] * value;
+
+ // Constraint: ecdsa/signature0/exponentiate_generator/bit_extraction_end.
+ value = (ecdsa_signature0_exponentiate_generator_selector_column_row_expr83)
+ .field_div(&NonZeroFelt::try_from(domain33)?);
+ total_sum += constraint_coefficients[86] * value;
+
+ // Constraint: ecdsa/signature0/exponentiate_generator/zeros_tail.
+ value = (ecdsa_signature0_exponentiate_generator_selector_column_row_expr83)
+ .field_div(&NonZeroFelt::try_from(domain32)?);
+ total_sum += constraint_coefficients[87] * value;
+
+ // Constraint: ecdsa/signature0/exponentiate_generator/add_points/slope.
+ value = (ecdsa_signature0_exponentiate_generator_bit_0
+ * (ecdsa_signature0_exponentiate_generator_partial_sum_y_column_row_expr84
+ - global_values.ecdsa_generator_points_y)
+ - ecdsa_signature0_exponentiate_generator_slope_column_row_expr85
+ * (ecdsa_signature0_exponentiate_generator_partial_sum_x_column_row_expr86
+ - global_values.ecdsa_generator_points_x))
+ * domain32.field_div(&NonZeroFelt::try_from(domain28)?);
+ total_sum += constraint_coefficients[88] * value;
+
+ // Constraint: ecdsa/signature0/exponentiate_generator/add_points/x.
+ value = (ecdsa_signature0_exponentiate_generator_slope_column_row_expr85
+ * ecdsa_signature0_exponentiate_generator_slope_column_row_expr85
+ - ecdsa_signature0_exponentiate_generator_bit_0
+ * (ecdsa_signature0_exponentiate_generator_partial_sum_x_column_row_expr86
+ + global_values.ecdsa_generator_points_x
+ + ecdsa_signature0_exponentiate_generator_partial_sum_x_column_row_expr87))
+ * domain32.field_div(&NonZeroFelt::try_from(domain28)?);
+ total_sum += constraint_coefficients[89] * value;
+
+ // Constraint: ecdsa/signature0/exponentiate_generator/add_points/y.
+ value = (ecdsa_signature0_exponentiate_generator_bit_0
+ * (ecdsa_signature0_exponentiate_generator_partial_sum_y_column_row_expr84
+ + ecdsa_signature0_exponentiate_generator_partial_sum_y_column_row_expr88)
+ - ecdsa_signature0_exponentiate_generator_slope_column_row_expr85
+ * (ecdsa_signature0_exponentiate_generator_partial_sum_x_column_row_expr86
+ - ecdsa_signature0_exponentiate_generator_partial_sum_x_column_row_expr87))
+ * domain32.field_div(&NonZeroFelt::try_from(domain28)?);
+ total_sum += constraint_coefficients[90] * value;
+
+ // Constraint: ecdsa/signature0/exponentiate_generator/add_points/x_diff_inv.
+ value = (ecdsa_signature0_exponentiate_generator_x_diff_inv_column_row_expr89
+ * (ecdsa_signature0_exponentiate_generator_partial_sum_x_column_row_expr86
+ - global_values.ecdsa_generator_points_x)
+ - 1)
+ * domain32.field_div(&NonZeroFelt::try_from(domain28)?);
+ total_sum += constraint_coefficients[91] * value;
+
+ // Constraint: ecdsa/signature0/exponentiate_generator/copy_point/x.
+ value = (ecdsa_signature0_exponentiate_generator_bit_neg_0
+ * (ecdsa_signature0_exponentiate_generator_partial_sum_x_column_row_expr87
+ - ecdsa_signature0_exponentiate_generator_partial_sum_x_column_row_expr86))
+ * domain32.field_div(&NonZeroFelt::try_from(domain28)?);
+ total_sum += constraint_coefficients[92] * value;
+
+ // Constraint: ecdsa/signature0/exponentiate_generator/copy_point/y.
+ value = (ecdsa_signature0_exponentiate_generator_bit_neg_0
+ * (ecdsa_signature0_exponentiate_generator_partial_sum_y_column_row_expr88
+ - ecdsa_signature0_exponentiate_generator_partial_sum_y_column_row_expr84))
+ * domain32.field_div(&NonZeroFelt::try_from(domain28)?);
+ total_sum += constraint_coefficients[93] * value;
+
+ // Constraint: ecdsa/signature0/exponentiate_key/booleanity_test.
+ value = (ecdsa_signature0_exponentiate_key_bit_0
+ * (ecdsa_signature0_exponentiate_key_bit_0 - 1))
+ * domain29.field_div(&NonZeroFelt::try_from(domain27)?);
+ total_sum += constraint_coefficients[94] * value;
+
+ // Constraint: ecdsa/signature0/exponentiate_key/bit_extraction_end.
+ value = (ecdsa_signature0_exponentiate_key_selector_column_row_expr90)
+ .field_div(&NonZeroFelt::try_from(domain30)?);
+ total_sum += constraint_coefficients[95] * value;
+
+ // Constraint: ecdsa/signature0/exponentiate_key/zeros_tail.
+ value = (ecdsa_signature0_exponentiate_key_selector_column_row_expr90)
+ .field_div(&NonZeroFelt::try_from(domain29)?);
+ total_sum += constraint_coefficients[96] * value;
+
+ // Constraint: ecdsa/signature0/exponentiate_key/add_points/slope.
+ value = (ecdsa_signature0_exponentiate_key_bit_0
+ * (ecdsa_signature0_exponentiate_key_partial_sum_y_column_row_expr91
+ - ecdsa_signature0_key_points_y_column_row_expr78)
+ - ecdsa_signature0_exponentiate_key_slope_column_row_expr92
+ * (ecdsa_signature0_exponentiate_key_partial_sum_x_column_row_expr93
+ - ecdsa_signature0_key_points_x_column_row_expr80))
+ * domain29.field_div(&NonZeroFelt::try_from(domain27)?);
+ total_sum += constraint_coefficients[97] * value;
+
+ // Constraint: ecdsa/signature0/exponentiate_key/add_points/x.
+ value = (ecdsa_signature0_exponentiate_key_slope_column_row_expr92
+ * ecdsa_signature0_exponentiate_key_slope_column_row_expr92
+ - ecdsa_signature0_exponentiate_key_bit_0
+ * (ecdsa_signature0_exponentiate_key_partial_sum_x_column_row_expr93
+ + ecdsa_signature0_key_points_x_column_row_expr80
+ + ecdsa_signature0_exponentiate_key_partial_sum_x_column_row_expr94))
+ * domain29.field_div(&NonZeroFelt::try_from(domain27)?);
+ total_sum += constraint_coefficients[98] * value;
+
+ // Constraint: ecdsa/signature0/exponentiate_key/add_points/y.
+ value = (ecdsa_signature0_exponentiate_key_bit_0
+ * (ecdsa_signature0_exponentiate_key_partial_sum_y_column_row_expr91
+ + ecdsa_signature0_exponentiate_key_partial_sum_y_column_row_expr95)
+ - ecdsa_signature0_exponentiate_key_slope_column_row_expr92
+ * (ecdsa_signature0_exponentiate_key_partial_sum_x_column_row_expr93
+ - ecdsa_signature0_exponentiate_key_partial_sum_x_column_row_expr94))
+ * domain29.field_div(&NonZeroFelt::try_from(domain27)?);
+ total_sum += constraint_coefficients[99] * value;
+
+ // Constraint: ecdsa/signature0/exponentiate_key/add_points/x_diff_inv.
+ value = (ecdsa_signature0_exponentiate_key_x_diff_inv_column_row_expr96
+ * (ecdsa_signature0_exponentiate_key_partial_sum_x_column_row_expr93
+ - ecdsa_signature0_key_points_x_column_row_expr80)
+ - 1)
+ * domain29.field_div(&NonZeroFelt::try_from(domain27)?);
+ total_sum += constraint_coefficients[100] * value;
+
+ // Constraint: ecdsa/signature0/exponentiate_key/copy_point/x.
+ value = (ecdsa_signature0_exponentiate_key_bit_neg_0
+ * (ecdsa_signature0_exponentiate_key_partial_sum_x_column_row_expr94
+ - ecdsa_signature0_exponentiate_key_partial_sum_x_column_row_expr93))
+ * domain29.field_div(&NonZeroFelt::try_from(domain27)?);
+ total_sum += constraint_coefficients[101] * value;
+
+ // Constraint: ecdsa/signature0/exponentiate_key/copy_point/y.
+ value = (ecdsa_signature0_exponentiate_key_bit_neg_0
+ * (ecdsa_signature0_exponentiate_key_partial_sum_y_column_row_expr95
+ - ecdsa_signature0_exponentiate_key_partial_sum_y_column_row_expr91))
+ * domain29.field_div(&NonZeroFelt::try_from(domain27)?);
+ total_sum += constraint_coefficients[102] * value;
+
+ // Constraint: ecdsa/signature0/init_gen/x.
+ value = (ecdsa_signature0_exponentiate_generator_partial_sum_x_column_row_expr86
+ - global_values.ecdsa_sig_config.shift_point.x)
+ .field_div(&NonZeroFelt::try_from(domain34)?);
+ total_sum += constraint_coefficients[103] * value;
+
+ // Constraint: ecdsa/signature0/init_gen/y.
+ value = (ecdsa_signature0_exponentiate_generator_partial_sum_y_column_row_expr84
+ + global_values.ecdsa_sig_config.shift_point.y)
+ .field_div(&NonZeroFelt::try_from(domain34)?);
+ total_sum += constraint_coefficients[104] * value;
+
+ // Constraint: ecdsa/signature0/init_key/x.
+ value = (ecdsa_signature0_exponentiate_key_partial_sum_x_column_row_expr93
+ - global_values.ecdsa_sig_config.shift_point.x)
+ .field_div(&NonZeroFelt::try_from(domain31)?);
+ total_sum += constraint_coefficients[105] * value;
+
+ // Constraint: ecdsa/signature0/init_key/y.
+ value = (ecdsa_signature0_exponentiate_key_partial_sum_y_column_row_expr91
+ - global_values.ecdsa_sig_config.shift_point.y)
+ .field_div(&NonZeroFelt::try_from(domain31)?);
+ total_sum += constraint_coefficients[106] * value;
+
+ // Constraint: ecdsa/signature0/add_results/slope.
+ value = (ecdsa_signature0_exponentiate_generator_partial_sum_y_column_row_expr97
+ - (ecdsa_signature0_exponentiate_key_partial_sum_y_column_row_expr98
+ + ecdsa_signature0_add_results_slope_column_row_expr99
+ * (ecdsa_signature0_exponentiate_generator_partial_sum_x_column_row_expr100
+ - ecdsa_signature0_exponentiate_key_partial_sum_x_column_row_expr101)))
+ .field_div(&NonZeroFelt::try_from(domain34)?);
+ total_sum += constraint_coefficients[107] * value;
+
+ // Constraint: ecdsa/signature0/add_results/x.
+ value = (ecdsa_signature0_add_results_slope_column_row_expr99
+ * ecdsa_signature0_add_results_slope_column_row_expr99
+ - (ecdsa_signature0_exponentiate_generator_partial_sum_x_column_row_expr100
+ + ecdsa_signature0_exponentiate_key_partial_sum_x_column_row_expr101
+ + ecdsa_signature0_key_points_x_column_row_expr102))
+ .field_div(&NonZeroFelt::try_from(domain34)?);
+ total_sum += constraint_coefficients[108] * value;
+
+ // Constraint: ecdsa/signature0/add_results/y.
+ value = (ecdsa_signature0_exponentiate_generator_partial_sum_y_column_row_expr97
+ + ecdsa_signature0_key_points_y_column_row_expr103
+ - ecdsa_signature0_add_results_slope_column_row_expr99
+ * (ecdsa_signature0_exponentiate_generator_partial_sum_x_column_row_expr100
+ - ecdsa_signature0_key_points_x_column_row_expr102))
+ .field_div(&NonZeroFelt::try_from(domain34)?);
+ total_sum += constraint_coefficients[109] * value;
+
+ // Constraint: ecdsa/signature0/add_results/x_diff_inv.
+ value = (ecdsa_signature0_add_results_inv_column_row_expr104
+ * (ecdsa_signature0_exponentiate_generator_partial_sum_x_column_row_expr100
+ - ecdsa_signature0_exponentiate_key_partial_sum_x_column_row_expr101)
+ - 1)
+ .field_div(&NonZeroFelt::try_from(domain34)?);
+ total_sum += constraint_coefficients[110] * value;
+
+ // Constraint: ecdsa/signature0/extract_r/slope.
+ value = (ecdsa_signature0_exponentiate_key_partial_sum_y_column_row_expr105
+ + global_values.ecdsa_sig_config.shift_point.y
+ - ecdsa_signature0_extract_r_slope_column_row_expr106
+ * (ecdsa_signature0_exponentiate_key_partial_sum_x_column_row_expr107
+ - global_values.ecdsa_sig_config.shift_point.x))
+ .field_div(&NonZeroFelt::try_from(domain34)?);
+ total_sum += constraint_coefficients[111] * value;
+
+ // Constraint: ecdsa/signature0/extract_r/x.
+ value = (ecdsa_signature0_extract_r_slope_column_row_expr106
+ * ecdsa_signature0_extract_r_slope_column_row_expr106
+ - (ecdsa_signature0_exponentiate_key_partial_sum_x_column_row_expr107
+ + global_values.ecdsa_sig_config.shift_point.x
+ + ecdsa_signature0_exponentiate_key_selector_column_row_expr90))
+ .field_div(&NonZeroFelt::try_from(domain34)?);
+ total_sum += constraint_coefficients[112] * value;
+
+ // Constraint: ecdsa/signature0/extract_r/x_diff_inv.
+ value = (ecdsa_signature0_extract_r_inv_column_row_expr108
+ * (ecdsa_signature0_exponentiate_key_partial_sum_x_column_row_expr107
+ - global_values.ecdsa_sig_config.shift_point.x)
+ - 1)
+ .field_div(&NonZeroFelt::try_from(domain34)?);
+ total_sum += constraint_coefficients[113] * value;
+
+ // Constraint: ecdsa/signature0/z_nonzero.
+ value = (ecdsa_signature0_exponentiate_generator_selector_column_row_expr83
+ * ecdsa_signature0_z_inv_column_row_expr109
+ - 1)
+ .field_div(&NonZeroFelt::try_from(domain34)?);
+ total_sum += constraint_coefficients[114] * value;
+
+ // Constraint: ecdsa/signature0/r_and_w_nonzero.
+ value = (ecdsa_signature0_exponentiate_key_selector_column_row_expr90
+ * ecdsa_signature0_r_w_inv_column_row_expr110
+ - 1)
+ .field_div(&NonZeroFelt::try_from(domain31)?);
+ total_sum += constraint_coefficients[115] * value;
+
+ // Constraint: ecdsa/signature0/q_on_curve/x_squared.
+ value = (ecdsa_signature0_q_x_squared_column_row_expr111
+ - ecdsa_signature0_key_points_x_column_row_expr80
+ * ecdsa_signature0_key_points_x_column_row_expr80)
+ .field_div(&NonZeroFelt::try_from(domain34)?);
+ total_sum += constraint_coefficients[116] * value;
+
+ // Constraint: ecdsa/signature0/q_on_curve/on_curve.
+ value = (ecdsa_signature0_key_points_y_column_row_expr78
+ * ecdsa_signature0_key_points_y_column_row_expr78
+ - (ecdsa_signature0_key_points_x_column_row_expr80
+ * ecdsa_signature0_q_x_squared_column_row_expr111
+ + global_values.ecdsa_sig_config.alpha
+ * ecdsa_signature0_key_points_x_column_row_expr80
+ + global_values.ecdsa_sig_config.beta))
+ .field_div(&NonZeroFelt::try_from(domain34)?);
+ total_sum += constraint_coefficients[117] * value;
+
+ // Constraint: ecdsa/init_addr.
+ value = (mem_pool_addr_column_row_expr112 - global_values.initial_ecdsa_addr)
+ .field_div(&NonZeroFelt::try_from(domain35)?);
+ total_sum += constraint_coefficients[118] * value;
+
+ // Constraint: ecdsa/message_addr.
+ value = (mem_pool_addr_column_row_expr113 - (mem_pool_addr_column_row_expr112 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain34)?);
+ total_sum += constraint_coefficients[119] * value;
+
+ // Constraint: ecdsa/pubkey_addr.
+ value = (mem_pool_addr_column_row_expr114 - (mem_pool_addr_column_row_expr113 + FELT_1))
+ * domain36.field_div(&NonZeroFelt::try_from(domain34)?);
+ total_sum += constraint_coefficients[120] * value;
+
+ // Constraint: ecdsa/message_value0.
+ value = (mem_pool_value_column_row_expr115
+ - ecdsa_signature0_exponentiate_generator_selector_column_row_expr83)
+ .field_div(&NonZeroFelt::try_from(domain34)?);
+ total_sum += constraint_coefficients[121] * value;
+
+ // Constraint: ecdsa/pubkey_value0.
+ value = (mem_pool_value_column_row_expr116
+ - ecdsa_signature0_key_points_x_column_row_expr80)
+ .field_div(&NonZeroFelt::try_from(domain34)?);
+ total_sum += constraint_coefficients[122] * value;
+ }
+ if uses_bitwise_builtin != 0 {
+ // Constraint: bitwise/init_var_pool_addr.
+ value = (mem_pool_addr_column_row_expr117 - global_values.initial_bitwise_addr)
+ .field_div(&NonZeroFelt::try_from(domain19)?);
+ total_sum += constraint_coefficients[123] * value;
+
+ // Constraint: bitwise/step_var_pool_addr.
+ value = (mem_pool_addr_column_row_expr118 - (mem_pool_addr_column_row_expr117 + FELT_1))
+ * domain16.field_div(&NonZeroFelt::try_from(domain15)?);
+ total_sum += constraint_coefficients[124] * value;
+
+ // Constraint: bitwise/x_or_y_addr.
+ value = (mem_pool_addr_column_row_expr119 - (mem_pool_addr_column_row_expr120 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain17)?);
+ total_sum += constraint_coefficients[125] * value;
+
+ // Constraint: bitwise/next_var_pool_addr.
+ value = (mem_pool_addr_column_row_expr121 - (mem_pool_addr_column_row_expr119 + FELT_1))
+ * domain20.field_div(&NonZeroFelt::try_from(domain17)?);
+ total_sum += constraint_coefficients[126] * value;
+
+ // Constraint: bitwise/partition.
+ value = (bitwise_sum_var_0_0 + bitwise_sum_var_8_0 - mem_pool_value_column_row_expr122)
+ .field_div(&NonZeroFelt::try_from(domain15)?);
+ total_sum += constraint_coefficients[127] * value;
+
+ // Constraint: bitwise/or_is_and_plus_xor.
+ value = (mem_pool_value_column_row_expr123
+ - (mem_pool_value_column_row_expr124 + mem_pool_value_column_row_expr125))
+ .field_div(&NonZeroFelt::try_from(domain17)?);
+ total_sum += constraint_coefficients[128] * value;
+
+ // Constraint: bitwise/addition_is_xor_with_and.
+ value = (diluted_pool_column_row_expr126 + diluted_pool_column_row_expr127
+ - (diluted_pool_column_row_expr128
+ + diluted_pool_column_row_expr129
+ + diluted_pool_column_row_expr129))
+ .field_div(&NonZeroFelt::try_from(domain18)?);
+ total_sum += constraint_coefficients[129] * value;
+
+ // Constraint: bitwise/unique_unpacking192.
+ value = ((diluted_pool_column_row_expr130 + diluted_pool_column_row_expr131) * FELT_16
+ - diluted_pool_column_row_expr132)
+ .field_div(&NonZeroFelt::try_from(domain17)?);
+ total_sum += constraint_coefficients[130] * value;
+
+ // Constraint: bitwise/unique_unpacking193.
+ value = ((diluted_pool_column_row_expr133 + diluted_pool_column_row_expr134) * FELT_16
+ - diluted_pool_column_row_expr135)
+ .field_div(&NonZeroFelt::try_from(domain17)?);
+ total_sum += constraint_coefficients[131] * value;
+
+ // Constraint: bitwise/unique_unpacking194.
+ value = ((diluted_pool_column_row_expr136 + diluted_pool_column_row_expr137) * FELT_16
+ - diluted_pool_column_row_expr138)
+ .field_div(&NonZeroFelt::try_from(domain17)?);
+ total_sum += constraint_coefficients[132] * value;
+
+ // Constraint: bitwise/unique_unpacking195.
+ value = ((diluted_pool_column_row_expr139 + diluted_pool_column_row_expr140) * FELT_256
+ - diluted_pool_column_row_expr141)
+ .field_div(&NonZeroFelt::try_from(domain17)?);
+ total_sum += constraint_coefficients[133] * value;
+ }
+ if uses_ec_op_builtin != 0 {
+ // Constraint: ec_op/init_addr.
+ value = (mem_pool_addr_column_row_expr142 - global_values.initial_ec_op_addr)
+ .field_div(&NonZeroFelt::try_from(domain25)?);
+ total_sum += constraint_coefficients[134] * value;
+
+ // Constraint: ec_op/p_x_addr.
+ value = (mem_pool_addr_column_row_expr143 - (mem_pool_addr_column_row_expr142 + FELT_7))
+ * domain26.field_div(&NonZeroFelt::try_from(domain22)?);
+ total_sum += constraint_coefficients[135] * value;
+
+ // Constraint: ec_op/p_y_addr.
+ value = (mem_pool_addr_column_row_expr144 - (mem_pool_addr_column_row_expr142 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain22)?);
+ total_sum += constraint_coefficients[136] * value;
+
+ // Constraint: ec_op/q_x_addr.
+ value = (mem_pool_addr_column_row_expr145 - (mem_pool_addr_column_row_expr144 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain22)?);
+ total_sum += constraint_coefficients[137] * value;
+
+ // Constraint: ec_op/q_y_addr.
+ value = (mem_pool_addr_column_row_expr146 - (mem_pool_addr_column_row_expr145 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain22)?);
+ total_sum += constraint_coefficients[138] * value;
+
+ // Constraint: ec_op/m_addr.
+ value = (mem_pool_addr_column_row_expr147 - (mem_pool_addr_column_row_expr146 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain22)?);
+ total_sum += constraint_coefficients[139] * value;
+
+ // Constraint: ec_op/r_x_addr.
+ value = (mem_pool_addr_column_row_expr148 - (mem_pool_addr_column_row_expr147 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain22)?);
+ total_sum += constraint_coefficients[140] * value;
+
+ // Constraint: ec_op/r_y_addr.
+ value = (mem_pool_addr_column_row_expr149 - (mem_pool_addr_column_row_expr148 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain22)?);
+ total_sum += constraint_coefficients[141] * value;
+
+ // Constraint: ec_op/doubling_q/slope.
+ value = (ec_op_doubling_q_x_squared_0
+ + ec_op_doubling_q_x_squared_0
+ + ec_op_doubling_q_x_squared_0
+ + global_values.ec_op_curve_config.alpha
+ - (ec_op_doubled_points_y_column_row_expr150
+ + ec_op_doubled_points_y_column_row_expr150)
+ * ec_op_doubling_slope_column_row_expr151)
+ * domain23.field_div(&NonZeroFelt::try_from(domain21)?);
+ total_sum += constraint_coefficients[142] * value;
+
+ // Constraint: ec_op/doubling_q/x.
+ value = (ec_op_doubling_slope_column_row_expr151 * ec_op_doubling_slope_column_row_expr151
+ - (ec_op_doubled_points_x_column_row_expr152
+ + ec_op_doubled_points_x_column_row_expr152
+ + ec_op_doubled_points_x_column_row_expr153))
+ * domain23.field_div(&NonZeroFelt::try_from(domain21)?);
+ total_sum += constraint_coefficients[143] * value;
+
+ // Constraint: ec_op/doubling_q/y.
+ value = (ec_op_doubled_points_y_column_row_expr150
+ + ec_op_doubled_points_y_column_row_expr154
+ - ec_op_doubling_slope_column_row_expr151
+ * (ec_op_doubled_points_x_column_row_expr152
+ - ec_op_doubled_points_x_column_row_expr153))
+ * domain23.field_div(&NonZeroFelt::try_from(domain21)?);
+ total_sum += constraint_coefficients[144] * value;
+
+ // Constraint: ec_op/get_q_x.
+ value = (mem_pool_value_column_row_expr155 - ec_op_doubled_points_x_column_row_expr152)
+ .field_div(&NonZeroFelt::try_from(domain22)?);
+ total_sum += constraint_coefficients[145] * value;
+
+ // Constraint: ec_op/get_q_y.
+ value = (mem_pool_value_column_row_expr156 - ec_op_doubled_points_y_column_row_expr150)
+ .field_div(&NonZeroFelt::try_from(domain22)?);
+ total_sum += constraint_coefficients[146] * value;
+
+ // Constraint: ec_op/ec_subset_sum/bit_unpacking/last_one_is_zero.
+ value = (ec_op_ec_subset_sum_bit_unpacking_prod_ones192_column_row_expr157
+ * (ec_op_ec_subset_sum_selector_column_row_expr158
+ - (ec_op_ec_subset_sum_selector_column_row_expr159
+ + ec_op_ec_subset_sum_selector_column_row_expr159)))
+ .field_div(&NonZeroFelt::try_from(domain22)?);
+ total_sum += constraint_coefficients[147] * value;
+
+ // Constraint: ec_op/ec_subset_sum/bit_unpacking/zeroes_between_ones0.
+ value = (ec_op_ec_subset_sum_bit_unpacking_prod_ones192_column_row_expr157
+ * (ec_op_ec_subset_sum_selector_column_row_expr159
+ - FELT_3138550867693340381917894711603833208051177722232017256448
+ * ec_op_ec_subset_sum_selector_column_row_expr160))
+ .field_div(&NonZeroFelt::try_from(domain22)?);
+ total_sum += constraint_coefficients[148] * value;
+
+ // Constraint: ec_op/ec_subset_sum/bit_unpacking/cumulative_bit192.
+ value = (ec_op_ec_subset_sum_bit_unpacking_prod_ones192_column_row_expr157
+ - ec_op_ec_subset_sum_bit_unpacking_prod_ones196_column_row_expr161
+ * (ec_op_ec_subset_sum_selector_column_row_expr160
+ - (ec_op_ec_subset_sum_selector_column_row_expr162
+ + ec_op_ec_subset_sum_selector_column_row_expr162)))
+ .field_div(&NonZeroFelt::try_from(domain22)?);
+ total_sum += constraint_coefficients[149] * value;
+
+ // Constraint: ec_op/ec_subset_sum/bit_unpacking/zeroes_between_ones192.
+ value = (ec_op_ec_subset_sum_bit_unpacking_prod_ones196_column_row_expr161
+ * (ec_op_ec_subset_sum_selector_column_row_expr162
+ - FELT_8 * ec_op_ec_subset_sum_selector_column_row_expr163))
+ .field_div(&NonZeroFelt::try_from(domain22)?);
+ total_sum += constraint_coefficients[150] * value;
+
+ // Constraint: ec_op/ec_subset_sum/bit_unpacking/cumulative_bit196.
+ value = (ec_op_ec_subset_sum_bit_unpacking_prod_ones196_column_row_expr161
+ - (ec_op_ec_subset_sum_selector_column_row_expr164
+ - (ec_op_ec_subset_sum_selector_column_row_expr165
+ + ec_op_ec_subset_sum_selector_column_row_expr165))
+ * (ec_op_ec_subset_sum_selector_column_row_expr163
+ - (ec_op_ec_subset_sum_selector_column_row_expr166
+ + ec_op_ec_subset_sum_selector_column_row_expr166)))
+ .field_div(&NonZeroFelt::try_from(domain22)?);
+ total_sum += constraint_coefficients[151] * value;
+
+ // Constraint: ec_op/ec_subset_sum/bit_unpacking/zeroes_between_ones196.
+ value = ((ec_op_ec_subset_sum_selector_column_row_expr164
+ - (ec_op_ec_subset_sum_selector_column_row_expr165
+ + ec_op_ec_subset_sum_selector_column_row_expr165))
+ * (ec_op_ec_subset_sum_selector_column_row_expr166
+ - FELT_18014398509481984 * ec_op_ec_subset_sum_selector_column_row_expr164))
+ .field_div(&NonZeroFelt::try_from(domain22)?);
+ total_sum += constraint_coefficients[152] * value;
+
+ // Constraint: ec_op/ec_subset_sum/booleanity_test.
+ value = (ec_op_ec_subset_sum_bit_0 * (ec_op_ec_subset_sum_bit_0 - 1))
+ * domain23.field_div(&NonZeroFelt::try_from(domain21)?);
+ total_sum += constraint_coefficients[153] * value;
+
+ // Constraint: ec_op/ec_subset_sum/bit_extraction_end.
+ value = (ec_op_ec_subset_sum_selector_column_row_expr158)
+ .field_div(&NonZeroFelt::try_from(domain24)?);
+ total_sum += constraint_coefficients[154] * value;
+
+ // Constraint: ec_op/ec_subset_sum/zeros_tail.
+ value = (ec_op_ec_subset_sum_selector_column_row_expr158)
+ .field_div(&NonZeroFelt::try_from(domain23)?);
+ total_sum += constraint_coefficients[155] * value;
+
+ // Constraint: ec_op/ec_subset_sum/add_points/slope.
+ value = (ec_op_ec_subset_sum_bit_0
+ * (ec_op_ec_subset_sum_partial_sum_y_column_row_expr167
+ - ec_op_doubled_points_y_column_row_expr150)
+ - ec_op_ec_subset_sum_slope_column_row_expr168
+ * (ec_op_ec_subset_sum_partial_sum_x_column_row_expr169
+ - ec_op_doubled_points_x_column_row_expr152))
+ * domain23.field_div(&NonZeroFelt::try_from(domain21)?);
+ total_sum += constraint_coefficients[156] * value;
+
+ // Constraint: ec_op/ec_subset_sum/add_points/x.
+ value = (ec_op_ec_subset_sum_slope_column_row_expr168
+ * ec_op_ec_subset_sum_slope_column_row_expr168
+ - ec_op_ec_subset_sum_bit_0
+ * (ec_op_ec_subset_sum_partial_sum_x_column_row_expr169
+ + ec_op_doubled_points_x_column_row_expr152
+ + ec_op_ec_subset_sum_partial_sum_x_column_row_expr170))
+ * domain23.field_div(&NonZeroFelt::try_from(domain21)?);
+ total_sum += constraint_coefficients[157] * value;
+
+ // Constraint: ec_op/ec_subset_sum/add_points/y.
+ value = (ec_op_ec_subset_sum_bit_0
+ * (ec_op_ec_subset_sum_partial_sum_y_column_row_expr167
+ + ec_op_ec_subset_sum_partial_sum_y_column_row_expr171)
+ - ec_op_ec_subset_sum_slope_column_row_expr168
+ * (ec_op_ec_subset_sum_partial_sum_x_column_row_expr169
+ - ec_op_ec_subset_sum_partial_sum_x_column_row_expr170))
+ * domain23.field_div(&NonZeroFelt::try_from(domain21)?);
+ total_sum += constraint_coefficients[158] * value;
+
+ // Constraint: ec_op/ec_subset_sum/add_points/x_diff_inv.
+ value = (ec_op_ec_subset_sum_x_diff_inv_column_row_expr172
+ * (ec_op_ec_subset_sum_partial_sum_x_column_row_expr169
+ - ec_op_doubled_points_x_column_row_expr152)
+ - 1)
+ * domain23.field_div(&NonZeroFelt::try_from(domain21)?);
+ total_sum += constraint_coefficients[159] * value;
+
+ // Constraint: ec_op/ec_subset_sum/copy_point/x.
+ value = (ec_op_ec_subset_sum_bit_neg_0
+ * (ec_op_ec_subset_sum_partial_sum_x_column_row_expr170
+ - ec_op_ec_subset_sum_partial_sum_x_column_row_expr169))
+ * domain23.field_div(&NonZeroFelt::try_from(domain21)?);
+ total_sum += constraint_coefficients[160] * value;
+
+ // Constraint: ec_op/ec_subset_sum/copy_point/y.
+ value = (ec_op_ec_subset_sum_bit_neg_0
+ * (ec_op_ec_subset_sum_partial_sum_y_column_row_expr171
+ - ec_op_ec_subset_sum_partial_sum_y_column_row_expr167))
+ * domain23.field_div(&NonZeroFelt::try_from(domain21)?);
+ total_sum += constraint_coefficients[161] * value;
+
+ // Constraint: ec_op/get_m.
+ value = (ec_op_ec_subset_sum_selector_column_row_expr158
+ - mem_pool_value_column_row_expr173)
+ .field_div(&NonZeroFelt::try_from(domain22)?);
+ total_sum += constraint_coefficients[162] * value;
+
+ // Constraint: ec_op/get_p_x.
+ value = (mem_pool_value_column_row_expr174
+ - ec_op_ec_subset_sum_partial_sum_x_column_row_expr169)
+ .field_div(&NonZeroFelt::try_from(domain22)?);
+ total_sum += constraint_coefficients[163] * value;
+
+ // Constraint: ec_op/get_p_y.
+ value = (mem_pool_value_column_row_expr175
+ - ec_op_ec_subset_sum_partial_sum_y_column_row_expr167)
+ .field_div(&NonZeroFelt::try_from(domain22)?);
+ total_sum += constraint_coefficients[164] * value;
+
+ // Constraint: ec_op/set_r_x.
+ value = (mem_pool_value_column_row_expr176
+ - ec_op_ec_subset_sum_partial_sum_x_column_row_expr177)
+ .field_div(&NonZeroFelt::try_from(domain22)?);
+ total_sum += constraint_coefficients[165] * value;
+
+ // Constraint: ec_op/set_r_y.
+ value = (mem_pool_value_column_row_expr178
+ - ec_op_ec_subset_sum_partial_sum_y_column_row_expr179)
+ .field_div(&NonZeroFelt::try_from(domain22)?);
+ total_sum += constraint_coefficients[166] * value;
+ }
+ if uses_keccak_builtin != 0 {
+ // Constraint: keccak/init_input_output_addr.
+ value = (mem_pool_addr_column_row_expr180 - global_values.initial_keccak_addr)
+ .field_div(&NonZeroFelt::try_from(domain153)?);
+ total_sum += constraint_coefficients[167] * value;
+
+ // Constraint: keccak/addr_input_output_step.
+ value = (mem_pool_addr_column_row_expr181 - (mem_pool_addr_column_row_expr180 + FELT_1))
+ * domain154.field_div(&NonZeroFelt::try_from(domain40)?);
+ total_sum += constraint_coefficients[168] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate0_w0.
+ value = (mem_pool_value_column_row_expr182
+ - keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr183)
+ .field_div(&NonZeroFelt::try_from(domain45)?);
+ total_sum += constraint_coefficients[169] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate0_w1.
+ value = (mem_pool_value_column_row_expr184
+ - keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr185)
+ .field_div(&NonZeroFelt::try_from(domain45)?);
+ total_sum += constraint_coefficients[170] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate0_w2.
+ value = (mem_pool_value_column_row_expr186
+ - keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr187)
+ .field_div(&NonZeroFelt::try_from(domain45)?);
+ total_sum += constraint_coefficients[171] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate0_w3.
+ value = (mem_pool_value_column_row_expr188
+ - keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr189)
+ .field_div(&NonZeroFelt::try_from(domain45)?);
+ total_sum += constraint_coefficients[172] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate0_w4.
+ value = (mem_pool_value_column_row_expr190
+ - keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr191)
+ .field_div(&NonZeroFelt::try_from(domain45)?);
+ total_sum += constraint_coefficients[173] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate0_w5.
+ value = (mem_pool_value_column_row_expr192
+ - keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr193)
+ .field_div(&NonZeroFelt::try_from(domain45)?);
+ total_sum += constraint_coefficients[174] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate0_w6.
+ value = (mem_pool_value_column_row_expr194
+ - keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr195)
+ .field_div(&NonZeroFelt::try_from(domain45)?);
+ total_sum += constraint_coefficients[175] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate0_w7.
+ value = (mem_pool_value_column_row_expr196
+ - keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr197)
+ .field_div(&NonZeroFelt::try_from(domain45)?);
+ total_sum += constraint_coefficients[176] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate1_w0.
+ value = (mem_pool_value_column_row_expr198
+ - keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr199)
+ .field_div(&NonZeroFelt::try_from(domain45)?);
+ total_sum += constraint_coefficients[177] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate1_w1.
+ value = (mem_pool_value_column_row_expr200
+ - keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr201)
+ .field_div(&NonZeroFelt::try_from(domain45)?);
+ total_sum += constraint_coefficients[178] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate1_w2.
+ value = (mem_pool_value_column_row_expr202
+ - keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr203)
+ .field_div(&NonZeroFelt::try_from(domain45)?);
+ total_sum += constraint_coefficients[179] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate1_w3.
+ value = (mem_pool_value_column_row_expr204
+ - keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr205)
+ .field_div(&NonZeroFelt::try_from(domain45)?);
+ total_sum += constraint_coefficients[180] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate1_w4.
+ value = (mem_pool_value_column_row_expr206
+ - keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr207)
+ .field_div(&NonZeroFelt::try_from(domain45)?);
+ total_sum += constraint_coefficients[181] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate1_w5.
+ value = (mem_pool_value_column_row_expr208
+ - keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr209)
+ .field_div(&NonZeroFelt::try_from(domain45)?);
+ total_sum += constraint_coefficients[182] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate1_w6.
+ value = (mem_pool_value_column_row_expr210
+ - keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr211)
+ .field_div(&NonZeroFelt::try_from(domain45)?);
+ total_sum += constraint_coefficients[183] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate1_w7.
+ value = (mem_pool_value_column_row_expr212
+ - keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr213)
+ .field_div(&NonZeroFelt::try_from(domain45)?);
+ total_sum += constraint_coefficients[184] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_final0.
+ value = (keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr183
+ - keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr214)
+ .field_div(&NonZeroFelt::try_from(domain48)?);
+ total_sum += constraint_coefficients[185] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_final1.
+ value = (keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr215
+ - keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr216)
+ .field_div(&NonZeroFelt::try_from(domain48)?);
+ total_sum += constraint_coefficients[186] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_final2.
+ value = (keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr217
+ - keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr218)
+ .field_div(&NonZeroFelt::try_from(domain48)?);
+ total_sum += constraint_coefficients[187] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_final3.
+ value = (keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr219
+ - keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr220)
+ .field_div(&NonZeroFelt::try_from(domain48)?);
+ total_sum += constraint_coefficients[188] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_final4.
+ value = (keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr221
+ - keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr222)
+ .field_div(&NonZeroFelt::try_from(domain48)?);
+ total_sum += constraint_coefficients[189] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_final5.
+ value = (keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr223
+ - keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr224)
+ .field_div(&NonZeroFelt::try_from(domain48)?);
+ total_sum += constraint_coefficients[190] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_final6.
+ value = (keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr225
+ - keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr226)
+ .field_div(&NonZeroFelt::try_from(domain48)?);
+ total_sum += constraint_coefficients[191] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_final7.
+ value = (keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr227
+ - keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr228)
+ .field_div(&NonZeroFelt::try_from(domain48)?);
+ total_sum += constraint_coefficients[192] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_final8.
+ value = (keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr229
+ - keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr230)
+ .field_div(&NonZeroFelt::try_from(domain48)?);
+ total_sum += constraint_coefficients[193] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_final9.
+ value = (keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr231
+ - keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr232)
+ .field_div(&NonZeroFelt::try_from(domain48)?);
+ total_sum += constraint_coefficients[194] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_final10.
+ value = (keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr233
+ - keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr234)
+ .field_div(&NonZeroFelt::try_from(domain48)?);
+ total_sum += constraint_coefficients[195] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_final11.
+ value = (keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr235
+ - keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr236)
+ .field_div(&NonZeroFelt::try_from(domain48)?);
+ total_sum += constraint_coefficients[196] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_final12.
+ value = (keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr237
+ - keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr238)
+ .field_div(&NonZeroFelt::try_from(domain48)?);
+ total_sum += constraint_coefficients[197] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_final13.
+ value = (keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr239
+ - keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr240)
+ .field_div(&NonZeroFelt::try_from(domain48)?);
+ total_sum += constraint_coefficients[198] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_final14.
+ value = (keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr241
+ - keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr242)
+ .field_div(&NonZeroFelt::try_from(domain48)?);
+ total_sum += constraint_coefficients[199] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/reshape_final15.
+ value = (keccak_keccak_parse_to_diluted_reshaped_intermediate_column_row_expr243
+ - keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr244)
+ .field_div(&NonZeroFelt::try_from(domain48)?);
+ total_sum += constraint_coefficients[200] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/start_accumulation.
+ value = (keccak_keccak_parse_to_diluted_cumulative_sum_column_row_expr245)
+ .field_div(&NonZeroFelt::try_from(domain52)?);
+ total_sum += constraint_coefficients[201] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/init_first_invocation0.
+ value = (keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr214
+ - keccak_keccak_parse_to_diluted_sum_words_over_instances0_0)
+ .field_div(&NonZeroFelt::try_from(domain47)?);
+ total_sum += constraint_coefficients[202] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations0.
+ value = (keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr216
+ + keccak_keccak_parse_to_diluted_sum_words_over_instances0_0 * FELT_16
+ - keccak_keccak_parse_to_diluted_sum_words_over_instances0_2)
+ .field_div(&NonZeroFelt::try_from(domain51)?);
+ total_sum += constraint_coefficients[203] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/init_first_invocation1.
+ value = (keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr246
+ - keccak_keccak_parse_to_diluted_sum_words_over_instances1_0)
+ .field_div(&NonZeroFelt::try_from(domain47)?);
+ total_sum += constraint_coefficients[204] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations1.
+ value = (keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr247
+ + keccak_keccak_parse_to_diluted_sum_words_over_instances1_0 * FELT_16
+ - keccak_keccak_parse_to_diluted_sum_words_over_instances1_2)
+ .field_div(&NonZeroFelt::try_from(domain51)?);
+ total_sum += constraint_coefficients[205] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/init_first_invocation2.
+ value = (keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr248
+ - keccak_keccak_parse_to_diluted_sum_words_over_instances2_0)
+ .field_div(&NonZeroFelt::try_from(domain47)?);
+ total_sum += constraint_coefficients[206] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations2.
+ value = (keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr249
+ + keccak_keccak_parse_to_diluted_sum_words_over_instances2_0 * FELT_16
+ - keccak_keccak_parse_to_diluted_sum_words_over_instances2_2)
+ .field_div(&NonZeroFelt::try_from(domain51)?);
+ total_sum += constraint_coefficients[207] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/init_first_invocation3.
+ value = (keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr250
+ - keccak_keccak_parse_to_diluted_sum_words_over_instances3_0)
+ .field_div(&NonZeroFelt::try_from(domain47)?);
+ total_sum += constraint_coefficients[208] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations3.
+ value = (keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr251
+ + keccak_keccak_parse_to_diluted_sum_words_over_instances3_0 * FELT_16
+ - keccak_keccak_parse_to_diluted_sum_words_over_instances3_2)
+ .field_div(&NonZeroFelt::try_from(domain51)?);
+ total_sum += constraint_coefficients[209] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/init_first_invocation4.
+ value = (keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr252
+ - keccak_keccak_parse_to_diluted_sum_words_over_instances4_0)
+ .field_div(&NonZeroFelt::try_from(domain47)?);
+ total_sum += constraint_coefficients[210] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations4.
+ value = (keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr253
+ + keccak_keccak_parse_to_diluted_sum_words_over_instances4_0 * FELT_16
+ - keccak_keccak_parse_to_diluted_sum_words_over_instances4_2)
+ .field_div(&NonZeroFelt::try_from(domain51)?);
+ total_sum += constraint_coefficients[211] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/init_first_invocation5.
+ value = (keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr254
+ - keccak_keccak_parse_to_diluted_sum_words_over_instances5_0)
+ .field_div(&NonZeroFelt::try_from(domain47)?);
+ total_sum += constraint_coefficients[212] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations5.
+ value = (keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr255
+ + keccak_keccak_parse_to_diluted_sum_words_over_instances5_0 * FELT_16
+ - keccak_keccak_parse_to_diluted_sum_words_over_instances5_2)
+ .field_div(&NonZeroFelt::try_from(domain51)?);
+ total_sum += constraint_coefficients[213] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/init_first_invocation6.
+ value = (keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr256
+ - keccak_keccak_parse_to_diluted_sum_words_over_instances6_0)
+ .field_div(&NonZeroFelt::try_from(domain47)?);
+ total_sum += constraint_coefficients[214] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations6.
+ value = (keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr257
+ + keccak_keccak_parse_to_diluted_sum_words_over_instances6_0 * FELT_16
+ - keccak_keccak_parse_to_diluted_sum_words_over_instances6_2)
+ .field_div(&NonZeroFelt::try_from(domain51)?);
+ total_sum += constraint_coefficients[215] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/init_first_invocation7.
+ value = (keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr258
+ - keccak_keccak_parse_to_diluted_sum_words_over_instances7_0)
+ .field_div(&NonZeroFelt::try_from(domain47)?);
+ total_sum += constraint_coefficients[216] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations7.
+ value = (keccak_keccak_parse_to_diluted_final_reshaped_input_column_row_expr259
+ + keccak_keccak_parse_to_diluted_sum_words_over_instances7_0 * FELT_16
+ - keccak_keccak_parse_to_diluted_sum_words_over_instances7_2)
+ .field_div(&NonZeroFelt::try_from(domain51)?);
+ total_sum += constraint_coefficients[217] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/extract_bit_first_invocation1.
+ value = (keccak_keccak_parse_to_diluted_partial_diluted1_0
+ * keccak_keccak_parse_to_diluted_partial_diluted1_0
+ - keccak_keccak_parse_to_diluted_partial_diluted1_0)
+ .field_div(&NonZeroFelt::try_from(domain55)?);
+ total_sum += constraint_coefficients[218] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/extract_bit_other_invocations1.
+ value = (keccak_keccak_parse_to_diluted_bit_other1_0
+ * keccak_keccak_parse_to_diluted_bit_other1_0
+ - keccak_keccak_parse_to_diluted_bit_other1_0)
+ .field_div(&NonZeroFelt::try_from(domain56)?);
+ total_sum += constraint_coefficients[219] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/to_diluted0_p1.
+ value = (keccak_keccak_parse_to_diluted_partial_diluted1_30
+ - diluted_pool_column_row_expr260)
+ .field_div(&NonZeroFelt::try_from(domain57)?);
+ total_sum += constraint_coefficients[220] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/to_diluted1_p1.
+ value = (keccak_keccak_parse_to_diluted_partial_diluted1_31
+ - diluted_pool_column_row_expr261)
+ .field_div(&NonZeroFelt::try_from(domain57)?);
+ total_sum += constraint_coefficients[221] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/extract_bit_first_invocation0.
+ value = (keccak_keccak_parse_to_diluted_partial_diluted0_0
+ * keccak_keccak_parse_to_diluted_partial_diluted0_0
+ - keccak_keccak_parse_to_diluted_partial_diluted0_0)
+ * domain61.field_div(&NonZeroFelt::try_from(domain39)?);
+ total_sum += constraint_coefficients[222] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/extract_bit_other_invocations0.
+ value = (keccak_keccak_parse_to_diluted_bit_other0_0
+ * keccak_keccak_parse_to_diluted_bit_other0_0
+ - keccak_keccak_parse_to_diluted_bit_other0_0)
+ * domain64.field_div(&NonZeroFelt::try_from(domain37)?);
+ total_sum += constraint_coefficients[223] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/to_diluted0_p0.
+ value = (keccak_keccak_parse_to_diluted_partial_diluted0_30
+ - diluted_pool_column_row_expr262)
+ * domain65.field_div(&NonZeroFelt::try_from(domain38)?);
+ total_sum += constraint_coefficients[224] * value;
+
+ // Constraint: keccak/keccak/parse_to_diluted/to_diluted1_p0.
+ value = (keccak_keccak_parse_to_diluted_partial_diluted0_31
+ - diluted_pool_column_row_expr263)
+ * domain65.field_div(&NonZeroFelt::try_from(domain38)?);
+ total_sum += constraint_coefficients[225] * value;
+
+ // Constraint: keccak/keccak/parity0.
+ value = (diluted_pool_column_row_expr262
+ + diluted_pool_column_row_expr264
+ + diluted_pool_column_row_expr265
+ + diluted_pool_column_row_expr266
+ + diluted_pool_column_row_expr267
+ - (diluted_pool_column_row_expr268
+ + diluted_pool_column_row_expr269
+ + diluted_pool_column_row_expr269
+ + diluted_pool_column_row_expr270 * FELT_4))
+ .field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[226] * value;
+
+ // Constraint: keccak/keccak/parity1.
+ value = (diluted_pool_column_row_expr271
+ + diluted_pool_column_row_expr272
+ + diluted_pool_column_row_expr273
+ + diluted_pool_column_row_expr274
+ + diluted_pool_column_row_expr275
+ - (diluted_pool_column_row_expr276
+ + diluted_pool_column_row_expr277
+ + diluted_pool_column_row_expr277
+ + diluted_pool_column_row_expr278 * FELT_4))
+ .field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[227] * value;
+
+ // Constraint: keccak/keccak/parity2.
+ value = (diluted_pool_column_row_expr279
+ + diluted_pool_column_row_expr280
+ + diluted_pool_column_row_expr281
+ + diluted_pool_column_row_expr282
+ + diluted_pool_column_row_expr283
+ - (diluted_pool_column_row_expr284
+ + diluted_pool_column_row_expr285
+ + diluted_pool_column_row_expr285
+ + diluted_pool_column_row_expr286 * FELT_4))
+ .field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[228] * value;
+
+ // Constraint: keccak/keccak/parity3.
+ value = (diluted_pool_column_row_expr287
+ + diluted_pool_column_row_expr288
+ + diluted_pool_column_row_expr289
+ + diluted_pool_column_row_expr290
+ + diluted_pool_column_row_expr291
+ - (diluted_pool_column_row_expr292
+ + diluted_pool_column_row_expr293
+ + diluted_pool_column_row_expr293
+ + diluted_pool_column_row_expr294 * FELT_4))
+ .field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[229] * value;
+
+ // Constraint: keccak/keccak/parity4.
+ value = (diluted_pool_column_row_expr295
+ + diluted_pool_column_row_expr296
+ + diluted_pool_column_row_expr297
+ + diluted_pool_column_row_expr298
+ + diluted_pool_column_row_expr299
+ - (diluted_pool_column_row_expr300
+ + diluted_pool_column_row_expr301
+ + diluted_pool_column_row_expr301
+ + diluted_pool_column_row_expr302 * FELT_4))
+ .field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[230] * value;
+
+ // Constraint: keccak/keccak/rotate_parity0/n0.
+ value = (keccak_keccak_rotated_parity0_column_row_expr303
+ - diluted_pool_column_row_expr304)
+ .field_div(&NonZeroFelt::try_from(domain50)?);
+ total_sum += constraint_coefficients[231] * value;
+
+ // Constraint: keccak/keccak/rotate_parity0/n1.
+ value = (keccak_keccak_rotated_parity0_column_row_expr305
+ - diluted_pool_column_row_expr268)
+ * domain67.field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[232] * value;
+
+ // Constraint: keccak/keccak/rotate_parity1/n0.
+ value = (keccak_keccak_rotated_parity1_column_row_expr306
+ - diluted_pool_column_row_expr307)
+ .field_div(&NonZeroFelt::try_from(domain50)?);
+ total_sum += constraint_coefficients[233] * value;
+
+ // Constraint: keccak/keccak/rotate_parity1/n1.
+ value = (keccak_keccak_rotated_parity1_column_row_expr308
+ - diluted_pool_column_row_expr276)
+ * domain67.field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[234] * value;
+
+ // Constraint: keccak/keccak/rotate_parity2/n0.
+ value = (keccak_keccak_rotated_parity2_column_row_expr309
+ - diluted_pool_column_row_expr310)
+ .field_div(&NonZeroFelt::try_from(domain50)?);
+ total_sum += constraint_coefficients[235] * value;
+
+ // Constraint: keccak/keccak/rotate_parity2/n1.
+ value = (keccak_keccak_rotated_parity2_column_row_expr311
+ - diluted_pool_column_row_expr284)
+ * domain67.field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[236] * value;
+
+ // Constraint: keccak/keccak/rotate_parity3/n0.
+ value = (keccak_keccak_rotated_parity3_column_row_expr312
+ - diluted_pool_column_row_expr313)
+ .field_div(&NonZeroFelt::try_from(domain50)?);
+ total_sum += constraint_coefficients[237] * value;
+
+ // Constraint: keccak/keccak/rotate_parity3/n1.
+ value = (keccak_keccak_rotated_parity3_column_row_expr314
+ - diluted_pool_column_row_expr292)
+ * domain67.field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[238] * value;
+
+ // Constraint: keccak/keccak/rotate_parity4/n0.
+ value = (keccak_keccak_rotated_parity4_column_row_expr315
+ - diluted_pool_column_row_expr316)
+ .field_div(&NonZeroFelt::try_from(domain50)?);
+ total_sum += constraint_coefficients[239] * value;
+
+ // Constraint: keccak/keccak/rotate_parity4/n1.
+ value = (keccak_keccak_rotated_parity4_column_row_expr317
+ - diluted_pool_column_row_expr300)
+ * domain67.field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[240] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i0_j0.
+ value = (keccak_keccak_sum_parities0_0 + diluted_pool_column_row_expr262
+ - (diluted_pool_column_row_expr318
+ + diluted_pool_column_row_expr319
+ + diluted_pool_column_row_expr319))
+ .field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[241] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i0_j1/n0.
+ value = (keccak_keccak_sum_parities1_0 + diluted_pool_column_row_expr271
+ - (diluted_pool_column_row_expr320
+ + diluted_pool_column_row_expr321
+ + diluted_pool_column_row_expr321))
+ * domain67.field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[242] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i0_j1/n1.
+ value = (keccak_keccak_sum_parities1_64512 + diluted_pool_column_row_expr322
+ - (diluted_pool_column_row_expr323
+ + diluted_pool_column_row_expr324
+ + diluted_pool_column_row_expr324))
+ .field_div(&NonZeroFelt::try_from(domain50)?);
+ total_sum += constraint_coefficients[243] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i0_j2/n0.
+ value = (keccak_keccak_sum_parities2_0 + diluted_pool_column_row_expr279
+ - (diluted_pool_column_row_expr325
+ + diluted_pool_column_row_expr326
+ + diluted_pool_column_row_expr326))
+ .field_div(&NonZeroFelt::try_from(domain70)?);
+ total_sum += constraint_coefficients[244] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i0_j2/n1.
+ value = (keccak_keccak_sum_parities2_2048 + diluted_pool_column_row_expr327
+ - (diluted_pool_column_row_expr328
+ + diluted_pool_column_row_expr329
+ + diluted_pool_column_row_expr329))
+ * domain72.field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[245] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i0_j3/n0.
+ value = (keccak_keccak_sum_parities3_0 + diluted_pool_column_row_expr287
+ - (diluted_pool_column_row_expr330
+ + diluted_pool_column_row_expr331
+ + diluted_pool_column_row_expr331))
+ * domain98.field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[246] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i0_j3/n1.
+ value = (keccak_keccak_sum_parities3_36864 + diluted_pool_column_row_expr332
+ - (diluted_pool_column_row_expr333
+ + diluted_pool_column_row_expr334
+ + diluted_pool_column_row_expr334))
+ .field_div(&NonZeroFelt::try_from(domain127)?);
+ total_sum += constraint_coefficients[247] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i0_j4/n0.
+ value = (keccak_keccak_sum_parities4_0 + diluted_pool_column_row_expr295
+ - (diluted_pool_column_row_expr335
+ + diluted_pool_column_row_expr336
+ + diluted_pool_column_row_expr336))
+ * domain97.field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[248] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i0_j4/n1.
+ value = (keccak_keccak_sum_parities4_37888 + diluted_pool_column_row_expr337
+ - (diluted_pool_column_row_expr338
+ + diluted_pool_column_row_expr339
+ + diluted_pool_column_row_expr339))
+ .field_div(&NonZeroFelt::try_from(domain126)?);
+ total_sum += constraint_coefficients[249] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i1_j0/n0.
+ value = (keccak_keccak_sum_parities0_0 + diluted_pool_column_row_expr264
+ - (diluted_pool_column_row_expr340
+ + diluted_pool_column_row_expr341
+ + diluted_pool_column_row_expr341))
+ .field_div(&NonZeroFelt::try_from(domain127)?);
+ total_sum += constraint_coefficients[250] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i1_j0/n1.
+ value = (keccak_keccak_sum_parities0_28672 + diluted_pool_column_row_expr342
+ - (diluted_pool_column_row_expr343
+ + diluted_pool_column_row_expr344
+ + diluted_pool_column_row_expr344))
+ * domain98.field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[251] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i1_j1/n0.
+ value = (keccak_keccak_sum_parities1_0 + diluted_pool_column_row_expr272
+ - (diluted_pool_column_row_expr345
+ + diluted_pool_column_row_expr346
+ + diluted_pool_column_row_expr346))
+ .field_div(&NonZeroFelt::try_from(domain120)?);
+ total_sum += constraint_coefficients[252] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i1_j1/n1.
+ value = (keccak_keccak_sum_parities1_20480 + diluted_pool_column_row_expr347
+ - (diluted_pool_column_row_expr348
+ + diluted_pool_column_row_expr349
+ + diluted_pool_column_row_expr349))
+ * domain91.field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[253] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i1_j2/n0.
+ value = (keccak_keccak_sum_parities2_0 + diluted_pool_column_row_expr280
+ - (diluted_pool_column_row_expr350
+ + diluted_pool_column_row_expr351
+ + diluted_pool_column_row_expr351))
+ * domain76.field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[254] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i1_j2/n1.
+ value = (keccak_keccak_sum_parities2_59392 + diluted_pool_column_row_expr352
+ - (diluted_pool_column_row_expr353
+ + diluted_pool_column_row_expr354
+ + diluted_pool_column_row_expr354))
+ .field_div(&NonZeroFelt::try_from(domain103)?);
+ total_sum += constraint_coefficients[255] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i1_j3/n0.
+ value = (keccak_keccak_sum_parities3_0 + diluted_pool_column_row_expr288
+ - (diluted_pool_column_row_expr355
+ + diluted_pool_column_row_expr356
+ + diluted_pool_column_row_expr356))
+ .field_div(&NonZeroFelt::try_from(domain130)?);
+ total_sum += constraint_coefficients[256] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i1_j3/n1.
+ value = (keccak_keccak_sum_parities3_8 + diluted_pool_column_row_expr357
+ - (diluted_pool_column_row_expr358
+ + diluted_pool_column_row_expr359
+ + diluted_pool_column_row_expr359))
+ .field_div(&NonZeroFelt::try_from(domain130)?);
+ total_sum += constraint_coefficients[257] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i1_j3/n2.
+ value = (keccak_keccak_sum_parities3_16 + diluted_pool_column_row_expr360
+ - (diluted_pool_column_row_expr361
+ + diluted_pool_column_row_expr362
+ + diluted_pool_column_row_expr362))
+ .field_div(&NonZeroFelt::try_from(domain130)?);
+ total_sum += constraint_coefficients[258] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i1_j3/n3.
+ value = (keccak_keccak_sum_parities3_9216 + diluted_pool_column_row_expr363
+ - (diluted_pool_column_row_expr364
+ + diluted_pool_column_row_expr365
+ + diluted_pool_column_row_expr365))
+ * domain133.field_div(&NonZeroFelt::try_from(domain41)?);
+ total_sum += constraint_coefficients[259] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i1_j3/n4.
+ value = (keccak_keccak_sum_parities3_9224 + diluted_pool_column_row_expr366
+ - (diluted_pool_column_row_expr367
+ + diluted_pool_column_row_expr368
+ + diluted_pool_column_row_expr368))
+ * domain133.field_div(&NonZeroFelt::try_from(domain41)?);
+ total_sum += constraint_coefficients[260] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i1_j3/n5.
+ value = (keccak_keccak_sum_parities3_9232 + diluted_pool_column_row_expr369
+ - (diluted_pool_column_row_expr370
+ + diluted_pool_column_row_expr371
+ + diluted_pool_column_row_expr371))
+ * domain133.field_div(&NonZeroFelt::try_from(domain41)?);
+ total_sum += constraint_coefficients[261] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i1_j4/n0.
+ value = (keccak_keccak_sum_parities4_0 + diluted_pool_column_row_expr296
+ - (diluted_pool_column_row_expr372
+ + diluted_pool_column_row_expr373
+ + diluted_pool_column_row_expr373))
+ * domain91.field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[262] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i1_j4/n1.
+ value = (keccak_keccak_sum_parities4_45056 + diluted_pool_column_row_expr374
+ - (diluted_pool_column_row_expr375
+ + diluted_pool_column_row_expr376
+ + diluted_pool_column_row_expr376))
+ .field_div(&NonZeroFelt::try_from(domain120)?);
+ total_sum += constraint_coefficients[263] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i2_j0/n0.
+ value = (keccak_keccak_sum_parities0_0 + diluted_pool_column_row_expr265
+ - (diluted_pool_column_row_expr377
+ + diluted_pool_column_row_expr378
+ + diluted_pool_column_row_expr378))
+ * domain134.field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[264] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i2_j0/n1.
+ value = (keccak_keccak_sum_parities0_62464 + diluted_pool_column_row_expr379
+ - (diluted_pool_column_row_expr380
+ + diluted_pool_column_row_expr381
+ + diluted_pool_column_row_expr381))
+ .field_div(&NonZeroFelt::try_from(domain135)?);
+ total_sum += constraint_coefficients[265] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i2_j1/n0.
+ value = (keccak_keccak_sum_parities1_0 + diluted_pool_column_row_expr273
+ - (diluted_pool_column_row_expr382
+ + diluted_pool_column_row_expr383
+ + diluted_pool_column_row_expr383))
+ * domain81.field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[266] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i2_j1/n1.
+ value = (keccak_keccak_sum_parities1_55296 + diluted_pool_column_row_expr384
+ - (diluted_pool_column_row_expr385
+ + diluted_pool_column_row_expr386
+ + diluted_pool_column_row_expr386))
+ .field_div(&NonZeroFelt::try_from(domain109)?);
+ total_sum += constraint_coefficients[267] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i2_j2/n0.
+ value = (keccak_keccak_sum_parities2_0 + diluted_pool_column_row_expr281
+ - (diluted_pool_column_row_expr387
+ + diluted_pool_column_row_expr388
+ + diluted_pool_column_row_expr388))
+ .field_div(&NonZeroFelt::try_from(domain122)?);
+ total_sum += constraint_coefficients[268] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i2_j2/n1.
+ value = (keccak_keccak_sum_parities2_21504 + diluted_pool_column_row_expr389
+ - (diluted_pool_column_row_expr390
+ + diluted_pool_column_row_expr391
+ + diluted_pool_column_row_expr391))
+ * domain93.field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[269] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i2_j3/n0.
+ value = (keccak_keccak_sum_parities3_0 + diluted_pool_column_row_expr289
+ - (diluted_pool_column_row_expr392
+ + diluted_pool_column_row_expr393
+ + diluted_pool_column_row_expr393))
+ * domain96.field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[270] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i2_j3/n1.
+ value = (keccak_keccak_sum_parities3_39936 + diluted_pool_column_row_expr394
+ - (diluted_pool_column_row_expr395
+ + diluted_pool_column_row_expr396
+ + diluted_pool_column_row_expr396))
+ .field_div(&NonZeroFelt::try_from(domain125)?);
+ total_sum += constraint_coefficients[271] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i2_j4/n0.
+ value = (keccak_keccak_sum_parities4_0 + diluted_pool_column_row_expr297
+ - (diluted_pool_column_row_expr397
+ + diluted_pool_column_row_expr398
+ + diluted_pool_column_row_expr398))
+ .field_div(&NonZeroFelt::try_from(domain137)?);
+ total_sum += constraint_coefficients[272] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i2_j4/n1.
+ value = (keccak_keccak_sum_parities4_8 + diluted_pool_column_row_expr399
+ - (diluted_pool_column_row_expr400
+ + diluted_pool_column_row_expr401
+ + diluted_pool_column_row_expr401))
+ .field_div(&NonZeroFelt::try_from(domain137)?);
+ total_sum += constraint_coefficients[273] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i2_j4/n2.
+ value = (keccak_keccak_sum_parities4_16 + diluted_pool_column_row_expr402
+ - (diluted_pool_column_row_expr403
+ + diluted_pool_column_row_expr404
+ + diluted_pool_column_row_expr404))
+ .field_div(&NonZeroFelt::try_from(domain137)?);
+ total_sum += constraint_coefficients[274] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i2_j4/n3.
+ value = (keccak_keccak_sum_parities4_25600 + diluted_pool_column_row_expr405
+ - (diluted_pool_column_row_expr406
+ + diluted_pool_column_row_expr407
+ + diluted_pool_column_row_expr407))
+ * domain139.field_div(&NonZeroFelt::try_from(domain41)?);
+ total_sum += constraint_coefficients[275] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i2_j4/n4.
+ value = (keccak_keccak_sum_parities4_25608 + diluted_pool_column_row_expr408
+ - (diluted_pool_column_row_expr409
+ + diluted_pool_column_row_expr410
+ + diluted_pool_column_row_expr410))
+ * domain139.field_div(&NonZeroFelt::try_from(domain41)?);
+ total_sum += constraint_coefficients[276] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i2_j4/n5.
+ value = (keccak_keccak_sum_parities4_25616 + diluted_pool_column_row_expr411
+ - (diluted_pool_column_row_expr412
+ + diluted_pool_column_row_expr413
+ + diluted_pool_column_row_expr413))
+ * domain139.field_div(&NonZeroFelt::try_from(domain41)?);
+ total_sum += constraint_coefficients[277] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i3_j0/n0.
+ value = (keccak_keccak_sum_parities0_0 + diluted_pool_column_row_expr266
+ - (diluted_pool_column_row_expr414
+ + diluted_pool_column_row_expr415
+ + diluted_pool_column_row_expr415))
+ .field_div(&NonZeroFelt::try_from(domain140)?);
+ total_sum += constraint_coefficients[278] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i3_j0/n1.
+ value = (keccak_keccak_sum_parities0_8 + diluted_pool_column_row_expr416
+ - (diluted_pool_column_row_expr417
+ + diluted_pool_column_row_expr418
+ + diluted_pool_column_row_expr418))
+ .field_div(&NonZeroFelt::try_from(domain140)?);
+ total_sum += constraint_coefficients[279] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i3_j0/n2.
+ value = (keccak_keccak_sum_parities0_16 + diluted_pool_column_row_expr419
+ - (diluted_pool_column_row_expr420
+ + diluted_pool_column_row_expr421
+ + diluted_pool_column_row_expr421))
+ .field_div(&NonZeroFelt::try_from(domain140)?);
+ total_sum += constraint_coefficients[280] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i3_j0/n3.
+ value = (keccak_keccak_sum_parities0_23552 + diluted_pool_column_row_expr422
+ - (diluted_pool_column_row_expr423
+ + diluted_pool_column_row_expr424
+ + diluted_pool_column_row_expr424))
+ * domain141.field_div(&NonZeroFelt::try_from(domain41)?);
+ total_sum += constraint_coefficients[281] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i3_j0/n4.
+ value = (keccak_keccak_sum_parities0_23560 + diluted_pool_column_row_expr425
+ - (diluted_pool_column_row_expr426
+ + diluted_pool_column_row_expr427
+ + diluted_pool_column_row_expr427))
+ * domain141.field_div(&NonZeroFelt::try_from(domain41)?);
+ total_sum += constraint_coefficients[282] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i3_j0/n5.
+ value = (keccak_keccak_sum_parities0_23568 + diluted_pool_column_row_expr428
+ - (diluted_pool_column_row_expr429
+ + diluted_pool_column_row_expr430
+ + diluted_pool_column_row_expr430))
+ * domain141.field_div(&NonZeroFelt::try_from(domain41)?);
+ total_sum += constraint_coefficients[283] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i3_j1/n0.
+ value = (keccak_keccak_sum_parities1_0 + diluted_pool_column_row_expr274
+ - (diluted_pool_column_row_expr431
+ + diluted_pool_column_row_expr432
+ + diluted_pool_column_row_expr432))
+ .field_div(&NonZeroFelt::try_from(domain142)?);
+ total_sum += constraint_coefficients[284] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i3_j1/n1.
+ value = (keccak_keccak_sum_parities1_19456 + diluted_pool_column_row_expr433
+ - (diluted_pool_column_row_expr434
+ + diluted_pool_column_row_expr435
+ + diluted_pool_column_row_expr435))
+ * domain143.field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[285] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i3_j2/n0.
+ value = (keccak_keccak_sum_parities2_0 + diluted_pool_column_row_expr282
+ - (diluted_pool_column_row_expr436
+ + diluted_pool_column_row_expr437
+ + diluted_pool_column_row_expr437))
+ * domain144.field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[286] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i3_j2/n1.
+ value = (keccak_keccak_sum_parities2_50176 + diluted_pool_column_row_expr438
+ - (diluted_pool_column_row_expr439
+ + diluted_pool_column_row_expr440
+ + diluted_pool_column_row_expr440))
+ .field_div(&NonZeroFelt::try_from(domain145)?);
+ total_sum += constraint_coefficients[287] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i3_j3/n0.
+ value = (keccak_keccak_sum_parities3_0 + diluted_pool_column_row_expr290
+ - (diluted_pool_column_row_expr441
+ + diluted_pool_column_row_expr442
+ + diluted_pool_column_row_expr442))
+ * domain93.field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[288] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i3_j3/n1.
+ value = (keccak_keccak_sum_parities3_44032 + diluted_pool_column_row_expr443
+ - (diluted_pool_column_row_expr444
+ + diluted_pool_column_row_expr445
+ + diluted_pool_column_row_expr445))
+ .field_div(&NonZeroFelt::try_from(domain122)?);
+ total_sum += constraint_coefficients[289] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i3_j4/n0.
+ value = (keccak_keccak_sum_parities4_0 + diluted_pool_column_row_expr298
+ - (diluted_pool_column_row_expr446
+ + diluted_pool_column_row_expr447
+ + diluted_pool_column_row_expr447))
+ * domain146.field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[290] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i3_j4/n1.
+ value = (keccak_keccak_sum_parities4_57344 + diluted_pool_column_row_expr448
+ - (diluted_pool_column_row_expr449
+ + diluted_pool_column_row_expr450
+ + diluted_pool_column_row_expr450))
+ .field_div(&NonZeroFelt::try_from(domain147)?);
+ total_sum += constraint_coefficients[291] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i4_j0/n0.
+ value = (keccak_keccak_sum_parities0_0 + diluted_pool_column_row_expr267
+ - (diluted_pool_column_row_expr451
+ + diluted_pool_column_row_expr452
+ + diluted_pool_column_row_expr452))
+ * domain148.field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[292] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i4_j0/n1.
+ value = (keccak_keccak_sum_parities0_47104 + diluted_pool_column_row_expr453
+ - (diluted_pool_column_row_expr454
+ + diluted_pool_column_row_expr455
+ + diluted_pool_column_row_expr455))
+ .field_div(&NonZeroFelt::try_from(domain149)?);
+ total_sum += constraint_coefficients[293] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i4_j1/n0.
+ value = (keccak_keccak_sum_parities1_0 + diluted_pool_column_row_expr275
+ - (diluted_pool_column_row_expr456
+ + diluted_pool_column_row_expr457
+ + diluted_pool_column_row_expr457))
+ * domain131.field_div(&NonZeroFelt::try_from(domain41)?);
+ total_sum += constraint_coefficients[294] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i4_j1/n1.
+ value = (keccak_keccak_sum_parities1_8 + diluted_pool_column_row_expr458
+ - (diluted_pool_column_row_expr459
+ + diluted_pool_column_row_expr460
+ + diluted_pool_column_row_expr460))
+ * domain131.field_div(&NonZeroFelt::try_from(domain41)?);
+ total_sum += constraint_coefficients[295] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i4_j1/n2.
+ value = (keccak_keccak_sum_parities1_16 + diluted_pool_column_row_expr461
+ - (diluted_pool_column_row_expr462
+ + diluted_pool_column_row_expr463
+ + diluted_pool_column_row_expr463))
+ * domain131.field_div(&NonZeroFelt::try_from(domain41)?);
+ total_sum += constraint_coefficients[296] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i4_j1/n3.
+ value = (keccak_keccak_sum_parities1_63488 + diluted_pool_column_row_expr464
+ - (diluted_pool_column_row_expr465
+ + diluted_pool_column_row_expr466
+ + diluted_pool_column_row_expr466))
+ .field_div(&NonZeroFelt::try_from(domain128)?);
+ total_sum += constraint_coefficients[297] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i4_j1/n4.
+ value = (keccak_keccak_sum_parities1_63496 + diluted_pool_column_row_expr467
+ - (diluted_pool_column_row_expr468
+ + diluted_pool_column_row_expr469
+ + diluted_pool_column_row_expr469))
+ .field_div(&NonZeroFelt::try_from(domain128)?);
+ total_sum += constraint_coefficients[298] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i4_j1/n5.
+ value = (keccak_keccak_sum_parities1_63504 + diluted_pool_column_row_expr470
+ - (diluted_pool_column_row_expr471
+ + diluted_pool_column_row_expr472
+ + diluted_pool_column_row_expr472))
+ .field_div(&NonZeroFelt::try_from(domain128)?);
+ total_sum += constraint_coefficients[299] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i4_j2/n0.
+ value = (keccak_keccak_sum_parities2_0 + diluted_pool_column_row_expr283
+ - (diluted_pool_column_row_expr473
+ + diluted_pool_column_row_expr474
+ + diluted_pool_column_row_expr474))
+ .field_div(&NonZeroFelt::try_from(domain135)?);
+ total_sum += constraint_coefficients[300] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i4_j2/n1.
+ value = (keccak_keccak_sum_parities2_3072 + diluted_pool_column_row_expr475
+ - (diluted_pool_column_row_expr476
+ + diluted_pool_column_row_expr477
+ + diluted_pool_column_row_expr477))
+ * domain134.field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[301] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i4_j3/n0.
+ value = (keccak_keccak_sum_parities3_0 + diluted_pool_column_row_expr291
+ - (diluted_pool_column_row_expr478
+ + diluted_pool_column_row_expr479
+ + diluted_pool_column_row_expr479))
+ .field_div(&NonZeroFelt::try_from(domain147)?);
+ total_sum += constraint_coefficients[302] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i4_j3/n1.
+ value = (keccak_keccak_sum_parities3_8192 + diluted_pool_column_row_expr480
+ - (diluted_pool_column_row_expr481
+ + diluted_pool_column_row_expr482
+ + diluted_pool_column_row_expr482))
+ * domain146.field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[303] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i4_j4/n0.
+ value = (keccak_keccak_sum_parities4_0 + diluted_pool_column_row_expr299
+ - (diluted_pool_column_row_expr483
+ + diluted_pool_column_row_expr484
+ + diluted_pool_column_row_expr484))
+ * domain150.field_div(&NonZeroFelt::try_from(domain42)?);
+ total_sum += constraint_coefficients[304] * value;
+
+ // Constraint: keccak/keccak/theta_rho_pi_i4_j4/n1.
+ value = (keccak_keccak_sum_parities4_51200 + diluted_pool_column_row_expr485
+ - (diluted_pool_column_row_expr486
+ + diluted_pool_column_row_expr487
+ + diluted_pool_column_row_expr487))
+ .field_div(&NonZeroFelt::try_from(domain151)?);
+ total_sum += constraint_coefficients[305] * value;
+
+ // Constraint: keccak/keccak/chi_iota0.
+ value = (global_values.keccak_keccak_keccak_round_key0
+ + diluted_pool_column_row_expr318
+ + diluted_pool_column_row_expr318
+ + keccak_keccak_after_theta_rho_pi_xor_one_32
+ + diluted_pool_column_row_expr390
+ - (diluted_pool_column_row_expr488
+ + diluted_pool_column_row_expr489
+ + diluted_pool_column_row_expr489
+ + diluted_pool_column_row_expr490 * FELT_4))
+ .field_div(&NonZeroFelt::try_from(domain50)?);
+ total_sum += constraint_coefficients[306] * value;
+
+ // Constraint: keccak/keccak/chi_iota1.
+ value = (global_values.keccak_keccak_keccak_round_key1
+ + diluted_pool_column_row_expr491
+ + diluted_pool_column_row_expr491
+ + keccak_keccak_after_theta_rho_pi_xor_one_1056
+ + diluted_pool_column_row_expr492
+ - (diluted_pool_column_row_expr493
+ + diluted_pool_column_row_expr494
+ + diluted_pool_column_row_expr494
+ + diluted_pool_column_row_expr495 * FELT_4))
+ .field_div(&NonZeroFelt::try_from(domain50)?);
+ total_sum += constraint_coefficients[307] * value;
+
+ // Constraint: keccak/keccak/chi_iota3.
+ value = (global_values.keccak_keccak_keccak_round_key3
+ + diluted_pool_column_row_expr496
+ + diluted_pool_column_row_expr496
+ + keccak_keccak_after_theta_rho_pi_xor_one_3104
+ + diluted_pool_column_row_expr497
+ - (diluted_pool_column_row_expr498
+ + diluted_pool_column_row_expr499
+ + diluted_pool_column_row_expr499
+ + diluted_pool_column_row_expr500 * FELT_4))
+ .field_div(&NonZeroFelt::try_from(domain50)?);
+ total_sum += constraint_coefficients[308] * value;
+
+ // Constraint: keccak/keccak/chi_iota7.
+ value = (global_values.keccak_keccak_keccak_round_key7
+ + diluted_pool_column_row_expr501
+ + diluted_pool_column_row_expr501
+ + keccak_keccak_after_theta_rho_pi_xor_one_7200
+ + diluted_pool_column_row_expr502
+ - (diluted_pool_column_row_expr503
+ + diluted_pool_column_row_expr504
+ + diluted_pool_column_row_expr504
+ + diluted_pool_column_row_expr505 * FELT_4))
+ .field_div(&NonZeroFelt::try_from(domain50)?);
+ total_sum += constraint_coefficients[309] * value;
+
+ // Constraint: keccak/keccak/chi_iota15.
+ value = (global_values.keccak_keccak_keccak_round_key15
+ + diluted_pool_column_row_expr506
+ + diluted_pool_column_row_expr506
+ + keccak_keccak_after_theta_rho_pi_xor_one_15392
+ + diluted_pool_column_row_expr507
+ - (diluted_pool_column_row_expr508
+ + diluted_pool_column_row_expr509
+ + diluted_pool_column_row_expr509
+ + diluted_pool_column_row_expr510 * FELT_4))
+ .field_div(&NonZeroFelt::try_from(domain50)?);
+ total_sum += constraint_coefficients[310] * value;
+
+ // Constraint: keccak/keccak/chi_iota31.
+ value = (global_values.keccak_keccak_keccak_round_key31
+ + diluted_pool_column_row_expr511
+ + diluted_pool_column_row_expr511
+ + keccak_keccak_after_theta_rho_pi_xor_one_31776
+ + diluted_pool_column_row_expr512
+ - (diluted_pool_column_row_expr513
+ + diluted_pool_column_row_expr514
+ + diluted_pool_column_row_expr514
+ + diluted_pool_column_row_expr515 * FELT_4))
+ .field_div(&NonZeroFelt::try_from(domain50)?);
+ total_sum += constraint_coefficients[311] * value;
+
+ // Constraint: keccak/keccak/chi_iota63.
+ value = (global_values.keccak_keccak_keccak_round_key63
+ + diluted_pool_column_row_expr516
+ + diluted_pool_column_row_expr516
+ + keccak_keccak_after_theta_rho_pi_xor_one_64544
+ + diluted_pool_column_row_expr517
+ - (diluted_pool_column_row_expr518
+ + diluted_pool_column_row_expr519
+ + diluted_pool_column_row_expr519
+ + diluted_pool_column_row_expr520 * FELT_4))
+ .field_div(&NonZeroFelt::try_from(domain50)?);
+ total_sum += constraint_coefficients[312] * value;
+
+ // Constraint: keccak/keccak/chi0.
+ value = (diluted_pool_column_row_expr318
+ + diluted_pool_column_row_expr318
+ + keccak_keccak_after_theta_rho_pi_xor_one_32
+ + diluted_pool_column_row_expr390
+ - (diluted_pool_column_row_expr488
+ + diluted_pool_column_row_expr489
+ + diluted_pool_column_row_expr489
+ + diluted_pool_column_row_expr490 * FELT_4))
+ * domain152.field_div(&NonZeroFelt::try_from(domain44)?);
+ total_sum += constraint_coefficients[313] * value;
+
+ // Constraint: keccak/keccak/chi1.
+ value = (diluted_pool_column_row_expr486
+ + diluted_pool_column_row_expr486
+ + keccak_keccak_after_theta_rho_pi_xor_one_0
+ + diluted_pool_column_row_expr348
+ - (diluted_pool_column_row_expr521
+ + diluted_pool_column_row_expr522
+ + diluted_pool_column_row_expr522
+ + diluted_pool_column_row_expr523 * FELT_4))
+ .field_div(&NonZeroFelt::try_from(domain43)?);
+ total_sum += constraint_coefficients[314] * value;
+
+ // Constraint: keccak/keccak/chi2.
+ value = (diluted_pool_column_row_expr444
+ + diluted_pool_column_row_expr444
+ + keccak_keccak_after_theta_rho_pi_xor_one_128
+ + diluted_pool_column_row_expr318
+ - (diluted_pool_column_row_expr524
+ + diluted_pool_column_row_expr525
+ + diluted_pool_column_row_expr525
+ + diluted_pool_column_row_expr526 * FELT_4))
+ .field_div(&NonZeroFelt::try_from(domain43)?);
+ total_sum += constraint_coefficients[315] * value;
+ }
+ if uses_poseidon_builtin != 0 {
+ // Constraint: poseidon/param_0/init_input_output_addr.
+ value = (mem_pool_addr_column_row_expr527 - global_values.initial_poseidon_addr)
+ .field_div(&NonZeroFelt::try_from(domain176)?);
+ total_sum += constraint_coefficients[316] * value;
+
+ // Constraint: poseidon/param_0/addr_input_output_step.
+ value = (mem_pool_addr_column_row_expr528 - (mem_pool_addr_column_row_expr527 + FELT_3))
+ * domain177.field_div(&NonZeroFelt::try_from(domain169)?);
+ total_sum += constraint_coefficients[317] * value;
+
+ // Constraint: poseidon/param_1/init_input_output_addr.
+ value = (mem_pool_addr_column_row_expr529 - (global_values.initial_poseidon_addr + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain176)?);
+ total_sum += constraint_coefficients[318] * value;
+
+ // Constraint: poseidon/param_1/addr_input_output_step.
+ value = (mem_pool_addr_column_row_expr530 - (mem_pool_addr_column_row_expr529 + FELT_3))
+ * domain177.field_div(&NonZeroFelt::try_from(domain169)?);
+ total_sum += constraint_coefficients[319] * value;
+
+ // Constraint: poseidon/param_2/init_input_output_addr.
+ value = (mem_pool_addr_column_row_expr531 - (global_values.initial_poseidon_addr + FELT_2))
+ .field_div(&NonZeroFelt::try_from(domain176)?);
+ total_sum += constraint_coefficients[320] * value;
+
+ // Constraint: poseidon/param_2/addr_input_output_step.
+ value = (mem_pool_addr_column_row_expr532 - (mem_pool_addr_column_row_expr531 + FELT_3))
+ * domain177.field_div(&NonZeroFelt::try_from(domain169)?);
+ total_sum += constraint_coefficients[321] * value;
+
+ // Constraint: poseidon/poseidon/full_rounds_state0_squaring.
+ value = (poseidon_poseidon_full_rounds_state0_column_row_expr533
+ * poseidon_poseidon_full_rounds_state0_column_row_expr533
+ - poseidon_poseidon_full_rounds_state0_squared_column_row_expr534)
+ .field_div(&NonZeroFelt::try_from(domain168)?);
+ total_sum += constraint_coefficients[322] * value;
+
+ // Constraint: poseidon/poseidon/full_rounds_state1_squaring.
+ value = (poseidon_poseidon_full_rounds_state1_column_row_expr535
+ * poseidon_poseidon_full_rounds_state1_column_row_expr535
+ - poseidon_poseidon_full_rounds_state1_squared_column_row_expr536)
+ .field_div(&NonZeroFelt::try_from(domain168)?);
+ total_sum += constraint_coefficients[323] * value;
+
+ // Constraint: poseidon/poseidon/full_rounds_state2_squaring.
+ value = (poseidon_poseidon_full_rounds_state2_column_row_expr537
+ * poseidon_poseidon_full_rounds_state2_column_row_expr537
+ - poseidon_poseidon_full_rounds_state2_squared_column_row_expr538)
+ .field_div(&NonZeroFelt::try_from(domain168)?);
+ total_sum += constraint_coefficients[324] * value;
+
+ // Constraint: poseidon/poseidon/partial_rounds_state0_squaring.
+ value = (poseidon_poseidon_partial_rounds_state0_column_row_expr539
+ * poseidon_poseidon_partial_rounds_state0_column_row_expr539
+ - poseidon_poseidon_partial_rounds_state0_squared_column_row_expr540)
+ .field_div(&NonZeroFelt::try_from(domain166)?);
+ total_sum += constraint_coefficients[325] * value;
+
+ // Constraint: poseidon/poseidon/partial_rounds_state1_squaring.
+ value = (poseidon_poseidon_partial_rounds_state1_column_row_expr541
+ * poseidon_poseidon_partial_rounds_state1_column_row_expr541
+ - poseidon_poseidon_partial_rounds_state1_squared_column_row_expr542)
+ * domain172.field_div(&NonZeroFelt::try_from(domain167)?);
+ total_sum += constraint_coefficients[326] * value;
+
+ // Constraint: poseidon/poseidon/add_first_round_key0.
+ value = (mem_pool_value_column_row_expr543
+ + FELT_2950795762459345168613727575620414179244544320470208355568817838579231751791
+ - poseidon_poseidon_full_rounds_state0_column_row_expr533)
+ .field_div(&NonZeroFelt::try_from(domain173)?);
+ total_sum += constraint_coefficients[327] * value;
+
+ // Constraint: poseidon/poseidon/add_first_round_key1.
+ value = (mem_pool_value_column_row_expr544
+ + FELT_1587446564224215276866294500450702039420286416111469274423465069420553242820
+ - poseidon_poseidon_full_rounds_state1_column_row_expr535)
+ .field_div(&NonZeroFelt::try_from(domain173)?);
+ total_sum += constraint_coefficients[328] * value;
+
+ // Constraint: poseidon/poseidon/add_first_round_key2.
+ value = (mem_pool_value_column_row_expr545
+ + FELT_1645965921169490687904413452218868659025437693527479459426157555728339600137
+ - poseidon_poseidon_full_rounds_state2_column_row_expr537)
+ .field_div(&NonZeroFelt::try_from(domain173)?);
+ total_sum += constraint_coefficients[329] * value;
+
+ // Constraint: poseidon/poseidon/full_round0.
+ value = (poseidon_poseidon_full_rounds_state0_column_row_expr546
+ - (poseidon_poseidon_full_rounds_state0_cubed_0
+ + poseidon_poseidon_full_rounds_state0_cubed_0
+ + poseidon_poseidon_full_rounds_state0_cubed_0
+ + poseidon_poseidon_full_rounds_state1_cubed_0
+ + poseidon_poseidon_full_rounds_state2_cubed_0
+ + global_values.poseidon_poseidon_full_round_key0))
+ * domain170.field_div(&NonZeroFelt::try_from(domain168)?);
+ total_sum += constraint_coefficients[330] * value;
+
+ // Constraint: poseidon/poseidon/full_round1.
+ value = (poseidon_poseidon_full_rounds_state1_column_row_expr547
+ + poseidon_poseidon_full_rounds_state1_cubed_0
+ - (poseidon_poseidon_full_rounds_state0_cubed_0
+ + poseidon_poseidon_full_rounds_state2_cubed_0
+ + global_values.poseidon_poseidon_full_round_key1))
+ * domain170.field_div(&NonZeroFelt::try_from(domain168)?);
+ total_sum += constraint_coefficients[331] * value;
+
+ // Constraint: poseidon/poseidon/full_round2.
+ value = (poseidon_poseidon_full_rounds_state2_column_row_expr548
+ + poseidon_poseidon_full_rounds_state2_cubed_0
+ + poseidon_poseidon_full_rounds_state2_cubed_0
+ - (poseidon_poseidon_full_rounds_state0_cubed_0
+ + poseidon_poseidon_full_rounds_state1_cubed_0
+ + global_values.poseidon_poseidon_full_round_key2))
+ * domain170.field_div(&NonZeroFelt::try_from(domain168)?);
+ total_sum += constraint_coefficients[332] * value;
+
+ // Constraint: poseidon/poseidon/last_full_round0.
+ value = (mem_pool_value_column_row_expr549
+ - (poseidon_poseidon_full_rounds_state0_cubed_7
+ + poseidon_poseidon_full_rounds_state0_cubed_7
+ + poseidon_poseidon_full_rounds_state0_cubed_7
+ + poseidon_poseidon_full_rounds_state1_cubed_7
+ + poseidon_poseidon_full_rounds_state2_cubed_7))
+ .field_div(&NonZeroFelt::try_from(domain173)?);
+ total_sum += constraint_coefficients[333] * value;
+
+ // Constraint: poseidon/poseidon/last_full_round1.
+ value = (mem_pool_value_column_row_expr550 + poseidon_poseidon_full_rounds_state1_cubed_7
+ - (poseidon_poseidon_full_rounds_state0_cubed_7
+ + poseidon_poseidon_full_rounds_state2_cubed_7))
+ .field_div(&NonZeroFelt::try_from(domain173)?);
+ total_sum += constraint_coefficients[334] * value;
+
+ // Constraint: poseidon/poseidon/last_full_round2.
+ value = (mem_pool_value_column_row_expr551
+ + poseidon_poseidon_full_rounds_state2_cubed_7
+ + poseidon_poseidon_full_rounds_state2_cubed_7
+ - (poseidon_poseidon_full_rounds_state0_cubed_7
+ + poseidon_poseidon_full_rounds_state1_cubed_7))
+ .field_div(&NonZeroFelt::try_from(domain173)?);
+ total_sum += constraint_coefficients[335] * value;
+
+ // Constraint: poseidon/poseidon/copy_partial_rounds0_i0.
+ value = (poseidon_poseidon_partial_rounds_state0_column_row_expr552
+ - poseidon_poseidon_partial_rounds_state1_column_row_expr541)
+ .field_div(&NonZeroFelt::try_from(domain173)?);
+ total_sum += constraint_coefficients[336] * value;
+
+ // Constraint: poseidon/poseidon/copy_partial_rounds0_i1.
+ value = (poseidon_poseidon_partial_rounds_state0_column_row_expr553
+ - poseidon_poseidon_partial_rounds_state1_column_row_expr554)
+ .field_div(&NonZeroFelt::try_from(domain173)?);
+ total_sum += constraint_coefficients[337] * value;
+
+ // Constraint: poseidon/poseidon/copy_partial_rounds0_i2.
+ value = (poseidon_poseidon_partial_rounds_state0_column_row_expr555
+ - poseidon_poseidon_partial_rounds_state1_column_row_expr556)
+ .field_div(&NonZeroFelt::try_from(domain173)?);
+ total_sum += constraint_coefficients[338] * value;
+
+ // Constraint: poseidon/poseidon/margin_full_to_partial0.
+ value = (poseidon_poseidon_partial_rounds_state0_column_row_expr539
+ + poseidon_poseidon_full_rounds_state2_cubed_3
+ + poseidon_poseidon_full_rounds_state2_cubed_3
+ - (poseidon_poseidon_full_rounds_state0_cubed_3
+ + poseidon_poseidon_full_rounds_state1_cubed_3
+ + FELT_2121140748740143694053732746913428481442990369183417228688865837805149503386))
+ .field_div(&NonZeroFelt::try_from(domain173)?);
+ total_sum += constraint_coefficients[339] * value;
+
+ // Constraint: poseidon/poseidon/margin_full_to_partial1.
+ value = (poseidon_poseidon_partial_rounds_state0_column_row_expr557
+ - (FELT_3618502788666131213697322783095070105623107215331596699973092056135872020477
+ * poseidon_poseidon_full_rounds_state1_cubed_3
+ + FELT_10 * poseidon_poseidon_full_rounds_state2_cubed_3
+ + FELT_4 * poseidon_poseidon_partial_rounds_state0_column_row_expr539
+ + FELT_3618502788666131213697322783095070105623107215331596699973092056135872020479
+ * poseidon_poseidon_partial_rounds_state0_cubed_0
+ + FELT_2006642341318481906727563724340978325665491359415674592697055778067937914672))
+ .field_div(&NonZeroFelt::try_from(domain173)?);
+ total_sum += constraint_coefficients[340] * value;
+
+ // Constraint: poseidon/poseidon/margin_full_to_partial2.
+ value = (poseidon_poseidon_partial_rounds_state0_column_row_expr558
+ - (FELT_8 * poseidon_poseidon_full_rounds_state2_cubed_3
+ + FELT_4 * poseidon_poseidon_partial_rounds_state0_column_row_expr539
+ + FELT_6 * poseidon_poseidon_partial_rounds_state0_cubed_0
+ + poseidon_poseidon_partial_rounds_state0_column_row_expr557
+ + poseidon_poseidon_partial_rounds_state0_column_row_expr557
+ + FELT_3618502788666131213697322783095070105623107215331596699973092056135872020479
+ * poseidon_poseidon_partial_rounds_state0_cubed_1
+ + FELT_427751140904099001132521606468025610873158555767197326325930641757709538586))
+ .field_div(&NonZeroFelt::try_from(domain173)?);
+ total_sum += constraint_coefficients[341] * value;
+
+ // Constraint: poseidon/poseidon/partial_round0.
+ value = (poseidon_poseidon_partial_rounds_state0_column_row_expr559
+ - (FELT_8 * poseidon_poseidon_partial_rounds_state0_cubed_0
+ + FELT_4 * poseidon_poseidon_partial_rounds_state0_column_row_expr557
+ + FELT_6 * poseidon_poseidon_partial_rounds_state0_cubed_1
+ + poseidon_poseidon_partial_rounds_state0_column_row_expr558
+ + poseidon_poseidon_partial_rounds_state0_column_row_expr558
+ + FELT_3618502788666131213697322783095070105623107215331596699973092056135872020479
+ * poseidon_poseidon_partial_rounds_state0_cubed_2
+ + global_values.poseidon_poseidon_partial_round_key0))
+ * domain174.field_div(&NonZeroFelt::try_from(domain166)?);
+ total_sum += constraint_coefficients[342] * value;
+
+ // Constraint: poseidon/poseidon/partial_round1.
+ value = (poseidon_poseidon_partial_rounds_state1_column_row_expr560
+ - (FELT_8 * poseidon_poseidon_partial_rounds_state1_cubed_0
+ + FELT_4 * poseidon_poseidon_partial_rounds_state1_column_row_expr554
+ + FELT_6 * poseidon_poseidon_partial_rounds_state1_cubed_1
+ + poseidon_poseidon_partial_rounds_state1_column_row_expr556
+ + poseidon_poseidon_partial_rounds_state1_column_row_expr556
+ + FELT_3618502788666131213697322783095070105623107215331596699973092056135872020479
+ * poseidon_poseidon_partial_rounds_state1_cubed_2
+ + global_values.poseidon_poseidon_partial_round_key1))
+ * domain175.field_div(&NonZeroFelt::try_from(domain167)?);
+ total_sum += constraint_coefficients[343] * value;
+
+ // Constraint: poseidon/poseidon/margin_partial_to_full0.
+ value = (poseidon_poseidon_full_rounds_state0_column_row_expr561
+ - (FELT_16 * poseidon_poseidon_partial_rounds_state1_cubed_19
+ + FELT_8 * poseidon_poseidon_partial_rounds_state1_column_row_expr562
+ + FELT_16 * poseidon_poseidon_partial_rounds_state1_cubed_20
+ + FELT_6 * poseidon_poseidon_partial_rounds_state1_column_row_expr563
+ + poseidon_poseidon_partial_rounds_state1_cubed_21
+ + FELT_560279373700919169769089400651532183647886248799764942664266404650165812023))
+ .field_div(&NonZeroFelt::try_from(domain173)?);
+ total_sum += constraint_coefficients[344] * value;
+
+ // Constraint: poseidon/poseidon/margin_partial_to_full1.
+ value = (poseidon_poseidon_full_rounds_state1_column_row_expr564
+ - (FELT_4 * poseidon_poseidon_partial_rounds_state1_cubed_20
+ + poseidon_poseidon_partial_rounds_state1_column_row_expr563
+ + poseidon_poseidon_partial_rounds_state1_column_row_expr563
+ + poseidon_poseidon_partial_rounds_state1_cubed_21
+ + FELT_1401754474293352309994371631695783042590401941592571735921592823982231996415))
+ .field_div(&NonZeroFelt::try_from(domain173)?);
+ total_sum += constraint_coefficients[345] * value;
+
+ // Constraint: poseidon/poseidon/margin_partial_to_full2.
+ value = (poseidon_poseidon_full_rounds_state2_column_row_expr565
+ - (FELT_8 * poseidon_poseidon_partial_rounds_state1_cubed_19
+ + FELT_4 * poseidon_poseidon_partial_rounds_state1_column_row_expr562
+ + FELT_6 * poseidon_poseidon_partial_rounds_state1_cubed_20
+ + poseidon_poseidon_partial_rounds_state1_column_row_expr563
+ + poseidon_poseidon_partial_rounds_state1_column_row_expr563
+ + FELT_3618502788666131213697322783095070105623107215331596699973092056135872020479
+ * poseidon_poseidon_partial_rounds_state1_cubed_21
+ + FELT_1246177936547655338400308396717835700699368047388302793172818304164989556526))
+ .field_div(&NonZeroFelt::try_from(domain173)?);
+ total_sum += constraint_coefficients[346] * value;
+ }
+ if uses_range_check96_builtin != 0 {
+ // Constraint: range_check96_builtin/value.
+ value = (range_check96_builtin_value5_0 - mem_pool_value_column_row_expr566)
+ .field_div(&NonZeroFelt::try_from(domain178)?);
+ total_sum += constraint_coefficients[347] * value;
+
+ // Constraint: range_check96_builtin/addr_step.
+ value = (mem_pool_addr_column_row_expr567 - (mem_pool_addr_column_row_expr568 + FELT_1))
+ * domain179.field_div(&NonZeroFelt::try_from(domain178)?);
+ total_sum += constraint_coefficients[348] * value;
+
+ // Constraint: range_check96_builtin/init_addr.
+ value = (mem_pool_addr_column_row_expr568 - global_values.initial_range_check96_addr)
+ .field_div(&NonZeroFelt::try_from(domain180)?);
+ total_sum += constraint_coefficients[349] * value;
+ }
+ if uses_add_mod_builtin != 0 {
+ // Constraint: add_mod/init_p0_address.
+ value = (mem_pool_addr_column_row_expr569 - global_values.add_mod_initial_mod_addr)
+ .field_div(&NonZeroFelt::try_from(domain13)?);
+ total_sum += constraint_coefficients[350] * value;
+
+ // Constraint: add_mod/step_p1_addr.
+ value = (mem_pool_addr_column_row_expr570 - (mem_pool_addr_column_row_expr569 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[351] * value;
+
+ // Constraint: add_mod/step_p2_addr.
+ value = (mem_pool_addr_column_row_expr571 - (mem_pool_addr_column_row_expr570 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[352] * value;
+
+ // Constraint: add_mod/step_p3_addr.
+ value = (mem_pool_addr_column_row_expr572 - (mem_pool_addr_column_row_expr571 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[353] * value;
+
+ // Constraint: add_mod/step_values_ptr_addr.
+ value = (mem_pool_addr_column_row_expr573 - (mem_pool_addr_column_row_expr572 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[354] * value;
+
+ // Constraint: add_mod/step_offsets_ptr_addr.
+ value = (mem_pool_addr_column_row_expr574 - (mem_pool_addr_column_row_expr573 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[355] * value;
+
+ // Constraint: add_mod/step_n_addr.
+ value = (mem_pool_addr_column_row_expr575 - (mem_pool_addr_column_row_expr574 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[356] * value;
+
+ // Constraint: add_mod/step_p0_addr.
+ value = (mem_pool_addr_column_row_expr576 - (mem_pool_addr_column_row_expr575 + FELT_1))
+ * domain14.field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[357] * value;
+
+ // Constraint: add_mod/step_p0_value.
+ value = ((mem_pool_value_column_row_expr577 - mem_pool_value_column_row_expr578)
+ * (mem_pool_value_column_row_expr579 - 1))
+ * domain14.field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[358] * value;
+
+ // Constraint: add_mod/step_p1_value.
+ value = ((mem_pool_value_column_row_expr580 - mem_pool_value_column_row_expr581)
+ * (mem_pool_value_column_row_expr579 - 1))
+ * domain14.field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[359] * value;
+
+ // Constraint: add_mod/step_p2_value.
+ value = ((mem_pool_value_column_row_expr582 - mem_pool_value_column_row_expr583)
+ * (mem_pool_value_column_row_expr579 - 1))
+ * domain14.field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[360] * value;
+
+ // Constraint: add_mod/step_p3_value.
+ value = ((mem_pool_value_column_row_expr584 - mem_pool_value_column_row_expr585)
+ * (mem_pool_value_column_row_expr579 - 1))
+ * domain14.field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[361] * value;
+
+ // Constraint: add_mod/step_values_ptr_value.
+ value = ((mem_pool_value_column_row_expr586 - mem_pool_value_column_row_expr587)
+ * (mem_pool_value_column_row_expr579 - 1))
+ * domain14.field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[362] * value;
+
+ // Constraint: add_mod/step_offsets_ptr_value.
+ value = ((mem_pool_value_column_row_expr588
+ - (mem_pool_value_column_row_expr589 + FELT_3))
+ * (mem_pool_value_column_row_expr579 - 1))
+ * domain14.field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[363] * value;
+
+ // Constraint: add_mod/step_n_value.
+ value = ((mem_pool_value_column_row_expr590 + FELT_1 - mem_pool_value_column_row_expr579)
+ * (mem_pool_value_column_row_expr579 - 1))
+ * domain14.field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[364] * value;
+
+ // Constraint: add_mod/a_offset0.
+ value = (mem_pool_addr_column_row_expr591 - mem_pool_value_column_row_expr589)
+ .field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[365] * value;
+
+ // Constraint: add_mod/b_offset.
+ value = (mem_pool_addr_column_row_expr592 - (mem_pool_addr_column_row_expr591 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[366] * value;
+
+ // Constraint: add_mod/c_offset.
+ value = (mem_pool_addr_column_row_expr593 - (mem_pool_addr_column_row_expr592 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[367] * value;
+
+ // Constraint: add_mod/a0_value_ind0.
+ value = (mem_pool_addr_column_row_expr594
+ - (mem_pool_value_column_row_expr595 + mem_pool_value_column_row_expr587))
+ .field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[368] * value;
+
+ // Constraint: add_mod/a1_value.
+ value = (mem_pool_addr_column_row_expr596 - (mem_pool_addr_column_row_expr594 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[369] * value;
+
+ // Constraint: add_mod/a2_value.
+ value = (mem_pool_addr_column_row_expr597 - (mem_pool_addr_column_row_expr596 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[370] * value;
+
+ // Constraint: add_mod/a3_value.
+ value = (mem_pool_addr_column_row_expr598 - (mem_pool_addr_column_row_expr597 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[371] * value;
+
+ // Constraint: add_mod/b0_value_ind0.
+ value = (mem_pool_addr_column_row_expr599
+ - (mem_pool_value_column_row_expr600 + mem_pool_value_column_row_expr587))
+ .field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[372] * value;
+
+ // Constraint: add_mod/b1_value.
+ value = (mem_pool_addr_column_row_expr601 - (mem_pool_addr_column_row_expr599 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[373] * value;
+
+ // Constraint: add_mod/b2_value.
+ value = (mem_pool_addr_column_row_expr602 - (mem_pool_addr_column_row_expr601 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[374] * value;
+
+ // Constraint: add_mod/b3_value.
+ value = (mem_pool_addr_column_row_expr603 - (mem_pool_addr_column_row_expr602 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[375] * value;
+
+ // Constraint: add_mod/c0_value_ind0.
+ value = (mem_pool_addr_column_row_expr604
+ - (mem_pool_value_column_row_expr605 + mem_pool_value_column_row_expr587))
+ .field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[376] * value;
+
+ // Constraint: add_mod/c1_value.
+ value = (mem_pool_addr_column_row_expr606 - (mem_pool_addr_column_row_expr604 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[377] * value;
+
+ // Constraint: add_mod/c2_value.
+ value = (mem_pool_addr_column_row_expr607 - (mem_pool_addr_column_row_expr606 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[378] * value;
+
+ // Constraint: add_mod/c3_value.
+ value = (mem_pool_addr_column_row_expr608 - (mem_pool_addr_column_row_expr607 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[379] * value;
+
+ // Constraint: add_mod/sub_p_bit.
+ value = (add_mod_sub_p_bit_column_row_expr609 * (add_mod_sub_p_bit_column_row_expr609 - 1))
+ .field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[380] * value;
+
+ // Constraint: add_mod/carry1_bit.
+ value = (add_mod_carry1_bit_column_row_expr610
+ * (add_mod_carry1_bit_column_row_expr610 - 1))
+ .field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[381] * value;
+
+ // Constraint: add_mod/carry1_sign.
+ value = (add_mod_carry1_sign_column_row_expr611 * add_mod_carry1_sign_column_row_expr611
+ - 1)
+ .field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[382] * value;
+
+ // Constraint: add_mod/carry2_bit.
+ value = (add_mod_carry2_bit_column_row_expr612
+ * (add_mod_carry2_bit_column_row_expr612 - 1))
+ .field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[383] * value;
+
+ // Constraint: add_mod/carry2_sign.
+ value = (add_mod_carry2_sign_column_row_expr613 * add_mod_carry2_sign_column_row_expr613
+ - 1)
+ .field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[384] * value;
+
+ // Constraint: add_mod/carry3_bit.
+ value = (add_mod_carry3_bit_column_row_expr614
+ * (add_mod_carry3_bit_column_row_expr614 - 1))
+ .field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[385] * value;
+
+ // Constraint: add_mod/carry3_sign.
+ value = (add_mod_carry3_sign_column_row_expr615 * add_mod_carry3_sign_column_row_expr615
+ - 1)
+ .field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[386] * value;
+
+ // Constraint: add_mod/addition_constraint_0.
+ value = ((mem_pool_value_column_row_expr616
+ + (mem_pool_value_column_row_expr617
+ + mem_pool_value_column_row_expr618 * global_values.add_mod_interaction_elm)
+ * global_values.add_mod_interaction_elm)
+ * global_values.add_mod_interaction_elm
+ + mem_pool_value_column_row_expr619
+ + (mem_pool_value_column_row_expr620
+ + (mem_pool_value_column_row_expr621
+ + mem_pool_value_column_row_expr622 * global_values.add_mod_interaction_elm)
+ * global_values.add_mod_interaction_elm)
+ * global_values.add_mod_interaction_elm
+ + mem_pool_value_column_row_expr623
+ + ((add_mod_carry2_bit_column_row_expr612 * add_mod_carry2_sign_column_row_expr613
+ + add_mod_carry3_bit_column_row_expr614
+ * add_mod_carry3_sign_column_row_expr615
+ * global_values.add_mod_interaction_elm)
+ * global_values.add_mod_interaction_elm
+ + add_mod_carry1_bit_column_row_expr610 * add_mod_carry1_sign_column_row_expr611)
+ * (global_values.add_mod_interaction_elm - FELT_79228162514264337593543950336)
+ - ((mem_pool_value_column_row_expr624
+ + (mem_pool_value_column_row_expr625
+ + mem_pool_value_column_row_expr626 * global_values.add_mod_interaction_elm)
+ * global_values.add_mod_interaction_elm)
+ * global_values.add_mod_interaction_elm
+ + mem_pool_value_column_row_expr627
+ + ((mem_pool_value_column_row_expr581
+ + (mem_pool_value_column_row_expr583
+ + mem_pool_value_column_row_expr585
+ * global_values.add_mod_interaction_elm)
+ * global_values.add_mod_interaction_elm)
+ * global_values.add_mod_interaction_elm
+ + mem_pool_value_column_row_expr578)
+ * add_mod_sub_p_bit_column_row_expr609))
+ .field_div(&NonZeroFelt::try_from(domain12)?);
+ total_sum += constraint_coefficients[387] * value;
+ }
+ if uses_mul_mod_builtin != 0 {
+ // Constraint: mul_mod/init_p0_address.
+ value = (mem_pool_addr_column_row_expr628 - global_values.mul_mod_initial_mod_addr)
+ .field_div(&NonZeroFelt::try_from(domain156)?);
+ total_sum += constraint_coefficients[388] * value;
+
+ // Constraint: mul_mod/step_p1_addr.
+ value = (mem_pool_addr_column_row_expr629 - (mem_pool_addr_column_row_expr628 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain155)?);
+ total_sum += constraint_coefficients[389] * value;
+
+ // Constraint: mul_mod/step_p2_addr.
+ value = (mem_pool_addr_column_row_expr630 - (mem_pool_addr_column_row_expr629 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain155)?);
+ total_sum += constraint_coefficients[390] * value;
+
+ // Constraint: mul_mod/step_p3_addr.
+ value = (mem_pool_addr_column_row_expr631 - (mem_pool_addr_column_row_expr630 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain155)?);
+ total_sum += constraint_coefficients[391] * value;
+
+ // Constraint: mul_mod/step_values_ptr_addr.
+ value = (mem_pool_addr_column_row_expr632 - (mem_pool_addr_column_row_expr631 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain155)?);
+ total_sum += constraint_coefficients[392] * value;
+
+ // Constraint: mul_mod/step_offsets_ptr_addr.
+ value = (mem_pool_addr_column_row_expr633 - (mem_pool_addr_column_row_expr632 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain155)?);
+ total_sum += constraint_coefficients[393] * value;
+
+ // Constraint: mul_mod/step_n_addr.
+ value = (mem_pool_addr_column_row_expr634 - (mem_pool_addr_column_row_expr633 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain155)?);
+ total_sum += constraint_coefficients[394] * value;
+
+ // Constraint: mul_mod/step_p0_addr.
+ value = (mem_pool_addr_column_row_expr635 - (mem_pool_addr_column_row_expr634 + FELT_1))
+ * domain157.field_div(&NonZeroFelt::try_from(domain155)?);
+ total_sum += constraint_coefficients[395] * value;
+
+ // Constraint: mul_mod/step_p0_value.
+ value = ((mem_pool_value_column_row_expr636 - mem_pool_value_column_row_expr637)
+ * (mem_pool_value_column_row_expr638 - 1))
+ * domain157.field_div(&NonZeroFelt::try_from(domain155)?);
+ total_sum += constraint_coefficients[396] * value;
+
+ // Constraint: mul_mod/step_p1_value.
+ value = ((mem_pool_value_column_row_expr639 - mem_pool_value_column_row_expr640)
+ * (mem_pool_value_column_row_expr638 - 1))
+ * domain157.field_div(&NonZeroFelt::try_from(domain155)?);
+ total_sum += constraint_coefficients[397] * value;
+
+ // Constraint: mul_mod/step_p2_value.
+ value = ((mem_pool_value_column_row_expr641 - mem_pool_value_column_row_expr642)
+ * (mem_pool_value_column_row_expr638 - 1))
+ * domain157.field_div(&NonZeroFelt::try_from(domain155)?);
+ total_sum += constraint_coefficients[398] * value;
+
+ // Constraint: mul_mod/step_p3_value.
+ value = ((mem_pool_value_column_row_expr643 - mem_pool_value_column_row_expr644)
+ * (mem_pool_value_column_row_expr638 - 1))
+ * domain157.field_div(&NonZeroFelt::try_from(domain155)?);
+ total_sum += constraint_coefficients[399] * value;
+
+ // Constraint: mul_mod/step_values_ptr_value.
+ value = ((mem_pool_value_column_row_expr645 - mem_pool_value_column_row_expr646)
+ * (mem_pool_value_column_row_expr638 - 1))
+ * domain157.field_div(&NonZeroFelt::try_from(domain155)?);
+ total_sum += constraint_coefficients[400] * value;
+
+ // Constraint: mul_mod/step_offsets_ptr_value.
+ value = ((mem_pool_value_column_row_expr647
+ - (mem_pool_value_column_row_expr648 + FELT_3))
+ * (mem_pool_value_column_row_expr638 - 1))
+ * domain157.field_div(&NonZeroFelt::try_from(domain155)?);
+ total_sum += constraint_coefficients[401] * value;
+
+ // Constraint: mul_mod/step_n_value.
+ value = ((mem_pool_value_column_row_expr649 + FELT_1 - mem_pool_value_column_row_expr638)
+ * (mem_pool_value_column_row_expr638 - 1))
+ * domain157.field_div(&NonZeroFelt::try_from(domain155)?);
+ total_sum += constraint_coefficients[402] * value;
+
+ // Constraint: mul_mod/a_offset0.
+ value = (mem_pool_addr_column_row_expr650 - mem_pool_value_column_row_expr648)
+ .field_div(&NonZeroFelt::try_from(domain155)?);
+ total_sum += constraint_coefficients[403] * value;
+
+ // Constraint: mul_mod/b_offset.
+ value = (mem_pool_addr_column_row_expr651 - (mem_pool_addr_column_row_expr650 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain155)?);
+ total_sum += constraint_coefficients[404] * value;
+
+ // Constraint: mul_mod/c_offset.
+ value = (mem_pool_addr_column_row_expr652 - (mem_pool_addr_column_row_expr651 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain155)?);
+ total_sum += constraint_coefficients[405] * value;
+
+ // Constraint: mul_mod/a0_value_ind0.
+ value = (mem_pool_addr_column_row_expr653
+ - (mem_pool_value_column_row_expr654 + mem_pool_value_column_row_expr646))
+ .field_div(&NonZeroFelt::try_from(domain155)?);
+ total_sum += constraint_coefficients[406] * value;
+
+ // Constraint: mul_mod/a1_value.
+ value = (mem_pool_addr_column_row_expr655 - (mem_pool_addr_column_row_expr653 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain155)?);
+ total_sum += constraint_coefficients[407] * value;
+
+ // Constraint: mul_mod/a2_value.
+ value = (mem_pool_addr_column_row_expr656 - (mem_pool_addr_column_row_expr655 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain155)?);
+ total_sum += constraint_coefficients[408] * value;
+
+ // Constraint: mul_mod/a3_value.
+ value = (mem_pool_addr_column_row_expr657 - (mem_pool_addr_column_row_expr656 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain155)?);
+ total_sum += constraint_coefficients[409] * value;
+
+ // Constraint: mul_mod/b0_value_ind0.
+ value = (mem_pool_addr_column_row_expr658
+ - (mem_pool_value_column_row_expr659 + mem_pool_value_column_row_expr646))
+ .field_div(&NonZeroFelt::try_from(domain155)?);
+ total_sum += constraint_coefficients[410] * value;
+
+ // Constraint: mul_mod/b1_value.
+ value = (mem_pool_addr_column_row_expr660 - (mem_pool_addr_column_row_expr658 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain155)?);
+ total_sum += constraint_coefficients[411] * value;
+
+ // Constraint: mul_mod/b2_value.
+ value = (mem_pool_addr_column_row_expr661 - (mem_pool_addr_column_row_expr660 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain155)?);
+ total_sum += constraint_coefficients[412] * value;
+
+ // Constraint: mul_mod/b3_value.
+ value = (mem_pool_addr_column_row_expr662 - (mem_pool_addr_column_row_expr661 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain155)?);
+ total_sum += constraint_coefficients[413] * value;
+
+ // Constraint: mul_mod/c0_value_ind0.
+ value = (mem_pool_addr_column_row_expr663
+ - (mem_pool_value_column_row_expr664 + mem_pool_value_column_row_expr646))
+ .field_div(&NonZeroFelt::try_from(domain155)?);
+ total_sum += constraint_coefficients[414] * value;
+
+ // Constraint: mul_mod/c1_value.
+ value = (mem_pool_addr_column_row_expr665 - (mem_pool_addr_column_row_expr663 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain155)?);
+ total_sum += constraint_coefficients[415] * value;
+
+ // Constraint: mul_mod/c2_value.
+ value = (mem_pool_addr_column_row_expr666 - (mem_pool_addr_column_row_expr665 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain155)?);
+ total_sum += constraint_coefficients[416] * value;
+
+ // Constraint: mul_mod/c3_value.
+ value = (mem_pool_addr_column_row_expr667 - (mem_pool_addr_column_row_expr666 + FELT_1))
+ .field_div(&NonZeroFelt::try_from(domain155)?);
+ total_sum += constraint_coefficients[417] * value;
+
+ // Constraint: mul_mod/multiplication_constraint_0.
+ value = (((mem_pool_value_column_row_expr668
+ + (mem_pool_value_column_row_expr669
+ + mem_pool_value_column_row_expr670 * global_values.mul_mod_interaction_elm)
+ * global_values.mul_mod_interaction_elm)
+ * global_values.mul_mod_interaction_elm
+ + mem_pool_value_column_row_expr671)
+ * ((mem_pool_value_column_row_expr672
+ + (mem_pool_value_column_row_expr673
+ + mem_pool_value_column_row_expr674 * global_values.mul_mod_interaction_elm)
+ * global_values.mul_mod_interaction_elm)
+ * global_values.mul_mod_interaction_elm
+ + mem_pool_value_column_row_expr675)
+ + ((mul_mod_carry1_0
+ + (mul_mod_carry2_0
+ + (mul_mod_carry3_0
+ + (mul_mod_carry4_0
+ + (mul_mod_carry5_0 - FELT_316912650057057350374175801344)
+ * global_values.mul_mod_interaction_elm
+ - FELT_316912650057057350374175801344)
+ * global_values.mul_mod_interaction_elm
+ - FELT_316912650057057350374175801344)
+ * global_values.mul_mod_interaction_elm
+ - FELT_316912650057057350374175801344)
+ * global_values.mul_mod_interaction_elm
+ - FELT_316912650057057350374175801344)
+ * global_values.mul_mod_interaction_elm
+ + mul_mod_carry0_0
+ - FELT_316912650057057350374175801344)
+ * (global_values.mul_mod_interaction_elm - FELT_79228162514264337593543950336)
+ - ((mem_pool_value_column_row_expr676
+ + (mem_pool_value_column_row_expr677
+ + mem_pool_value_column_row_expr678 * global_values.mul_mod_interaction_elm)
+ * global_values.mul_mod_interaction_elm)
+ * global_values.mul_mod_interaction_elm
+ + mem_pool_value_column_row_expr679
+ + ((mem_pool_value_column_row_expr640
+ + (mem_pool_value_column_row_expr642
+ + mem_pool_value_column_row_expr644
+ * global_values.mul_mod_interaction_elm)
+ * global_values.mul_mod_interaction_elm)
+ * global_values.mul_mod_interaction_elm
+ + mem_pool_value_column_row_expr637)
+ * ((mul_mod_p_multiplier1_0
+ + (mul_mod_p_multiplier2_0
+ + mul_mod_p_multiplier3_0 * global_values.mul_mod_interaction_elm)
+ * global_values.mul_mod_interaction_elm)
+ * global_values.mul_mod_interaction_elm
+ + mul_mod_p_multiplier0_0)))
+ .field_div(&NonZeroFelt::try_from(domain155)?);
+ total_sum += constraint_coefficients[418] * value;
+ }
+
+ Ok(total_sum)
+}
diff --git a/crates/air/src/layout/dynamic/autogenerated/autogenerated_oods.rs b/crates/air/src/layout/dynamic/autogenerated/autogenerated_oods.rs
new file mode 100644
index 0000000..d842c26
--- /dev/null
+++ b/crates/air/src/layout/dynamic/autogenerated/autogenerated_oods.rs
@@ -0,0 +1,6071 @@
+use crate::{
+ consts::*,
+ dynamic::DynamicParams,
+ layout::{safe_div, LayoutTrait, OodsPolyEvalError},
+};
+use starknet_crypto::Felt;
+use starknet_types_core::felt::NonZeroFelt;
+
+pub fn eval_oods_polynomial_inner(
+ column_values: &[Felt],
+ oods_values: &[Felt],
+ constraint_coefficients: &[Felt],
+ point: &Felt,
+ oods_point: &Felt,
+ trace_generator: &Felt,
+ dynamic_params: &DynamicParams,
+) -> Result {
+ // Fetch dynamic params.
+ let add_mod_a0_suboffset = Felt::from(dynamic_params.add_mod_a0_suboffset);
+ let add_mod_a1_suboffset = Felt::from(dynamic_params.add_mod_a1_suboffset);
+ let add_mod_a2_suboffset = Felt::from(dynamic_params.add_mod_a2_suboffset);
+ let add_mod_a3_suboffset = Felt::from(dynamic_params.add_mod_a3_suboffset);
+ let add_mod_a_offset_suboffset = Felt::from(dynamic_params.add_mod_a_offset_suboffset);
+ let add_mod_b0_suboffset = Felt::from(dynamic_params.add_mod_b0_suboffset);
+ let add_mod_b1_suboffset = Felt::from(dynamic_params.add_mod_b1_suboffset);
+ let add_mod_b2_suboffset = Felt::from(dynamic_params.add_mod_b2_suboffset);
+ let add_mod_b3_suboffset = Felt::from(dynamic_params.add_mod_b3_suboffset);
+ let add_mod_b_offset_suboffset = Felt::from(dynamic_params.add_mod_b_offset_suboffset);
+ let add_mod_c0_suboffset = Felt::from(dynamic_params.add_mod_c0_suboffset);
+ let add_mod_c1_suboffset = Felt::from(dynamic_params.add_mod_c1_suboffset);
+ let add_mod_c2_suboffset = Felt::from(dynamic_params.add_mod_c2_suboffset);
+ let add_mod_c3_suboffset = Felt::from(dynamic_params.add_mod_c3_suboffset);
+ let add_mod_c_offset_suboffset = Felt::from(dynamic_params.add_mod_c_offset_suboffset);
+ let add_mod_carry1_bit_offset = Felt::from(dynamic_params.add_mod_carry1_bit_offset);
+ let add_mod_carry1_sign_offset = Felt::from(dynamic_params.add_mod_carry1_sign_offset);
+ let add_mod_carry2_bit_offset = Felt::from(dynamic_params.add_mod_carry2_bit_offset);
+ let add_mod_carry2_sign_offset = Felt::from(dynamic_params.add_mod_carry2_sign_offset);
+ let add_mod_carry3_bit_offset = Felt::from(dynamic_params.add_mod_carry3_bit_offset);
+ let add_mod_carry3_sign_offset = Felt::from(dynamic_params.add_mod_carry3_sign_offset);
+ let add_mod_n_suboffset = Felt::from(dynamic_params.add_mod_n_suboffset);
+ let add_mod_offsets_ptr_suboffset = Felt::from(dynamic_params.add_mod_offsets_ptr_suboffset);
+ let add_mod_p0_suboffset = Felt::from(dynamic_params.add_mod_p0_suboffset);
+ let add_mod_p1_suboffset = Felt::from(dynamic_params.add_mod_p1_suboffset);
+ let add_mod_p2_suboffset = Felt::from(dynamic_params.add_mod_p2_suboffset);
+ let add_mod_p3_suboffset = Felt::from(dynamic_params.add_mod_p3_suboffset);
+ let add_mod_row_ratio = Felt::from(dynamic_params.add_mod_row_ratio);
+ let add_mod_sub_p_bit_offset = Felt::from(dynamic_params.add_mod_sub_p_bit_offset);
+ let add_mod_values_ptr_suboffset = Felt::from(dynamic_params.add_mod_values_ptr_suboffset);
+ let bitwise_diluted_var_pool_suboffset =
+ Felt::from(dynamic_params.bitwise_diluted_var_pool_suboffset);
+ let bitwise_row_ratio = Felt::from(dynamic_params.bitwise_row_ratio);
+ let bitwise_trim_unpacking192_suboffset =
+ Felt::from(dynamic_params.bitwise_trim_unpacking192_suboffset);
+ let bitwise_trim_unpacking193_suboffset =
+ Felt::from(dynamic_params.bitwise_trim_unpacking193_suboffset);
+ let bitwise_trim_unpacking194_suboffset =
+ Felt::from(dynamic_params.bitwise_trim_unpacking194_suboffset);
+ let bitwise_trim_unpacking195_suboffset =
+ Felt::from(dynamic_params.bitwise_trim_unpacking195_suboffset);
+ let bitwise_var_pool_suboffset = Felt::from(dynamic_params.bitwise_var_pool_suboffset);
+ let bitwise_x_or_y_suboffset = Felt::from(dynamic_params.bitwise_x_or_y_suboffset);
+ let cpu_decode_mem_inst_suboffset = Felt::from(dynamic_params.cpu_decode_mem_inst_suboffset);
+ let cpu_decode_off0_suboffset = Felt::from(dynamic_params.cpu_decode_off0_suboffset);
+ let cpu_decode_off1_suboffset = Felt::from(dynamic_params.cpu_decode_off1_suboffset);
+ let cpu_decode_off2_suboffset = Felt::from(dynamic_params.cpu_decode_off2_suboffset);
+ let cpu_decode_opcode_range_check_column_offset =
+ Felt::from(dynamic_params.cpu_decode_opcode_range_check_column_offset);
+ let cpu_operands_mem_dst_suboffset = Felt::from(dynamic_params.cpu_operands_mem_dst_suboffset);
+ let cpu_operands_mem_op0_suboffset = Felt::from(dynamic_params.cpu_operands_mem_op0_suboffset);
+ let cpu_operands_mem_op1_suboffset = Felt::from(dynamic_params.cpu_operands_mem_op1_suboffset);
+ let cpu_operands_ops_mul_offset = Felt::from(dynamic_params.cpu_operands_ops_mul_offset);
+ let cpu_operands_res_offset = Felt::from(dynamic_params.cpu_operands_res_offset);
+ let cpu_registers_ap_offset = Felt::from(dynamic_params.cpu_registers_ap_offset);
+ let cpu_registers_fp_offset = Felt::from(dynamic_params.cpu_registers_fp_offset);
+ let cpu_update_registers_update_pc_tmp0_offset =
+ Felt::from(dynamic_params.cpu_update_registers_update_pc_tmp0_offset);
+ let cpu_update_registers_update_pc_tmp1_offset =
+ Felt::from(dynamic_params.cpu_update_registers_update_pc_tmp1_offset);
+ let cpu_component_step = Felt::from(dynamic_params.cpu_component_step);
+ let diluted_check_cumulative_value_offset =
+ Felt::from(dynamic_params.diluted_check_cumulative_value_offset);
+ let diluted_check_permutation_cum_prod0_offset =
+ Felt::from(dynamic_params.diluted_check_permutation_cum_prod0_offset);
+ let diluted_check_permuted_values_offset =
+ Felt::from(dynamic_params.diluted_check_permuted_values_offset);
+ let diluted_pool_offset = Felt::from(dynamic_params.diluted_pool_offset);
+ let diluted_units_row_ratio = Felt::from(dynamic_params.diluted_units_row_ratio);
+ let ec_op_doubled_points_x_offset = Felt::from(dynamic_params.ec_op_doubled_points_x_offset);
+ let ec_op_doubled_points_y_offset = Felt::from(dynamic_params.ec_op_doubled_points_y_offset);
+ let ec_op_doubling_slope_offset = Felt::from(dynamic_params.ec_op_doubling_slope_offset);
+ let ec_op_ec_subset_sum_bit_unpacking_prod_ones192_offset =
+ Felt::from(dynamic_params.ec_op_ec_subset_sum_bit_unpacking_prod_ones192_offset);
+ let ec_op_ec_subset_sum_bit_unpacking_prod_ones196_offset =
+ Felt::from(dynamic_params.ec_op_ec_subset_sum_bit_unpacking_prod_ones196_offset);
+ let ec_op_ec_subset_sum_partial_sum_x_offset =
+ Felt::from(dynamic_params.ec_op_ec_subset_sum_partial_sum_x_offset);
+ let ec_op_ec_subset_sum_partial_sum_y_offset =
+ Felt::from(dynamic_params.ec_op_ec_subset_sum_partial_sum_y_offset);
+ let ec_op_ec_subset_sum_selector_offset =
+ Felt::from(dynamic_params.ec_op_ec_subset_sum_selector_offset);
+ let ec_op_ec_subset_sum_slope_offset =
+ Felt::from(dynamic_params.ec_op_ec_subset_sum_slope_offset);
+ let ec_op_ec_subset_sum_x_diff_inv_offset =
+ Felt::from(dynamic_params.ec_op_ec_subset_sum_x_diff_inv_offset);
+ let ec_op_m_suboffset = Felt::from(dynamic_params.ec_op_m_suboffset);
+ let ec_op_p_x_suboffset = Felt::from(dynamic_params.ec_op_p_x_suboffset);
+ let ec_op_p_y_suboffset = Felt::from(dynamic_params.ec_op_p_y_suboffset);
+ let ec_op_q_x_suboffset = Felt::from(dynamic_params.ec_op_q_x_suboffset);
+ let ec_op_q_y_suboffset = Felt::from(dynamic_params.ec_op_q_y_suboffset);
+ let ec_op_r_x_suboffset = Felt::from(dynamic_params.ec_op_r_x_suboffset);
+ let ec_op_r_y_suboffset = Felt::from(dynamic_params.ec_op_r_y_suboffset);
+ let ec_op_builtin_row_ratio = Felt::from(dynamic_params.ec_op_builtin_row_ratio);
+ let ecdsa_message_suboffset = Felt::from(dynamic_params.ecdsa_message_suboffset);
+ let ecdsa_pubkey_suboffset = Felt::from(dynamic_params.ecdsa_pubkey_suboffset);
+ let ecdsa_signature0_add_results_inv_offset =
+ Felt::from(dynamic_params.ecdsa_signature0_add_results_inv_offset);
+ let ecdsa_signature0_add_results_slope_offset =
+ Felt::from(dynamic_params.ecdsa_signature0_add_results_slope_offset);
+ let ecdsa_signature0_doubling_slope_offset =
+ Felt::from(dynamic_params.ecdsa_signature0_doubling_slope_offset);
+ let ecdsa_signature0_exponentiate_generator_partial_sum_x_offset =
+ Felt::from(dynamic_params.ecdsa_signature0_exponentiate_generator_partial_sum_x_offset);
+ let ecdsa_signature0_exponentiate_generator_partial_sum_y_offset =
+ Felt::from(dynamic_params.ecdsa_signature0_exponentiate_generator_partial_sum_y_offset);
+ let ecdsa_signature0_exponentiate_generator_selector_offset =
+ Felt::from(dynamic_params.ecdsa_signature0_exponentiate_generator_selector_offset);
+ let ecdsa_signature0_exponentiate_generator_slope_offset =
+ Felt::from(dynamic_params.ecdsa_signature0_exponentiate_generator_slope_offset);
+ let ecdsa_signature0_exponentiate_generator_x_diff_inv_offset =
+ Felt::from(dynamic_params.ecdsa_signature0_exponentiate_generator_x_diff_inv_offset);
+ let ecdsa_signature0_exponentiate_key_partial_sum_x_offset =
+ Felt::from(dynamic_params.ecdsa_signature0_exponentiate_key_partial_sum_x_offset);
+ let ecdsa_signature0_exponentiate_key_partial_sum_y_offset =
+ Felt::from(dynamic_params.ecdsa_signature0_exponentiate_key_partial_sum_y_offset);
+ let ecdsa_signature0_exponentiate_key_selector_offset =
+ Felt::from(dynamic_params.ecdsa_signature0_exponentiate_key_selector_offset);
+ let ecdsa_signature0_exponentiate_key_slope_offset =
+ Felt::from(dynamic_params.ecdsa_signature0_exponentiate_key_slope_offset);
+ let ecdsa_signature0_exponentiate_key_x_diff_inv_offset =
+ Felt::from(dynamic_params.ecdsa_signature0_exponentiate_key_x_diff_inv_offset);
+ let ecdsa_signature0_extract_r_inv_offset =
+ Felt::from(dynamic_params.ecdsa_signature0_extract_r_inv_offset);
+ let ecdsa_signature0_extract_r_slope_offset =
+ Felt::from(dynamic_params.ecdsa_signature0_extract_r_slope_offset);
+ let ecdsa_signature0_key_points_x_offset =
+ Felt::from(dynamic_params.ecdsa_signature0_key_points_x_offset);
+ let ecdsa_signature0_key_points_y_offset =
+ Felt::from(dynamic_params.ecdsa_signature0_key_points_y_offset);
+ let ecdsa_signature0_q_x_squared_offset =
+ Felt::from(dynamic_params.ecdsa_signature0_q_x_squared_offset);
+ let ecdsa_signature0_r_w_inv_offset =
+ Felt::from(dynamic_params.ecdsa_signature0_r_w_inv_offset);
+ let ecdsa_signature0_z_inv_offset = Felt::from(dynamic_params.ecdsa_signature0_z_inv_offset);
+ let ecdsa_builtin_row_ratio = Felt::from(dynamic_params.ecdsa_builtin_row_ratio);
+ let keccak_input_output_suboffset = Felt::from(dynamic_params.keccak_input_output_suboffset);
+ let keccak_keccak_diluted_column0_suboffset =
+ Felt::from(dynamic_params.keccak_keccak_diluted_column0_suboffset);
+ let keccak_keccak_diluted_column1_suboffset =
+ Felt::from(dynamic_params.keccak_keccak_diluted_column1_suboffset);
+ let keccak_keccak_diluted_column2_suboffset =
+ Felt::from(dynamic_params.keccak_keccak_diluted_column2_suboffset);
+ let keccak_keccak_diluted_column3_suboffset =
+ Felt::from(dynamic_params.keccak_keccak_diluted_column3_suboffset);
+ let keccak_keccak_parse_to_diluted_cumulative_sum_offset =
+ Felt::from(dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_offset);
+ let keccak_keccak_parse_to_diluted_final_reshaped_input_offset =
+ Felt::from(dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_offset);
+ let keccak_keccak_parse_to_diluted_reshaped_intermediate_offset =
+ Felt::from(dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_offset);
+ let keccak_keccak_rotated_parity0_offset =
+ Felt::from(dynamic_params.keccak_keccak_rotated_parity0_offset);
+ let keccak_keccak_rotated_parity1_offset =
+ Felt::from(dynamic_params.keccak_keccak_rotated_parity1_offset);
+ let keccak_keccak_rotated_parity2_offset =
+ Felt::from(dynamic_params.keccak_keccak_rotated_parity2_offset);
+ let keccak_keccak_rotated_parity3_offset =
+ Felt::from(dynamic_params.keccak_keccak_rotated_parity3_offset);
+ let keccak_keccak_rotated_parity4_offset =
+ Felt::from(dynamic_params.keccak_keccak_rotated_parity4_offset);
+ let keccak_row_ratio = Felt::from(dynamic_params.keccak_row_ratio);
+ let mem_pool_addr_offset = Felt::from(dynamic_params.mem_pool_addr_offset);
+ let mem_pool_value_offset = Felt::from(dynamic_params.mem_pool_value_offset);
+ let memory_multi_column_perm_perm_cum_prod0_offset =
+ Felt::from(dynamic_params.memory_multi_column_perm_perm_cum_prod0_offset);
+ let memory_sorted_addr_offset = Felt::from(dynamic_params.memory_sorted_addr_offset);
+ let memory_sorted_value_offset = Felt::from(dynamic_params.memory_sorted_value_offset);
+ let memory_units_row_ratio = Felt::from(dynamic_params.memory_units_row_ratio);
+ let mul_mod_a0_suboffset = Felt::from(dynamic_params.mul_mod_a0_suboffset);
+ let mul_mod_a1_suboffset = Felt::from(dynamic_params.mul_mod_a1_suboffset);
+ let mul_mod_a2_suboffset = Felt::from(dynamic_params.mul_mod_a2_suboffset);
+ let mul_mod_a3_suboffset = Felt::from(dynamic_params.mul_mod_a3_suboffset);
+ let mul_mod_a_offset_suboffset = Felt::from(dynamic_params.mul_mod_a_offset_suboffset);
+ let mul_mod_b0_suboffset = Felt::from(dynamic_params.mul_mod_b0_suboffset);
+ let mul_mod_b1_suboffset = Felt::from(dynamic_params.mul_mod_b1_suboffset);
+ let mul_mod_b2_suboffset = Felt::from(dynamic_params.mul_mod_b2_suboffset);
+ let mul_mod_b3_suboffset = Felt::from(dynamic_params.mul_mod_b3_suboffset);
+ let mul_mod_b_offset_suboffset = Felt::from(dynamic_params.mul_mod_b_offset_suboffset);
+ let mul_mod_c0_suboffset = Felt::from(dynamic_params.mul_mod_c0_suboffset);
+ let mul_mod_c1_suboffset = Felt::from(dynamic_params.mul_mod_c1_suboffset);
+ let mul_mod_c2_suboffset = Felt::from(dynamic_params.mul_mod_c2_suboffset);
+ let mul_mod_c3_suboffset = Felt::from(dynamic_params.mul_mod_c3_suboffset);
+ let mul_mod_c_offset_suboffset = Felt::from(dynamic_params.mul_mod_c_offset_suboffset);
+ let mul_mod_carry0_part0_suboffset = Felt::from(dynamic_params.mul_mod_carry0_part0_suboffset);
+ let mul_mod_carry0_part1_suboffset = Felt::from(dynamic_params.mul_mod_carry0_part1_suboffset);
+ let mul_mod_carry0_part2_suboffset = Felt::from(dynamic_params.mul_mod_carry0_part2_suboffset);
+ let mul_mod_carry0_part3_suboffset = Felt::from(dynamic_params.mul_mod_carry0_part3_suboffset);
+ let mul_mod_carry0_part4_suboffset = Felt::from(dynamic_params.mul_mod_carry0_part4_suboffset);
+ let mul_mod_carry0_part5_suboffset = Felt::from(dynamic_params.mul_mod_carry0_part5_suboffset);
+ let mul_mod_carry0_part6_suboffset = Felt::from(dynamic_params.mul_mod_carry0_part6_suboffset);
+ let mul_mod_carry1_part0_suboffset = Felt::from(dynamic_params.mul_mod_carry1_part0_suboffset);
+ let mul_mod_carry1_part1_suboffset = Felt::from(dynamic_params.mul_mod_carry1_part1_suboffset);
+ let mul_mod_carry1_part2_suboffset = Felt::from(dynamic_params.mul_mod_carry1_part2_suboffset);
+ let mul_mod_carry1_part3_suboffset = Felt::from(dynamic_params.mul_mod_carry1_part3_suboffset);
+ let mul_mod_carry1_part4_suboffset = Felt::from(dynamic_params.mul_mod_carry1_part4_suboffset);
+ let mul_mod_carry1_part5_suboffset = Felt::from(dynamic_params.mul_mod_carry1_part5_suboffset);
+ let mul_mod_carry1_part6_suboffset = Felt::from(dynamic_params.mul_mod_carry1_part6_suboffset);
+ let mul_mod_carry2_part0_suboffset = Felt::from(dynamic_params.mul_mod_carry2_part0_suboffset);
+ let mul_mod_carry2_part1_suboffset = Felt::from(dynamic_params.mul_mod_carry2_part1_suboffset);
+ let mul_mod_carry2_part2_suboffset = Felt::from(dynamic_params.mul_mod_carry2_part2_suboffset);
+ let mul_mod_carry2_part3_suboffset = Felt::from(dynamic_params.mul_mod_carry2_part3_suboffset);
+ let mul_mod_carry2_part4_suboffset = Felt::from(dynamic_params.mul_mod_carry2_part4_suboffset);
+ let mul_mod_carry2_part5_suboffset = Felt::from(dynamic_params.mul_mod_carry2_part5_suboffset);
+ let mul_mod_carry2_part6_suboffset = Felt::from(dynamic_params.mul_mod_carry2_part6_suboffset);
+ let mul_mod_carry3_part0_suboffset = Felt::from(dynamic_params.mul_mod_carry3_part0_suboffset);
+ let mul_mod_carry3_part1_suboffset = Felt::from(dynamic_params.mul_mod_carry3_part1_suboffset);
+ let mul_mod_carry3_part2_suboffset = Felt::from(dynamic_params.mul_mod_carry3_part2_suboffset);
+ let mul_mod_carry3_part3_suboffset = Felt::from(dynamic_params.mul_mod_carry3_part3_suboffset);
+ let mul_mod_carry3_part4_suboffset = Felt::from(dynamic_params.mul_mod_carry3_part4_suboffset);
+ let mul_mod_carry3_part5_suboffset = Felt::from(dynamic_params.mul_mod_carry3_part5_suboffset);
+ let mul_mod_carry3_part6_suboffset = Felt::from(dynamic_params.mul_mod_carry3_part6_suboffset);
+ let mul_mod_carry4_part0_suboffset = Felt::from(dynamic_params.mul_mod_carry4_part0_suboffset);
+ let mul_mod_carry4_part1_suboffset = Felt::from(dynamic_params.mul_mod_carry4_part1_suboffset);
+ let mul_mod_carry4_part2_suboffset = Felt::from(dynamic_params.mul_mod_carry4_part2_suboffset);
+ let mul_mod_carry4_part3_suboffset = Felt::from(dynamic_params.mul_mod_carry4_part3_suboffset);
+ let mul_mod_carry4_part4_suboffset = Felt::from(dynamic_params.mul_mod_carry4_part4_suboffset);
+ let mul_mod_carry4_part5_suboffset = Felt::from(dynamic_params.mul_mod_carry4_part5_suboffset);
+ let mul_mod_carry4_part6_suboffset = Felt::from(dynamic_params.mul_mod_carry4_part6_suboffset);
+ let mul_mod_carry5_part0_suboffset = Felt::from(dynamic_params.mul_mod_carry5_part0_suboffset);
+ let mul_mod_carry5_part1_suboffset = Felt::from(dynamic_params.mul_mod_carry5_part1_suboffset);
+ let mul_mod_carry5_part2_suboffset = Felt::from(dynamic_params.mul_mod_carry5_part2_suboffset);
+ let mul_mod_carry5_part3_suboffset = Felt::from(dynamic_params.mul_mod_carry5_part3_suboffset);
+ let mul_mod_carry5_part4_suboffset = Felt::from(dynamic_params.mul_mod_carry5_part4_suboffset);
+ let mul_mod_carry5_part5_suboffset = Felt::from(dynamic_params.mul_mod_carry5_part5_suboffset);
+ let mul_mod_carry5_part6_suboffset = Felt::from(dynamic_params.mul_mod_carry5_part6_suboffset);
+ let mul_mod_n_suboffset = Felt::from(dynamic_params.mul_mod_n_suboffset);
+ let mul_mod_offsets_ptr_suboffset = Felt::from(dynamic_params.mul_mod_offsets_ptr_suboffset);
+ let mul_mod_p0_suboffset = Felt::from(dynamic_params.mul_mod_p0_suboffset);
+ let mul_mod_p1_suboffset = Felt::from(dynamic_params.mul_mod_p1_suboffset);
+ let mul_mod_p2_suboffset = Felt::from(dynamic_params.mul_mod_p2_suboffset);
+ let mul_mod_p3_suboffset = Felt::from(dynamic_params.mul_mod_p3_suboffset);
+ let mul_mod_p_multiplier0_part0_suboffset =
+ Felt::from(dynamic_params.mul_mod_p_multiplier0_part0_suboffset);
+ let mul_mod_p_multiplier0_part1_suboffset =
+ Felt::from(dynamic_params.mul_mod_p_multiplier0_part1_suboffset);
+ let mul_mod_p_multiplier0_part2_suboffset =
+ Felt::from(dynamic_params.mul_mod_p_multiplier0_part2_suboffset);
+ let mul_mod_p_multiplier0_part3_suboffset =
+ Felt::from(dynamic_params.mul_mod_p_multiplier0_part3_suboffset);
+ let mul_mod_p_multiplier0_part4_suboffset =
+ Felt::from(dynamic_params.mul_mod_p_multiplier0_part4_suboffset);
+ let mul_mod_p_multiplier0_part5_suboffset =
+ Felt::from(dynamic_params.mul_mod_p_multiplier0_part5_suboffset);
+ let mul_mod_p_multiplier1_part0_suboffset =
+ Felt::from(dynamic_params.mul_mod_p_multiplier1_part0_suboffset);
+ let mul_mod_p_multiplier1_part1_suboffset =
+ Felt::from(dynamic_params.mul_mod_p_multiplier1_part1_suboffset);
+ let mul_mod_p_multiplier1_part2_suboffset =
+ Felt::from(dynamic_params.mul_mod_p_multiplier1_part2_suboffset);
+ let mul_mod_p_multiplier1_part3_suboffset =
+ Felt::from(dynamic_params.mul_mod_p_multiplier1_part3_suboffset);
+ let mul_mod_p_multiplier1_part4_suboffset =
+ Felt::from(dynamic_params.mul_mod_p_multiplier1_part4_suboffset);
+ let mul_mod_p_multiplier1_part5_suboffset =
+ Felt::from(dynamic_params.mul_mod_p_multiplier1_part5_suboffset);
+ let mul_mod_p_multiplier2_part0_suboffset =
+ Felt::from(dynamic_params.mul_mod_p_multiplier2_part0_suboffset);
+ let mul_mod_p_multiplier2_part1_suboffset =
+ Felt::from(dynamic_params.mul_mod_p_multiplier2_part1_suboffset);
+ let mul_mod_p_multiplier2_part2_suboffset =
+ Felt::from(dynamic_params.mul_mod_p_multiplier2_part2_suboffset);
+ let mul_mod_p_multiplier2_part3_suboffset =
+ Felt::from(dynamic_params.mul_mod_p_multiplier2_part3_suboffset);
+ let mul_mod_p_multiplier2_part4_suboffset =
+ Felt::from(dynamic_params.mul_mod_p_multiplier2_part4_suboffset);
+ let mul_mod_p_multiplier2_part5_suboffset =
+ Felt::from(dynamic_params.mul_mod_p_multiplier2_part5_suboffset);
+ let mul_mod_p_multiplier3_part0_suboffset =
+ Felt::from(dynamic_params.mul_mod_p_multiplier3_part0_suboffset);
+ let mul_mod_p_multiplier3_part1_suboffset =
+ Felt::from(dynamic_params.mul_mod_p_multiplier3_part1_suboffset);
+ let mul_mod_p_multiplier3_part2_suboffset =
+ Felt::from(dynamic_params.mul_mod_p_multiplier3_part2_suboffset);
+ let mul_mod_p_multiplier3_part3_suboffset =
+ Felt::from(dynamic_params.mul_mod_p_multiplier3_part3_suboffset);
+ let mul_mod_p_multiplier3_part4_suboffset =
+ Felt::from(dynamic_params.mul_mod_p_multiplier3_part4_suboffset);
+ let mul_mod_p_multiplier3_part5_suboffset =
+ Felt::from(dynamic_params.mul_mod_p_multiplier3_part5_suboffset);
+ let mul_mod_row_ratio = Felt::from(dynamic_params.mul_mod_row_ratio);
+ let mul_mod_values_ptr_suboffset = Felt::from(dynamic_params.mul_mod_values_ptr_suboffset);
+ let orig_public_memory_suboffset = Felt::from(dynamic_params.orig_public_memory_suboffset);
+ let pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones192_offset =
+ Felt::from(dynamic_params.pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones192_offset);
+ let pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones196_offset =
+ Felt::from(dynamic_params.pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones196_offset);
+ let pedersen_hash0_ec_subset_sum_partial_sum_x_offset =
+ Felt::from(dynamic_params.pedersen_hash0_ec_subset_sum_partial_sum_x_offset);
+ let pedersen_hash0_ec_subset_sum_partial_sum_y_offset =
+ Felt::from(dynamic_params.pedersen_hash0_ec_subset_sum_partial_sum_y_offset);
+ let pedersen_hash0_ec_subset_sum_selector_offset =
+ Felt::from(dynamic_params.pedersen_hash0_ec_subset_sum_selector_offset);
+ let pedersen_hash0_ec_subset_sum_slope_offset =
+ Felt::from(dynamic_params.pedersen_hash0_ec_subset_sum_slope_offset);
+ let pedersen_input0_suboffset = Felt::from(dynamic_params.pedersen_input0_suboffset);
+ let pedersen_input1_suboffset = Felt::from(dynamic_params.pedersen_input1_suboffset);
+ let pedersen_output_suboffset = Felt::from(dynamic_params.pedersen_output_suboffset);
+ let pedersen_builtin_row_ratio = Felt::from(dynamic_params.pedersen_builtin_row_ratio);
+ let poseidon_param_0_input_output_suboffset =
+ Felt::from(dynamic_params.poseidon_param_0_input_output_suboffset);
+ let poseidon_param_1_input_output_suboffset =
+ Felt::from(dynamic_params.poseidon_param_1_input_output_suboffset);
+ let poseidon_param_2_input_output_suboffset =
+ Felt::from(dynamic_params.poseidon_param_2_input_output_suboffset);
+ let poseidon_poseidon_full_rounds_state0_offset =
+ Felt::from(dynamic_params.poseidon_poseidon_full_rounds_state0_offset);
+ let poseidon_poseidon_full_rounds_state0_squared_offset =
+ Felt::from(dynamic_params.poseidon_poseidon_full_rounds_state0_squared_offset);
+ let poseidon_poseidon_full_rounds_state1_offset =
+ Felt::from(dynamic_params.poseidon_poseidon_full_rounds_state1_offset);
+ let poseidon_poseidon_full_rounds_state1_squared_offset =
+ Felt::from(dynamic_params.poseidon_poseidon_full_rounds_state1_squared_offset);
+ let poseidon_poseidon_full_rounds_state2_offset =
+ Felt::from(dynamic_params.poseidon_poseidon_full_rounds_state2_offset);
+ let poseidon_poseidon_full_rounds_state2_squared_offset =
+ Felt::from(dynamic_params.poseidon_poseidon_full_rounds_state2_squared_offset);
+ let poseidon_poseidon_partial_rounds_state0_offset =
+ Felt::from(dynamic_params.poseidon_poseidon_partial_rounds_state0_offset);
+ let poseidon_poseidon_partial_rounds_state0_squared_offset =
+ Felt::from(dynamic_params.poseidon_poseidon_partial_rounds_state0_squared_offset);
+ let poseidon_poseidon_partial_rounds_state1_offset =
+ Felt::from(dynamic_params.poseidon_poseidon_partial_rounds_state1_offset);
+ let poseidon_poseidon_partial_rounds_state1_squared_offset =
+ Felt::from(dynamic_params.poseidon_poseidon_partial_rounds_state1_squared_offset);
+ let poseidon_row_ratio = Felt::from(dynamic_params.poseidon_row_ratio);
+ let range_check16_perm_cum_prod0_offset =
+ Felt::from(dynamic_params.range_check16_perm_cum_prod0_offset);
+ let range_check16_sorted_offset = Felt::from(dynamic_params.range_check16_sorted_offset);
+ let range_check16_pool_offset = Felt::from(dynamic_params.range_check16_pool_offset);
+ let range_check96_builtin_inner_range_check0_suboffset =
+ Felt::from(dynamic_params.range_check96_builtin_inner_range_check0_suboffset);
+ let range_check96_builtin_inner_range_check1_suboffset =
+ Felt::from(dynamic_params.range_check96_builtin_inner_range_check1_suboffset);
+ let range_check96_builtin_inner_range_check2_suboffset =
+ Felt::from(dynamic_params.range_check96_builtin_inner_range_check2_suboffset);
+ let range_check96_builtin_inner_range_check3_suboffset =
+ Felt::from(dynamic_params.range_check96_builtin_inner_range_check3_suboffset);
+ let range_check96_builtin_inner_range_check4_suboffset =
+ Felt::from(dynamic_params.range_check96_builtin_inner_range_check4_suboffset);
+ let range_check96_builtin_inner_range_check5_suboffset =
+ Felt::from(dynamic_params.range_check96_builtin_inner_range_check5_suboffset);
+ let range_check96_builtin_mem_suboffset =
+ Felt::from(dynamic_params.range_check96_builtin_mem_suboffset);
+ let range_check96_builtin_row_ratio =
+ Felt::from(dynamic_params.range_check96_builtin_row_ratio);
+ let range_check_builtin_inner_range_check_suboffset =
+ Felt::from(dynamic_params.range_check_builtin_inner_range_check_suboffset);
+ let range_check_builtin_mem_suboffset =
+ Felt::from(dynamic_params.range_check_builtin_mem_suboffset);
+ let range_check_builtin_row_ratio = Felt::from(dynamic_params.range_check_builtin_row_ratio);
+ let range_check_units_row_ratio = Felt::from(dynamic_params.range_check_units_row_ratio);
+
+ // Compute powers.
+ let pow0 = trace_generator.pow_felt(&mul_mod_row_ratio);
+ let pow1 = trace_generator.pow_felt(&add_mod_row_ratio);
+ let pow2 = trace_generator.pow_felt(&range_check96_builtin_row_ratio);
+ let pow3 = trace_generator.pow_felt(&(safe_div(bitwise_row_ratio, FELT_64)?));
+ let pow4 = pow3 * pow3; // pow(trace_generator, &(safe_div(bitwise_row_ratio, 32))).
+ let pow5 = pow3 * pow4; // pow(trace_generator, &(safe_div((3* bitwise_row_ratio), 64))).
+ let pow6 = pow3 * pow5; // pow(trace_generator, &(safe_div(bitwise_row_ratio, 16))).
+ let pow7 = pow3 * pow6; // pow(trace_generator, &(safe_div((5* bitwise_row_ratio), 64))).
+ let pow8 = pow3 * pow7; // pow(trace_generator, &(safe_div((3* bitwise_row_ratio), 32))).
+ let pow9 = pow3 * pow8; // pow(trace_generator, &(safe_div((7* bitwise_row_ratio), 64))).
+ let pow10 = pow3 * pow9; // pow(trace_generator, &(safe_div(bitwise_row_ratio, 8))).
+ let pow11 = pow3 * pow10; // pow(trace_generator, &(safe_div((9* bitwise_row_ratio), 64))).
+ let pow12 = pow3 * pow11; // pow(trace_generator, &(safe_div((5* bitwise_row_ratio), 32))).
+ let pow13 = pow3 * pow12; // pow(trace_generator, &(safe_div((11* bitwise_row_ratio), 64))).
+ let pow14 = pow3 * pow13; // pow(trace_generator, &(safe_div((3* bitwise_row_ratio), 16))).
+ let pow15 = pow3 * pow14; // pow(trace_generator, &(safe_div((13* bitwise_row_ratio), 64))).
+ let pow16 = pow3 * pow15; // pow(trace_generator, &(safe_div((7* bitwise_row_ratio), 32))).
+ let pow17 = pow3 * pow16; // pow(trace_generator, &(safe_div((15* bitwise_row_ratio), 64))).
+ let pow18 = pow3 * pow17; // pow(trace_generator, &(safe_div(bitwise_row_ratio, 4))).
+ let pow19 = pow18 * pow18; // pow(trace_generator, &(safe_div(bitwise_row_ratio, 2))).
+ let pow30 = trace_generator.pow_felt(&(safe_div(range_check_builtin_row_ratio, FELT_8)?));
+ let pow31 = pow30 * pow30; // pow(trace_generator, &(safe_div(range_check_builtin_row_ratio, 4))).
+ let pow32 = pow30 * pow31; // pow(trace_generator, &(safe_div((3* range_check_builtin_row_ratio), 8))).
+ let pow33 = pow30 * pow32; // pow(trace_generator, &(safe_div(range_check_builtin_row_ratio, 2))).
+ let pow34 = pow30 * pow33; // pow(trace_generator, &(safe_div((5* range_check_builtin_row_ratio), 8))).
+ let pow35 = pow30 * pow34; // pow(trace_generator, &(safe_div((3* range_check_builtin_row_ratio), 4))).
+ let pow36 = pow30 * pow35; // pow(trace_generator, &(safe_div((7* range_check_builtin_row_ratio), 8))).
+ let pow37 = pow30 * pow36; // pow(trace_generator, range_check_builtin_row_ratio).
+ let pow38 =
+ trace_generator.pow_felt(&(mul_mod_carry0_part6_suboffset * range_check_units_row_ratio));
+ let pow39 =
+ trace_generator.pow_felt(&(mul_mod_carry0_part5_suboffset * range_check_units_row_ratio));
+ let pow40 =
+ trace_generator.pow_felt(&(mul_mod_carry0_part4_suboffset * range_check_units_row_ratio));
+ let pow41 =
+ trace_generator.pow_felt(&(mul_mod_carry0_part3_suboffset * range_check_units_row_ratio));
+ let pow42 =
+ trace_generator.pow_felt(&(mul_mod_carry0_part2_suboffset * range_check_units_row_ratio));
+ let pow43 =
+ trace_generator.pow_felt(&(mul_mod_carry0_part1_suboffset * range_check_units_row_ratio));
+ let pow44 =
+ trace_generator.pow_felt(&(mul_mod_carry0_part0_suboffset * range_check_units_row_ratio));
+ let pow45 =
+ trace_generator.pow_felt(&(mul_mod_carry5_part6_suboffset * range_check_units_row_ratio));
+ let pow46 =
+ trace_generator.pow_felt(&(mul_mod_carry5_part5_suboffset * range_check_units_row_ratio));
+ let pow47 =
+ trace_generator.pow_felt(&(mul_mod_carry5_part4_suboffset * range_check_units_row_ratio));
+ let pow48 =
+ trace_generator.pow_felt(&(mul_mod_carry5_part3_suboffset * range_check_units_row_ratio));
+ let pow49 =
+ trace_generator.pow_felt(&(mul_mod_carry5_part2_suboffset * range_check_units_row_ratio));
+ let pow50 =
+ trace_generator.pow_felt(&(mul_mod_carry5_part1_suboffset * range_check_units_row_ratio));
+ let pow51 =
+ trace_generator.pow_felt(&(mul_mod_carry5_part0_suboffset * range_check_units_row_ratio));
+ let pow52 =
+ trace_generator.pow_felt(&(mul_mod_carry4_part6_suboffset * range_check_units_row_ratio));
+ let pow53 =
+ trace_generator.pow_felt(&(mul_mod_carry4_part5_suboffset * range_check_units_row_ratio));
+ let pow54 =
+ trace_generator.pow_felt(&(mul_mod_carry4_part4_suboffset * range_check_units_row_ratio));
+ let pow55 =
+ trace_generator.pow_felt(&(mul_mod_carry4_part3_suboffset * range_check_units_row_ratio));
+ let pow56 =
+ trace_generator.pow_felt(&(mul_mod_carry4_part2_suboffset * range_check_units_row_ratio));
+ let pow57 =
+ trace_generator.pow_felt(&(mul_mod_carry4_part1_suboffset * range_check_units_row_ratio));
+ let pow58 =
+ trace_generator.pow_felt(&(mul_mod_carry4_part0_suboffset * range_check_units_row_ratio));
+ let pow59 =
+ trace_generator.pow_felt(&(mul_mod_carry3_part6_suboffset * range_check_units_row_ratio));
+ let pow60 =
+ trace_generator.pow_felt(&(mul_mod_carry3_part5_suboffset * range_check_units_row_ratio));
+ let pow61 =
+ trace_generator.pow_felt(&(mul_mod_carry3_part4_suboffset * range_check_units_row_ratio));
+ let pow62 =
+ trace_generator.pow_felt(&(mul_mod_carry3_part3_suboffset * range_check_units_row_ratio));
+ let pow63 =
+ trace_generator.pow_felt(&(mul_mod_carry3_part2_suboffset * range_check_units_row_ratio));
+ let pow64 =
+ trace_generator.pow_felt(&(mul_mod_carry3_part1_suboffset * range_check_units_row_ratio));
+ let pow65 =
+ trace_generator.pow_felt(&(mul_mod_carry3_part0_suboffset * range_check_units_row_ratio));
+ let pow66 =
+ trace_generator.pow_felt(&(mul_mod_carry2_part6_suboffset * range_check_units_row_ratio));
+ let pow67 =
+ trace_generator.pow_felt(&(mul_mod_carry2_part5_suboffset * range_check_units_row_ratio));
+ let pow68 =
+ trace_generator.pow_felt(&(mul_mod_carry2_part4_suboffset * range_check_units_row_ratio));
+ let pow69 =
+ trace_generator.pow_felt(&(mul_mod_carry2_part3_suboffset * range_check_units_row_ratio));
+ let pow70 =
+ trace_generator.pow_felt(&(mul_mod_carry2_part2_suboffset * range_check_units_row_ratio));
+ let pow71 =
+ trace_generator.pow_felt(&(mul_mod_carry2_part1_suboffset * range_check_units_row_ratio));
+ let pow72 =
+ trace_generator.pow_felt(&(mul_mod_carry2_part0_suboffset * range_check_units_row_ratio));
+ let pow73 =
+ trace_generator.pow_felt(&(mul_mod_carry1_part6_suboffset * range_check_units_row_ratio));
+ let pow74 =
+ trace_generator.pow_felt(&(mul_mod_carry1_part5_suboffset * range_check_units_row_ratio));
+ let pow75 =
+ trace_generator.pow_felt(&(mul_mod_carry1_part4_suboffset * range_check_units_row_ratio));
+ let pow76 =
+ trace_generator.pow_felt(&(mul_mod_carry1_part3_suboffset * range_check_units_row_ratio));
+ let pow77 =
+ trace_generator.pow_felt(&(mul_mod_carry1_part2_suboffset * range_check_units_row_ratio));
+ let pow78 =
+ trace_generator.pow_felt(&(mul_mod_carry1_part1_suboffset * range_check_units_row_ratio));
+ let pow79 =
+ trace_generator.pow_felt(&(mul_mod_carry1_part0_suboffset * range_check_units_row_ratio));
+ let pow80 = trace_generator
+ .pow_felt(&(mul_mod_p_multiplier0_part5_suboffset * range_check_units_row_ratio));
+ let pow81 = trace_generator
+ .pow_felt(&(mul_mod_p_multiplier0_part4_suboffset * range_check_units_row_ratio));
+ let pow82 = trace_generator
+ .pow_felt(&(mul_mod_p_multiplier0_part3_suboffset * range_check_units_row_ratio));
+ let pow83 = trace_generator
+ .pow_felt(&(mul_mod_p_multiplier0_part2_suboffset * range_check_units_row_ratio));
+ let pow84 = trace_generator
+ .pow_felt(&(mul_mod_p_multiplier0_part1_suboffset * range_check_units_row_ratio));
+ let pow85 = trace_generator
+ .pow_felt(&(mul_mod_p_multiplier0_part0_suboffset * range_check_units_row_ratio));
+ let pow86 = trace_generator
+ .pow_felt(&(mul_mod_p_multiplier3_part5_suboffset * range_check_units_row_ratio));
+ let pow87 = trace_generator
+ .pow_felt(&(mul_mod_p_multiplier3_part4_suboffset * range_check_units_row_ratio));
+ let pow88 = trace_generator
+ .pow_felt(&(mul_mod_p_multiplier3_part3_suboffset * range_check_units_row_ratio));
+ let pow89 = trace_generator
+ .pow_felt(&(mul_mod_p_multiplier3_part2_suboffset * range_check_units_row_ratio));
+ let pow90 = trace_generator
+ .pow_felt(&(mul_mod_p_multiplier3_part1_suboffset * range_check_units_row_ratio));
+ let pow91 = trace_generator
+ .pow_felt(&(mul_mod_p_multiplier3_part0_suboffset * range_check_units_row_ratio));
+ let pow92 = trace_generator
+ .pow_felt(&(mul_mod_p_multiplier2_part5_suboffset * range_check_units_row_ratio));
+ let pow93 = trace_generator
+ .pow_felt(&(mul_mod_p_multiplier2_part4_suboffset * range_check_units_row_ratio));
+ let pow94 = trace_generator
+ .pow_felt(&(mul_mod_p_multiplier2_part3_suboffset * range_check_units_row_ratio));
+ let pow95 = trace_generator
+ .pow_felt(&(mul_mod_p_multiplier2_part2_suboffset * range_check_units_row_ratio));
+ let pow96 = trace_generator
+ .pow_felt(&(mul_mod_p_multiplier2_part1_suboffset * range_check_units_row_ratio));
+ let pow97 = trace_generator
+ .pow_felt(&(mul_mod_p_multiplier2_part0_suboffset * range_check_units_row_ratio));
+ let pow98 = trace_generator
+ .pow_felt(&(mul_mod_p_multiplier1_part5_suboffset * range_check_units_row_ratio));
+ let pow99 = trace_generator
+ .pow_felt(&(mul_mod_p_multiplier1_part4_suboffset * range_check_units_row_ratio));
+ let pow100 = trace_generator
+ .pow_felt(&(mul_mod_p_multiplier1_part3_suboffset * range_check_units_row_ratio));
+ let pow101 = trace_generator
+ .pow_felt(&(mul_mod_p_multiplier1_part2_suboffset * range_check_units_row_ratio));
+ let pow102 = trace_generator
+ .pow_felt(&(mul_mod_p_multiplier1_part1_suboffset * range_check_units_row_ratio));
+ let pow103 = trace_generator
+ .pow_felt(&(mul_mod_p_multiplier1_part0_suboffset * range_check_units_row_ratio));
+ let pow104 = trace_generator.pow_felt(&(mul_mod_c3_suboffset * memory_units_row_ratio));
+ let pow105 = trace_generator.pow_felt(&(mul_mod_c2_suboffset * memory_units_row_ratio));
+ let pow106 = trace_generator.pow_felt(&(mul_mod_c1_suboffset * memory_units_row_ratio));
+ let pow107 = trace_generator.pow_felt(&(mul_mod_c0_suboffset * memory_units_row_ratio));
+ let pow108 = trace_generator.pow_felt(&(mul_mod_b3_suboffset * memory_units_row_ratio));
+ let pow109 = trace_generator.pow_felt(&(mul_mod_b2_suboffset * memory_units_row_ratio));
+ let pow110 = trace_generator.pow_felt(&(mul_mod_b1_suboffset * memory_units_row_ratio));
+ let pow111 = trace_generator.pow_felt(&(mul_mod_b0_suboffset * memory_units_row_ratio));
+ let pow112 = trace_generator.pow_felt(&(mul_mod_a3_suboffset * memory_units_row_ratio));
+ let pow113 = trace_generator.pow_felt(&(mul_mod_a2_suboffset * memory_units_row_ratio));
+ let pow114 = trace_generator.pow_felt(&(mul_mod_a1_suboffset * memory_units_row_ratio));
+ let pow115 = trace_generator.pow_felt(&(mul_mod_a0_suboffset * memory_units_row_ratio));
+ let pow116 = trace_generator.pow_felt(&(mul_mod_c_offset_suboffset * memory_units_row_ratio));
+ let pow117 = trace_generator.pow_felt(&(mul_mod_b_offset_suboffset * memory_units_row_ratio));
+ let pow118 = trace_generator.pow_felt(&(mul_mod_a_offset_suboffset * memory_units_row_ratio));
+ let pow119 = trace_generator.pow_felt(&(mul_mod_n_suboffset * memory_units_row_ratio));
+ let pow121 =
+ trace_generator.pow_felt(&(mul_mod_offsets_ptr_suboffset * memory_units_row_ratio));
+ let pow123 = trace_generator.pow_felt(&(mul_mod_values_ptr_suboffset * memory_units_row_ratio));
+ let pow125 = trace_generator.pow_felt(&(mul_mod_p3_suboffset * memory_units_row_ratio));
+ let pow127 = trace_generator.pow_felt(&(mul_mod_p2_suboffset * memory_units_row_ratio));
+ let pow129 = trace_generator.pow_felt(&(mul_mod_p1_suboffset * memory_units_row_ratio));
+ let pow131 = trace_generator.pow_felt(&(mul_mod_p0_suboffset * memory_units_row_ratio));
+ let pow133 = trace_generator.pow_felt(&(add_mod_c3_suboffset * memory_units_row_ratio));
+ let pow134 = trace_generator.pow_felt(&(add_mod_c2_suboffset * memory_units_row_ratio));
+ let pow135 = trace_generator.pow_felt(&(add_mod_c1_suboffset * memory_units_row_ratio));
+ let pow136 = trace_generator.pow_felt(&(add_mod_c0_suboffset * memory_units_row_ratio));
+ let pow137 = trace_generator.pow_felt(&(add_mod_b3_suboffset * memory_units_row_ratio));
+ let pow138 = trace_generator.pow_felt(&(add_mod_b2_suboffset * memory_units_row_ratio));
+ let pow139 = trace_generator.pow_felt(&(add_mod_b1_suboffset * memory_units_row_ratio));
+ let pow140 = trace_generator.pow_felt(&(add_mod_b0_suboffset * memory_units_row_ratio));
+ let pow141 = trace_generator.pow_felt(&(add_mod_a3_suboffset * memory_units_row_ratio));
+ let pow142 = trace_generator.pow_felt(&(add_mod_a2_suboffset * memory_units_row_ratio));
+ let pow143 = trace_generator.pow_felt(&(add_mod_a1_suboffset * memory_units_row_ratio));
+ let pow144 = trace_generator.pow_felt(&(add_mod_a0_suboffset * memory_units_row_ratio));
+ let pow145 = trace_generator.pow_felt(&(add_mod_c_offset_suboffset * memory_units_row_ratio));
+ let pow146 = trace_generator.pow_felt(&(add_mod_b_offset_suboffset * memory_units_row_ratio));
+ let pow147 = trace_generator.pow_felt(&(add_mod_a_offset_suboffset * memory_units_row_ratio));
+ let pow148 = trace_generator.pow_felt(&(add_mod_n_suboffset * memory_units_row_ratio));
+ let pow150 =
+ trace_generator.pow_felt(&(add_mod_offsets_ptr_suboffset * memory_units_row_ratio));
+ let pow152 = trace_generator.pow_felt(&(add_mod_values_ptr_suboffset * memory_units_row_ratio));
+ let pow154 = trace_generator.pow_felt(&(add_mod_p3_suboffset * memory_units_row_ratio));
+ let pow156 = trace_generator.pow_felt(&(add_mod_p2_suboffset * memory_units_row_ratio));
+ let pow158 = trace_generator.pow_felt(&(add_mod_p1_suboffset * memory_units_row_ratio));
+ let pow160 = trace_generator.pow_felt(&(add_mod_p0_suboffset * memory_units_row_ratio));
+ let pow162 = trace_generator.pow_felt(
+ &(range_check96_builtin_inner_range_check5_suboffset * range_check_units_row_ratio),
+ );
+ let pow163 = trace_generator.pow_felt(
+ &(range_check96_builtin_inner_range_check4_suboffset * range_check_units_row_ratio),
+ );
+ let pow164 = trace_generator.pow_felt(
+ &(range_check96_builtin_inner_range_check3_suboffset * range_check_units_row_ratio),
+ );
+ let pow165 = trace_generator.pow_felt(
+ &(range_check96_builtin_inner_range_check2_suboffset * range_check_units_row_ratio),
+ );
+ let pow166 = trace_generator.pow_felt(
+ &(range_check96_builtin_inner_range_check1_suboffset * range_check_units_row_ratio),
+ );
+ let pow167 = trace_generator.pow_felt(
+ &(range_check96_builtin_inner_range_check0_suboffset * range_check_units_row_ratio),
+ );
+ let pow168 =
+ trace_generator.pow_felt(&(range_check96_builtin_mem_suboffset * memory_units_row_ratio));
+ let pow170 = trace_generator.pow_felt(&(safe_div(poseidon_row_ratio, FELT_64)?));
+ let pow171 = trace_generator.pow_felt(&(safe_div(FELT_3 * poseidon_row_ratio, FELT_8)?));
+ let pow172 = pow170 * pow170; // pow(trace_generator, &(safe_div(poseidon_row_ratio, 32))).
+ let pow173 = pow170 * pow172; // pow(trace_generator, &(safe_div((3* poseidon_row_ratio), 64))).
+ let pow174 = pow170 * pow173; // pow(trace_generator, &(safe_div(poseidon_row_ratio, 16))).
+ let pow175 = pow172 * pow174; // pow(trace_generator, &(safe_div((3* poseidon_row_ratio), 32))).
+ let pow176 = trace_generator.pow_felt(&(safe_div(FELT_61 * poseidon_row_ratio, FELT_64)?));
+ let pow177 = pow172 * pow175; // pow(trace_generator, &(safe_div(poseidon_row_ratio, 8))).
+ let pow178 = pow171 * pow177; // pow(trace_generator, &(safe_div(poseidon_row_ratio, 2))).
+ let pow179 = pow175 * pow178; // pow(trace_generator, &(safe_div((19* poseidon_row_ratio), 32))).
+ let pow185 = trace_generator
+ .pow_felt(&(poseidon_param_2_input_output_suboffset * memory_units_row_ratio));
+ let pow187 = trace_generator
+ .pow_felt(&(poseidon_param_1_input_output_suboffset * memory_units_row_ratio));
+ let pow189 = trace_generator
+ .pow_felt(&(poseidon_param_0_input_output_suboffset * memory_units_row_ratio));
+ let pow191 = trace_generator
+ .pow_felt(&(keccak_keccak_diluted_column2_suboffset * diluted_units_row_ratio));
+ let pow192 = trace_generator
+ .pow_felt(&(keccak_keccak_diluted_column1_suboffset * diluted_units_row_ratio));
+ let pow193 = trace_generator
+ .pow_felt(&(keccak_keccak_diluted_column3_suboffset * diluted_units_row_ratio));
+ let pow194 = trace_generator
+ .pow_felt(&(keccak_keccak_diluted_column0_suboffset * diluted_units_row_ratio));
+ let pow195 = trace_generator.pow_felt(&(safe_div(keccak_row_ratio, FELT_32768)?));
+ let pow196 = pow195 * pow195; // pow(trace_generator, &(safe_div(keccak_row_ratio, 16384))).
+ let pow197 = pow195 * pow196; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 32768))).
+ let pow198 = pow195 * pow197; // pow(trace_generator, &(safe_div(keccak_row_ratio, 8192))).
+ let pow199 = pow195 * pow198; // pow(trace_generator, &(safe_div((5* keccak_row_ratio), 32768))).
+ let pow200 = pow195 * pow199; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 16384))).
+ let pow201 = pow195 * pow200; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 32768))).
+ let pow202 = pow195 * pow201; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4096))).
+ let pow203 = pow195 * pow202; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4096)) + &(safe_div(keccak_row_ratio, 32768))).
+ let pow204 = pow195 * pow203; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4096)) + &(safe_div(keccak_row_ratio, 16384))).
+ let pow205 = pow195 * pow204; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4096)) + &(safe_div((3* keccak_row_ratio), 32768))).
+ let pow206 = pow195 * pow205; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4096)) + &(safe_div(keccak_row_ratio, 8192))).
+ let pow207 = pow195 * pow206; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4096)) + &(safe_div((5* keccak_row_ratio), 32768))).
+ let pow208 = pow195 * pow207; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4096)) + &(safe_div((3* keccak_row_ratio), 16384))).
+ let pow209 = pow195 * pow208; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4096)) + &(safe_div((7* keccak_row_ratio), 32768))).
+ let pow210 = pow195 * pow209; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048))).
+ let pow211 = pow195 * pow210; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + &(safe_div(keccak_row_ratio, 32768))).
+ let pow212 = pow195 * pow211; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + &(safe_div(keccak_row_ratio, 16384))).
+ let pow213 = pow195 * pow212; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + &(safe_div((3* keccak_row_ratio), 32768))).
+ let pow214 = pow195 * pow213; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + &(safe_div(keccak_row_ratio, 8192))).
+ let pow215 = pow195 * pow214; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + &(safe_div((5* keccak_row_ratio), 32768))).
+ let pow216 = pow195 * pow215; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + &(safe_div((3* keccak_row_ratio), 16384))).
+ let pow217 = pow195 * pow216; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + &(safe_div((7* keccak_row_ratio), 32768))).
+ let pow218 = pow203 * pow217; // pow(trace_generator, &(safe_div(keccak_row_ratio, 1024))).
+ let pow219 = pow210 * pow218; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 2048))).
+ let pow220 = pow210 * pow219; // pow(trace_generator, &(safe_div(keccak_row_ratio, 512))).
+ let pow221 = pow210 * pow220; // pow(trace_generator, &(safe_div((5* keccak_row_ratio), 2048))).
+ let pow222 = pow210 * pow221; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 1024))).
+ let pow223 = pow210 * pow222; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 2048))).
+ let pow224 = pow210 * pow223; // pow(trace_generator, &(safe_div(keccak_row_ratio, 256))).
+ let pow225 = pow210 * pow224; // pow(trace_generator, &(safe_div((9* keccak_row_ratio), 2048))).
+ let pow226 = pow210 * pow225; // pow(trace_generator, &(safe_div((5* keccak_row_ratio), 1024))).
+ let pow227 = pow210 * pow226; // pow(trace_generator, &(safe_div((11* keccak_row_ratio), 2048))).
+ let pow228 = pow210 * pow227; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512))).
+ let pow231 = pow210 * pow228; // pow(trace_generator, &(safe_div((13* keccak_row_ratio), 2048))).
+ let pow232 = pow210 * pow231; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 1024))).
+ let pow233 = pow210 * pow232; // pow(trace_generator, &(safe_div((15* keccak_row_ratio), 2048))).
+ let pow234 = pow202 * pow233; // pow(trace_generator, &(safe_div((31* keccak_row_ratio), 4096))).
+ let pow235 = pow202 * pow234; // pow(trace_generator, &(safe_div(keccak_row_ratio, 128))).
+ let pow237 = pow210 * pow235; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + &(safe_div(keccak_row_ratio, 128))).
+ let pow238 = pow219 * pow237; // pow(trace_generator, &(safe_div(keccak_row_ratio, 256)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow239 = pow220 * pow238; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow240 = pow220 * pow239; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 512))).
+ let pow242 = pow219 * pow240; // pow(trace_generator, &(safe_div((15* keccak_row_ratio), 2048)) + &(safe_div(keccak_row_ratio, 128))).
+ let pow243 = pow202 * pow242; // pow(trace_generator, &(safe_div((31* keccak_row_ratio), 4096)) + &(safe_div(keccak_row_ratio, 128))).
+ let pow244 = pow202 * pow243; // pow(trace_generator, &(safe_div(keccak_row_ratio, 64))).
+ let pow245 = pow220 * pow244; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow247 = pow224 * pow245; // pow(trace_generator, &(safe_div((11* keccak_row_ratio), 512))).
+ let pow249 = pow220 * pow247; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 128))).
+ let pow254 = pow228 * pow249; // pow(trace_generator, &(safe_div((15* keccak_row_ratio), 512))).
+ let pow256 = pow220 * pow254; // pow(trace_generator, &(safe_div(keccak_row_ratio, 32))).
+ let pow260 = pow224 * pow256; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow261 = pow202 * pow256; // pow(trace_generator, &(safe_div(keccak_row_ratio, 32)) + &(safe_div(keccak_row_ratio, 4096))).
+ let pow262 = pow220 * pow260; // pow(trace_generator, &(safe_div((19* keccak_row_ratio), 512))).
+ let pow264 = pow220 * pow262; // pow(trace_generator, &(safe_div((5* keccak_row_ratio), 128))).
+ let pow265 = pow220 * pow264; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow266 = pow224 * pow265; // pow(trace_generator, &(safe_div((23* keccak_row_ratio), 512))).
+ let pow269 = pow220 * pow266; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 64))).
+ let pow270 = pow228 * pow269; // pow(trace_generator, &(safe_div((27* keccak_row_ratio), 512))).
+ let pow273 = pow220 * pow270; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 128))).
+ let pow274 = pow228 * pow273; // pow(trace_generator, &(safe_div((31* keccak_row_ratio), 512))).
+ let pow277 = pow220 * pow274; // pow(trace_generator, &(safe_div(keccak_row_ratio, 16))).
+ let pow279 = pow220 * pow277; // pow(trace_generator, &(safe_div(keccak_row_ratio, 512)) + &(safe_div(keccak_row_ratio, 16))).
+ let pow280 = pow220 * pow279; // pow(trace_generator, &(safe_div(keccak_row_ratio, 256)) + &(safe_div(keccak_row_ratio, 16))).
+ let pow281 = pow220 * pow280; // pow(trace_generator, &(safe_div((35* keccak_row_ratio), 512))).
+ let pow283 = pow220 * pow281; // pow(trace_generator, &(safe_div((9* keccak_row_ratio), 128))).
+ let pow285 = pow228 * pow283; // pow(trace_generator, &(safe_div((39* keccak_row_ratio), 512))).
+ let pow287 = pow220 * pow285; // pow(trace_generator, &(safe_div((5* keccak_row_ratio), 64))).
+ let pow288 = pow228 * pow287; // pow(trace_generator, &(safe_div((43* keccak_row_ratio), 512))).
+ let pow291 = pow220 * pow288; // pow(trace_generator, &(safe_div((11* keccak_row_ratio), 128))).
+ let pow292 = pow228 * pow291; // pow(trace_generator, &(safe_div((47* keccak_row_ratio), 512))).
+ let pow295 = pow220 * pow292; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 32))).
+ let pow297 = pow235 * pow295; // pow(trace_generator, &(safe_div((13* keccak_row_ratio), 128))).
+ let pow299 = pow235 * pow297; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 64))).
+ let pow301 = pow220 * pow299; // pow(trace_generator, &(safe_div(keccak_row_ratio, 512)) + &(safe_div((7* keccak_row_ratio), 64))).
+ let pow302 = pow220 * pow301; // pow(trace_generator, &(safe_div(keccak_row_ratio, 256)) + &(safe_div((7* keccak_row_ratio), 64))).
+ let pow303 = pow224 * pow302; // pow(trace_generator, &(safe_div((15* keccak_row_ratio), 128))).
+ let pow304 = pow220 * pow303; // pow(trace_generator, &(safe_div(keccak_row_ratio, 512)) + &(safe_div((15* keccak_row_ratio), 128))).
+ let pow305 = pow220 * pow304; // pow(trace_generator, &(safe_div(keccak_row_ratio, 256)) + &(safe_div((15* keccak_row_ratio), 128))).
+ let pow307 = pow224 * pow305; // pow(trace_generator, &(safe_div(keccak_row_ratio, 8))).
+ let pow309 = pow235 * pow307; // pow(trace_generator, &(safe_div((17* keccak_row_ratio), 128))).
+ let pow311 = pow235 * pow309; // pow(trace_generator, &(safe_div((9* keccak_row_ratio), 64))).
+ let pow313 = pow235 * pow311; // pow(trace_generator, &(safe_div((19* keccak_row_ratio), 128))).
+ let pow315 = pow235 * pow313; // pow(trace_generator, &(safe_div((5* keccak_row_ratio), 32))).
+ let pow317 = pow235 * pow315; // pow(trace_generator, &(safe_div((21* keccak_row_ratio), 128))).
+ let pow319 = pow220 * pow317; // pow(trace_generator, &(safe_div(keccak_row_ratio, 512)) + &(safe_div((21* keccak_row_ratio), 128))).
+ let pow321 = pow220 * pow319; // pow(trace_generator, &(safe_div(keccak_row_ratio, 256)) + &(safe_div((21* keccak_row_ratio), 128))).
+ let pow323 = pow224 * pow321; // pow(trace_generator, &(safe_div((11* keccak_row_ratio), 64))).
+ let pow325 = pow220 * pow323; // pow(trace_generator, &(safe_div(keccak_row_ratio, 512)) + &(safe_div((11* keccak_row_ratio), 64))).
+ let pow327 = pow220 * pow325; // pow(trace_generator, &(safe_div(keccak_row_ratio, 256)) + &(safe_div((11* keccak_row_ratio), 64))).
+ let pow329 = pow224 * pow327; // pow(trace_generator, &(safe_div((23* keccak_row_ratio), 128))).
+ let pow331 = pow220 * pow329; // pow(trace_generator, &(safe_div(keccak_row_ratio, 512)) + &(safe_div((23* keccak_row_ratio), 128))).
+ let pow333 = pow220 * pow331; // pow(trace_generator, &(safe_div(keccak_row_ratio, 256)) + &(safe_div((23* keccak_row_ratio), 128))).
+ let pow335 = pow224 * pow333; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 16))).
+ let pow337 = pow220 * pow335; // pow(trace_generator, &(safe_div(keccak_row_ratio, 512)) + &(safe_div((3* keccak_row_ratio), 16))).
+ let pow339 = pow220 * pow337; // pow(trace_generator, &(safe_div(keccak_row_ratio, 256)) + &(safe_div((3* keccak_row_ratio), 16))).
+ let pow341 = pow224 * pow339; // pow(trace_generator, &(safe_div((25* keccak_row_ratio), 128))).
+ let pow345 = pow210 * pow341; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow346 = pow219 * pow345; // pow(trace_generator, &(safe_div(keccak_row_ratio, 512)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow348 = pow220 * pow346; // pow(trace_generator, &(safe_div(keccak_row_ratio, 256)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow350 = pow220 * pow348; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow352 = pow220 * pow350; // pow(trace_generator, &(safe_div(keccak_row_ratio, 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow353 = pow220 * pow352; // pow(trace_generator, &(safe_div(keccak_row_ratio, 256)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow354 = pow220 * pow353; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow356 = pow228 * pow354; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow358 = pow228 * pow356; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow360 = pow228 * pow358; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow361 = pow228 * pow360; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow362 = pow228 * pow361; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow363 = pow228 * pow362; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow364 = pow235 * pow363; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4))).
+ let pow365 = pow202 * pow364; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4)) + &(safe_div(keccak_row_ratio, 4096))).
+ let pow366 = pow202 * pow365; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + &(safe_div(keccak_row_ratio, 4))).
+ let pow367 = pow227 * pow366; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow368 = pow219 * pow367; // pow(trace_generator, &(safe_div((15* keccak_row_ratio), 2048)) + &(safe_div(keccak_row_ratio, 4))).
+ let pow369 = pow202 * pow368; // pow(trace_generator, &(safe_div((31* keccak_row_ratio), 4096)) + &(safe_div(keccak_row_ratio, 4))).
+ let pow370 = pow202 * pow369; // pow(trace_generator, &(safe_div((33* keccak_row_ratio), 128))).
+ let pow371 = pow224 * pow370; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow372 = pow224 * pow371; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4)) + &(safe_div(keccak_row_ratio, 64))).
+ let pow373 = pow220 * pow372; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow374 = pow228 * pow373; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow375 = pow228 * pow374; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow378 = pow228 * pow375; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow379 = pow228 * pow378; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow391 = pow247 * pow379; // pow(trace_generator, &(safe_div((5* keccak_row_ratio), 16))).
+ let pow392 = pow244 * pow391; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4)) + &(safe_div((5* keccak_row_ratio), 64))).
+ let pow393 = pow269 * pow392; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 8))).
+ let pow394 = pow277 * pow393; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 16))).
+ let pow395 = pow301 * pow393; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow396 = pow240 * pow395; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2))).
+ let pow397 = pow220 * pow396; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + &(safe_div(keccak_row_ratio, 512))).
+ let pow398 = pow220 * pow397; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + &(safe_div(keccak_row_ratio, 256))).
+ let pow399 = pow239 * pow398; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + &(safe_div(keccak_row_ratio, 64))).
+ let pow400 = pow269 * pow399; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + &(safe_div(keccak_row_ratio, 16))).
+ let pow401 = pow240 * pow400; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + &(safe_div((39* keccak_row_ratio), 512))).
+ let pow403 = pow235 * pow401; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + &(safe_div((43* keccak_row_ratio), 512))).
+ let pow405 = pow265 * pow403; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + &(safe_div(keccak_row_ratio, 8))).
+ let pow406 = pow277 * pow405; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + &(safe_div((3* keccak_row_ratio), 16))).
+ let pow407 = pow220 * pow406; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + &(safe_div(keccak_row_ratio, 512)) + &(safe_div((3* keccak_row_ratio), 16))).
+ let pow408 = pow220 * pow407; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + &(safe_div(keccak_row_ratio, 256)) + &(safe_div((3* keccak_row_ratio), 16))).
+ let pow409 = pow224 * pow408; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow410 = pow273 * pow409; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 4))).
+ let pow412 = pow228 * pow410; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow415 = pow220 * pow412; // pow(trace_generator, &(safe_div((97* keccak_row_ratio), 128))).
+ let pow416 = pow235 * pow415; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 64))).
+ let pow417 = pow264 * pow416; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 4)) + &(safe_div((7* keccak_row_ratio), 128))).
+ let pow418 = pow235 * pow417; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + &(safe_div((5* keccak_row_ratio), 16))).
+ let pow419 = pow277 * pow418; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + &(safe_div((3* keccak_row_ratio), 8))).
+ let pow420 = pow269 * pow419; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 4)) + &(safe_div((11* keccak_row_ratio), 64))).
+ let pow421 = pow244 * pow420; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + &(safe_div((7* keccak_row_ratio), 16))).
+ let pow422 = pow235 * pow421; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 4)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow452 = pow273 * pow422; // pow(trace_generator, keccak_row_ratio).
+ let pow453 = pow396 * pow452; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 2))).
+ let pow456 = pow291 * pow453; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 2)) + &(safe_div((11* keccak_row_ratio), 128))).
+ let pow460 = pow317 * pow456; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 4))).
+ let pow464 = pow202 * pow460; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 4096))).
+ let pow465 = pow234 * pow464; // pow(trace_generator, &(safe_div((225* keccak_row_ratio), 128))).
+ let pow466 = pow235 * pow465; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 64))).
+ let pow469 = pow363 * pow465; // pow(trace_generator, (2* keccak_row_ratio)).
+ let pow470 = pow210 * pow469; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + (2* keccak_row_ratio)).
+ let pow471 = pow227 * pow470; // pow(trace_generator, (2* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow472 = pow228 * pow471; // pow(trace_generator, (2* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow473 = pow228 * pow472; // pow(trace_generator, (2* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow474 = pow228 * pow473; // pow(trace_generator, (2* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 128))).
+ let pow475 = pow210 * pow474; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + (2* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 128))).
+ let pow476 = pow227 * pow475; // pow(trace_generator, (2* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow477 = pow228 * pow476; // pow(trace_generator, (2* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow478 = pow228 * pow477; // pow(trace_generator, (2* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow479 = pow228 * pow478; // pow(trace_generator, (2* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow480 = pow273 * pow479; // pow(trace_generator, (2* keccak_row_ratio) + &(safe_div((13* keccak_row_ratio), 128))).
+ let pow481 = pow287 * pow480; // pow(trace_generator, (2* keccak_row_ratio) + &(safe_div((23* keccak_row_ratio), 128))).
+ let pow482 = pow244 * pow481; // pow(trace_generator, (2* keccak_row_ratio) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow485 = pow269 * pow482; // pow(trace_generator, (2* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow486 = pow235 * pow485; // pow(trace_generator, &(safe_div((9* keccak_row_ratio), 4))).
+ let pow487 = pow220 * pow486; // pow(trace_generator, &(safe_div((1153* keccak_row_ratio), 512))).
+ let pow490 = pow274 * pow487; // pow(trace_generator, &(safe_div((9* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 16))).
+ let pow493 = pow309 * pow490; // pow(trace_generator, &(safe_div((9* keccak_row_ratio), 4)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow495 = pow220 * pow493; // pow(trace_generator, &(safe_div((1153* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow497 = pow270 * pow495; // pow(trace_generator, &(safe_div((5* keccak_row_ratio), 2))).
+ let pow509 = pow396 * pow497; // pow(trace_generator, (3* keccak_row_ratio)).
+ let pow510 = pow396 * pow509; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 2))).
+ let pow511 = pow228 * pow510; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 2)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow512 = pow228 * pow511; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 2)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow513 = pow228 * pow512; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 2)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow514 = pow228 * pow513; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 2)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow515 = pow228 * pow514; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 2)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow516 = pow220 * pow515; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 2)) + &(safe_div(keccak_row_ratio, 32))).
+ let pow520 = pow358 * pow516; // pow(trace_generator, &(safe_div((15* keccak_row_ratio), 4))).
+ let pow521 = pow228 * pow520; // pow(trace_generator, &(safe_div((15* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow526 = pow220 * pow521; // pow(trace_generator, &(safe_div((481* keccak_row_ratio), 128))).
+ let pow527 = pow224 * pow526; // pow(trace_generator, &(safe_div((15* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow528 = pow224 * pow527; // pow(trace_generator, &(safe_div((15* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 64))).
+ let pow529 = pow220 * pow528; // pow(trace_generator, &(safe_div((15* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow530 = pow228 * pow529; // pow(trace_generator, &(safe_div((15* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow533 = pow228 * pow530; // pow(trace_generator, &(safe_div((15* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow534 = pow228 * pow533; // pow(trace_generator, &(safe_div((15* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow535 = pow341 * pow534; // pow(trace_generator, &(safe_div((15* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow537 = pow301 * pow533; // pow(trace_generator, &(safe_div((15* keccak_row_ratio), 4)) + &(safe_div((9* keccak_row_ratio), 64))).
+ let pow539 = pow299 * pow537; // pow(trace_generator, (4* keccak_row_ratio)).
+ let pow540 = pow396 * pow539; // pow(trace_generator, &(safe_div((9* keccak_row_ratio), 2))).
+ let pow541 = pow228 * pow540; // pow(trace_generator, &(safe_div((9* keccak_row_ratio), 2)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow542 = pow228 * pow541; // pow(trace_generator, &(safe_div((9* keccak_row_ratio), 2)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow543 = pow228 * pow542; // pow(trace_generator, &(safe_div((9* keccak_row_ratio), 2)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow544 = pow228 * pow543; // pow(trace_generator, &(safe_div((9* keccak_row_ratio), 2)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow545 = pow228 * pow544; // pow(trace_generator, &(safe_div((9* keccak_row_ratio), 2)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow546 = pow228 * pow545; // pow(trace_generator, &(safe_div((9* keccak_row_ratio), 2)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow547 = pow228 * pow546; // pow(trace_generator, &(safe_div((9* keccak_row_ratio), 2)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow549 = pow269 * pow539; // pow(trace_generator, (4* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 64))).
+ let pow551 = pow228 * pow547; // pow(trace_generator, &(safe_div((9* keccak_row_ratio), 2)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow552 = pow277 * pow551; // pow(trace_generator, &(safe_div((9* keccak_row_ratio), 2)) + &(safe_div((7* keccak_row_ratio), 64))).
+ let pow554 = pow309 * pow552; // pow(trace_generator, &(safe_div((9* keccak_row_ratio), 2)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow556 = pow235 * pow554; // pow(trace_generator, &(safe_div((19* keccak_row_ratio), 4))).
+ let pow557 = pow307 * pow556; // pow(trace_generator, &(safe_div((19* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 8))).
+ let pow558 = pow283 * pow557; // pow(trace_generator, &(safe_div((19* keccak_row_ratio), 4)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow559 = pow273 * pow558; // pow(trace_generator, (5* keccak_row_ratio)).
+ let pow560 = pow228 * pow559; // pow(trace_generator, (5* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow561 = pow228 * pow560; // pow(trace_generator, (5* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow562 = pow228 * pow561; // pow(trace_generator, (5* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow563 = pow228 * pow562; // pow(trace_generator, (5* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow564 = pow228 * pow563; // pow(trace_generator, (5* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow565 = pow228 * pow564; // pow(trace_generator, (5* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow566 = pow239 * pow565; // pow(trace_generator, (5* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 64))).
+ let pow568 = pow313 * pow566; // pow(trace_generator, (5* keccak_row_ratio) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow571 = pow273 * pow568; // pow(trace_generator, &(safe_div((21* keccak_row_ratio), 4))).
+ let pow572 = pow396 * pow571; // pow(trace_generator, &(safe_div((23* keccak_row_ratio), 4))).
+ let pow573 = pow220 * pow572; // pow(trace_generator, &(safe_div((2945* keccak_row_ratio), 512))).
+ let pow574 = pow220 * pow573; // pow(trace_generator, &(safe_div((1473* keccak_row_ratio), 256))).
+ let pow575 = pow220 * pow574; // pow(trace_generator, &(safe_div((23* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow576 = pow249 * pow571; // pow(trace_generator, &(safe_div((21* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 128))).
+ let pow577 = pow283 * pow576; // pow(trace_generator, &(safe_div((21* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 32))).
+ let pow578 = pow297 * pow577; // pow(trace_generator, &(safe_div((21* keccak_row_ratio), 4)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow579 = pow220 * pow575; // pow(trace_generator, &(safe_div((2945* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow581 = pow299 * pow579; // pow(trace_generator, &(safe_div((23* keccak_row_ratio), 4)) + &(safe_div((15* keccak_row_ratio), 128))).
+ let pow582 = pow220 * pow581; // pow(trace_generator, &(safe_div((2945* keccak_row_ratio), 512)) + &(safe_div((15* keccak_row_ratio), 128))).
+ let pow584 = pow288 * pow581; // pow(trace_generator, &(safe_div((23* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow586 = pow220 * pow584; // pow(trace_generator, &(safe_div((2945* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow588 = pow220 * pow586; // pow(trace_generator, &(safe_div((1473* keccak_row_ratio), 256)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow593 = pow266 * pow588; // pow(trace_generator, (6* keccak_row_ratio)).
+ let pow594 = pow283 * pow593; // pow(trace_generator, (6* keccak_row_ratio) + &(safe_div((9* keccak_row_ratio), 128))).
+ let pow595 = pow329 * pow594; // pow(trace_generator, &(safe_div((25* keccak_row_ratio), 4))).
+ let pow596 = pow220 * pow595; // pow(trace_generator, &(safe_div((3201* keccak_row_ratio), 512))).
+ let pow597 = pow220 * pow596; // pow(trace_generator, &(safe_div((1601* keccak_row_ratio), 256))).
+ let pow598 = pow220 * pow597; // pow(trace_generator, &(safe_div((25* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow600 = pow220 * pow598; // pow(trace_generator, &(safe_div((3201* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow601 = pow220 * pow600; // pow(trace_generator, &(safe_div((1601* keccak_row_ratio), 256)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow602 = pow220 * pow601; // pow(trace_generator, &(safe_div((25* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow603 = pow228 * pow602; // pow(trace_generator, &(safe_div((25* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow604 = pow228 * pow603; // pow(trace_generator, &(safe_div((25* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow605 = pow228 * pow604; // pow(trace_generator, &(safe_div((25* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow606 = pow228 * pow605; // pow(trace_generator, &(safe_div((25* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow607 = pow228 * pow606; // pow(trace_generator, &(safe_div((25* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow608 = pow228 * pow607; // pow(trace_generator, &(safe_div((25* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow609 = pow269 * pow608; // pow(trace_generator, &(safe_div((25* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 32))).
+ let pow610 = pow244 * pow609; // pow(trace_generator, &(safe_div((25* keccak_row_ratio), 4)) + &(safe_div((7* keccak_row_ratio), 64))).
+ let pow613 = pow292 * pow610; // pow(trace_generator, &(safe_div((25* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow614 = pow220 * pow613; // pow(trace_generator, &(safe_div((3201* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow615 = pow220 * pow614; // pow(trace_generator, &(safe_div((1601* keccak_row_ratio), 256)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow616 = pow262 * pow615; // pow(trace_generator, &(safe_div((25* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow617 = pow370 * pow616; // pow(trace_generator, &(safe_div((27* keccak_row_ratio), 4))).
+ let pow618 = pow228 * pow617; // pow(trace_generator, &(safe_div((27* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow621 = pow228 * pow618; // pow(trace_generator, &(safe_div((27* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow622 = pow228 * pow621; // pow(trace_generator, &(safe_div((27* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow623 = pow341 * pow622; // pow(trace_generator, &(safe_div((27* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow624 = pow262 * pow623; // pow(trace_generator, (7* keccak_row_ratio)).
+ let pow627 = pow410 * pow624; // pow(trace_generator, &(safe_div((31* keccak_row_ratio), 4))).
+ let pow631 = pow202 * pow627; // pow(trace_generator, &(safe_div((31* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 4096))).
+ let pow632 = pow234 * pow631; // pow(trace_generator, &(safe_div((993* keccak_row_ratio), 128))).
+ let pow636 = pow363 * pow632; // pow(trace_generator, (8* keccak_row_ratio)).
+ let pow638 = pow452 * pow636; // pow(trace_generator, (9* keccak_row_ratio)).
+ let pow639 = pow228 * pow638; // pow(trace_generator, (9* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow640 = pow228 * pow639; // pow(trace_generator, (9* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow643 = pow228 * pow640; // pow(trace_generator, (9* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow645 = pow228 * pow643; // pow(trace_generator, (9* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 128))).
+ let pow646 = pow297 * pow645; // pow(trace_generator, (9* keccak_row_ratio) + &(safe_div(keccak_row_ratio, 8))).
+ let pow648 = pow283 * pow646; // pow(trace_generator, (9* keccak_row_ratio) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow655 = pow249 * pow648; // pow(trace_generator, (9* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow656 = pow256 * pow655; // pow(trace_generator, &(safe_div((37* keccak_row_ratio), 4))).
+ let pow668 = pow396 * pow656; // pow(trace_generator, &(safe_div((39* keccak_row_ratio), 4))).
+ let pow671 = pow254 * pow668; // pow(trace_generator, &(safe_div((39* keccak_row_ratio), 4)) + &(safe_div((15* keccak_row_ratio), 512))).
+ let pow672 = pow235 * pow671; // pow(trace_generator, &(safe_div((39* keccak_row_ratio), 4)) + &(safe_div((19* keccak_row_ratio), 512))).
+ let pow673 = pow235 * pow672; // pow(trace_generator, &(safe_div((39* keccak_row_ratio), 4)) + &(safe_div((23* keccak_row_ratio), 512))).
+ let pow674 = pow279 * pow672; // pow(trace_generator, &(safe_div((39* keccak_row_ratio), 4)) + &(safe_div((13* keccak_row_ratio), 128))).
+ let pow675 = pow283 * pow674; // pow(trace_generator, &(safe_div((39* keccak_row_ratio), 4)) + &(safe_div((11* keccak_row_ratio), 64))).
+ let pow676 = pow220 * pow675; // pow(trace_generator, &(safe_div((39* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 512)) + &(safe_div((11* keccak_row_ratio), 64))).
+ let pow678 = pow247 * pow676; // pow(trace_generator, &(safe_div((39* keccak_row_ratio), 4)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow679 = pow273 * pow678; // pow(trace_generator, (10* keccak_row_ratio)).
+ let pow680 = pow303 * pow679; // pow(trace_generator, (10* keccak_row_ratio) + &(safe_div((15* keccak_row_ratio), 128))).
+ let pow681 = pow309 * pow680; // pow(trace_generator, &(safe_div((41* keccak_row_ratio), 4))).
+ let pow690 = pow396 * pow681; // pow(trace_generator, &(safe_div((43* keccak_row_ratio), 4))).
+ let pow691 = pow228 * pow690; // pow(trace_generator, &(safe_div((43* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow692 = pow228 * pow691; // pow(trace_generator, &(safe_div((43* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow693 = pow224 * pow692; // pow(trace_generator, &(safe_div((43* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 64))).
+ let pow695 = pow220 * pow693; // pow(trace_generator, &(safe_div((43* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow696 = pow228 * pow695; // pow(trace_generator, &(safe_div((43* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow697 = pow228 * pow696; // pow(trace_generator, &(safe_div((43* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow698 = pow301 * pow697; // pow(trace_generator, &(safe_div((43* keccak_row_ratio), 4)) + &(safe_div((9* keccak_row_ratio), 64))).
+ let pow699 = pow273 * pow698; // pow(trace_generator, &(safe_div((43* keccak_row_ratio), 4)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow701 = pow273 * pow699; // pow(trace_generator, (11* keccak_row_ratio)).
+ let pow702 = pow228 * pow701; // pow(trace_generator, (11* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow703 = pow220 * pow702; // pow(trace_generator, (11* keccak_row_ratio) + &(safe_div(keccak_row_ratio, 128))).
+ let pow704 = pow224 * pow703; // pow(trace_generator, (11* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow705 = pow228 * pow704; // pow(trace_generator, (11* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow706 = pow228 * pow705; // pow(trace_generator, (11* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow707 = pow228 * pow706; // pow(trace_generator, (11* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow709 = pow265 * pow707; // pow(trace_generator, (11* keccak_row_ratio) + &(safe_div((9* keccak_row_ratio), 128))).
+ let pow730 = pow329 * pow709; // pow(trace_generator, &(safe_div((45* keccak_row_ratio), 4))).
+ let pow731 = pow228 * pow730; // pow(trace_generator, &(safe_div((45* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow732 = pow228 * pow731; // pow(trace_generator, &(safe_div((45* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow733 = pow228 * pow732; // pow(trace_generator, &(safe_div((45* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow734 = pow228 * pow733; // pow(trace_generator, &(safe_div((45* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow735 = pow228 * pow734; // pow(trace_generator, &(safe_div((45* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow736 = pow228 * pow735; // pow(trace_generator, &(safe_div((45* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow737 = pow228 * pow736; // pow(trace_generator, &(safe_div((45* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow738 = pow247 * pow737; // pow(trace_generator, &(safe_div((45* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 16))).
+ let pow740 = pow325 * pow738; // pow(trace_generator, &(safe_div((45* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow741 = pow240 * pow740; // pow(trace_generator, &(safe_div((23* keccak_row_ratio), 2))).
+ let pow746 = pow396 * pow741; // pow(trace_generator, (12* keccak_row_ratio)).
+ let pow747 = pow311 * pow746; // pow(trace_generator, (12* keccak_row_ratio) + &(safe_div((9* keccak_row_ratio), 64))).
+ let pow748 = pow299 * pow747; // pow(trace_generator, &(safe_div((49* keccak_row_ratio), 4))).
+ let pow749 = pow309 * pow748; // pow(trace_generator, &(safe_div((49* keccak_row_ratio), 4)) + &(safe_div((17* keccak_row_ratio), 128))).
+ let pow750 = pow277 * pow749; // pow(trace_generator, &(safe_div((49* keccak_row_ratio), 4)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow754 = pow273 * pow750; // pow(trace_generator, &(safe_div((25* keccak_row_ratio), 2))).
+ let pow755 = pow228 * pow754; // pow(trace_generator, &(safe_div((25* keccak_row_ratio), 2)) + &(safe_div((3* keccak_row_ratio), 512))).
+ let pow756 = pow331 * pow755; // pow(trace_generator, &(safe_div((25* keccak_row_ratio), 2)) + &(safe_div((3* keccak_row_ratio), 16))).
+ let pow757 = pow391 * pow756; // pow(trace_generator, (13* keccak_row_ratio)).
+ let pow758 = pow396 * pow757; // pow(trace_generator, &(safe_div((27* keccak_row_ratio), 2))).
+ let pow759 = pow291 * pow758; // pow(trace_generator, &(safe_div((27* keccak_row_ratio), 2)) + &(safe_div((11* keccak_row_ratio), 128))).
+ let pow760 = pow299 * pow759; // pow(trace_generator, &(safe_div((27* keccak_row_ratio), 2)) + &(safe_div((25* keccak_row_ratio), 128))).
+ let pow761 = pow273 * pow760; // pow(trace_generator, &(safe_div((55* keccak_row_ratio), 4))).
+ let pow770 = pow317 * pow761; // pow(trace_generator, &(safe_div((55* keccak_row_ratio), 4)) + &(safe_div((21* keccak_row_ratio), 128))).
+ let pow772 = pow220 * pow770; // pow(trace_generator, &(safe_div((55* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 512)) + &(safe_div((21* keccak_row_ratio), 128))).
+ let pow776 = pow288 * pow772; // pow(trace_generator, (14* keccak_row_ratio)).
+ let pow777 = pow396 * pow776; // pow(trace_generator, &(safe_div((29* keccak_row_ratio), 2))).
+ let pow779 = pow396 * pow777; // pow(trace_generator, (15* keccak_row_ratio)).
+ let pow780 = pow364 * pow779; // pow(trace_generator, &(safe_div((61* keccak_row_ratio), 4))).
+ let pow958 =
+ trace_generator.pow_felt(&(keccak_input_output_suboffset * memory_units_row_ratio));
+ let pow974 =
+ trace_generator.pow_felt(&(safe_div(FELT_255 * ec_op_builtin_row_ratio, FELT_256)?));
+ let pow975 =
+ trace_generator.pow_felt(&(safe_div(FELT_251 * ec_op_builtin_row_ratio, FELT_256)?));
+ let pow976 = trace_generator.pow_felt(&(safe_div(FELT_49 * ec_op_builtin_row_ratio, FELT_64)?));
+ let pow977 = trace_generator.pow_felt(&(safe_div(FELT_3 * ec_op_builtin_row_ratio, FELT_4)?));
+ let pow978 = trace_generator.pow_felt(&(safe_div(ec_op_builtin_row_ratio, FELT_256)?));
+ let pow979 = pow974 * pow978; // pow(trace_generator, ec_op_builtin_row_ratio).
+ let pow983 = trace_generator.pow_felt(&(ec_op_r_y_suboffset * memory_units_row_ratio));
+ let pow984 = trace_generator.pow_felt(&(ec_op_r_x_suboffset * memory_units_row_ratio));
+ let pow985 = trace_generator.pow_felt(&(ec_op_m_suboffset * memory_units_row_ratio));
+ let pow986 = trace_generator.pow_felt(&(ec_op_q_y_suboffset * memory_units_row_ratio));
+ let pow987 = trace_generator.pow_felt(&(ec_op_q_x_suboffset * memory_units_row_ratio));
+ let pow988 = trace_generator.pow_felt(&(ec_op_p_y_suboffset * memory_units_row_ratio));
+ let pow989 = trace_generator.pow_felt(&(ec_op_p_x_suboffset * memory_units_row_ratio));
+ let pow991 =
+ trace_generator.pow_felt(&(bitwise_trim_unpacking195_suboffset * diluted_units_row_ratio));
+ let pow992 =
+ trace_generator.pow_felt(&(bitwise_trim_unpacking194_suboffset * diluted_units_row_ratio));
+ let pow993 =
+ trace_generator.pow_felt(&(bitwise_trim_unpacking193_suboffset * diluted_units_row_ratio));
+ let pow994 =
+ trace_generator.pow_felt(&(bitwise_trim_unpacking192_suboffset * diluted_units_row_ratio));
+ let pow995 =
+ trace_generator.pow_felt(&(bitwise_diluted_var_pool_suboffset * diluted_units_row_ratio));
+ let pow1022 = trace_generator.pow_felt(&(bitwise_x_or_y_suboffset * memory_units_row_ratio));
+ let pow1023 = trace_generator.pow_felt(&(bitwise_var_pool_suboffset * memory_units_row_ratio));
+ let pow1028 = trace_generator.pow_felt(&(ecdsa_message_suboffset * memory_units_row_ratio));
+ let pow1029 = trace_generator.pow_felt(&(ecdsa_pubkey_suboffset * memory_units_row_ratio));
+ let pow1030 =
+ trace_generator.pow_felt(&(safe_div(FELT_255 * ecdsa_builtin_row_ratio, FELT_512)?));
+ let pow1031 = pow1030 * pow1030; // pow(trace_generator, &(safe_div((255* ecdsa_builtin_row_ratio), 256))).
+ let pow1032 = trace_generator.pow_felt(&(safe_div(ecdsa_builtin_row_ratio, FELT_512)?));
+ let pow1035 = pow1032 * pow1032; // pow(trace_generator, &(safe_div(ecdsa_builtin_row_ratio, 256))).
+ let pow1036 = pow1031 * pow1035; // pow(trace_generator, ecdsa_builtin_row_ratio).
+ let pow1038 = trace_generator
+ .pow_felt(&(range_check_builtin_inner_range_check_suboffset * range_check_units_row_ratio));
+ let pow1046 =
+ trace_generator.pow_felt(&(range_check_builtin_mem_suboffset * memory_units_row_ratio));
+ let pow1048 = trace_generator.pow_felt(&(pedersen_input1_suboffset * memory_units_row_ratio));
+ let pow1049 = trace_generator.pow_felt(&(pedersen_output_suboffset * memory_units_row_ratio));
+ let pow1050 = trace_generator.pow_felt(&(pedersen_input0_suboffset * memory_units_row_ratio));
+ let pow1051 =
+ trace_generator.pow_felt(&(safe_div(FELT_255 * pedersen_builtin_row_ratio, FELT_512)?));
+ let pow1052 =
+ trace_generator.pow_felt(&(safe_div(FELT_251 * pedersen_builtin_row_ratio, FELT_512)?));
+ let pow1053 =
+ trace_generator.pow_felt(&(safe_div(FELT_49 * pedersen_builtin_row_ratio, FELT_128)?));
+ let pow1054 =
+ trace_generator.pow_felt(&(safe_div(FELT_3 * pedersen_builtin_row_ratio, FELT_8)?));
+ let pow1055 = trace_generator.pow_felt(&(safe_div(pedersen_builtin_row_ratio, FELT_512)?));
+ let pow1057 = pow1051 * pow1055; // pow(trace_generator, &(safe_div(pedersen_builtin_row_ratio, 2))).
+ let pow1058 = pow1051 * pow1057; // pow(trace_generator, &(safe_div(pedersen_builtin_row_ratio, 2)) + &(safe_div((255* pedersen_builtin_row_ratio), 512))).
+ let pow1059 = pow1055 * pow1058; // pow(trace_generator, pedersen_builtin_row_ratio).
+ let pow1063 = trace_generator.pow_felt(&diluted_units_row_ratio);
+ let pow1064 = trace_generator.pow_felt(&range_check_units_row_ratio);
+ let pow1065 =
+ trace_generator.pow_felt(&(orig_public_memory_suboffset * memory_units_row_ratio));
+ let pow1066 = trace_generator.pow_felt(&memory_units_row_ratio);
+ let pow1067 =
+ trace_generator.pow_felt(&(cpu_operands_mem_op1_suboffset * memory_units_row_ratio));
+ let pow1068 =
+ trace_generator.pow_felt(&(cpu_operands_mem_op0_suboffset * memory_units_row_ratio));
+ let pow1069 =
+ trace_generator.pow_felt(&(cpu_operands_mem_dst_suboffset * memory_units_row_ratio));
+ let pow1070 =
+ trace_generator.pow_felt(&(cpu_decode_off0_suboffset * range_check_units_row_ratio));
+ let pow1071 =
+ trace_generator.pow_felt(&(cpu_decode_off1_suboffset * range_check_units_row_ratio));
+ let pow1072 =
+ trace_generator.pow_felt(&(cpu_decode_off2_suboffset * range_check_units_row_ratio));
+ let pow1073 =
+ trace_generator.pow_felt(&(cpu_decode_mem_inst_suboffset * memory_units_row_ratio));
+ let pow1074 = trace_generator.pow_felt(&cpu_component_step);
+ let pow1075 = pow1074 * pow1074; // pow(trace_generator, (2* cpu_component_step)).
+ let pow1076 = pow1074 * pow1075; // pow(trace_generator, (2* cpu_component_step) + cpu_component_step).
+ let pow1077 = pow1074 * pow1076; // pow(trace_generator, (4* cpu_component_step)).
+ let pow1078 = pow1074 * pow1077; // pow(trace_generator, (4* cpu_component_step) + cpu_component_step).
+ let pow1079 = pow1074 * pow1078; // pow(trace_generator, (5* cpu_component_step) + cpu_component_step).
+ let pow1080 = pow1074 * pow1079; // pow(trace_generator, (6* cpu_component_step) + cpu_component_step).
+ let pow1081 = pow1074 * pow1080; // pow(trace_generator, (7* cpu_component_step) + cpu_component_step).
+ let pow1082 = pow1074 * pow1081; // pow(trace_generator, (9* cpu_component_step)).
+ let pow1083 = pow1074 * pow1082; // pow(trace_generator, (9* cpu_component_step) + cpu_component_step).
+ let pow1084 = pow1074 * pow1083; // pow(trace_generator, (10* cpu_component_step) + cpu_component_step).
+ let pow1085 = pow1074 * pow1084; // pow(trace_generator, (12* cpu_component_step)).
+ let pow1086 = pow1074 * pow1085; // pow(trace_generator, (12* cpu_component_step) + cpu_component_step).
+ let pow1087 = pow1074 * pow1086; // pow(trace_generator, (13* cpu_component_step) + cpu_component_step).
+ let pow1088 = pow1074 * pow1087; // pow(trace_generator, (14* cpu_component_step) + cpu_component_step).
+ let pow1089 = pow1074 * pow1088; // pow(trace_generator, (16* cpu_component_step)).
+ let pow1091 = trace_generator.pow_felt(&diluted_check_cumulative_value_offset);
+ let pow1092 = pow1063 * pow1091; // pow(trace_generator, diluted_units_row_ratio + diluted_check_cumulative_value_offset).
+ let pow1093 = trace_generator.pow_felt(&diluted_check_permutation_cum_prod0_offset);
+ let pow1094 = pow1063 * pow1093; // pow(trace_generator, diluted_units_row_ratio + diluted_check_permutation_cum_prod0_offset).
+ let pow1095 = trace_generator.pow_felt(&range_check16_perm_cum_prod0_offset);
+ let pow1096 = pow1064 * pow1095; // pow(trace_generator, range_check_units_row_ratio + range_check16_perm_cum_prod0_offset).
+ let pow1097 = trace_generator.pow_felt(&memory_multi_column_perm_perm_cum_prod0_offset);
+ let pow1098 = pow1066 * pow1097; // pow(trace_generator, memory_units_row_ratio + memory_multi_column_perm_perm_cum_prod0_offset).
+ let pow1099 = trace_generator.pow_felt(&add_mod_carry3_sign_offset);
+ let pow1100 = trace_generator.pow_felt(&add_mod_carry3_bit_offset);
+ let pow1101 = trace_generator.pow_felt(&add_mod_carry2_sign_offset);
+ let pow1102 = trace_generator.pow_felt(&add_mod_carry2_bit_offset);
+ let pow1103 = trace_generator.pow_felt(&add_mod_carry1_sign_offset);
+ let pow1104 = trace_generator.pow_felt(&add_mod_carry1_bit_offset);
+ let pow1105 = trace_generator.pow_felt(&add_mod_sub_p_bit_offset);
+ let pow1106 = trace_generator.pow_felt(&poseidon_poseidon_partial_rounds_state1_offset);
+ let pow1107 = pow172 * pow1106; // pow(trace_generator, &(safe_div(poseidon_row_ratio, 32)) + poseidon_poseidon_partial_rounds_state1_offset).
+ let pow1108 = pow172 * pow1107; // pow(trace_generator, &(safe_div(poseidon_row_ratio, 16)) + poseidon_poseidon_partial_rounds_state1_offset).
+ let pow1109 = pow172 * pow1108; // pow(trace_generator, &(safe_div((3* poseidon_row_ratio), 32)) + poseidon_poseidon_partial_rounds_state1_offset).
+ let pow1110 = pow178 * pow1109; // pow(trace_generator, &(safe_div((19* poseidon_row_ratio), 32)) + poseidon_poseidon_partial_rounds_state1_offset).
+ let pow1111 = pow172 * pow1110; // pow(trace_generator, &(safe_div((5* poseidon_row_ratio), 8)) + poseidon_poseidon_partial_rounds_state1_offset).
+ let pow1112 = pow172 * pow1111; // pow(trace_generator, &(safe_div((21* poseidon_row_ratio), 32)) + poseidon_poseidon_partial_rounds_state1_offset).
+ let pow1113 = trace_generator.pow_felt(&poseidon_poseidon_partial_rounds_state1_squared_offset);
+ let pow1114 = pow179 * pow1113; // pow(trace_generator, &(safe_div((19* poseidon_row_ratio), 32)) + poseidon_poseidon_partial_rounds_state1_squared_offset).
+ let pow1115 = pow172 * pow1113; // pow(trace_generator, &(safe_div(poseidon_row_ratio, 32)) + poseidon_poseidon_partial_rounds_state1_squared_offset).
+ let pow1116 = pow172 * pow1115; // pow(trace_generator, &(safe_div(poseidon_row_ratio, 16)) + poseidon_poseidon_partial_rounds_state1_squared_offset).
+ let pow1117 = pow172 * pow1114; // pow(trace_generator, &(safe_div((5* poseidon_row_ratio), 8)) + poseidon_poseidon_partial_rounds_state1_squared_offset).
+ let pow1118 = pow172 * pow1117; // pow(trace_generator, &(safe_div((21* poseidon_row_ratio), 32)) + poseidon_poseidon_partial_rounds_state1_squared_offset).
+ let pow1119 = trace_generator.pow_felt(&poseidon_poseidon_partial_rounds_state0_offset);
+ let pow1120 = pow170 * pow1119; // pow(trace_generator, &(safe_div(poseidon_row_ratio, 64)) + poseidon_poseidon_partial_rounds_state0_offset).
+ let pow1121 = pow170 * pow1120; // pow(trace_generator, &(safe_div(poseidon_row_ratio, 32)) + poseidon_poseidon_partial_rounds_state0_offset).
+ let pow1122 = pow170 * pow1121; // pow(trace_generator, &(safe_div((3* poseidon_row_ratio), 64)) + poseidon_poseidon_partial_rounds_state0_offset).
+ let pow1123 = pow176 * pow1119; // pow(trace_generator, &(safe_div((61* poseidon_row_ratio), 64)) + poseidon_poseidon_partial_rounds_state0_offset).
+ let pow1124 = pow170 * pow1123; // pow(trace_generator, &(safe_div((31* poseidon_row_ratio), 32)) + poseidon_poseidon_partial_rounds_state0_offset).
+ let pow1125 = pow170 * pow1124; // pow(trace_generator, &(safe_div((63* poseidon_row_ratio), 64)) + poseidon_poseidon_partial_rounds_state0_offset).
+ let pow1126 = trace_generator.pow_felt(&poseidon_poseidon_partial_rounds_state0_squared_offset);
+ let pow1127 = pow170 * pow1126; // pow(trace_generator, &(safe_div(poseidon_row_ratio, 64)) + poseidon_poseidon_partial_rounds_state0_squared_offset).
+ let pow1128 = pow170 * pow1127; // pow(trace_generator, &(safe_div(poseidon_row_ratio, 32)) + poseidon_poseidon_partial_rounds_state0_squared_offset).
+ let pow1129 = trace_generator.pow_felt(&poseidon_poseidon_full_rounds_state2_offset);
+ let pow1130 = pow171 * pow1129; // pow(trace_generator, &(safe_div((3* poseidon_row_ratio), 8)) + poseidon_poseidon_full_rounds_state2_offset).
+ let pow1131 = pow177 * pow1129; // pow(trace_generator, &(safe_div(poseidon_row_ratio, 8)) + poseidon_poseidon_full_rounds_state2_offset).
+ let pow1132 = pow171 * pow1131; // pow(trace_generator, &(safe_div(poseidon_row_ratio, 2)) + poseidon_poseidon_full_rounds_state2_offset).
+ let pow1133 = pow171 * pow1132; // pow(trace_generator, &(safe_div((7* poseidon_row_ratio), 8)) + poseidon_poseidon_full_rounds_state2_offset).
+ let pow1134 = trace_generator.pow_felt(&poseidon_poseidon_full_rounds_state2_squared_offset);
+ let pow1135 = pow171 * pow1134; // pow(trace_generator, &(safe_div((3* poseidon_row_ratio), 8)) + poseidon_poseidon_full_rounds_state2_squared_offset).
+ let pow1136 = pow178 * pow1135; // pow(trace_generator, &(safe_div((7* poseidon_row_ratio), 8)) + poseidon_poseidon_full_rounds_state2_squared_offset).
+ let pow1137 = trace_generator.pow_felt(&poseidon_poseidon_full_rounds_state1_offset);
+ let pow1138 = pow177 * pow1137; // pow(trace_generator, &(safe_div(poseidon_row_ratio, 8)) + poseidon_poseidon_full_rounds_state1_offset).
+ let pow1139 = pow171 * pow1137; // pow(trace_generator, &(safe_div((3* poseidon_row_ratio), 8)) + poseidon_poseidon_full_rounds_state1_offset).
+ let pow1140 = pow171 * pow1138; // pow(trace_generator, &(safe_div(poseidon_row_ratio, 2)) + poseidon_poseidon_full_rounds_state1_offset).
+ let pow1141 = pow171 * pow1140; // pow(trace_generator, &(safe_div((7* poseidon_row_ratio), 8)) + poseidon_poseidon_full_rounds_state1_offset).
+ let pow1142 = trace_generator.pow_felt(&poseidon_poseidon_full_rounds_state1_squared_offset);
+ let pow1143 = pow171 * pow1142; // pow(trace_generator, &(safe_div((3* poseidon_row_ratio), 8)) + poseidon_poseidon_full_rounds_state1_squared_offset).
+ let pow1144 = pow178 * pow1143; // pow(trace_generator, &(safe_div((7* poseidon_row_ratio), 8)) + poseidon_poseidon_full_rounds_state1_squared_offset).
+ let pow1145 = trace_generator.pow_felt(&poseidon_poseidon_full_rounds_state0_offset);
+ let pow1146 = pow171 * pow1145; // pow(trace_generator, &(safe_div((3* poseidon_row_ratio), 8)) + poseidon_poseidon_full_rounds_state0_offset).
+ let pow1147 = pow177 * pow1145; // pow(trace_generator, &(safe_div(poseidon_row_ratio, 8)) + poseidon_poseidon_full_rounds_state0_offset).
+ let pow1148 = pow171 * pow1147; // pow(trace_generator, &(safe_div(poseidon_row_ratio, 2)) + poseidon_poseidon_full_rounds_state0_offset).
+ let pow1149 = pow171 * pow1148; // pow(trace_generator, &(safe_div((7* poseidon_row_ratio), 8)) + poseidon_poseidon_full_rounds_state0_offset).
+ let pow1150 = trace_generator.pow_felt(&poseidon_poseidon_full_rounds_state0_squared_offset);
+ let pow1151 = pow171 * pow1150; // pow(trace_generator, &(safe_div((3* poseidon_row_ratio), 8)) + poseidon_poseidon_full_rounds_state0_squared_offset).
+ let pow1152 = pow178 * pow1151; // pow(trace_generator, &(safe_div((7* poseidon_row_ratio), 8)) + poseidon_poseidon_full_rounds_state0_squared_offset).
+ let pow1153 = trace_generator.pow_felt(&keccak_keccak_rotated_parity4_offset);
+ let pow1154 = pow220 * pow1153; // pow(trace_generator, &(safe_div(keccak_row_ratio, 512)) + keccak_keccak_rotated_parity4_offset).
+ let pow1155 = pow220 * pow1154; // pow(trace_generator, &(safe_div(keccak_row_ratio, 256)) + keccak_keccak_rotated_parity4_offset).
+ let pow1156 = pow364 * pow1153; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4)) + keccak_keccak_rotated_parity4_offset).
+ let pow1157 = pow460 * pow1156; // pow(trace_generator, (2* keccak_row_ratio) + keccak_keccak_rotated_parity4_offset).
+ let pow1158 = pow364 * pow1157; // pow(trace_generator, &(safe_div((9* keccak_row_ratio), 4)) + keccak_keccak_rotated_parity4_offset).
+ let pow1159 = pow220 * pow1158; // pow(trace_generator, &(safe_div((1153* keccak_row_ratio), 512)) + keccak_keccak_rotated_parity4_offset).
+ let pow1160 = pow220 * pow1159; // pow(trace_generator, &(safe_div((577* keccak_row_ratio), 256)) + keccak_keccak_rotated_parity4_offset).
+ let pow1161 = pow617 * pow1158; // pow(trace_generator, (9* keccak_row_ratio) + keccak_keccak_rotated_parity4_offset).
+ let pow1162 = pow410 * pow1161; // pow(trace_generator, &(safe_div((39* keccak_row_ratio), 4)) + keccak_keccak_rotated_parity4_offset).
+ let pow1163 = pow452 * pow1162; // pow(trace_generator, &(safe_div((43* keccak_row_ratio), 4)) + keccak_keccak_rotated_parity4_offset).
+ let pow1164 = trace_generator.pow_felt(&keccak_keccak_rotated_parity3_offset);
+ let pow1165 = pow364 * pow1164; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4)) + keccak_keccak_rotated_parity3_offset).
+ let pow1166 = pow364 * pow1165; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + keccak_keccak_rotated_parity3_offset).
+ let pow1167 = pow364 * pow1166; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 4)) + keccak_keccak_rotated_parity3_offset).
+ let pow1168 = pow540 * pow1167; // pow(trace_generator, &(safe_div((21* keccak_row_ratio), 4)) + keccak_keccak_rotated_parity3_offset).
+ let pow1169 = pow624 * pow1168; // pow(trace_generator, &(safe_div((49* keccak_row_ratio), 4)) + keccak_keccak_rotated_parity3_offset).
+ let pow1170 = pow486 * pow1169; // pow(trace_generator, &(safe_div((29* keccak_row_ratio), 2)) + keccak_keccak_rotated_parity3_offset).
+ let pow1171 = trace_generator.pow_felt(&keccak_keccak_rotated_parity2_offset);
+ let pow1172 = pow758 * pow1171; // pow(trace_generator, &(safe_div((27* keccak_row_ratio), 2)) + keccak_keccak_rotated_parity2_offset).
+ let pow1173 = pow220 * pow1171; // pow(trace_generator, &(safe_div(keccak_row_ratio, 512)) + keccak_keccak_rotated_parity2_offset).
+ let pow1174 = pow220 * pow1173; // pow(trace_generator, &(safe_div(keccak_row_ratio, 256)) + keccak_keccak_rotated_parity2_offset).
+ let pow1175 = pow364 * pow1171; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4)) + keccak_keccak_rotated_parity2_offset).
+ let pow1176 = pow540 * pow1175; // pow(trace_generator, &(safe_div((19* keccak_row_ratio), 4)) + keccak_keccak_rotated_parity2_offset).
+ let pow1177 = pow364 * pow1176; // pow(trace_generator, (5* keccak_row_ratio) + keccak_keccak_rotated_parity2_offset).
+ let pow1178 = pow469 * pow1172; // pow(trace_generator, &(safe_div((31* keccak_row_ratio), 2)) + keccak_keccak_rotated_parity2_offset).
+ let pow1179 = pow220 * pow1178; // pow(trace_generator, &(safe_div((7937* keccak_row_ratio), 512)) + keccak_keccak_rotated_parity2_offset).
+ let pow1180 = pow220 * pow1179; // pow(trace_generator, &(safe_div((3969* keccak_row_ratio), 256)) + keccak_keccak_rotated_parity2_offset).
+ let pow1181 = pow364 * pow1178; // pow(trace_generator, &(safe_div((63* keccak_row_ratio), 4)) + keccak_keccak_rotated_parity2_offset).
+ let pow1182 = trace_generator.pow_felt(&keccak_keccak_rotated_parity1_offset);
+ let pow1183 = pow572 * pow1182; // pow(trace_generator, &(safe_div((23* keccak_row_ratio), 4)) + keccak_keccak_rotated_parity1_offset).
+ let pow1184 = pow220 * pow1182; // pow(trace_generator, &(safe_div(keccak_row_ratio, 512)) + keccak_keccak_rotated_parity1_offset).
+ let pow1185 = pow220 * pow1183; // pow(trace_generator, &(safe_div((2945* keccak_row_ratio), 512)) + keccak_keccak_rotated_parity1_offset).
+ let pow1186 = pow220 * pow1184; // pow(trace_generator, &(safe_div(keccak_row_ratio, 256)) + keccak_keccak_rotated_parity1_offset).
+ let pow1187 = pow220 * pow1185; // pow(trace_generator, &(safe_div((1473* keccak_row_ratio), 256)) + keccak_keccak_rotated_parity1_offset).
+ let pow1188 = pow364 * pow1182; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4)) + keccak_keccak_rotated_parity1_offset).
+ let pow1189 = pow617 * pow1188; // pow(trace_generator, (7* keccak_row_ratio) + keccak_keccak_rotated_parity1_offset).
+ let pow1190 = pow540 * pow1189; // pow(trace_generator, &(safe_div((23* keccak_row_ratio), 2)) + keccak_keccak_rotated_parity1_offset).
+ let pow1191 = pow520 * pow1190; // pow(trace_generator, &(safe_div((61* keccak_row_ratio), 4)) + keccak_keccak_rotated_parity1_offset).
+ let pow1192 = trace_generator.pow_felt(&keccak_keccak_rotated_parity0_offset);
+ let pow1193 = pow220 * pow1192; // pow(trace_generator, &(safe_div(keccak_row_ratio, 512)) + keccak_keccak_rotated_parity0_offset).
+ let pow1194 = pow220 * pow1193; // pow(trace_generator, &(safe_div(keccak_row_ratio, 256)) + keccak_keccak_rotated_parity0_offset).
+ let pow1195 = pow364 * pow1192; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4)) + keccak_keccak_rotated_parity0_offset).
+ let pow1196 = pow593 * pow1195; // pow(trace_generator, &(safe_div((25* keccak_row_ratio), 4)) + keccak_keccak_rotated_parity0_offset).
+ let pow1197 = pow220 * pow1196; // pow(trace_generator, &(safe_div((3201* keccak_row_ratio), 512)) + keccak_keccak_rotated_parity0_offset).
+ let pow1198 = pow220 * pow1197; // pow(trace_generator, &(safe_div((1601* keccak_row_ratio), 256)) + keccak_keccak_rotated_parity0_offset).
+ let pow1199 = pow509 * pow1196; // pow(trace_generator, &(safe_div((37* keccak_row_ratio), 4)) + keccak_keccak_rotated_parity0_offset).
+ let pow1200 = pow460 * pow1199; // pow(trace_generator, (11* keccak_row_ratio) + keccak_keccak_rotated_parity0_offset).
+ let pow1201 = pow453 * pow1200; // pow(trace_generator, &(safe_div((25* keccak_row_ratio), 2)) + keccak_keccak_rotated_parity0_offset).
+ let pow1202 = pow453 * pow1201; // pow(trace_generator, (14* keccak_row_ratio) + keccak_keccak_rotated_parity0_offset).
+ let pow1203 = trace_generator.pow_felt(&keccak_keccak_parse_to_diluted_cumulative_sum_offset);
+ let pow1204 = pow210 * pow1203; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1205 = pow232 * pow1204; // pow(trace_generator, &(safe_div((15* keccak_row_ratio), 2048)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1206 = pow202 * pow1205; // pow(trace_generator, &(safe_div((31* keccak_row_ratio), 4096)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1207 = pow202 * pow1206; // pow(trace_generator, &(safe_div(keccak_row_ratio, 128)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1208 = pow210 * pow1207; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + &(safe_div(keccak_row_ratio, 128)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1209 = pow232 * pow1208; // pow(trace_generator, &(safe_div((15* keccak_row_ratio), 2048)) + &(safe_div(keccak_row_ratio, 128)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1210 = pow202 * pow1209; // pow(trace_generator, &(safe_div((31* keccak_row_ratio), 4096)) + &(safe_div(keccak_row_ratio, 128)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1211 = pow474 * pow1203; // pow(trace_generator, (2* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 128)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1212 = pow474 * pow1211; // pow(trace_generator, (4* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 64)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1213 = pow474 * pow1212; // pow(trace_generator, (6* keccak_row_ratio) + &(safe_div((9* keccak_row_ratio), 128)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1214 = pow210 * pow1211; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + (2* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 128)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1215 = pow210 * pow1212; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + (4* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 64)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1216 = pow474 * pow1213; // pow(trace_generator, (8* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 32)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1217 = pow210 * pow1213; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + (6* keccak_row_ratio) + &(safe_div((9* keccak_row_ratio), 128)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1218 = pow210 * pow1216; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + (8* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 32)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1219 = pow335 * pow1207; // pow(trace_generator, &(safe_div((25* keccak_row_ratio), 128)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1220 = pow273 * pow1219; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1221 = pow474 * pow1216; // pow(trace_generator, (10* keccak_row_ratio) + &(safe_div((15* keccak_row_ratio), 128)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1222 = pow474 * pow1221; // pow(trace_generator, (12* keccak_row_ratio) + &(safe_div((9* keccak_row_ratio), 64)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1223 = pow474 * pow1222; // pow(trace_generator, (14* keccak_row_ratio) + &(safe_div((21* keccak_row_ratio), 128)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1224 = pow456 * pow1223; // pow(trace_generator, &(safe_div((63* keccak_row_ratio), 4)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1225 = pow210 * pow1219; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + &(safe_div((25* keccak_row_ratio), 128)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1226 = pow210 * pow1221; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + (10* keccak_row_ratio) + &(safe_div((15* keccak_row_ratio), 128)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1227 = pow210 * pow1222; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + (12* keccak_row_ratio) + &(safe_div((9* keccak_row_ratio), 64)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1228 = pow210 * pow1220; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + &(safe_div(keccak_row_ratio, 4)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1229 = pow232 * pow1228; // pow(trace_generator, &(safe_div((15* keccak_row_ratio), 2048)) + &(safe_div(keccak_row_ratio, 4)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1230 = pow202 * pow1229; // pow(trace_generator, &(safe_div((31* keccak_row_ratio), 4096)) + &(safe_div(keccak_row_ratio, 4)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1231 = pow210 * pow1223; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + (14* keccak_row_ratio) + &(safe_div((21* keccak_row_ratio), 128)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1232 = pow210 * pow1224; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + &(safe_div((63* keccak_row_ratio), 4)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1233 = pow232 * pow1232; // pow(trace_generator, &(safe_div((15* keccak_row_ratio), 2048)) + &(safe_div((63* keccak_row_ratio), 4)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1234 = pow202 * pow1233; // pow(trace_generator, &(safe_div((31* keccak_row_ratio), 4096)) + &(safe_div((63* keccak_row_ratio), 4)) + keccak_keccak_parse_to_diluted_cumulative_sum_offset).
+ let pow1235 =
+ trace_generator.pow_felt(&keccak_keccak_parse_to_diluted_final_reshaped_input_offset);
+ let pow1236 = pow195 * pow1235; // pow(trace_generator, &(safe_div(keccak_row_ratio, 32768)) + keccak_keccak_parse_to_diluted_final_reshaped_input_offset).
+ let pow1237 = pow195 * pow1236; // pow(trace_generator, &(safe_div(keccak_row_ratio, 16384)) + keccak_keccak_parse_to_diluted_final_reshaped_input_offset).
+ let pow1238 = pow195 * pow1237; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 32768)) + keccak_keccak_parse_to_diluted_final_reshaped_input_offset).
+ let pow1239 = pow195 * pow1238; // pow(trace_generator, &(safe_div(keccak_row_ratio, 8192)) + keccak_keccak_parse_to_diluted_final_reshaped_input_offset).
+ let pow1240 = pow195 * pow1239; // pow(trace_generator, &(safe_div((5* keccak_row_ratio), 32768)) + keccak_keccak_parse_to_diluted_final_reshaped_input_offset).
+ let pow1241 = pow195 * pow1240; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 16384)) + keccak_keccak_parse_to_diluted_final_reshaped_input_offset).
+ let pow1242 = pow195 * pow1241; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 32768)) + keccak_keccak_parse_to_diluted_final_reshaped_input_offset).
+ let pow1243 = pow203 * pow1242; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + keccak_keccak_parse_to_diluted_final_reshaped_input_offset).
+ let pow1244 = pow195 * pow1243; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + &(safe_div(keccak_row_ratio, 32768)) + keccak_keccak_parse_to_diluted_final_reshaped_input_offset).
+ let pow1245 = pow195 * pow1244; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + &(safe_div(keccak_row_ratio, 16384)) + keccak_keccak_parse_to_diluted_final_reshaped_input_offset).
+ let pow1246 = pow195 * pow1245; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + &(safe_div((3* keccak_row_ratio), 32768)) + keccak_keccak_parse_to_diluted_final_reshaped_input_offset).
+ let pow1247 = pow195 * pow1246; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + &(safe_div(keccak_row_ratio, 8192)) + keccak_keccak_parse_to_diluted_final_reshaped_input_offset).
+ let pow1248 = pow195 * pow1247; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + &(safe_div((5* keccak_row_ratio), 32768)) + keccak_keccak_parse_to_diluted_final_reshaped_input_offset).
+ let pow1249 = pow195 * pow1248; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + &(safe_div((3* keccak_row_ratio), 16384)) + keccak_keccak_parse_to_diluted_final_reshaped_input_offset).
+ let pow1250 = pow195 * pow1249; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2048)) + &(safe_div((7* keccak_row_ratio), 32768)) + keccak_keccak_parse_to_diluted_final_reshaped_input_offset).
+ let pow1251 = pow203 * pow1250; // pow(trace_generator, &(safe_div(keccak_row_ratio, 1024)) + keccak_keccak_parse_to_diluted_final_reshaped_input_offset).
+ let pow1252 = pow210 * pow1251; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 2048)) + keccak_keccak_parse_to_diluted_final_reshaped_input_offset).
+ let pow1253 = pow210 * pow1252; // pow(trace_generator, &(safe_div(keccak_row_ratio, 512)) + keccak_keccak_parse_to_diluted_final_reshaped_input_offset).
+ let pow1254 = pow210 * pow1253; // pow(trace_generator, &(safe_div((5* keccak_row_ratio), 2048)) + keccak_keccak_parse_to_diluted_final_reshaped_input_offset).
+ let pow1255 = pow210 * pow1254; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 1024)) + keccak_keccak_parse_to_diluted_final_reshaped_input_offset).
+ let pow1256 = pow210 * pow1255; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 2048)) + keccak_keccak_parse_to_diluted_final_reshaped_input_offset).
+ let pow1257 = pow210 * pow1256; // pow(trace_generator, &(safe_div(keccak_row_ratio, 256)) + keccak_keccak_parse_to_diluted_final_reshaped_input_offset).
+ let pow1258 = pow210 * pow1257; // pow(trace_generator, &(safe_div((9* keccak_row_ratio), 2048)) + keccak_keccak_parse_to_diluted_final_reshaped_input_offset).
+ let pow1259 = pow210 * pow1258; // pow(trace_generator, &(safe_div((5* keccak_row_ratio), 1024)) + keccak_keccak_parse_to_diluted_final_reshaped_input_offset).
+ let pow1260 = pow210 * pow1259; // pow(trace_generator, &(safe_div((11* keccak_row_ratio), 2048)) + keccak_keccak_parse_to_diluted_final_reshaped_input_offset).
+ let pow1261 = pow210 * pow1260; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + keccak_keccak_parse_to_diluted_final_reshaped_input_offset).
+ let pow1262 = pow210 * pow1261; // pow(trace_generator, &(safe_div((13* keccak_row_ratio), 2048)) + keccak_keccak_parse_to_diluted_final_reshaped_input_offset).
+ let pow1263 = pow210 * pow1262; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 1024)) + keccak_keccak_parse_to_diluted_final_reshaped_input_offset).
+ let pow1264 = pow210 * pow1263; // pow(trace_generator, &(safe_div((15* keccak_row_ratio), 2048)) + keccak_keccak_parse_to_diluted_final_reshaped_input_offset).
+ let pow1265 =
+ trace_generator.pow_felt(&keccak_keccak_parse_to_diluted_reshaped_intermediate_offset);
+ let pow1266 = pow452 * pow1265; // pow(trace_generator, keccak_row_ratio + keccak_keccak_parse_to_diluted_reshaped_intermediate_offset).
+ let pow1267 = pow452 * pow1266; // pow(trace_generator, (2* keccak_row_ratio) + keccak_keccak_parse_to_diluted_reshaped_intermediate_offset).
+ let pow1268 = pow452 * pow1267; // pow(trace_generator, (3* keccak_row_ratio) + keccak_keccak_parse_to_diluted_reshaped_intermediate_offset).
+ let pow1269 = pow452 * pow1268; // pow(trace_generator, (4* keccak_row_ratio) + keccak_keccak_parse_to_diluted_reshaped_intermediate_offset).
+ let pow1270 = pow195 * pow1265; // pow(trace_generator, &(safe_div(keccak_row_ratio, 32768)) + keccak_keccak_parse_to_diluted_reshaped_intermediate_offset).
+ let pow1271 = pow195 * pow1270; // pow(trace_generator, &(safe_div(keccak_row_ratio, 16384)) + keccak_keccak_parse_to_diluted_reshaped_intermediate_offset).
+ let pow1272 = pow195 * pow1271; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 32768)) + keccak_keccak_parse_to_diluted_reshaped_intermediate_offset).
+ let pow1273 = pow195 * pow1272; // pow(trace_generator, &(safe_div(keccak_row_ratio, 8192)) + keccak_keccak_parse_to_diluted_reshaped_intermediate_offset).
+ let pow1274 = pow195 * pow1273; // pow(trace_generator, &(safe_div((5* keccak_row_ratio), 32768)) + keccak_keccak_parse_to_diluted_reshaped_intermediate_offset).
+ let pow1275 = pow195 * pow1274; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 16384)) + keccak_keccak_parse_to_diluted_reshaped_intermediate_offset).
+ let pow1276 = pow195 * pow1275; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 32768)) + keccak_keccak_parse_to_diluted_reshaped_intermediate_offset).
+ let pow1277 = pow195 * pow1276; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4096)) + keccak_keccak_parse_to_diluted_reshaped_intermediate_offset).
+ let pow1278 = pow195 * pow1277; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4096)) + &(safe_div(keccak_row_ratio, 32768)) + keccak_keccak_parse_to_diluted_reshaped_intermediate_offset).
+ let pow1279 = pow195 * pow1278; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4096)) + &(safe_div(keccak_row_ratio, 16384)) + keccak_keccak_parse_to_diluted_reshaped_intermediate_offset).
+ let pow1280 = pow195 * pow1279; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4096)) + &(safe_div((3* keccak_row_ratio), 32768)) + keccak_keccak_parse_to_diluted_reshaped_intermediate_offset).
+ let pow1281 = pow195 * pow1280; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4096)) + &(safe_div(keccak_row_ratio, 8192)) + keccak_keccak_parse_to_diluted_reshaped_intermediate_offset).
+ let pow1282 = pow195 * pow1281; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4096)) + &(safe_div((5* keccak_row_ratio), 32768)) + keccak_keccak_parse_to_diluted_reshaped_intermediate_offset).
+ let pow1283 = pow195 * pow1282; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4096)) + &(safe_div((3* keccak_row_ratio), 16384)) + keccak_keccak_parse_to_diluted_reshaped_intermediate_offset).
+ let pow1284 = pow195 * pow1283; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4096)) + &(safe_div((7* keccak_row_ratio), 32768)) + keccak_keccak_parse_to_diluted_reshaped_intermediate_offset).
+ let pow1285 = pow452 * pow1269; // pow(trace_generator, (5* keccak_row_ratio) + keccak_keccak_parse_to_diluted_reshaped_intermediate_offset).
+ let pow1286 = pow452 * pow1285; // pow(trace_generator, (6* keccak_row_ratio) + keccak_keccak_parse_to_diluted_reshaped_intermediate_offset).
+ let pow1287 = pow452 * pow1286; // pow(trace_generator, (7* keccak_row_ratio) + keccak_keccak_parse_to_diluted_reshaped_intermediate_offset).
+ let pow1288 = pow452 * pow1287; // pow(trace_generator, (8* keccak_row_ratio) + keccak_keccak_parse_to_diluted_reshaped_intermediate_offset).
+ let pow1289 = pow452 * pow1288; // pow(trace_generator, (9* keccak_row_ratio) + keccak_keccak_parse_to_diluted_reshaped_intermediate_offset).
+ let pow1290 = pow452 * pow1289; // pow(trace_generator, (10* keccak_row_ratio) + keccak_keccak_parse_to_diluted_reshaped_intermediate_offset).
+ let pow1291 = pow452 * pow1290; // pow(trace_generator, (11* keccak_row_ratio) + keccak_keccak_parse_to_diluted_reshaped_intermediate_offset).
+ let pow1292 = pow452 * pow1291; // pow(trace_generator, (12* keccak_row_ratio) + keccak_keccak_parse_to_diluted_reshaped_intermediate_offset).
+ let pow1293 = pow452 * pow1292; // pow(trace_generator, (13* keccak_row_ratio) + keccak_keccak_parse_to_diluted_reshaped_intermediate_offset).
+ let pow1294 = pow452 * pow1293; // pow(trace_generator, (14* keccak_row_ratio) + keccak_keccak_parse_to_diluted_reshaped_intermediate_offset).
+ let pow1295 = pow452 * pow1294; // pow(trace_generator, (15* keccak_row_ratio) + keccak_keccak_parse_to_diluted_reshaped_intermediate_offset).
+ let pow1296 = trace_generator.pow_felt(&ec_op_ec_subset_sum_x_diff_inv_offset);
+ let pow1297 = trace_generator.pow_felt(&ec_op_ec_subset_sum_slope_offset);
+ let pow1298 = trace_generator.pow_felt(&ec_op_ec_subset_sum_partial_sum_y_offset);
+ let pow1299 = pow974 * pow1298; // pow(trace_generator, &(safe_div((255* ec_op_builtin_row_ratio), 256)) + ec_op_ec_subset_sum_partial_sum_y_offset).
+ let pow1300 = pow978 * pow1298; // pow(trace_generator, &(safe_div(ec_op_builtin_row_ratio, 256)) + ec_op_ec_subset_sum_partial_sum_y_offset).
+ let pow1301 = trace_generator.pow_felt(&ec_op_ec_subset_sum_partial_sum_x_offset);
+ let pow1302 = pow974 * pow1301; // pow(trace_generator, &(safe_div((255* ec_op_builtin_row_ratio), 256)) + ec_op_ec_subset_sum_partial_sum_x_offset).
+ let pow1303 = pow978 * pow1301; // pow(trace_generator, &(safe_div(ec_op_builtin_row_ratio, 256)) + ec_op_ec_subset_sum_partial_sum_x_offset).
+ let pow1304 = trace_generator.pow_felt(&ec_op_ec_subset_sum_bit_unpacking_prod_ones196_offset);
+ let pow1305 = trace_generator.pow_felt(&ec_op_ec_subset_sum_selector_offset);
+ let pow1306 = pow978 * pow1305; // pow(trace_generator, &(safe_div(ec_op_builtin_row_ratio, 256)) + ec_op_ec_subset_sum_selector_offset).
+ let pow1307 = pow975 * pow1305; // pow(trace_generator, &(safe_div((251* ec_op_builtin_row_ratio), 256)) + ec_op_ec_subset_sum_selector_offset).
+ let pow1308 = pow975 * pow1306; // pow(trace_generator, &(safe_div((63* ec_op_builtin_row_ratio), 64)) + ec_op_ec_subset_sum_selector_offset).
+ let pow1309 = pow976 * pow1305; // pow(trace_generator, &(safe_div((49* ec_op_builtin_row_ratio), 64)) + ec_op_ec_subset_sum_selector_offset).
+ let pow1310 = pow976 * pow1306; // pow(trace_generator, &(safe_div((197* ec_op_builtin_row_ratio), 256)) + ec_op_ec_subset_sum_selector_offset).
+ let pow1311 = pow977 * pow1305; // pow(trace_generator, &(safe_div((3* ec_op_builtin_row_ratio), 4)) + ec_op_ec_subset_sum_selector_offset).
+ let pow1312 = pow977 * pow1306; // pow(trace_generator, &(safe_div((193* ec_op_builtin_row_ratio), 256)) + ec_op_ec_subset_sum_selector_offset).
+ let pow1313 = trace_generator.pow_felt(&ec_op_ec_subset_sum_bit_unpacking_prod_ones192_offset);
+ let pow1314 = trace_generator.pow_felt(&ec_op_doubled_points_y_offset);
+ let pow1315 = pow978 * pow1314; // pow(trace_generator, &(safe_div(ec_op_builtin_row_ratio, 256)) + ec_op_doubled_points_y_offset).
+ let pow1316 = trace_generator.pow_felt(&ec_op_doubled_points_x_offset);
+ let pow1317 = pow978 * pow1316; // pow(trace_generator, &(safe_div(ec_op_builtin_row_ratio, 256)) + ec_op_doubled_points_x_offset).
+ let pow1318 = trace_generator.pow_felt(&ec_op_doubling_slope_offset);
+ let pow1319 = trace_generator.pow_felt(&ecdsa_signature0_q_x_squared_offset);
+ let pow1320 = trace_generator.pow_felt(&ecdsa_signature0_r_w_inv_offset);
+ let pow1321 = trace_generator.pow_felt(&ecdsa_signature0_z_inv_offset);
+ let pow1322 = trace_generator.pow_felt(&ecdsa_signature0_extract_r_inv_offset);
+ let pow1323 = trace_generator.pow_felt(&ecdsa_signature0_extract_r_slope_offset);
+ let pow1324 = trace_generator.pow_felt(&ecdsa_signature0_add_results_inv_offset);
+ let pow1325 = trace_generator.pow_felt(&ecdsa_signature0_add_results_slope_offset);
+ let pow1326 = trace_generator.pow_felt(&ecdsa_signature0_exponentiate_key_x_diff_inv_offset);
+ let pow1327 = trace_generator.pow_felt(&ecdsa_signature0_exponentiate_key_slope_offset);
+ let pow1328 = trace_generator.pow_felt(&ecdsa_signature0_exponentiate_key_partial_sum_y_offset);
+ let pow1329 = pow1032 * pow1328; // pow(trace_generator, &(safe_div(ecdsa_builtin_row_ratio, 512)) + ecdsa_signature0_exponentiate_key_partial_sum_y_offset).
+ let pow1330 = pow1030 * pow1328; // pow(trace_generator, &(safe_div((255* ecdsa_builtin_row_ratio), 512)) + ecdsa_signature0_exponentiate_key_partial_sum_y_offset).
+ let pow1331 = pow1031 * pow1329; // pow(trace_generator, &(safe_div(ecdsa_builtin_row_ratio, 2)) + &(safe_div((255* ecdsa_builtin_row_ratio), 512)) + ecdsa_signature0_exponentiate_key_partial_sum_y_offset).
+ let pow1332 = trace_generator.pow_felt(&ecdsa_signature0_exponentiate_key_partial_sum_x_offset);
+ let pow1333 = pow1032 * pow1332; // pow(trace_generator, &(safe_div(ecdsa_builtin_row_ratio, 512)) + ecdsa_signature0_exponentiate_key_partial_sum_x_offset).
+ let pow1334 = pow1030 * pow1332; // pow(trace_generator, &(safe_div((255* ecdsa_builtin_row_ratio), 512)) + ecdsa_signature0_exponentiate_key_partial_sum_x_offset).
+ let pow1335 = pow1031 * pow1333; // pow(trace_generator, &(safe_div(ecdsa_builtin_row_ratio, 2)) + &(safe_div((255* ecdsa_builtin_row_ratio), 512)) + ecdsa_signature0_exponentiate_key_partial_sum_x_offset).
+ let pow1336 = trace_generator.pow_felt(&ecdsa_signature0_exponentiate_key_selector_offset);
+ let pow1337 = pow1032 * pow1336; // pow(trace_generator, &(safe_div(ecdsa_builtin_row_ratio, 512)) + ecdsa_signature0_exponentiate_key_selector_offset).
+ let pow1338 =
+ trace_generator.pow_felt(&ecdsa_signature0_exponentiate_generator_x_diff_inv_offset);
+ let pow1339 = trace_generator.pow_felt(&ecdsa_signature0_exponentiate_generator_slope_offset);
+ let pow1340 =
+ trace_generator.pow_felt(&ecdsa_signature0_exponentiate_generator_partial_sum_y_offset);
+ let pow1341 = pow1035 * pow1340; // pow(trace_generator, &(safe_div(ecdsa_builtin_row_ratio, 256)) + ecdsa_signature0_exponentiate_generator_partial_sum_y_offset).
+ let pow1342 = pow1031 * pow1340; // pow(trace_generator, &(safe_div((255* ecdsa_builtin_row_ratio), 256)) + ecdsa_signature0_exponentiate_generator_partial_sum_y_offset).
+ let pow1343 =
+ trace_generator.pow_felt(&ecdsa_signature0_exponentiate_generator_partial_sum_x_offset);
+ let pow1344 = pow1035 * pow1343; // pow(trace_generator, &(safe_div(ecdsa_builtin_row_ratio, 256)) + ecdsa_signature0_exponentiate_generator_partial_sum_x_offset).
+ let pow1345 = pow1031 * pow1343; // pow(trace_generator, &(safe_div((255* ecdsa_builtin_row_ratio), 256)) + ecdsa_signature0_exponentiate_generator_partial_sum_x_offset).
+ let pow1346 =
+ trace_generator.pow_felt(&ecdsa_signature0_exponentiate_generator_selector_offset);
+ let pow1347 = pow1035 * pow1346; // pow(trace_generator, &(safe_div(ecdsa_builtin_row_ratio, 256)) + ecdsa_signature0_exponentiate_generator_selector_offset).
+ let pow1348 = trace_generator.pow_felt(&ecdsa_signature0_doubling_slope_offset);
+ let pow1349 = trace_generator.pow_felt(&ecdsa_signature0_key_points_y_offset);
+ let pow1350 = pow1032 * pow1349; // pow(trace_generator, &(safe_div(ecdsa_builtin_row_ratio, 512)) + ecdsa_signature0_key_points_y_offset).
+ let pow1351 = pow1030 * pow1350; // pow(trace_generator, &(safe_div(ecdsa_builtin_row_ratio, 2)) + ecdsa_signature0_key_points_y_offset).
+ let pow1352 = trace_generator.pow_felt(&ecdsa_signature0_key_points_x_offset);
+ let pow1353 = pow1032 * pow1352; // pow(trace_generator, &(safe_div(ecdsa_builtin_row_ratio, 512)) + ecdsa_signature0_key_points_x_offset).
+ let pow1354 = pow1030 * pow1353; // pow(trace_generator, &(safe_div(ecdsa_builtin_row_ratio, 2)) + ecdsa_signature0_key_points_x_offset).
+ let pow1355 = trace_generator.pow_felt(&pedersen_hash0_ec_subset_sum_slope_offset);
+ let pow1356 = trace_generator.pow_felt(&pedersen_hash0_ec_subset_sum_partial_sum_y_offset);
+ let pow1357 = pow1051 * pow1356; // pow(trace_generator, &(safe_div((255* pedersen_builtin_row_ratio), 512)) + pedersen_hash0_ec_subset_sum_partial_sum_y_offset).
+ let pow1358 = pow1055 * pow1356; // pow(trace_generator, &(safe_div(pedersen_builtin_row_ratio, 512)) + pedersen_hash0_ec_subset_sum_partial_sum_y_offset).
+ let pow1359 = pow1051 * pow1358; // pow(trace_generator, &(safe_div(pedersen_builtin_row_ratio, 2)) + pedersen_hash0_ec_subset_sum_partial_sum_y_offset).
+ let pow1360 = trace_generator.pow_felt(&pedersen_hash0_ec_subset_sum_partial_sum_x_offset);
+ let pow1361 = pow1051 * pow1360; // pow(trace_generator, &(safe_div((255* pedersen_builtin_row_ratio), 512)) + pedersen_hash0_ec_subset_sum_partial_sum_x_offset).
+ let pow1362 = pow1055 * pow1360; // pow(trace_generator, &(safe_div(pedersen_builtin_row_ratio, 512)) + pedersen_hash0_ec_subset_sum_partial_sum_x_offset).
+ let pow1363 = pow1051 * pow1362; // pow(trace_generator, &(safe_div(pedersen_builtin_row_ratio, 2)) + pedersen_hash0_ec_subset_sum_partial_sum_x_offset).
+ let pow1364 = pow1051 * pow1363; // pow(trace_generator, &(safe_div(pedersen_builtin_row_ratio, 2)) + &(safe_div((255* pedersen_builtin_row_ratio), 512)) + pedersen_hash0_ec_subset_sum_partial_sum_x_offset).
+ let pow1365 =
+ trace_generator.pow_felt(&pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones196_offset);
+ let pow1366 = trace_generator.pow_felt(&pedersen_hash0_ec_subset_sum_selector_offset);
+ let pow1367 = pow1052 * pow1366; // pow(trace_generator, &(safe_div((251* pedersen_builtin_row_ratio), 512)) + pedersen_hash0_ec_subset_sum_selector_offset).
+ let pow1368 = pow1053 * pow1366; // pow(trace_generator, &(safe_div((49* pedersen_builtin_row_ratio), 128)) + pedersen_hash0_ec_subset_sum_selector_offset).
+ let pow1369 = pow1054 * pow1366; // pow(trace_generator, &(safe_div((3* pedersen_builtin_row_ratio), 8)) + pedersen_hash0_ec_subset_sum_selector_offset).
+ let pow1370 = pow1055 * pow1366; // pow(trace_generator, &(safe_div(pedersen_builtin_row_ratio, 512)) + pedersen_hash0_ec_subset_sum_selector_offset).
+ let pow1371 = pow1053 * pow1370; // pow(trace_generator, &(safe_div((197* pedersen_builtin_row_ratio), 512)) + pedersen_hash0_ec_subset_sum_selector_offset).
+ let pow1372 = pow1052 * pow1370; // pow(trace_generator, &(safe_div((63* pedersen_builtin_row_ratio), 128)) + pedersen_hash0_ec_subset_sum_selector_offset).
+ let pow1373 = pow1054 * pow1370; // pow(trace_generator, &(safe_div((193* pedersen_builtin_row_ratio), 512)) + pedersen_hash0_ec_subset_sum_selector_offset).
+ let pow1374 = pow1051 * pow1370; // pow(trace_generator, &(safe_div(pedersen_builtin_row_ratio, 2)) + pedersen_hash0_ec_subset_sum_selector_offset).
+ let pow1375 =
+ trace_generator.pow_felt(&pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones192_offset);
+ let pow1376 = trace_generator.pow_felt(&diluted_pool_offset);
+ let pow1377 = pow191 * pow1376; // pow(trace_generator, (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1378 = pow249 * pow1377; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1379 = pow235 * pow1378; // pow(trace_generator, &(safe_div(keccak_row_ratio, 32)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1380 = pow192 * pow1376; // pow(trace_generator, (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1381 = pow249 * pow1380; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1382 = pow235 * pow1381; // pow(trace_generator, &(safe_div(keccak_row_ratio, 32)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1383 = pow193 * pow1376; // pow(trace_generator, (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1384 = pow228 * pow1383; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1385 = pow220 * pow1384; // pow(trace_generator, &(safe_div(keccak_row_ratio, 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1386 = pow228 * pow1385; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 512)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1387 = pow220 * pow1386; // pow(trace_generator, &(safe_div(keccak_row_ratio, 64)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1388 = pow228 * pow1387; // pow(trace_generator, &(safe_div((11* keccak_row_ratio), 512)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1389 = pow220 * pow1388; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1390 = pow228 * pow1389; // pow(trace_generator, &(safe_div((15* keccak_row_ratio), 512)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1391 = pow220 * pow1390; // pow(trace_generator, &(safe_div(keccak_row_ratio, 32)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1392 = pow228 * pow1391; // pow(trace_generator, &(safe_div((19* keccak_row_ratio), 512)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1393 = pow220 * pow1392; // pow(trace_generator, &(safe_div((5* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1394 = pow228 * pow1393; // pow(trace_generator, &(safe_div((23* keccak_row_ratio), 512)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1395 = pow220 * pow1394; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 64)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1396 = pow228 * pow1395; // pow(trace_generator, &(safe_div((27* keccak_row_ratio), 512)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1397 = pow220 * pow1396; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1398 = pow228 * pow1397; // pow(trace_generator, &(safe_div((31* keccak_row_ratio), 512)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1399 = pow760 * pow1398; // pow(trace_generator, &(safe_div((55* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1400 = pow220 * pow1398; // pow(trace_generator, &(safe_div(keccak_row_ratio, 16)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1401 = pow228 * pow1400; // pow(trace_generator, &(safe_div((35* keccak_row_ratio), 512)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1402 = pow220 * pow1401; // pow(trace_generator, &(safe_div((9* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1403 = pow228 * pow1402; // pow(trace_generator, &(safe_div((39* keccak_row_ratio), 512)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1404 = pow220 * pow1403; // pow(trace_generator, &(safe_div((5* keccak_row_ratio), 64)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1405 = pow228 * pow1404; // pow(trace_generator, &(safe_div((43* keccak_row_ratio), 512)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1406 = pow235 * pow1399; // pow(trace_generator, &(safe_div((55* keccak_row_ratio), 4)) + &(safe_div((7* keccak_row_ratio), 512)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1407 = pow235 * pow1406; // pow(trace_generator, &(safe_div((55* keccak_row_ratio), 4)) + &(safe_div((11* keccak_row_ratio), 512)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1408 = pow220 * pow1405; // pow(trace_generator, &(safe_div((11* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1409 = pow228 * pow1408; // pow(trace_generator, &(safe_div((47* keccak_row_ratio), 512)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1410 = pow220 * pow1409; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 32)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1411 = pow235 * pow1410; // pow(trace_generator, &(safe_div((13* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1412 = pow235 * pow1411; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 64)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1413 = pow540 * pow1412; // pow(trace_generator, &(safe_div((9* keccak_row_ratio), 2)) + &(safe_div((7* keccak_row_ratio), 64)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1414 = pow453 * pow1408; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 2)) + &(safe_div((11* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1415 = pow399 * pow1414; // pow(trace_generator, (2* keccak_row_ratio) + &(safe_div((13* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1416 = pow235 * pow1412; // pow(trace_generator, &(safe_div((15* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1417 = pow235 * pow1416; // pow(trace_generator, &(safe_div(keccak_row_ratio, 8)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1418 = pow235 * pow1417; // pow(trace_generator, &(safe_div((17* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1419 = pow235 * pow1418; // pow(trace_generator, &(safe_div((9* keccak_row_ratio), 64)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1420 = pow235 * pow1419; // pow(trace_generator, &(safe_div((19* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1421 = pow235 * pow1420; // pow(trace_generator, &(safe_div((5* keccak_row_ratio), 32)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1422 = pow235 * pow1421; // pow(trace_generator, &(safe_div((21* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1423 = pow220 * pow1422; // pow(trace_generator, &(safe_div(keccak_row_ratio, 512)) + &(safe_div((21* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1424 = pow220 * pow1423; // pow(trace_generator, &(safe_div(keccak_row_ratio, 256)) + &(safe_div((21* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1425 = pow224 * pow1424; // pow(trace_generator, &(safe_div((11* keccak_row_ratio), 64)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1426 = pow394 * pow1413; // pow(trace_generator, (5* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 64)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1427 = pow557 * pow1426; // pow(trace_generator, &(safe_div((39* keccak_row_ratio), 4)) + &(safe_div((11* keccak_row_ratio), 64)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1428 = pow220 * pow1425; // pow(trace_generator, &(safe_div(keccak_row_ratio, 512)) + &(safe_div((11* keccak_row_ratio), 64)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1429 = pow220 * pow1427; // pow(trace_generator, &(safe_div((39* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 512)) + &(safe_div((11* keccak_row_ratio), 64)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1430 = pow220 * pow1428; // pow(trace_generator, &(safe_div(keccak_row_ratio, 256)) + &(safe_div((11* keccak_row_ratio), 64)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1431 = pow224 * pow1430; // pow(trace_generator, &(safe_div((23* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1432 = pow220 * pow1431; // pow(trace_generator, &(safe_div(keccak_row_ratio, 512)) + &(safe_div((23* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1433 = pow220 * pow1432; // pow(trace_generator, &(safe_div(keccak_row_ratio, 256)) + &(safe_div((23* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1434 = pow224 * pow1433; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 16)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1435 = pow220 * pow1434; // pow(trace_generator, &(safe_div(keccak_row_ratio, 512)) + &(safe_div((3* keccak_row_ratio), 16)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1436 = pow220 * pow1435; // pow(trace_generator, &(safe_div(keccak_row_ratio, 256)) + &(safe_div((3* keccak_row_ratio), 16)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1437 = pow224 * pow1436; // pow(trace_generator, &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1438 = pow228 * pow1437; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1439 = pow393 * pow1438; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + &(safe_div((39* keccak_row_ratio), 512)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1440 = pow607 * pow1439; // pow(trace_generator, &(safe_div((27* keccak_row_ratio), 4)) + &(safe_div((15* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1441 = pow228 * pow1438; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1442 = pow228 * pow1441; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1443 = pow228 * pow1442; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1444 = pow228 * pow1443; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1445 = pow228 * pow1444; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1446 = pow228 * pow1445; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1447 = pow228 * pow1446; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1448 = pow235 * pow1447; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1449 = pow235 * pow1448; // pow(trace_generator, &(safe_div((33* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1450 = pow235 * pow1449; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4)) + &(safe_div(keccak_row_ratio, 64)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1451 = pow301 * pow1439; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + &(safe_div((3* keccak_row_ratio), 16)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1452 = pow220 * pow1451; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + &(safe_div(keccak_row_ratio, 512)) + &(safe_div((3* keccak_row_ratio), 16)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1453 = pow604 * pow1452; // pow(trace_generator, &(safe_div((27* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1454 = pow220 * pow1452; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + &(safe_div(keccak_row_ratio, 256)) + &(safe_div((3* keccak_row_ratio), 16)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1455 = pow277 * pow1450; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4)) + &(safe_div((5* keccak_row_ratio), 64)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1456 = pow759 * pow1455; // pow(trace_generator, &(safe_div((55* keccak_row_ratio), 4)) + &(safe_div((21* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1457 = pow220 * pow1456; // pow(trace_generator, &(safe_div((55* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 512)) + &(safe_div((21* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1458 = pow235 * pow1439; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + &(safe_div((43* keccak_row_ratio), 512)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1459 = pow235 * pow1458; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + &(safe_div((47* keccak_row_ratio), 512)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1460 = pow573 * pow1459; // pow(trace_generator, &(safe_div((25* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 32)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1461 = pow274 * pow1452; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 4)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1462 = pow350 * pow1461; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1463 = pow305 * pow1414; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 2)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1464 = pow235 * pow1461; // pow(trace_generator, &(safe_div((97* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1465 = pow235 * pow1464; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 64)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1466 = pow264 * pow1465; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 4)) + &(safe_div((7* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1467 = pow317 * pow1414; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 4)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1468 = pow514 * pow1467; // pow(trace_generator, &(safe_div((21* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1469 = pow323 * pow1468; // pow(trace_generator, &(safe_div((21* keccak_row_ratio), 4)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1470 = pow581 * pow1469; // pow(trace_generator, &(safe_div((45* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 16)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1471 = pow235 * pow1467; // pow(trace_generator, &(safe_div((225* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1472 = pow419 * pow1471; // pow(trace_generator, &(safe_div((5* keccak_row_ratio), 2)) + &(safe_div((17* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1473 = pow616 * pow1472; // pow(trace_generator, (9* keccak_row_ratio) + &(safe_div(keccak_row_ratio, 8)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1474 = pow292 * pow1472; // pow(trace_generator, &(safe_div((5* keccak_row_ratio), 2)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1475 = pow220 * pow1429; // pow(trace_generator, &(safe_div((39* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 256)) + &(safe_div((11* keccak_row_ratio), 64)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1476 = pow220 * pow1457; // pow(trace_generator, &(safe_div((55* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 256)) + &(safe_div((21* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1477 = pow235 * pow1471; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 64)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1478 = pow466 * pow1477; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 2)) + &(safe_div(keccak_row_ratio, 32)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1479 = pow358 * pow1478; // pow(trace_generator, &(safe_div((15* keccak_row_ratio), 4)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1480 = pow539 * pow1479; // pow(trace_generator, &(safe_div((31* keccak_row_ratio), 4)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1481 = pow476 * pow1480; // pow(trace_generator, &(safe_div((39* keccak_row_ratio), 4)) + &(safe_div((15* keccak_row_ratio), 512)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1482 = pow235 * pow1479; // pow(trace_generator, &(safe_div((481* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1483 = pow235 * pow1480; // pow(trace_generator, &(safe_div((993* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1484 = pow235 * pow1481; // pow(trace_generator, &(safe_div((39* keccak_row_ratio), 4)) + &(safe_div((19* keccak_row_ratio), 512)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1485 = pow582 * pow1484; // pow(trace_generator, &(safe_div((31* keccak_row_ratio), 2)) + &(safe_div((5* keccak_row_ratio), 32)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1486 = pow399 * pow1484; // pow(trace_generator, &(safe_div((41* keccak_row_ratio), 4)) + &(safe_div((27* keccak_row_ratio), 512)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1487 = pow361 * pow1479; // pow(trace_generator, &(safe_div((15* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1488 = pow235 * pow1482; // pow(trace_generator, &(safe_div((15* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 64)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1489 = pow235 * pow1483; // pow(trace_generator, &(safe_div((31* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 64)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1490 = pow307 * pow1488; // pow(trace_generator, &(safe_div((15* keccak_row_ratio), 4)) + &(safe_div((9* keccak_row_ratio), 64)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1491 = pow285 * pow1453; // pow(trace_generator, (7* keccak_row_ratio) + &(safe_div((5* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1492 = pow295 * pow1473; // pow(trace_generator, (9* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1493 = pow562 * pow1492; // pow(trace_generator, (14* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1494 = pow291 * pow1485; // pow(trace_generator, &(safe_div((31* keccak_row_ratio), 2)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1495 = pow235 * pow1484; // pow(trace_generator, &(safe_div((39* keccak_row_ratio), 4)) + &(safe_div((23* keccak_row_ratio), 512)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1496 = pow235 * pow1486; // pow(trace_generator, &(safe_div((41* keccak_row_ratio), 4)) + &(safe_div((31* keccak_row_ratio), 512)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1497 = pow235 * pow1496; // pow(trace_generator, &(safe_div((41* keccak_row_ratio), 4)) + &(safe_div((35* keccak_row_ratio), 512)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1498 = pow301 * pow1497; // pow(trace_generator, &(safe_div((41* keccak_row_ratio), 4)) + &(safe_div((23* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1499 = pow220 * pow1498; // pow(trace_generator, &(safe_div((41* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 512)) + &(safe_div((23* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1500 = pow220 * pow1499; // pow(trace_generator, &(safe_div((41* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 256)) + &(safe_div((23* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1501 = pow361 * pow1476; // pow(trace_generator, (14* keccak_row_ratio) + &(safe_div((19* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1502 = pow562 * pow1486; // pow(trace_generator, &(safe_div((61* keccak_row_ratio), 4)) + &(safe_div((9* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1503 = pow509 * pow1489; // pow(trace_generator, &(safe_div((43* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 64)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1504 = pow363 * pow1503; // pow(trace_generator, (11* keccak_row_ratio) + &(safe_div(keccak_row_ratio, 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1505 = pow235 * pow1494; // pow(trace_generator, &(safe_div((63* keccak_row_ratio), 4)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1506 = pow235 * pow1505; // pow(trace_generator, &(safe_div((2017* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1507 = pow235 * pow1506; // pow(trace_generator, &(safe_div((63* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 64)) + (keccak_keccak_diluted_column3_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1508 = pow317 * pow1379; // pow(trace_generator, &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1509 = pow469 * pow1508; // pow(trace_generator, (2* keccak_row_ratio) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1510 = pow220 * pow1508; // pow(trace_generator, &(safe_div(keccak_row_ratio, 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1511 = pow220 * pow1510; // pow(trace_generator, &(safe_div(keccak_row_ratio, 256)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1512 = pow317 * pow1382; // pow(trace_generator, &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1513 = pow228 * pow1512; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1514 = pow220 * pow1513; // pow(trace_generator, &(safe_div(keccak_row_ratio, 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1515 = pow220 * pow1514; // pow(trace_generator, &(safe_div(keccak_row_ratio, 256)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1516 = pow220 * pow1515; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1517 = pow396 * pow1512; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1518 = pow228 * pow1516; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1519 = pow228 * pow1518; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1520 = pow228 * pow1519; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1521 = pow228 * pow1520; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1522 = pow228 * pow1521; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1523 = pow228 * pow1522; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1524 = pow235 * pow1523; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1525 = pow273 * pow1517; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 4)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1526 = pow341 * pow1525; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 4)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1527 = pow598 * pow1526; // pow(trace_generator, (7* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1528 = pow560 * pow1526; // pow(trace_generator, &(safe_div((23* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1529 = pow220 * pow1528; // pow(trace_generator, &(safe_div((2945* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1530 = pow220 * pow1529; // pow(trace_generator, &(safe_div((1473* keccak_row_ratio), 256)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1531 = pow254 * pow1527; // pow(trace_generator, (7* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1532 = pow417 * pow1526; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 4)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1533 = pow469 * pow1532; // pow(trace_generator, &(safe_div((15* keccak_row_ratio), 4)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1534 = pow539 * pow1533; // pow(trace_generator, &(safe_div((31* keccak_row_ratio), 4)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1535 = pow636 * pow1534; // pow(trace_generator, &(safe_div((63* keccak_row_ratio), 4)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1536 = pow540 * pow1526; // pow(trace_generator, &(safe_div((21* keccak_row_ratio), 4)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1537 = pow616 * pow1529; // pow(trace_generator, &(safe_div((49* keccak_row_ratio), 4)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1538 = pow341 * pow1535; // pow(trace_generator, &(safe_div((63* keccak_row_ratio), 4)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1539 = pow486 * pow1537; // pow(trace_generator, &(safe_div((29* keccak_row_ratio), 2)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1540 = pow540 * pow1527; // pow(trace_generator, &(safe_div((23* keccak_row_ratio), 2)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1541 = pow412 * pow1539; // pow(trace_generator, &(safe_div((61* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1542 = pow228 * pow1538; // pow(trace_generator, &(safe_div((63* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1543 = pow469 * pow1523; // pow(trace_generator, (2* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1544 = pow260 * pow1541; // pow(trace_generator, &(safe_div((61* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1545 = pow576 * pow1528; // pow(trace_generator, (11* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column1_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1546 = pow220 * pow1511; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1547 = pow228 * pow1546; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1548 = pow228 * pow1547; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1549 = pow228 * pow1548; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1550 = pow228 * pow1549; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1551 = pow228 * pow1550; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1552 = pow559 * pow1551; // pow(trace_generator, (5* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1553 = pow228 * pow1551; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1554 = pow228 * pow1553; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1555 = pow235 * pow1554; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1556 = pow396 * pow1555; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 4)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1557 = pow452 * pow1556; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 4)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1558 = pow364 * pow1509; // pow(trace_generator, &(safe_div((9* keccak_row_ratio), 4)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1559 = pow220 * pow1558; // pow(trace_generator, &(safe_div((1153* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1560 = pow220 * pow1559; // pow(trace_generator, &(safe_div((577* keccak_row_ratio), 256)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1561 = pow469 * pow1557; // pow(trace_generator, &(safe_div((15* keccak_row_ratio), 4)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1562 = pow578 * pow1561; // pow(trace_generator, (9* keccak_row_ratio) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1563 = pow539 * pow1561; // pow(trace_generator, &(safe_div((31* keccak_row_ratio), 4)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1564 = pow410 * pow1562; // pow(trace_generator, &(safe_div((39* keccak_row_ratio), 4)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1565 = pow452 * pow1564; // pow(trace_generator, &(safe_div((43* keccak_row_ratio), 4)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1566 = pow540 * pow1554; // pow(trace_generator, &(safe_div((9* keccak_row_ratio), 2)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1567 = pow636 * pow1563; // pow(trace_generator, &(safe_div((63* keccak_row_ratio), 4)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1568 = pow341 * pow1567; // pow(trace_generator, &(safe_div((63* keccak_row_ratio), 4)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1569 = pow254 * pow1565; // pow(trace_generator, &(safe_div((43* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1570 = pow362 * pow1555; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column2_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1571 = pow194 * pow1376; // pow(trace_generator, (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1572 = pow228 * pow1571; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1573 = pow202 * pow1571; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4096)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1574 = pow220 * pow1572; // pow(trace_generator, &(safe_div(keccak_row_ratio, 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1575 = pow235 * pow1574; // pow(trace_generator, &(safe_div(keccak_row_ratio, 64)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1576 = pow235 * pow1575; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1577 = pow638 * pow1576; // pow(trace_generator, (9* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1578 = pow202 * pow1576; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 128)) + &(safe_div(keccak_row_ratio, 4096)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1579 = pow234 * pow1578; // pow(trace_generator, &(safe_div(keccak_row_ratio, 32)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1580 = pow202 * pow1579; // pow(trace_generator, &(safe_div(keccak_row_ratio, 32)) + &(safe_div(keccak_row_ratio, 4096)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1581 = pow234 * pow1580; // pow(trace_generator, &(safe_div((5* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1582 = pow235 * pow1581; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 64)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1583 = pow235 * pow1582; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1584 = pow235 * pow1583; // pow(trace_generator, &(safe_div(keccak_row_ratio, 16)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1585 = pow220 * pow1584; // pow(trace_generator, &(safe_div(keccak_row_ratio, 512)) + &(safe_div(keccak_row_ratio, 16)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1586 = pow220 * pow1585; // pow(trace_generator, &(safe_div(keccak_row_ratio, 256)) + &(safe_div(keccak_row_ratio, 16)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1587 = pow224 * pow1586; // pow(trace_generator, &(safe_div((9* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1588 = pow235 * pow1587; // pow(trace_generator, &(safe_div((5* keccak_row_ratio), 64)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1589 = pow780 * pow1588; // pow(trace_generator, &(safe_div((61* keccak_row_ratio), 4)) + &(safe_div((5* keccak_row_ratio), 64)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1590 = pow235 * pow1588; // pow(trace_generator, &(safe_div((11* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1591 = pow235 * pow1590; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 32)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1592 = pow235 * pow1591; // pow(trace_generator, &(safe_div((13* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1593 = pow235 * pow1592; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 64)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1594 = pow220 * pow1593; // pow(trace_generator, &(safe_div(keccak_row_ratio, 512)) + &(safe_div((7* keccak_row_ratio), 64)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1595 = pow220 * pow1594; // pow(trace_generator, &(safe_div(keccak_row_ratio, 256)) + &(safe_div((7* keccak_row_ratio), 64)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1596 = pow224 * pow1595; // pow(trace_generator, &(safe_div((15* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1597 = pow220 * pow1596; // pow(trace_generator, &(safe_div(keccak_row_ratio, 512)) + &(safe_div((15* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1598 = pow220 * pow1597; // pow(trace_generator, &(safe_div(keccak_row_ratio, 256)) + &(safe_div((15* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1599 = pow224 * pow1598; // pow(trace_generator, &(safe_div(keccak_row_ratio, 8)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1600 = pow235 * pow1599; // pow(trace_generator, &(safe_div((17* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1601 = pow235 * pow1600; // pow(trace_generator, &(safe_div((9* keccak_row_ratio), 64)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1602 = pow235 * pow1601; // pow(trace_generator, &(safe_div((19* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1603 = pow554 * pow1600; // pow(trace_generator, &(safe_div((19* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 8)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1604 = pow235 * pow1602; // pow(trace_generator, &(safe_div((5* keccak_row_ratio), 32)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1605 = pow235 * pow1604; // pow(trace_generator, &(safe_div((21* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1606 = pow220 * pow1605; // pow(trace_generator, &(safe_div(keccak_row_ratio, 512)) + &(safe_div((21* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1607 = pow220 * pow1606; // pow(trace_generator, &(safe_div(keccak_row_ratio, 256)) + &(safe_div((21* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1608 = pow224 * pow1607; // pow(trace_generator, &(safe_div((11* keccak_row_ratio), 64)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1609 = pow235 * pow1608; // pow(trace_generator, &(safe_div((23* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1610 = pow469 * pow1609; // pow(trace_generator, (2* keccak_row_ratio) + &(safe_div((23* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1611 = pow309 * pow1610; // pow(trace_generator, &(safe_div((9* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 16)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1612 = pow734 * pow1611; // pow(trace_generator, &(safe_div((27* keccak_row_ratio), 2)) + &(safe_div((11* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1613 = pow549 * pow1611; // pow(trace_generator, &(safe_div((25* keccak_row_ratio), 4)) + &(safe_div((7* keccak_row_ratio), 64)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1614 = pow235 * pow1609; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 16)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1615 = pow235 * pow1614; // pow(trace_generator, &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1616 = pow299 * pow1612; // pow(trace_generator, &(safe_div((27* keccak_row_ratio), 2)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1617 = pow220 * pow1615; // pow(trace_generator, &(safe_div(keccak_row_ratio, 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1618 = pow220 * pow1617; // pow(trace_generator, &(safe_div(keccak_row_ratio, 256)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1619 = pow220 * pow1618; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1620 = pow220 * pow1619; // pow(trace_generator, &(safe_div(keccak_row_ratio, 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1621 = pow220 * pow1620; // pow(trace_generator, &(safe_div(keccak_row_ratio, 256)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1622 = pow220 * pow1621; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1623 = pow283 * pow1603; // pow(trace_generator, &(safe_div((19* keccak_row_ratio), 4)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1624 = pow297 * pow1623; // pow(trace_generator, (5* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 64)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1625 = pow313 * pow1624; // pow(trace_generator, (5* keccak_row_ratio) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1626 = pow313 * pow1625; // pow(trace_generator, &(safe_div((21* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 32)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1627 = pow228 * pow1622; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1628 = pow228 * pow1627; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1629 = pow228 * pow1628; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1630 = pow261 * pow1628; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4)) + &(safe_div(keccak_row_ratio, 4096)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1631 = pow396 * pow1630; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 4096)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1632 = pow452 * pow1631; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 4096)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1633 = pow469 * pow1632; // pow(trace_generator, &(safe_div((15* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 4096)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1634 = pow539 * pow1633; // pow(trace_generator, &(safe_div((31* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 4096)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1635 = pow228 * pow1629; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1636 = pow408 * pow1635; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 4)) + &(safe_div((11* keccak_row_ratio), 64)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1637 = pow420 * pow1623; // pow(trace_generator, &(safe_div((23* keccak_row_ratio), 4)) + &(safe_div((15* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1638 = pow220 * pow1637; // pow(trace_generator, &(safe_div((2945* keccak_row_ratio), 512)) + &(safe_div((15* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1639 = pow292 * pow1613; // pow(trace_generator, &(safe_div((25* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1640 = pow509 * pow1639; // pow(trace_generator, &(safe_div((37* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1641 = pow460 * pow1640; // pow(trace_generator, (11* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1642 = pow673 * pow1638; // pow(trace_generator, &(safe_div((31* keccak_row_ratio), 2)) + &(safe_div((21* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1643 = pow510 * pow1635; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 2)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1644 = pow220 * pow1611; // pow(trace_generator, &(safe_div((1153* keccak_row_ratio), 512)) + &(safe_div(keccak_row_ratio, 16)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1645 = pow228 * pow1635; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1646 = pow378 * pow1641; // pow(trace_generator, &(safe_div((45* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1647 = pow228 * pow1645; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1648 = pow750 * pow1647; // pow(trace_generator, &(safe_div((25* keccak_row_ratio), 2)) + &(safe_div((3* keccak_row_ratio), 16)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1649 = pow240 * pow1648; // pow(trace_generator, &(safe_div((25* keccak_row_ratio), 2)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1650 = pow374 * pow1647; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + &(safe_div(keccak_row_ratio, 64)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1651 = pow220 * pow1644; // pow(trace_generator, &(safe_div((577* keccak_row_ratio), 256)) + &(safe_div(keccak_row_ratio, 16)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1652 = pow220 * pow1638; // pow(trace_generator, &(safe_div((1473* keccak_row_ratio), 256)) + &(safe_div((15* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1653 = pow535 * pow1652; // pow(trace_generator, &(safe_div((39* keccak_row_ratio), 4)) + &(safe_div((13* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1654 = pow220 * pow1642; // pow(trace_generator, &(safe_div((7937* keccak_row_ratio), 512)) + &(safe_div((21* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1655 = pow220 * pow1654; // pow(trace_generator, &(safe_div((3969* keccak_row_ratio), 256)) + &(safe_div((21* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1656 = pow254 * pow1654; // pow(trace_generator, &(safe_div((31* keccak_row_ratio), 2)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1657 = pow220 * pow1656; // pow(trace_generator, &(safe_div((7937* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1658 = pow220 * pow1657; // pow(trace_generator, &(safe_div((3969* keccak_row_ratio), 256)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1659 = pow220 * pow1613; // pow(trace_generator, &(safe_div((3201* keccak_row_ratio), 512)) + &(safe_div((7* keccak_row_ratio), 64)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1660 = pow220 * pow1639; // pow(trace_generator, &(safe_div((3201* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1661 = pow220 * pow1659; // pow(trace_generator, &(safe_div((1601* keccak_row_ratio), 256)) + &(safe_div((7* keccak_row_ratio), 64)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1662 = pow220 * pow1660; // pow(trace_generator, &(safe_div((1601* keccak_row_ratio), 256)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1663 = pow403 * pow1662; // pow(trace_generator, (7* keccak_row_ratio) + &(safe_div((5* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1664 = pow577 * pow1663; // pow(trace_generator, &(safe_div((49* keccak_row_ratio), 4)) + &(safe_div((17* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1665 = pow400 * pow1612; // pow(trace_generator, (14* keccak_row_ratio) + &(safe_div((19* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1666 = pow270 * pow1665; // pow(trace_generator, (14* keccak_row_ratio) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1667 = pow370 * pow1577; // pow(trace_generator, &(safe_div((37* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 32)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1668 = pow576 * pow1667; // pow(trace_generator, &(safe_div((29* keccak_row_ratio), 2)) + &(safe_div((7* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1669 = pow262 * pow1662; // pow(trace_generator, &(safe_div((25* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1670 = pow545 * pow1659; // pow(trace_generator, &(safe_div((43* keccak_row_ratio), 4)) + &(safe_div((9* keccak_row_ratio), 64)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1671 = pow329 * pow1670; // pow(trace_generator, (11* keccak_row_ratio) + &(safe_div((9* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1672 = pow416 * pow1670; // pow(trace_generator, &(safe_div((23* keccak_row_ratio), 2)) + &(safe_div((5* keccak_row_ratio), 32)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1673 = pow270 * pow1657; // pow(trace_generator, &(safe_div((63* keccak_row_ratio), 4)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1674 = pow228 * pow1673; // pow(trace_generator, &(safe_div((63* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1675 = pow202 * pow1673; // pow(trace_generator, &(safe_div((63* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 4096)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1676 = pow220 * pow1674; // pow(trace_generator, &(safe_div((63* keccak_row_ratio), 4)) + &(safe_div(keccak_row_ratio, 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1677 = pow335 * pow1676; // pow(trace_generator, &(safe_div((63* keccak_row_ratio), 4)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1678 = pow228 * pow1677; // pow(trace_generator, &(safe_div((63* keccak_row_ratio), 4)) + &(safe_div((3* keccak_row_ratio), 512)) + &(safe_div((25* keccak_row_ratio), 128)) + (keccak_keccak_diluted_column0_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1679 = pow991 * pow1376; // pow(trace_generator, (bitwise_trim_unpacking195_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1680 = pow992 * pow1376; // pow(trace_generator, (bitwise_trim_unpacking194_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1681 = pow993 * pow1376; // pow(trace_generator, (bitwise_trim_unpacking193_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1682 = pow994 * pow1376; // pow(trace_generator, (bitwise_trim_unpacking192_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1683 = pow995 * pow1376; // pow(trace_generator, (bitwise_diluted_var_pool_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1684 = pow3 * pow1683; // pow(trace_generator, &(safe_div(bitwise_row_ratio, 64)) + (bitwise_diluted_var_pool_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1685 = pow3 * pow1684; // pow(trace_generator, &(safe_div(bitwise_row_ratio, 32)) + (bitwise_diluted_var_pool_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1686 = pow3 * pow1685; // pow(trace_generator, &(safe_div((3* bitwise_row_ratio), 64)) + (bitwise_diluted_var_pool_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1687 = pow3 * pow1686; // pow(trace_generator, &(safe_div(bitwise_row_ratio, 16)) + (bitwise_diluted_var_pool_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1688 = pow3 * pow1687; // pow(trace_generator, &(safe_div((5* bitwise_row_ratio), 64)) + (bitwise_diluted_var_pool_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1689 = pow3 * pow1688; // pow(trace_generator, &(safe_div((3* bitwise_row_ratio), 32)) + (bitwise_diluted_var_pool_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1690 = pow3 * pow1689; // pow(trace_generator, &(safe_div((7* bitwise_row_ratio), 64)) + (bitwise_diluted_var_pool_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1691 = pow3 * pow1690; // pow(trace_generator, &(safe_div(bitwise_row_ratio, 8)) + (bitwise_diluted_var_pool_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1692 = pow3 * pow1691; // pow(trace_generator, &(safe_div((9* bitwise_row_ratio), 64)) + (bitwise_diluted_var_pool_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1693 = pow3 * pow1692; // pow(trace_generator, &(safe_div((5* bitwise_row_ratio), 32)) + (bitwise_diluted_var_pool_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1694 = pow3 * pow1693; // pow(trace_generator, &(safe_div((11* bitwise_row_ratio), 64)) + (bitwise_diluted_var_pool_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1695 = pow3 * pow1694; // pow(trace_generator, &(safe_div((3* bitwise_row_ratio), 16)) + (bitwise_diluted_var_pool_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1696 = pow3 * pow1695; // pow(trace_generator, &(safe_div((13* bitwise_row_ratio), 64)) + (bitwise_diluted_var_pool_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1697 = pow3 * pow1696; // pow(trace_generator, &(safe_div((7* bitwise_row_ratio), 32)) + (bitwise_diluted_var_pool_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1698 = pow3 * pow1697; // pow(trace_generator, &(safe_div((15* bitwise_row_ratio), 64)) + (bitwise_diluted_var_pool_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1699 = pow3 * pow1698; // pow(trace_generator, &(safe_div(bitwise_row_ratio, 4)) + (bitwise_diluted_var_pool_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1700 = pow18 * pow1699; // pow(trace_generator, &(safe_div(bitwise_row_ratio, 2)) + (bitwise_diluted_var_pool_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1701 = pow14 * pow1700; // pow(trace_generator, &(safe_div((3* bitwise_row_ratio), 16)) + &(safe_div(bitwise_row_ratio, 2)) + (bitwise_diluted_var_pool_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1702 = pow3 * pow1701; // pow(trace_generator, &(safe_div((13* bitwise_row_ratio), 64)) + &(safe_div(bitwise_row_ratio, 2)) + (bitwise_diluted_var_pool_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1703 = pow3 * pow1702; // pow(trace_generator, &(safe_div((7* bitwise_row_ratio), 32)) + &(safe_div(bitwise_row_ratio, 2)) + (bitwise_diluted_var_pool_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1704 = pow3 * pow1703; // pow(trace_generator, &(safe_div((15* bitwise_row_ratio), 64)) + &(safe_div(bitwise_row_ratio, 2)) + (bitwise_diluted_var_pool_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1705 = pow3 * pow1704; // pow(trace_generator, &(safe_div((3* bitwise_row_ratio), 4)) + (bitwise_diluted_var_pool_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1706 = pow14 * pow1705; // pow(trace_generator, &(safe_div((3* bitwise_row_ratio), 16)) + &(safe_div((3* bitwise_row_ratio), 4)) + (bitwise_diluted_var_pool_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1707 = pow3 * pow1706; // pow(trace_generator, &(safe_div((13* bitwise_row_ratio), 64)) + &(safe_div((3* bitwise_row_ratio), 4)) + (bitwise_diluted_var_pool_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1708 = pow3 * pow1707; // pow(trace_generator, &(safe_div((7* bitwise_row_ratio), 32)) + &(safe_div((3* bitwise_row_ratio), 4)) + (bitwise_diluted_var_pool_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1709 = pow3 * pow1708; // pow(trace_generator, &(safe_div((15* bitwise_row_ratio), 64)) + &(safe_div((3* bitwise_row_ratio), 4)) + (bitwise_diluted_var_pool_suboffset* diluted_units_row_ratio) + diluted_pool_offset).
+ let pow1710 = pow1063 * pow1376; // pow(trace_generator, diluted_units_row_ratio + diluted_pool_offset).
+ let pow1711 = trace_generator.pow_felt(&diluted_check_permuted_values_offset);
+ let pow1712 = pow1063 * pow1711; // pow(trace_generator, diluted_units_row_ratio + diluted_check_permuted_values_offset).
+ let pow1713 = trace_generator.pow_felt(&range_check16_pool_offset);
+ let pow1714 = pow38 * pow1713; // pow(trace_generator, (mul_mod_carry0_part6_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1715 = pow39 * pow1713; // pow(trace_generator, (mul_mod_carry0_part5_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1716 = pow40 * pow1713; // pow(trace_generator, (mul_mod_carry0_part4_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1717 = pow41 * pow1713; // pow(trace_generator, (mul_mod_carry0_part3_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1718 = pow42 * pow1713; // pow(trace_generator, (mul_mod_carry0_part2_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1719 = pow43 * pow1713; // pow(trace_generator, (mul_mod_carry0_part1_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1720 = pow44 * pow1713; // pow(trace_generator, (mul_mod_carry0_part0_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1721 = pow45 * pow1713; // pow(trace_generator, (mul_mod_carry5_part6_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1722 = pow46 * pow1713; // pow(trace_generator, (mul_mod_carry5_part5_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1723 = pow47 * pow1713; // pow(trace_generator, (mul_mod_carry5_part4_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1724 = pow48 * pow1713; // pow(trace_generator, (mul_mod_carry5_part3_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1725 = pow49 * pow1713; // pow(trace_generator, (mul_mod_carry5_part2_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1726 = pow50 * pow1713; // pow(trace_generator, (mul_mod_carry5_part1_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1727 = pow51 * pow1713; // pow(trace_generator, (mul_mod_carry5_part0_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1728 = pow52 * pow1713; // pow(trace_generator, (mul_mod_carry4_part6_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1729 = pow53 * pow1713; // pow(trace_generator, (mul_mod_carry4_part5_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1730 = pow54 * pow1713; // pow(trace_generator, (mul_mod_carry4_part4_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1731 = pow55 * pow1713; // pow(trace_generator, (mul_mod_carry4_part3_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1732 = pow56 * pow1713; // pow(trace_generator, (mul_mod_carry4_part2_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1733 = pow57 * pow1713; // pow(trace_generator, (mul_mod_carry4_part1_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1734 = pow58 * pow1713; // pow(trace_generator, (mul_mod_carry4_part0_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1735 = pow59 * pow1713; // pow(trace_generator, (mul_mod_carry3_part6_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1736 = pow60 * pow1713; // pow(trace_generator, (mul_mod_carry3_part5_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1737 = pow61 * pow1713; // pow(trace_generator, (mul_mod_carry3_part4_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1738 = pow62 * pow1713; // pow(trace_generator, (mul_mod_carry3_part3_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1739 = pow63 * pow1713; // pow(trace_generator, (mul_mod_carry3_part2_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1740 = pow64 * pow1713; // pow(trace_generator, (mul_mod_carry3_part1_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1741 = pow65 * pow1713; // pow(trace_generator, (mul_mod_carry3_part0_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1742 = pow66 * pow1713; // pow(trace_generator, (mul_mod_carry2_part6_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1743 = pow67 * pow1713; // pow(trace_generator, (mul_mod_carry2_part5_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1744 = pow68 * pow1713; // pow(trace_generator, (mul_mod_carry2_part4_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1745 = pow69 * pow1713; // pow(trace_generator, (mul_mod_carry2_part3_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1746 = pow70 * pow1713; // pow(trace_generator, (mul_mod_carry2_part2_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1747 = pow71 * pow1713; // pow(trace_generator, (mul_mod_carry2_part1_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1748 = pow72 * pow1713; // pow(trace_generator, (mul_mod_carry2_part0_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1749 = pow73 * pow1713; // pow(trace_generator, (mul_mod_carry1_part6_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1750 = pow74 * pow1713; // pow(trace_generator, (mul_mod_carry1_part5_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1751 = pow75 * pow1713; // pow(trace_generator, (mul_mod_carry1_part4_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1752 = pow76 * pow1713; // pow(trace_generator, (mul_mod_carry1_part3_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1753 = pow77 * pow1713; // pow(trace_generator, (mul_mod_carry1_part2_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1754 = pow78 * pow1713; // pow(trace_generator, (mul_mod_carry1_part1_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1755 = pow79 * pow1713; // pow(trace_generator, (mul_mod_carry1_part0_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1756 = pow80 * pow1713; // pow(trace_generator, (mul_mod_p_multiplier0_part5_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1757 = pow81 * pow1713; // pow(trace_generator, (mul_mod_p_multiplier0_part4_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1758 = pow82 * pow1713; // pow(trace_generator, (mul_mod_p_multiplier0_part3_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1759 = pow83 * pow1713; // pow(trace_generator, (mul_mod_p_multiplier0_part2_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1760 = pow84 * pow1713; // pow(trace_generator, (mul_mod_p_multiplier0_part1_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1761 = pow85 * pow1713; // pow(trace_generator, (mul_mod_p_multiplier0_part0_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1762 = pow86 * pow1713; // pow(trace_generator, (mul_mod_p_multiplier3_part5_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1763 = pow87 * pow1713; // pow(trace_generator, (mul_mod_p_multiplier3_part4_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1764 = pow88 * pow1713; // pow(trace_generator, (mul_mod_p_multiplier3_part3_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1765 = pow89 * pow1713; // pow(trace_generator, (mul_mod_p_multiplier3_part2_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1766 = pow90 * pow1713; // pow(trace_generator, (mul_mod_p_multiplier3_part1_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1767 = pow91 * pow1713; // pow(trace_generator, (mul_mod_p_multiplier3_part0_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1768 = pow92 * pow1713; // pow(trace_generator, (mul_mod_p_multiplier2_part5_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1769 = pow93 * pow1713; // pow(trace_generator, (mul_mod_p_multiplier2_part4_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1770 = pow94 * pow1713; // pow(trace_generator, (mul_mod_p_multiplier2_part3_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1771 = pow95 * pow1713; // pow(trace_generator, (mul_mod_p_multiplier2_part2_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1772 = pow96 * pow1713; // pow(trace_generator, (mul_mod_p_multiplier2_part1_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1773 = pow97 * pow1713; // pow(trace_generator, (mul_mod_p_multiplier2_part0_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1774 = pow98 * pow1713; // pow(trace_generator, (mul_mod_p_multiplier1_part5_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1775 = pow99 * pow1713; // pow(trace_generator, (mul_mod_p_multiplier1_part4_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1776 = pow100 * pow1713; // pow(trace_generator, (mul_mod_p_multiplier1_part3_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1777 = pow101 * pow1713; // pow(trace_generator, (mul_mod_p_multiplier1_part2_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1778 = pow102 * pow1713; // pow(trace_generator, (mul_mod_p_multiplier1_part1_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1779 = pow103 * pow1713; // pow(trace_generator, (mul_mod_p_multiplier1_part0_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1780 = pow162 * pow1713; // pow(trace_generator, (range_check96_builtin_inner_range_check5_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1781 = pow163 * pow1713; // pow(trace_generator, (range_check96_builtin_inner_range_check4_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1782 = pow164 * pow1713; // pow(trace_generator, (range_check96_builtin_inner_range_check3_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1783 = pow165 * pow1713; // pow(trace_generator, (range_check96_builtin_inner_range_check2_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1784 = pow166 * pow1713; // pow(trace_generator, (range_check96_builtin_inner_range_check1_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1785 = pow167 * pow1713; // pow(trace_generator, (range_check96_builtin_inner_range_check0_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1786 = pow1038 * pow1713; // pow(trace_generator, (range_check_builtin_inner_range_check_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1787 = pow30 * pow1786; // pow(trace_generator, &(safe_div(range_check_builtin_row_ratio, 8)) + (range_check_builtin_inner_range_check_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1788 = pow30 * pow1787; // pow(trace_generator, &(safe_div(range_check_builtin_row_ratio, 4)) + (range_check_builtin_inner_range_check_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1789 = pow30 * pow1788; // pow(trace_generator, &(safe_div((3* range_check_builtin_row_ratio), 8)) + (range_check_builtin_inner_range_check_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1790 = pow30 * pow1789; // pow(trace_generator, &(safe_div(range_check_builtin_row_ratio, 2)) + (range_check_builtin_inner_range_check_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1791 = pow30 * pow1790; // pow(trace_generator, &(safe_div((5* range_check_builtin_row_ratio), 8)) + (range_check_builtin_inner_range_check_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1792 = pow30 * pow1791; // pow(trace_generator, &(safe_div((3* range_check_builtin_row_ratio), 4)) + (range_check_builtin_inner_range_check_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1793 = pow30 * pow1792; // pow(trace_generator, &(safe_div((7* range_check_builtin_row_ratio), 8)) + (range_check_builtin_inner_range_check_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow1794 = pow1064 * pow1713; // pow(trace_generator, range_check_units_row_ratio + range_check16_pool_offset).
+ let pow1795 = trace_generator.pow_felt(&range_check16_sorted_offset);
+ let pow1796 = pow1064 * pow1795; // pow(trace_generator, range_check_units_row_ratio + range_check16_sorted_offset).
+ let pow1797 = trace_generator.pow_felt(&mem_pool_value_offset);
+ let pow1798 = pow107 * pow1797; // pow(trace_generator, (mul_mod_c0_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1799 = pow104 * pow1797; // pow(trace_generator, (mul_mod_c3_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1800 = pow105 * pow1797; // pow(trace_generator, (mul_mod_c2_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1801 = pow106 * pow1797; // pow(trace_generator, (mul_mod_c1_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1802 = pow111 * pow1797; // pow(trace_generator, (mul_mod_b0_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1803 = pow108 * pow1797; // pow(trace_generator, (mul_mod_b3_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1804 = pow109 * pow1797; // pow(trace_generator, (mul_mod_b2_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1805 = pow110 * pow1797; // pow(trace_generator, (mul_mod_b1_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1806 = pow115 * pow1797; // pow(trace_generator, (mul_mod_a0_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1807 = pow112 * pow1797; // pow(trace_generator, (mul_mod_a3_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1808 = pow113 * pow1797; // pow(trace_generator, (mul_mod_a2_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1809 = pow114 * pow1797; // pow(trace_generator, (mul_mod_a1_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1810 = pow116 * pow1797; // pow(trace_generator, (mul_mod_c_offset_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1811 = pow117 * pow1797; // pow(trace_generator, (mul_mod_b_offset_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1812 = pow118 * pow1797; // pow(trace_generator, (mul_mod_a_offset_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1813 = pow121 * pow1797; // pow(trace_generator, (mul_mod_offsets_ptr_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1814 = pow0 * pow1813; // pow(trace_generator, mul_mod_row_ratio + (mul_mod_offsets_ptr_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1815 = pow123 * pow1797; // pow(trace_generator, (mul_mod_values_ptr_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1816 = pow0 * pow1815; // pow(trace_generator, mul_mod_row_ratio + (mul_mod_values_ptr_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1817 = pow125 * pow1797; // pow(trace_generator, (mul_mod_p3_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1818 = pow0 * pow1817; // pow(trace_generator, mul_mod_row_ratio + (mul_mod_p3_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1819 = pow127 * pow1797; // pow(trace_generator, (mul_mod_p2_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1820 = pow0 * pow1819; // pow(trace_generator, mul_mod_row_ratio + (mul_mod_p2_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1821 = pow129 * pow1797; // pow(trace_generator, (mul_mod_p1_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1822 = pow0 * pow1821; // pow(trace_generator, mul_mod_row_ratio + (mul_mod_p1_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1823 = pow119 * pow1797; // pow(trace_generator, (mul_mod_n_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1824 = pow0 * pow1823; // pow(trace_generator, mul_mod_row_ratio + (mul_mod_n_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1825 = pow131 * pow1797; // pow(trace_generator, (mul_mod_p0_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1826 = pow0 * pow1825; // pow(trace_generator, mul_mod_row_ratio + (mul_mod_p0_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1827 = pow136 * pow1797; // pow(trace_generator, (add_mod_c0_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1828 = pow133 * pow1797; // pow(trace_generator, (add_mod_c3_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1829 = pow134 * pow1797; // pow(trace_generator, (add_mod_c2_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1830 = pow135 * pow1797; // pow(trace_generator, (add_mod_c1_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1831 = pow140 * pow1797; // pow(trace_generator, (add_mod_b0_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1832 = pow137 * pow1797; // pow(trace_generator, (add_mod_b3_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1833 = pow138 * pow1797; // pow(trace_generator, (add_mod_b2_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1834 = pow139 * pow1797; // pow(trace_generator, (add_mod_b1_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1835 = pow144 * pow1797; // pow(trace_generator, (add_mod_a0_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1836 = pow141 * pow1797; // pow(trace_generator, (add_mod_a3_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1837 = pow142 * pow1797; // pow(trace_generator, (add_mod_a2_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1838 = pow143 * pow1797; // pow(trace_generator, (add_mod_a1_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1839 = pow145 * pow1797; // pow(trace_generator, (add_mod_c_offset_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1840 = pow146 * pow1797; // pow(trace_generator, (add_mod_b_offset_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1841 = pow147 * pow1797; // pow(trace_generator, (add_mod_a_offset_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1842 = pow150 * pow1797; // pow(trace_generator, (add_mod_offsets_ptr_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1843 = pow1 * pow1842; // pow(trace_generator, add_mod_row_ratio + (add_mod_offsets_ptr_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1844 = pow152 * pow1797; // pow(trace_generator, (add_mod_values_ptr_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1845 = pow1 * pow1844; // pow(trace_generator, add_mod_row_ratio + (add_mod_values_ptr_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1846 = pow154 * pow1797; // pow(trace_generator, (add_mod_p3_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1847 = pow1 * pow1846; // pow(trace_generator, add_mod_row_ratio + (add_mod_p3_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1848 = pow156 * pow1797; // pow(trace_generator, (add_mod_p2_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1849 = pow158 * pow1797; // pow(trace_generator, (add_mod_p1_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1850 = pow1 * pow1849; // pow(trace_generator, add_mod_row_ratio + (add_mod_p1_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1851 = pow148 * pow1797; // pow(trace_generator, (add_mod_n_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1852 = pow1 * pow1851; // pow(trace_generator, add_mod_row_ratio + (add_mod_n_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1853 = pow160 * pow1797; // pow(trace_generator, (add_mod_p0_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1854 = pow168 * pow1797; // pow(trace_generator, (range_check96_builtin_mem_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1855 = pow1 * pow1848; // pow(trace_generator, add_mod_row_ratio + (add_mod_p2_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1856 = pow958 * pow1797; // pow(trace_generator, (keccak_input_output_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1857 = pow277 * pow1856; // pow(trace_generator, &(safe_div(keccak_row_ratio, 16)) + (keccak_input_output_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1858 = pow277 * pow1857; // pow(trace_generator, &(safe_div(keccak_row_ratio, 8)) + (keccak_input_output_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1859 = pow277 * pow1858; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 16)) + (keccak_input_output_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1860 = pow277 * pow1859; // pow(trace_generator, &(safe_div(keccak_row_ratio, 4)) + (keccak_input_output_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1861 = pow277 * pow1860; // pow(trace_generator, &(safe_div((5* keccak_row_ratio), 16)) + (keccak_input_output_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1862 = pow277 * pow1861; // pow(trace_generator, &(safe_div((3* keccak_row_ratio), 8)) + (keccak_input_output_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1863 = pow277 * pow1862; // pow(trace_generator, &(safe_div((7* keccak_row_ratio), 16)) + (keccak_input_output_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1864 = pow277 * pow1863; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + (keccak_input_output_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1865 = pow277 * pow1864; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + &(safe_div(keccak_row_ratio, 16)) + (keccak_input_output_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1866 = pow277 * pow1865; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + &(safe_div(keccak_row_ratio, 8)) + (keccak_input_output_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1867 = pow277 * pow1866; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + &(safe_div((3* keccak_row_ratio), 16)) + (keccak_input_output_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1868 = pow277 * pow1867; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + &(safe_div(keccak_row_ratio, 4)) + (keccak_input_output_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1869 = pow277 * pow1868; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + &(safe_div((5* keccak_row_ratio), 16)) + (keccak_input_output_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1870 = pow277 * pow1869; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + &(safe_div((3* keccak_row_ratio), 8)) + (keccak_input_output_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1871 = pow277 * pow1870; // pow(trace_generator, &(safe_div(keccak_row_ratio, 2)) + &(safe_div((7* keccak_row_ratio), 16)) + (keccak_input_output_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1872 = pow983 * pow1797; // pow(trace_generator, (ec_op_r_y_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1873 = pow984 * pow1797; // pow(trace_generator, (ec_op_r_x_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1874 = pow988 * pow1797; // pow(trace_generator, (ec_op_p_y_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1875 = pow989 * pow1797; // pow(trace_generator, (ec_op_p_x_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1876 = pow985 * pow1797; // pow(trace_generator, (ec_op_m_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1877 = pow1 * pow1853; // pow(trace_generator, add_mod_row_ratio + (add_mod_p0_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1878 = pow986 * pow1797; // pow(trace_generator, (ec_op_q_y_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1879 = pow987 * pow1797; // pow(trace_generator, (ec_op_q_x_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1880 = pow185 * pow1797; // pow(trace_generator, (poseidon_param_2_input_output_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1881 = pow178 * pow1880; // pow(trace_generator, &(safe_div(poseidon_row_ratio, 2)) + (poseidon_param_2_input_output_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1882 = pow187 * pow1797; // pow(trace_generator, (poseidon_param_1_input_output_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1883 = pow178 * pow1882; // pow(trace_generator, &(safe_div(poseidon_row_ratio, 2)) + (poseidon_param_1_input_output_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1884 = pow189 * pow1797; // pow(trace_generator, (poseidon_param_0_input_output_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1885 = pow178 * pow1884; // pow(trace_generator, &(safe_div(poseidon_row_ratio, 2)) + (poseidon_param_0_input_output_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1886 = pow1022 * pow1797; // pow(trace_generator, (bitwise_x_or_y_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1887 = pow1023 * pow1797; // pow(trace_generator, (bitwise_var_pool_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1888 = pow19 * pow1887; // pow(trace_generator, &(safe_div(bitwise_row_ratio, 2)) + (bitwise_var_pool_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1889 = pow18 * pow1888; // pow(trace_generator, &(safe_div((3* bitwise_row_ratio), 4)) + (bitwise_var_pool_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1890 = pow1029 * pow1797; // pow(trace_generator, (ecdsa_pubkey_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1891 = pow1028 * pow1797; // pow(trace_generator, (ecdsa_message_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1892 = pow1046 * pow1797; // pow(trace_generator, (range_check_builtin_mem_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1893 = pow1049 * pow1797; // pow(trace_generator, (pedersen_output_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1894 = pow1048 * pow1797; // pow(trace_generator, (pedersen_input1_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1895 = pow1050 * pow1797; // pow(trace_generator, (pedersen_input0_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1896 = pow1065 * pow1797; // pow(trace_generator, (orig_public_memory_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1897 = pow1066 * pow1797; // pow(trace_generator, memory_units_row_ratio + mem_pool_value_offset).
+ let pow1898 = trace_generator.pow_felt(&mem_pool_addr_offset);
+ let pow1899 = pow104 * pow1898; // pow(trace_generator, (mul_mod_c3_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1900 = pow105 * pow1898; // pow(trace_generator, (mul_mod_c2_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1901 = pow106 * pow1898; // pow(trace_generator, (mul_mod_c1_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1902 = pow107 * pow1898; // pow(trace_generator, (mul_mod_c0_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1903 = pow108 * pow1898; // pow(trace_generator, (mul_mod_b3_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1904 = pow109 * pow1898; // pow(trace_generator, (mul_mod_b2_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1905 = pow110 * pow1898; // pow(trace_generator, (mul_mod_b1_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1906 = pow111 * pow1898; // pow(trace_generator, (mul_mod_b0_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1907 = pow112 * pow1898; // pow(trace_generator, (mul_mod_a3_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1908 = pow113 * pow1898; // pow(trace_generator, (mul_mod_a2_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1909 = pow114 * pow1898; // pow(trace_generator, (mul_mod_a1_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1910 = pow115 * pow1898; // pow(trace_generator, (mul_mod_a0_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1911 = pow116 * pow1898; // pow(trace_generator, (mul_mod_c_offset_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1912 = pow117 * pow1898; // pow(trace_generator, (mul_mod_b_offset_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1913 = pow118 * pow1898; // pow(trace_generator, (mul_mod_a_offset_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1914 = pow119 * pow1898; // pow(trace_generator, (mul_mod_n_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1915 = pow121 * pow1898; // pow(trace_generator, (mul_mod_offsets_ptr_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1916 = pow123 * pow1898; // pow(trace_generator, (mul_mod_values_ptr_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1917 = pow125 * pow1898; // pow(trace_generator, (mul_mod_p3_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1918 = pow127 * pow1898; // pow(trace_generator, (mul_mod_p2_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1919 = pow129 * pow1898; // pow(trace_generator, (mul_mod_p1_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1920 = pow131 * pow1898; // pow(trace_generator, (mul_mod_p0_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1921 = pow0 * pow1920; // pow(trace_generator, mul_mod_row_ratio + (mul_mod_p0_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1922 = pow133 * pow1898; // pow(trace_generator, (add_mod_c3_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1923 = pow134 * pow1898; // pow(trace_generator, (add_mod_c2_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1924 = pow135 * pow1898; // pow(trace_generator, (add_mod_c1_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1925 = pow136 * pow1898; // pow(trace_generator, (add_mod_c0_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1926 = pow137 * pow1898; // pow(trace_generator, (add_mod_b3_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1927 = pow138 * pow1898; // pow(trace_generator, (add_mod_b2_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1928 = pow139 * pow1898; // pow(trace_generator, (add_mod_b1_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1929 = pow140 * pow1898; // pow(trace_generator, (add_mod_b0_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1930 = pow141 * pow1898; // pow(trace_generator, (add_mod_a3_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1931 = pow142 * pow1898; // pow(trace_generator, (add_mod_a2_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1932 = pow143 * pow1898; // pow(trace_generator, (add_mod_a1_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1933 = pow144 * pow1898; // pow(trace_generator, (add_mod_a0_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1934 = pow145 * pow1898; // pow(trace_generator, (add_mod_c_offset_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1935 = pow146 * pow1898; // pow(trace_generator, (add_mod_b_offset_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1936 = pow147 * pow1898; // pow(trace_generator, (add_mod_a_offset_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1937 = pow148 * pow1898; // pow(trace_generator, (add_mod_n_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1938 = pow150 * pow1898; // pow(trace_generator, (add_mod_offsets_ptr_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1939 = pow152 * pow1898; // pow(trace_generator, (add_mod_values_ptr_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1940 = pow154 * pow1898; // pow(trace_generator, (add_mod_p3_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1941 = pow156 * pow1898; // pow(trace_generator, (add_mod_p2_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1942 = pow158 * pow1898; // pow(trace_generator, (add_mod_p1_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1943 = pow160 * pow1898; // pow(trace_generator, (add_mod_p0_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1944 = pow1 * pow1943; // pow(trace_generator, add_mod_row_ratio + (add_mod_p0_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1945 = pow168 * pow1898; // pow(trace_generator, (range_check96_builtin_mem_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1946 = pow2 * pow1945; // pow(trace_generator, range_check96_builtin_row_ratio + (range_check96_builtin_mem_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1947 = pow958 * pow1898; // pow(trace_generator, (keccak_input_output_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1948 = pow277 * pow1947; // pow(trace_generator, &(safe_div(keccak_row_ratio, 16)) + (keccak_input_output_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1949 = pow983 * pow1898; // pow(trace_generator, (ec_op_r_y_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1950 = pow984 * pow1898; // pow(trace_generator, (ec_op_r_x_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1951 = pow985 * pow1898; // pow(trace_generator, (ec_op_m_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1952 = pow986 * pow1898; // pow(trace_generator, (ec_op_q_y_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1953 = pow987 * pow1898; // pow(trace_generator, (ec_op_q_x_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1954 = pow988 * pow1898; // pow(trace_generator, (ec_op_p_y_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1955 = pow989 * pow1898; // pow(trace_generator, (ec_op_p_x_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1956 = pow979 * pow1955; // pow(trace_generator, ec_op_builtin_row_ratio + (ec_op_p_x_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1957 = pow185 * pow1898; // pow(trace_generator, (poseidon_param_2_input_output_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1958 = pow178 * pow1957; // pow(trace_generator, &(safe_div(poseidon_row_ratio, 2)) + (poseidon_param_2_input_output_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1959 = pow187 * pow1898; // pow(trace_generator, (poseidon_param_1_input_output_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1960 = pow178 * pow1959; // pow(trace_generator, &(safe_div(poseidon_row_ratio, 2)) + (poseidon_param_1_input_output_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1961 = pow189 * pow1898; // pow(trace_generator, (poseidon_param_0_input_output_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1962 = pow178 * pow1961; // pow(trace_generator, &(safe_div(poseidon_row_ratio, 2)) + (poseidon_param_0_input_output_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1963 = pow1022 * pow1898; // pow(trace_generator, (bitwise_x_or_y_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1964 = pow1023 * pow1898; // pow(trace_generator, (bitwise_var_pool_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1965 = pow18 * pow1964; // pow(trace_generator, &(safe_div(bitwise_row_ratio, 4)) + (bitwise_var_pool_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1966 = pow19 * pow1965; // pow(trace_generator, &(safe_div((3* bitwise_row_ratio), 4)) + (bitwise_var_pool_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1967 = pow18 * pow1966; // pow(trace_generator, bitwise_row_ratio + (bitwise_var_pool_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1968 = pow1028 * pow1898; // pow(trace_generator, (ecdsa_message_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1969 = pow1029 * pow1898; // pow(trace_generator, (ecdsa_pubkey_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1970 = pow1036 * pow1969; // pow(trace_generator, ecdsa_builtin_row_ratio + (ecdsa_pubkey_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1971 = pow1046 * pow1898; // pow(trace_generator, (range_check_builtin_mem_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1972 = pow37 * pow1971; // pow(trace_generator, range_check_builtin_row_ratio + (range_check_builtin_mem_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1973 = pow1048 * pow1898; // pow(trace_generator, (pedersen_input1_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1974 = pow1050 * pow1898; // pow(trace_generator, (pedersen_input0_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1975 = pow1049 * pow1898; // pow(trace_generator, (pedersen_output_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1976 = pow1059 * pow1974; // pow(trace_generator, pedersen_builtin_row_ratio + (pedersen_input0_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1977 = pow1065 * pow1898; // pow(trace_generator, (orig_public_memory_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1978 = pow1066 * pow1898; // pow(trace_generator, memory_units_row_ratio + mem_pool_addr_offset).
+ let pow1979 = trace_generator.pow_felt(&memory_sorted_value_offset);
+ let pow1980 = pow1066 * pow1979; // pow(trace_generator, memory_units_row_ratio + memory_sorted_value_offset).
+ let pow1981 = trace_generator.pow_felt(&memory_sorted_addr_offset);
+ let pow1982 = pow1066 * pow1981; // pow(trace_generator, memory_units_row_ratio + memory_sorted_addr_offset).
+ let pow1983 = trace_generator.pow_felt(&cpu_update_registers_update_pc_tmp1_offset);
+ let pow1984 = pow1069 * pow1797; // pow(trace_generator, (cpu_operands_mem_dst_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1985 = trace_generator.pow_felt(&cpu_update_registers_update_pc_tmp0_offset);
+ let pow1986 = trace_generator.pow_felt(&cpu_operands_res_offset);
+ let pow1987 = pow1067 * pow1797; // pow(trace_generator, (cpu_operands_mem_op1_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1988 = trace_generator.pow_felt(&cpu_operands_ops_mul_offset);
+ let pow1989 = pow1068 * pow1797; // pow(trace_generator, (cpu_operands_mem_op0_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow1990 = pow1073 * pow1898; // pow(trace_generator, (cpu_decode_mem_inst_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1991 = pow1089 * pow1990; // pow(trace_generator, (16* cpu_component_step) + (cpu_decode_mem_inst_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1992 = pow1067 * pow1898; // pow(trace_generator, (cpu_operands_mem_op1_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1993 = pow1068 * pow1898; // pow(trace_generator, (cpu_operands_mem_op0_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1994 = trace_generator.pow_felt(&cpu_registers_ap_offset);
+ let pow1995 = pow1089 * pow1994; // pow(trace_generator, (16* cpu_component_step) + cpu_registers_ap_offset).
+ let pow1996 = trace_generator.pow_felt(&cpu_registers_fp_offset);
+ let pow1997 = pow1089 * pow1996; // pow(trace_generator, (16* cpu_component_step) + cpu_registers_fp_offset).
+ let pow1998 = pow1069 * pow1898; // pow(trace_generator, (cpu_operands_mem_dst_suboffset* memory_units_row_ratio) + mem_pool_addr_offset).
+ let pow1999 = pow1070 * pow1713; // pow(trace_generator, (cpu_decode_off0_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow2000 = pow1071 * pow1713; // pow(trace_generator, (cpu_decode_off1_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow2001 = pow1072 * pow1713; // pow(trace_generator, (cpu_decode_off2_suboffset* range_check_units_row_ratio) + range_check16_pool_offset).
+ let pow2002 = pow1073 * pow1797; // pow(trace_generator, (cpu_decode_mem_inst_suboffset* memory_units_row_ratio) + mem_pool_value_offset).
+ let pow2003 = trace_generator.pow_felt(&cpu_decode_opcode_range_check_column_offset);
+ let pow2004 = pow1074 * pow2003; // pow(trace_generator, cpu_component_step + cpu_decode_opcode_range_check_column_offset).
+ let pow2005 = pow1074 * pow2004; // pow(trace_generator, (2* cpu_component_step) + cpu_decode_opcode_range_check_column_offset).
+ let pow2006 = pow1074 * pow2005; // pow(trace_generator, (2* cpu_component_step) + cpu_component_step + cpu_decode_opcode_range_check_column_offset).
+ let pow2007 = pow1074 * pow2006; // pow(trace_generator, (4* cpu_component_step) + cpu_decode_opcode_range_check_column_offset).
+ let pow2008 = pow1074 * pow2007; // pow(trace_generator, (4* cpu_component_step) + cpu_component_step + cpu_decode_opcode_range_check_column_offset).
+ let pow2009 = pow1074 * pow2008; // pow(trace_generator, (5* cpu_component_step) + cpu_component_step + cpu_decode_opcode_range_check_column_offset).
+ let pow2010 = pow1074 * pow2009; // pow(trace_generator, (6* cpu_component_step) + cpu_component_step + cpu_decode_opcode_range_check_column_offset).
+ let pow2011 = pow1074 * pow2010; // pow(trace_generator, (7* cpu_component_step) + cpu_component_step + cpu_decode_opcode_range_check_column_offset).
+ let pow2012 = pow1074 * pow2011; // pow(trace_generator, (9* cpu_component_step) + cpu_decode_opcode_range_check_column_offset).
+ let pow2013 = pow1074 * pow2012; // pow(trace_generator, (9* cpu_component_step) + cpu_component_step + cpu_decode_opcode_range_check_column_offset).
+ let pow2014 = pow1074 * pow2013; // pow(trace_generator, (10* cpu_component_step) + cpu_component_step + cpu_decode_opcode_range_check_column_offset).
+ let pow2015 = pow1074 * pow2014; // pow(trace_generator, (12* cpu_component_step) + cpu_decode_opcode_range_check_column_offset).
+ let pow2016 = pow1074 * pow2015; // pow(trace_generator, (12* cpu_component_step) + cpu_component_step + cpu_decode_opcode_range_check_column_offset).
+ let pow2017 = pow1074 * pow2016; // pow(trace_generator, (13* cpu_component_step) + cpu_component_step + cpu_decode_opcode_range_check_column_offset).
+ let pow2018 = pow1074 * pow2017; // pow(trace_generator, (14* cpu_component_step) + cpu_component_step + cpu_decode_opcode_range_check_column_offset).
+
+ // Sum the OODS constraints on the trace polynomials.
+ let mut value: Felt = (column_values
+ [dynamic_params.cpu_decode_opcode_range_check_column_column]
+ - oods_values[0])
+ .field_div(&NonZeroFelt::try_from(point - pow2003 * oods_point)?);
+ let mut total_sum: Felt = constraint_coefficients[0] * value;
+
+ value = (column_values[dynamic_params.cpu_decode_opcode_range_check_column_column]
+ - oods_values[1])
+ .field_div(&NonZeroFelt::try_from(point - pow2004 * oods_point)?);
+ total_sum += constraint_coefficients[1] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[2])
+ .field_div(&NonZeroFelt::try_from(point - pow2002 * oods_point)?);
+ total_sum += constraint_coefficients[2] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[3])
+ .field_div(&NonZeroFelt::try_from(point - pow2001 * oods_point)?);
+ total_sum += constraint_coefficients[3] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[4])
+ .field_div(&NonZeroFelt::try_from(point - pow2000 * oods_point)?);
+ total_sum += constraint_coefficients[4] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[5])
+ .field_div(&NonZeroFelt::try_from(point - pow1999 * oods_point)?);
+ total_sum += constraint_coefficients[5] * value;
+
+ value = (column_values[dynamic_params.cpu_decode_opcode_range_check_column_column]
+ - oods_values[6])
+ .field_div(&NonZeroFelt::try_from(point - pow2005 * oods_point)?);
+ total_sum += constraint_coefficients[6] * value;
+
+ value = (column_values[dynamic_params.cpu_decode_opcode_range_check_column_column]
+ - oods_values[7])
+ .field_div(&NonZeroFelt::try_from(point - pow2006 * oods_point)?);
+ total_sum += constraint_coefficients[7] * value;
+
+ value = (column_values[dynamic_params.cpu_decode_opcode_range_check_column_column]
+ - oods_values[8])
+ .field_div(&NonZeroFelt::try_from(point - pow2007 * oods_point)?);
+ total_sum += constraint_coefficients[8] * value;
+
+ value = (column_values[dynamic_params.cpu_decode_opcode_range_check_column_column]
+ - oods_values[9])
+ .field_div(&NonZeroFelt::try_from(point - pow2008 * oods_point)?);
+ total_sum += constraint_coefficients[9] * value;
+
+ value = (column_values[dynamic_params.cpu_decode_opcode_range_check_column_column]
+ - oods_values[10])
+ .field_div(&NonZeroFelt::try_from(point - pow2006 * oods_point)?);
+ total_sum += constraint_coefficients[10] * value;
+
+ value = (column_values[dynamic_params.cpu_decode_opcode_range_check_column_column]
+ - oods_values[11])
+ .field_div(&NonZeroFelt::try_from(point - pow2007 * oods_point)?);
+ total_sum += constraint_coefficients[11] * value;
+
+ value = (column_values[dynamic_params.cpu_decode_opcode_range_check_column_column]
+ - oods_values[12])
+ .field_div(&NonZeroFelt::try_from(point - pow2008 * oods_point)?);
+ total_sum += constraint_coefficients[12] * value;
+
+ value = (column_values[dynamic_params.cpu_decode_opcode_range_check_column_column]
+ - oods_values[13])
+ .field_div(&NonZeroFelt::try_from(point - pow2009 * oods_point)?);
+ total_sum += constraint_coefficients[13] * value;
+
+ value = (column_values[dynamic_params.cpu_decode_opcode_range_check_column_column]
+ - oods_values[14])
+ .field_div(&NonZeroFelt::try_from(point - pow2009 * oods_point)?);
+ total_sum += constraint_coefficients[14] * value;
+
+ value = (column_values[dynamic_params.cpu_decode_opcode_range_check_column_column]
+ - oods_values[15])
+ .field_div(&NonZeroFelt::try_from(point - pow2010 * oods_point)?);
+ total_sum += constraint_coefficients[15] * value;
+
+ value = (column_values[dynamic_params.cpu_decode_opcode_range_check_column_column]
+ - oods_values[16])
+ .field_div(&NonZeroFelt::try_from(point - pow2012 * oods_point)?);
+ total_sum += constraint_coefficients[16] * value;
+
+ value = (column_values[dynamic_params.cpu_decode_opcode_range_check_column_column]
+ - oods_values[17])
+ .field_div(&NonZeroFelt::try_from(point - pow2013 * oods_point)?);
+ total_sum += constraint_coefficients[17] * value;
+
+ value = (column_values[dynamic_params.cpu_decode_opcode_range_check_column_column]
+ - oods_values[18])
+ .field_div(&NonZeroFelt::try_from(point - pow2010 * oods_point)?);
+ total_sum += constraint_coefficients[18] * value;
+
+ value = (column_values[dynamic_params.cpu_decode_opcode_range_check_column_column]
+ - oods_values[19])
+ .field_div(&NonZeroFelt::try_from(point - pow2011 * oods_point)?);
+ total_sum += constraint_coefficients[19] * value;
+
+ value = (column_values[dynamic_params.cpu_decode_opcode_range_check_column_column]
+ - oods_values[20])
+ .field_div(&NonZeroFelt::try_from(point - pow2011 * oods_point)?);
+ total_sum += constraint_coefficients[20] * value;
+
+ value = (column_values[dynamic_params.cpu_decode_opcode_range_check_column_column]
+ - oods_values[21])
+ .field_div(&NonZeroFelt::try_from(point - pow2012 * oods_point)?);
+ total_sum += constraint_coefficients[21] * value;
+
+ value = (column_values[dynamic_params.cpu_decode_opcode_range_check_column_column]
+ - oods_values[22])
+ .field_div(&NonZeroFelt::try_from(point - pow2015 * oods_point)?);
+ total_sum += constraint_coefficients[22] * value;
+
+ value = (column_values[dynamic_params.cpu_decode_opcode_range_check_column_column]
+ - oods_values[23])
+ .field_div(&NonZeroFelt::try_from(point - pow2016 * oods_point)?);
+ total_sum += constraint_coefficients[23] * value;
+
+ value = (column_values[dynamic_params.cpu_decode_opcode_range_check_column_column]
+ - oods_values[24])
+ .field_div(&NonZeroFelt::try_from(point - pow2016 * oods_point)?);
+ total_sum += constraint_coefficients[24] * value;
+
+ value = (column_values[dynamic_params.cpu_decode_opcode_range_check_column_column]
+ - oods_values[25])
+ .field_div(&NonZeroFelt::try_from(point - pow2017 * oods_point)?);
+ total_sum += constraint_coefficients[25] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[26])
+ .field_div(&NonZeroFelt::try_from(point - pow1998 * oods_point)?);
+ total_sum += constraint_coefficients[26] * value;
+
+ value = (column_values[dynamic_params.cpu_registers_fp_column] - oods_values[27])
+ .field_div(&NonZeroFelt::try_from(point - pow1996 * oods_point)?);
+ total_sum += constraint_coefficients[27] * value;
+
+ value = (column_values[dynamic_params.cpu_registers_ap_column] - oods_values[28])
+ .field_div(&NonZeroFelt::try_from(point - pow1994 * oods_point)?);
+ total_sum += constraint_coefficients[28] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[29])
+ .field_div(&NonZeroFelt::try_from(point - pow1993 * oods_point)?);
+ total_sum += constraint_coefficients[29] * value;
+
+ value = (column_values[dynamic_params.cpu_decode_opcode_range_check_column_column]
+ - oods_values[30])
+ .field_div(&NonZeroFelt::try_from(point - pow2005 * oods_point)?);
+ total_sum += constraint_coefficients[30] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[31])
+ .field_div(&NonZeroFelt::try_from(point - pow1992 * oods_point)?);
+ total_sum += constraint_coefficients[31] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[32])
+ .field_div(&NonZeroFelt::try_from(point - pow1990 * oods_point)?);
+ total_sum += constraint_coefficients[32] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[33])
+ .field_div(&NonZeroFelt::try_from(point - pow1989 * oods_point)?);
+ total_sum += constraint_coefficients[33] * value;
+
+ value = (column_values[dynamic_params.cpu_operands_ops_mul_column] - oods_values[34])
+ .field_div(&NonZeroFelt::try_from(point - pow1988 * oods_point)?);
+ total_sum += constraint_coefficients[34] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[35])
+ .field_div(&NonZeroFelt::try_from(point - pow1987 * oods_point)?);
+ total_sum += constraint_coefficients[35] * value;
+
+ value = (column_values[dynamic_params.cpu_operands_res_column] - oods_values[36])
+ .field_div(&NonZeroFelt::try_from(point - pow1986 * oods_point)?);
+ total_sum += constraint_coefficients[36] * value;
+
+ value = (column_values[dynamic_params.cpu_update_registers_update_pc_tmp0_column]
+ - oods_values[37])
+ .field_div(&NonZeroFelt::try_from(point - pow1985 * oods_point)?);
+ total_sum += constraint_coefficients[37] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[38])
+ .field_div(&NonZeroFelt::try_from(point - pow1984 * oods_point)?);
+ total_sum += constraint_coefficients[38] * value;
+
+ value = (column_values[dynamic_params.cpu_update_registers_update_pc_tmp1_column]
+ - oods_values[39])
+ .field_div(&NonZeroFelt::try_from(point - pow1983 * oods_point)?);
+ total_sum += constraint_coefficients[39] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[40])
+ .field_div(&NonZeroFelt::try_from(point - pow1991 * oods_point)?);
+ total_sum += constraint_coefficients[40] * value;
+
+ value = (column_values[dynamic_params.cpu_registers_ap_column] - oods_values[41])
+ .field_div(&NonZeroFelt::try_from(point - pow1995 * oods_point)?);
+ total_sum += constraint_coefficients[41] * value;
+
+ value = (column_values[dynamic_params.cpu_decode_opcode_range_check_column_column]
+ - oods_values[42])
+ .field_div(&NonZeroFelt::try_from(point - pow2013 * oods_point)?);
+ total_sum += constraint_coefficients[42] * value;
+
+ value = (column_values[dynamic_params.cpu_decode_opcode_range_check_column_column]
+ - oods_values[43])
+ .field_div(&NonZeroFelt::try_from(point - pow2014 * oods_point)?);
+ total_sum += constraint_coefficients[43] * value;
+
+ value = (column_values[dynamic_params.cpu_decode_opcode_range_check_column_column]
+ - oods_values[44])
+ .field_div(&NonZeroFelt::try_from(point - pow2014 * oods_point)?);
+ total_sum += constraint_coefficients[44] * value;
+
+ value = (column_values[dynamic_params.cpu_decode_opcode_range_check_column_column]
+ - oods_values[45])
+ .field_div(&NonZeroFelt::try_from(point - pow2015 * oods_point)?);
+ total_sum += constraint_coefficients[45] * value;
+
+ value = (column_values[dynamic_params.cpu_registers_fp_column] - oods_values[46])
+ .field_div(&NonZeroFelt::try_from(point - pow1997 * oods_point)?);
+ total_sum += constraint_coefficients[46] * value;
+
+ value = (column_values[dynamic_params.cpu_decode_opcode_range_check_column_column]
+ - oods_values[47])
+ .field_div(&NonZeroFelt::try_from(point - pow2017 * oods_point)?);
+ total_sum += constraint_coefficients[47] * value;
+
+ value = (column_values[dynamic_params.cpu_decode_opcode_range_check_column_column]
+ - oods_values[48])
+ .field_div(&NonZeroFelt::try_from(point - pow2018 * oods_point)?);
+ total_sum += constraint_coefficients[48] * value;
+
+ value = (column_values[dynamic_params.memory_sorted_addr_column] - oods_values[49])
+ .field_div(&NonZeroFelt::try_from(point - pow1981 * oods_point)?);
+ total_sum += constraint_coefficients[49] * value;
+
+ value = (column_values[dynamic_params.memory_sorted_value_column] - oods_values[50])
+ .field_div(&NonZeroFelt::try_from(point - pow1979 * oods_point)?);
+ total_sum += constraint_coefficients[50] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[51])
+ .field_div(&NonZeroFelt::try_from(point - pow1898 * oods_point)?);
+ total_sum += constraint_coefficients[51] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[52])
+ .field_div(&NonZeroFelt::try_from(point - pow1797 * oods_point)?);
+ total_sum += constraint_coefficients[52] * value;
+
+ value = (column_values[dynamic_params.memory_sorted_addr_column] - oods_values[53])
+ .field_div(&NonZeroFelt::try_from(point - pow1982 * oods_point)?);
+ total_sum += constraint_coefficients[53] * value;
+
+ value = (column_values[dynamic_params.memory_sorted_value_column] - oods_values[54])
+ .field_div(&NonZeroFelt::try_from(point - pow1980 * oods_point)?);
+ total_sum += constraint_coefficients[54] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[55])
+ .field_div(&NonZeroFelt::try_from(point - pow1978 * oods_point)?);
+ total_sum += constraint_coefficients[55] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[56])
+ .field_div(&NonZeroFelt::try_from(point - pow1897 * oods_point)?);
+ total_sum += constraint_coefficients[56] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[57])
+ .field_div(&NonZeroFelt::try_from(point - pow1977 * oods_point)?);
+ total_sum += constraint_coefficients[57] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[58])
+ .field_div(&NonZeroFelt::try_from(point - pow1896 * oods_point)?);
+ total_sum += constraint_coefficients[58] * value;
+
+ value = (column_values[dynamic_params.range_check16_sorted_column] - oods_values[59])
+ .field_div(&NonZeroFelt::try_from(point - pow1795 * oods_point)?);
+ total_sum += constraint_coefficients[59] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[60])
+ .field_div(&NonZeroFelt::try_from(point - pow1713 * oods_point)?);
+ total_sum += constraint_coefficients[60] * value;
+
+ value = (column_values[dynamic_params.range_check16_sorted_column] - oods_values[61])
+ .field_div(&NonZeroFelt::try_from(point - pow1796 * oods_point)?);
+ total_sum += constraint_coefficients[61] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[62])
+ .field_div(&NonZeroFelt::try_from(point - pow1794 * oods_point)?);
+ total_sum += constraint_coefficients[62] * value;
+
+ value = (column_values[dynamic_params.diluted_check_permuted_values_column] - oods_values[63])
+ .field_div(&NonZeroFelt::try_from(point - pow1711 * oods_point)?);
+ total_sum += constraint_coefficients[63] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[64])
+ .field_div(&NonZeroFelt::try_from(point - pow1376 * oods_point)?);
+ total_sum += constraint_coefficients[64] * value;
+
+ value = (column_values[dynamic_params.diluted_check_permuted_values_column] - oods_values[65])
+ .field_div(&NonZeroFelt::try_from(point - pow1712 * oods_point)?);
+ total_sum += constraint_coefficients[65] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[66])
+ .field_div(&NonZeroFelt::try_from(point - pow1710 * oods_point)?);
+ total_sum += constraint_coefficients[66] * value;
+
+ value = (column_values
+ [dynamic_params.pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones192_column]
+ - oods_values[67])
+ .field_div(&NonZeroFelt::try_from(point - pow1375 * oods_point)?);
+ total_sum += constraint_coefficients[67] * value;
+
+ value = (column_values[dynamic_params.pedersen_hash0_ec_subset_sum_selector_column]
+ - oods_values[68])
+ .field_div(&NonZeroFelt::try_from(point - pow1366 * oods_point)?);
+ total_sum += constraint_coefficients[68] * value;
+
+ value = (column_values[dynamic_params.pedersen_hash0_ec_subset_sum_selector_column]
+ - oods_values[69])
+ .field_div(&NonZeroFelt::try_from(point - pow1370 * oods_point)?);
+ total_sum += constraint_coefficients[69] * value;
+
+ value = (column_values[dynamic_params.pedersen_hash0_ec_subset_sum_selector_column]
+ - oods_values[70])
+ .field_div(&NonZeroFelt::try_from(point - pow1369 * oods_point)?);
+ total_sum += constraint_coefficients[70] * value;
+
+ value = (column_values
+ [dynamic_params.pedersen_hash0_ec_subset_sum_bit_unpacking_prod_ones196_column]
+ - oods_values[71])
+ .field_div(&NonZeroFelt::try_from(point - pow1365 * oods_point)?);
+ total_sum += constraint_coefficients[71] * value;
+
+ value = (column_values[dynamic_params.pedersen_hash0_ec_subset_sum_selector_column]
+ - oods_values[72])
+ .field_div(&NonZeroFelt::try_from(point - pow1373 * oods_point)?);
+ total_sum += constraint_coefficients[72] * value;
+
+ value = (column_values[dynamic_params.pedersen_hash0_ec_subset_sum_selector_column]
+ - oods_values[73])
+ .field_div(&NonZeroFelt::try_from(point - pow1368 * oods_point)?);
+ total_sum += constraint_coefficients[73] * value;
+
+ value = (column_values[dynamic_params.pedersen_hash0_ec_subset_sum_selector_column]
+ - oods_values[74])
+ .field_div(&NonZeroFelt::try_from(point - pow1367 * oods_point)?);
+ total_sum += constraint_coefficients[74] * value;
+
+ value = (column_values[dynamic_params.pedersen_hash0_ec_subset_sum_selector_column]
+ - oods_values[75])
+ .field_div(&NonZeroFelt::try_from(point - pow1372 * oods_point)?);
+ total_sum += constraint_coefficients[75] * value;
+
+ value = (column_values[dynamic_params.pedersen_hash0_ec_subset_sum_selector_column]
+ - oods_values[76])
+ .field_div(&NonZeroFelt::try_from(point - pow1371 * oods_point)?);
+ total_sum += constraint_coefficients[76] * value;
+
+ value = (column_values[dynamic_params.pedersen_hash0_ec_subset_sum_partial_sum_x_column]
+ - oods_values[77])
+ .field_div(&NonZeroFelt::try_from(point - pow1360 * oods_point)?);
+ total_sum += constraint_coefficients[77] * value;
+
+ value = (column_values[dynamic_params.pedersen_hash0_ec_subset_sum_partial_sum_y_column]
+ - oods_values[78])
+ .field_div(&NonZeroFelt::try_from(point - pow1356 * oods_point)?);
+ total_sum += constraint_coefficients[78] * value;
+
+ value = (column_values[dynamic_params.pedersen_hash0_ec_subset_sum_partial_sum_x_column]
+ - oods_values[79])
+ .field_div(&NonZeroFelt::try_from(point - pow1362 * oods_point)?);
+ total_sum += constraint_coefficients[79] * value;
+
+ value = (column_values[dynamic_params.pedersen_hash0_ec_subset_sum_partial_sum_y_column]
+ - oods_values[80])
+ .field_div(&NonZeroFelt::try_from(point - pow1358 * oods_point)?);
+ total_sum += constraint_coefficients[80] * value;
+
+ value = (column_values[dynamic_params.pedersen_hash0_ec_subset_sum_slope_column]
+ - oods_values[81])
+ .field_div(&NonZeroFelt::try_from(point - pow1355 * oods_point)?);
+ total_sum += constraint_coefficients[81] * value;
+
+ value = (column_values[dynamic_params.pedersen_hash0_ec_subset_sum_partial_sum_x_column]
+ - oods_values[82])
+ .field_div(&NonZeroFelt::try_from(point - pow1361 * oods_point)?);
+ total_sum += constraint_coefficients[82] * value;
+
+ value = (column_values[dynamic_params.pedersen_hash0_ec_subset_sum_partial_sum_y_column]
+ - oods_values[83])
+ .field_div(&NonZeroFelt::try_from(point - pow1357 * oods_point)?);
+ total_sum += constraint_coefficients[83] * value;
+
+ value = (column_values[dynamic_params.pedersen_hash0_ec_subset_sum_partial_sum_x_column]
+ - oods_values[84])
+ .field_div(&NonZeroFelt::try_from(point - pow1363 * oods_point)?);
+ total_sum += constraint_coefficients[84] * value;
+
+ value = (column_values[dynamic_params.pedersen_hash0_ec_subset_sum_partial_sum_y_column]
+ - oods_values[85])
+ .field_div(&NonZeroFelt::try_from(point - pow1359 * oods_point)?);
+ total_sum += constraint_coefficients[85] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[86])
+ .field_div(&NonZeroFelt::try_from(point - pow1895 * oods_point)?);
+ total_sum += constraint_coefficients[86] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[87])
+ .field_div(&NonZeroFelt::try_from(point - pow1976 * oods_point)?);
+ total_sum += constraint_coefficients[87] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[88])
+ .field_div(&NonZeroFelt::try_from(point - pow1975 * oods_point)?);
+ total_sum += constraint_coefficients[88] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[89])
+ .field_div(&NonZeroFelt::try_from(point - pow1974 * oods_point)?);
+ total_sum += constraint_coefficients[89] * value;
+
+ value = (column_values[dynamic_params.pedersen_hash0_ec_subset_sum_selector_column]
+ - oods_values[90])
+ .field_div(&NonZeroFelt::try_from(point - pow1374 * oods_point)?);
+ total_sum += constraint_coefficients[90] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[91])
+ .field_div(&NonZeroFelt::try_from(point - pow1894 * oods_point)?);
+ total_sum += constraint_coefficients[91] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[92])
+ .field_div(&NonZeroFelt::try_from(point - pow1973 * oods_point)?);
+ total_sum += constraint_coefficients[92] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[93])
+ .field_div(&NonZeroFelt::try_from(point - pow1893 * oods_point)?);
+ total_sum += constraint_coefficients[93] * value;
+
+ value = (column_values[dynamic_params.pedersen_hash0_ec_subset_sum_partial_sum_x_column]
+ - oods_values[94])
+ .field_div(&NonZeroFelt::try_from(point - pow1364 * oods_point)?);
+ total_sum += constraint_coefficients[94] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[95])
+ .field_div(&NonZeroFelt::try_from(point - pow1892 * oods_point)?);
+ total_sum += constraint_coefficients[95] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[96])
+ .field_div(&NonZeroFelt::try_from(point - pow1786 * oods_point)?);
+ total_sum += constraint_coefficients[96] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[97])
+ .field_div(&NonZeroFelt::try_from(point - pow1787 * oods_point)?);
+ total_sum += constraint_coefficients[97] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[98])
+ .field_div(&NonZeroFelt::try_from(point - pow1788 * oods_point)?);
+ total_sum += constraint_coefficients[98] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[99])
+ .field_div(&NonZeroFelt::try_from(point - pow1789 * oods_point)?);
+ total_sum += constraint_coefficients[99] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[100])
+ .field_div(&NonZeroFelt::try_from(point - pow1790 * oods_point)?);
+ total_sum += constraint_coefficients[100] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[101])
+ .field_div(&NonZeroFelt::try_from(point - pow1791 * oods_point)?);
+ total_sum += constraint_coefficients[101] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[102])
+ .field_div(&NonZeroFelt::try_from(point - pow1792 * oods_point)?);
+ total_sum += constraint_coefficients[102] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[103])
+ .field_div(&NonZeroFelt::try_from(point - pow1793 * oods_point)?);
+ total_sum += constraint_coefficients[103] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[104])
+ .field_div(&NonZeroFelt::try_from(point - pow1972 * oods_point)?);
+ total_sum += constraint_coefficients[104] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[105])
+ .field_div(&NonZeroFelt::try_from(point - pow1971 * oods_point)?);
+ total_sum += constraint_coefficients[105] * value;
+
+ value = (column_values[dynamic_params.ecdsa_signature0_key_points_x_column] - oods_values[106])
+ .field_div(&NonZeroFelt::try_from(point - pow1352 * oods_point)?);
+ total_sum += constraint_coefficients[106] * value;
+
+ value = (column_values[dynamic_params.ecdsa_signature0_key_points_y_column] - oods_values[107])
+ .field_div(&NonZeroFelt::try_from(point - pow1349 * oods_point)?);
+ total_sum += constraint_coefficients[107] * value;
+
+ value = (column_values[dynamic_params.ecdsa_signature0_key_points_x_column] - oods_values[108])
+ .field_div(&NonZeroFelt::try_from(point - pow1353 * oods_point)?);
+ total_sum += constraint_coefficients[108] * value;
+
+ value = (column_values[dynamic_params.ecdsa_signature0_key_points_y_column] - oods_values[109])
+ .field_div(&NonZeroFelt::try_from(point - pow1350 * oods_point)?);
+ total_sum += constraint_coefficients[109] * value;
+
+ value = (column_values[dynamic_params.ecdsa_signature0_doubling_slope_column]
+ - oods_values[110])
+ .field_div(&NonZeroFelt::try_from(point - pow1348 * oods_point)?);
+ total_sum += constraint_coefficients[110] * value;
+
+ value = (column_values[dynamic_params.ecdsa_signature0_exponentiate_generator_selector_column]
+ - oods_values[111])
+ .field_div(&NonZeroFelt::try_from(point - pow1346 * oods_point)?);
+ total_sum += constraint_coefficients[111] * value;
+
+ value = (column_values[dynamic_params.ecdsa_signature0_exponentiate_generator_selector_column]
+ - oods_values[112])
+ .field_div(&NonZeroFelt::try_from(point - pow1347 * oods_point)?);
+ total_sum += constraint_coefficients[112] * value;
+
+ value = (column_values
+ [dynamic_params.ecdsa_signature0_exponentiate_generator_partial_sum_x_column]
+ - oods_values[113])
+ .field_div(&NonZeroFelt::try_from(point - pow1343 * oods_point)?);
+ total_sum += constraint_coefficients[113] * value;
+
+ value = (column_values
+ [dynamic_params.ecdsa_signature0_exponentiate_generator_partial_sum_y_column]
+ - oods_values[114])
+ .field_div(&NonZeroFelt::try_from(point - pow1340 * oods_point)?);
+ total_sum += constraint_coefficients[114] * value;
+
+ value = (column_values
+ [dynamic_params.ecdsa_signature0_exponentiate_generator_partial_sum_x_column]
+ - oods_values[115])
+ .field_div(&NonZeroFelt::try_from(point - pow1344 * oods_point)?);
+ total_sum += constraint_coefficients[115] * value;
+
+ value = (column_values
+ [dynamic_params.ecdsa_signature0_exponentiate_generator_partial_sum_y_column]
+ - oods_values[116])
+ .field_div(&NonZeroFelt::try_from(point - pow1341 * oods_point)?);
+ total_sum += constraint_coefficients[116] * value;
+
+ value = (column_values[dynamic_params.ecdsa_signature0_exponentiate_generator_slope_column]
+ - oods_values[117])
+ .field_div(&NonZeroFelt::try_from(point - pow1339 * oods_point)?);
+ total_sum += constraint_coefficients[117] * value;
+
+ value = (column_values
+ [dynamic_params.ecdsa_signature0_exponentiate_generator_x_diff_inv_column]
+ - oods_values[118])
+ .field_div(&NonZeroFelt::try_from(point - pow1338 * oods_point)?);
+ total_sum += constraint_coefficients[118] * value;
+
+ value = (column_values[dynamic_params.ecdsa_signature0_exponentiate_key_selector_column]
+ - oods_values[119])
+ .field_div(&NonZeroFelt::try_from(point - pow1336 * oods_point)?);
+ total_sum += constraint_coefficients[119] * value;
+
+ value = (column_values[dynamic_params.ecdsa_signature0_exponentiate_key_selector_column]
+ - oods_values[120])
+ .field_div(&NonZeroFelt::try_from(point - pow1337 * oods_point)?);
+ total_sum += constraint_coefficients[120] * value;
+
+ value = (column_values[dynamic_params.ecdsa_signature0_exponentiate_key_partial_sum_x_column]
+ - oods_values[121])
+ .field_div(&NonZeroFelt::try_from(point - pow1332 * oods_point)?);
+ total_sum += constraint_coefficients[121] * value;
+
+ value = (column_values[dynamic_params.ecdsa_signature0_exponentiate_key_partial_sum_y_column]
+ - oods_values[122])
+ .field_div(&NonZeroFelt::try_from(point - pow1328 * oods_point)?);
+ total_sum += constraint_coefficients[122] * value;
+
+ value = (column_values[dynamic_params.ecdsa_signature0_exponentiate_key_partial_sum_x_column]
+ - oods_values[123])
+ .field_div(&NonZeroFelt::try_from(point - pow1333 * oods_point)?);
+ total_sum += constraint_coefficients[123] * value;
+
+ value = (column_values[dynamic_params.ecdsa_signature0_exponentiate_key_partial_sum_y_column]
+ - oods_values[124])
+ .field_div(&NonZeroFelt::try_from(point - pow1329 * oods_point)?);
+ total_sum += constraint_coefficients[124] * value;
+
+ value = (column_values[dynamic_params.ecdsa_signature0_exponentiate_key_slope_column]
+ - oods_values[125])
+ .field_div(&NonZeroFelt::try_from(point - pow1327 * oods_point)?);
+ total_sum += constraint_coefficients[125] * value;
+
+ value = (column_values[dynamic_params.ecdsa_signature0_exponentiate_key_x_diff_inv_column]
+ - oods_values[126])
+ .field_div(&NonZeroFelt::try_from(point - pow1326 * oods_point)?);
+ total_sum += constraint_coefficients[126] * value;
+
+ value = (column_values
+ [dynamic_params.ecdsa_signature0_exponentiate_generator_partial_sum_x_column]
+ - oods_values[127])
+ .field_div(&NonZeroFelt::try_from(point - pow1345 * oods_point)?);
+ total_sum += constraint_coefficients[127] * value;
+
+ value = (column_values
+ [dynamic_params.ecdsa_signature0_exponentiate_generator_partial_sum_y_column]
+ - oods_values[128])
+ .field_div(&NonZeroFelt::try_from(point - pow1342 * oods_point)?);
+ total_sum += constraint_coefficients[128] * value;
+
+ value = (column_values[dynamic_params.ecdsa_signature0_exponentiate_key_partial_sum_x_column]
+ - oods_values[129])
+ .field_div(&NonZeroFelt::try_from(point - pow1334 * oods_point)?);
+ total_sum += constraint_coefficients[129] * value;
+
+ value = (column_values[dynamic_params.ecdsa_signature0_exponentiate_key_partial_sum_y_column]
+ - oods_values[130])
+ .field_div(&NonZeroFelt::try_from(point - pow1330 * oods_point)?);
+ total_sum += constraint_coefficients[130] * value;
+
+ value = (column_values[dynamic_params.ecdsa_signature0_key_points_x_column] - oods_values[131])
+ .field_div(&NonZeroFelt::try_from(point - pow1354 * oods_point)?);
+ total_sum += constraint_coefficients[131] * value;
+
+ value = (column_values[dynamic_params.ecdsa_signature0_key_points_y_column] - oods_values[132])
+ .field_div(&NonZeroFelt::try_from(point - pow1351 * oods_point)?);
+ total_sum += constraint_coefficients[132] * value;
+
+ value = (column_values[dynamic_params.ecdsa_signature0_add_results_slope_column]
+ - oods_values[133])
+ .field_div(&NonZeroFelt::try_from(point - pow1325 * oods_point)?);
+ total_sum += constraint_coefficients[133] * value;
+
+ value = (column_values[dynamic_params.ecdsa_signature0_add_results_inv_column]
+ - oods_values[134])
+ .field_div(&NonZeroFelt::try_from(point - pow1324 * oods_point)?);
+ total_sum += constraint_coefficients[134] * value;
+
+ value = (column_values[dynamic_params.ecdsa_signature0_exponentiate_key_partial_sum_x_column]
+ - oods_values[135])
+ .field_div(&NonZeroFelt::try_from(point - pow1335 * oods_point)?);
+ total_sum += constraint_coefficients[135] * value;
+
+ value = (column_values[dynamic_params.ecdsa_signature0_exponentiate_key_partial_sum_y_column]
+ - oods_values[136])
+ .field_div(&NonZeroFelt::try_from(point - pow1331 * oods_point)?);
+ total_sum += constraint_coefficients[136] * value;
+
+ value = (column_values[dynamic_params.ecdsa_signature0_extract_r_slope_column]
+ - oods_values[137])
+ .field_div(&NonZeroFelt::try_from(point - pow1323 * oods_point)?);
+ total_sum += constraint_coefficients[137] * value;
+
+ value = (column_values[dynamic_params.ecdsa_signature0_extract_r_inv_column]
+ - oods_values[138])
+ .field_div(&NonZeroFelt::try_from(point - pow1322 * oods_point)?);
+ total_sum += constraint_coefficients[138] * value;
+
+ value = (column_values[dynamic_params.ecdsa_signature0_z_inv_column] - oods_values[139])
+ .field_div(&NonZeroFelt::try_from(point - pow1321 * oods_point)?);
+ total_sum += constraint_coefficients[139] * value;
+
+ value = (column_values[dynamic_params.ecdsa_signature0_r_w_inv_column] - oods_values[140])
+ .field_div(&NonZeroFelt::try_from(point - pow1320 * oods_point)?);
+ total_sum += constraint_coefficients[140] * value;
+
+ value = (column_values[dynamic_params.ecdsa_signature0_q_x_squared_column] - oods_values[141])
+ .field_div(&NonZeroFelt::try_from(point - pow1319 * oods_point)?);
+ total_sum += constraint_coefficients[141] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[142])
+ .field_div(&NonZeroFelt::try_from(point - pow1969 * oods_point)?);
+ total_sum += constraint_coefficients[142] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[143])
+ .field_div(&NonZeroFelt::try_from(point - pow1968 * oods_point)?);
+ total_sum += constraint_coefficients[143] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[144])
+ .field_div(&NonZeroFelt::try_from(point - pow1970 * oods_point)?);
+ total_sum += constraint_coefficients[144] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[145])
+ .field_div(&NonZeroFelt::try_from(point - pow1891 * oods_point)?);
+ total_sum += constraint_coefficients[145] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[146])
+ .field_div(&NonZeroFelt::try_from(point - pow1890 * oods_point)?);
+ total_sum += constraint_coefficients[146] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[147])
+ .field_div(&NonZeroFelt::try_from(point - pow1964 * oods_point)?);
+ total_sum += constraint_coefficients[147] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[148])
+ .field_div(&NonZeroFelt::try_from(point - pow1965 * oods_point)?);
+ total_sum += constraint_coefficients[148] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[149])
+ .field_div(&NonZeroFelt::try_from(point - pow1963 * oods_point)?);
+ total_sum += constraint_coefficients[149] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[150])
+ .field_div(&NonZeroFelt::try_from(point - pow1966 * oods_point)?);
+ total_sum += constraint_coefficients[150] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[151])
+ .field_div(&NonZeroFelt::try_from(point - pow1967 * oods_point)?);
+ total_sum += constraint_coefficients[151] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[152])
+ .field_div(&NonZeroFelt::try_from(point - pow1887 * oods_point)?);
+ total_sum += constraint_coefficients[152] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[153])
+ .field_div(&NonZeroFelt::try_from(point - pow1683 * oods_point)?);
+ total_sum += constraint_coefficients[153] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[154])
+ .field_div(&NonZeroFelt::try_from(point - pow1684 * oods_point)?);
+ total_sum += constraint_coefficients[154] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[155])
+ .field_div(&NonZeroFelt::try_from(point - pow1685 * oods_point)?);
+ total_sum += constraint_coefficients[155] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[156])
+ .field_div(&NonZeroFelt::try_from(point - pow1686 * oods_point)?);
+ total_sum += constraint_coefficients[156] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[157])
+ .field_div(&NonZeroFelt::try_from(point - pow1687 * oods_point)?);
+ total_sum += constraint_coefficients[157] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[158])
+ .field_div(&NonZeroFelt::try_from(point - pow1688 * oods_point)?);
+ total_sum += constraint_coefficients[158] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[159])
+ .field_div(&NonZeroFelt::try_from(point - pow1689 * oods_point)?);
+ total_sum += constraint_coefficients[159] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[160])
+ .field_div(&NonZeroFelt::try_from(point - pow1690 * oods_point)?);
+ total_sum += constraint_coefficients[160] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[161])
+ .field_div(&NonZeroFelt::try_from(point - pow1691 * oods_point)?);
+ total_sum += constraint_coefficients[161] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[162])
+ .field_div(&NonZeroFelt::try_from(point - pow1692 * oods_point)?);
+ total_sum += constraint_coefficients[162] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[163])
+ .field_div(&NonZeroFelt::try_from(point - pow1693 * oods_point)?);
+ total_sum += constraint_coefficients[163] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[164])
+ .field_div(&NonZeroFelt::try_from(point - pow1694 * oods_point)?);
+ total_sum += constraint_coefficients[164] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[165])
+ .field_div(&NonZeroFelt::try_from(point - pow1695 * oods_point)?);
+ total_sum += constraint_coefficients[165] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[166])
+ .field_div(&NonZeroFelt::try_from(point - pow1696 * oods_point)?);
+ total_sum += constraint_coefficients[166] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[167])
+ .field_div(&NonZeroFelt::try_from(point - pow1697 * oods_point)?);
+ total_sum += constraint_coefficients[167] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[168])
+ .field_div(&NonZeroFelt::try_from(point - pow1698 * oods_point)?);
+ total_sum += constraint_coefficients[168] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[169])
+ .field_div(&NonZeroFelt::try_from(point - pow1886 * oods_point)?);
+ total_sum += constraint_coefficients[169] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[170])
+ .field_div(&NonZeroFelt::try_from(point - pow1888 * oods_point)?);
+ total_sum += constraint_coefficients[170] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[171])
+ .field_div(&NonZeroFelt::try_from(point - pow1889 * oods_point)?);
+ total_sum += constraint_coefficients[171] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[172])
+ .field_div(&NonZeroFelt::try_from(point - pow1700 * oods_point)?);
+ total_sum += constraint_coefficients[172] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[173])
+ .field_div(&NonZeroFelt::try_from(point - pow1699 * oods_point)?);
+ total_sum += constraint_coefficients[173] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[174])
+ .field_div(&NonZeroFelt::try_from(point - pow1705 * oods_point)?);
+ total_sum += constraint_coefficients[174] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[175])
+ .field_div(&NonZeroFelt::try_from(point - pow1682 * oods_point)?);
+ total_sum += constraint_coefficients[175] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[176])
+ .field_div(&NonZeroFelt::try_from(point - pow1701 * oods_point)?);
+ total_sum += constraint_coefficients[176] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[177])
+ .field_div(&NonZeroFelt::try_from(point - pow1706 * oods_point)?);
+ total_sum += constraint_coefficients[177] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[178])
+ .field_div(&NonZeroFelt::try_from(point - pow1681 * oods_point)?);
+ total_sum += constraint_coefficients[178] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[179])
+ .field_div(&NonZeroFelt::try_from(point - pow1702 * oods_point)?);
+ total_sum += constraint_coefficients[179] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[180])
+ .field_div(&NonZeroFelt::try_from(point - pow1707 * oods_point)?);
+ total_sum += constraint_coefficients[180] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[181])
+ .field_div(&NonZeroFelt::try_from(point - pow1680 * oods_point)?);
+ total_sum += constraint_coefficients[181] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[182])
+ .field_div(&NonZeroFelt::try_from(point - pow1703 * oods_point)?);
+ total_sum += constraint_coefficients[182] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[183])
+ .field_div(&NonZeroFelt::try_from(point - pow1708 * oods_point)?);
+ total_sum += constraint_coefficients[183] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[184])
+ .field_div(&NonZeroFelt::try_from(point - pow1679 * oods_point)?);
+ total_sum += constraint_coefficients[184] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[185])
+ .field_div(&NonZeroFelt::try_from(point - pow1704 * oods_point)?);
+ total_sum += constraint_coefficients[185] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[186])
+ .field_div(&NonZeroFelt::try_from(point - pow1709 * oods_point)?);
+ total_sum += constraint_coefficients[186] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[187])
+ .field_div(&NonZeroFelt::try_from(point - pow1955 * oods_point)?);
+ total_sum += constraint_coefficients[187] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[188])
+ .field_div(&NonZeroFelt::try_from(point - pow1956 * oods_point)?);
+ total_sum += constraint_coefficients[188] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[189])
+ .field_div(&NonZeroFelt::try_from(point - pow1954 * oods_point)?);
+ total_sum += constraint_coefficients[189] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[190])
+ .field_div(&NonZeroFelt::try_from(point - pow1953 * oods_point)?);
+ total_sum += constraint_coefficients[190] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[191])
+ .field_div(&NonZeroFelt::try_from(point - pow1952 * oods_point)?);
+ total_sum += constraint_coefficients[191] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[192])
+ .field_div(&NonZeroFelt::try_from(point - pow1951 * oods_point)?);
+ total_sum += constraint_coefficients[192] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[193])
+ .field_div(&NonZeroFelt::try_from(point - pow1950 * oods_point)?);
+ total_sum += constraint_coefficients[193] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[194])
+ .field_div(&NonZeroFelt::try_from(point - pow1949 * oods_point)?);
+ total_sum += constraint_coefficients[194] * value;
+
+ value = (column_values[dynamic_params.ec_op_doubling_slope_column] - oods_values[195])
+ .field_div(&NonZeroFelt::try_from(point - pow1318 * oods_point)?);
+ total_sum += constraint_coefficients[195] * value;
+
+ value = (column_values[dynamic_params.ec_op_doubled_points_x_column] - oods_values[196])
+ .field_div(&NonZeroFelt::try_from(point - pow1316 * oods_point)?);
+ total_sum += constraint_coefficients[196] * value;
+
+ value = (column_values[dynamic_params.ec_op_doubled_points_y_column] - oods_values[197])
+ .field_div(&NonZeroFelt::try_from(point - pow1314 * oods_point)?);
+ total_sum += constraint_coefficients[197] * value;
+
+ value = (column_values[dynamic_params.ec_op_doubled_points_x_column] - oods_values[198])
+ .field_div(&NonZeroFelt::try_from(point - pow1317 * oods_point)?);
+ total_sum += constraint_coefficients[198] * value;
+
+ value = (column_values[dynamic_params.ec_op_doubled_points_y_column] - oods_values[199])
+ .field_div(&NonZeroFelt::try_from(point - pow1315 * oods_point)?);
+ total_sum += constraint_coefficients[199] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[200])
+ .field_div(&NonZeroFelt::try_from(point - pow1879 * oods_point)?);
+ total_sum += constraint_coefficients[200] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[201])
+ .field_div(&NonZeroFelt::try_from(point - pow1878 * oods_point)?);
+ total_sum += constraint_coefficients[201] * value;
+
+ value = (column_values[dynamic_params.ec_op_ec_subset_sum_bit_unpacking_prod_ones192_column]
+ - oods_values[202])
+ .field_div(&NonZeroFelt::try_from(point - pow1313 * oods_point)?);
+ total_sum += constraint_coefficients[202] * value;
+
+ value = (column_values[dynamic_params.ec_op_ec_subset_sum_selector_column] - oods_values[203])
+ .field_div(&NonZeroFelt::try_from(point - pow1305 * oods_point)?);
+ total_sum += constraint_coefficients[203] * value;
+
+ value = (column_values[dynamic_params.ec_op_ec_subset_sum_selector_column] - oods_values[204])
+ .field_div(&NonZeroFelt::try_from(point - pow1306 * oods_point)?);
+ total_sum += constraint_coefficients[204] * value;
+
+ value = (column_values[dynamic_params.ec_op_ec_subset_sum_selector_column] - oods_values[205])
+ .field_div(&NonZeroFelt::try_from(point - pow1311 * oods_point)?);
+ total_sum += constraint_coefficients[205] * value;
+
+ value = (column_values[dynamic_params.ec_op_ec_subset_sum_bit_unpacking_prod_ones196_column]
+ - oods_values[206])
+ .field_div(&NonZeroFelt::try_from(point - pow1304 * oods_point)?);
+ total_sum += constraint_coefficients[206] * value;
+
+ value = (column_values[dynamic_params.ec_op_ec_subset_sum_selector_column] - oods_values[207])
+ .field_div(&NonZeroFelt::try_from(point - pow1312 * oods_point)?);
+ total_sum += constraint_coefficients[207] * value;
+
+ value = (column_values[dynamic_params.ec_op_ec_subset_sum_selector_column] - oods_values[208])
+ .field_div(&NonZeroFelt::try_from(point - pow1309 * oods_point)?);
+ total_sum += constraint_coefficients[208] * value;
+
+ value = (column_values[dynamic_params.ec_op_ec_subset_sum_selector_column] - oods_values[209])
+ .field_div(&NonZeroFelt::try_from(point - pow1307 * oods_point)?);
+ total_sum += constraint_coefficients[209] * value;
+
+ value = (column_values[dynamic_params.ec_op_ec_subset_sum_selector_column] - oods_values[210])
+ .field_div(&NonZeroFelt::try_from(point - pow1308 * oods_point)?);
+ total_sum += constraint_coefficients[210] * value;
+
+ value = (column_values[dynamic_params.ec_op_ec_subset_sum_selector_column] - oods_values[211])
+ .field_div(&NonZeroFelt::try_from(point - pow1310 * oods_point)?);
+ total_sum += constraint_coefficients[211] * value;
+
+ value = (column_values[dynamic_params.ec_op_ec_subset_sum_partial_sum_x_column]
+ - oods_values[212])
+ .field_div(&NonZeroFelt::try_from(point - pow1301 * oods_point)?);
+ total_sum += constraint_coefficients[212] * value;
+
+ value = (column_values[dynamic_params.ec_op_ec_subset_sum_partial_sum_y_column]
+ - oods_values[213])
+ .field_div(&NonZeroFelt::try_from(point - pow1298 * oods_point)?);
+ total_sum += constraint_coefficients[213] * value;
+
+ value = (column_values[dynamic_params.ec_op_ec_subset_sum_partial_sum_x_column]
+ - oods_values[214])
+ .field_div(&NonZeroFelt::try_from(point - pow1303 * oods_point)?);
+ total_sum += constraint_coefficients[214] * value;
+
+ value = (column_values[dynamic_params.ec_op_ec_subset_sum_partial_sum_y_column]
+ - oods_values[215])
+ .field_div(&NonZeroFelt::try_from(point - pow1300 * oods_point)?);
+ total_sum += constraint_coefficients[215] * value;
+
+ value = (column_values[dynamic_params.ec_op_ec_subset_sum_slope_column] - oods_values[216])
+ .field_div(&NonZeroFelt::try_from(point - pow1297 * oods_point)?);
+ total_sum += constraint_coefficients[216] * value;
+
+ value = (column_values[dynamic_params.ec_op_ec_subset_sum_x_diff_inv_column]
+ - oods_values[217])
+ .field_div(&NonZeroFelt::try_from(point - pow1296 * oods_point)?);
+ total_sum += constraint_coefficients[217] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[218])
+ .field_div(&NonZeroFelt::try_from(point - pow1876 * oods_point)?);
+ total_sum += constraint_coefficients[218] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[219])
+ .field_div(&NonZeroFelt::try_from(point - pow1875 * oods_point)?);
+ total_sum += constraint_coefficients[219] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[220])
+ .field_div(&NonZeroFelt::try_from(point - pow1874 * oods_point)?);
+ total_sum += constraint_coefficients[220] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[221])
+ .field_div(&NonZeroFelt::try_from(point - pow1873 * oods_point)?);
+ total_sum += constraint_coefficients[221] * value;
+
+ value = (column_values[dynamic_params.ec_op_ec_subset_sum_partial_sum_x_column]
+ - oods_values[222])
+ .field_div(&NonZeroFelt::try_from(point - pow1302 * oods_point)?);
+ total_sum += constraint_coefficients[222] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[223])
+ .field_div(&NonZeroFelt::try_from(point - pow1872 * oods_point)?);
+ total_sum += constraint_coefficients[223] * value;
+
+ value = (column_values[dynamic_params.ec_op_ec_subset_sum_partial_sum_y_column]
+ - oods_values[224])
+ .field_div(&NonZeroFelt::try_from(point - pow1299 * oods_point)?);
+ total_sum += constraint_coefficients[224] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[225])
+ .field_div(&NonZeroFelt::try_from(point - pow1947 * oods_point)?);
+ total_sum += constraint_coefficients[225] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[226])
+ .field_div(&NonZeroFelt::try_from(point - pow1948 * oods_point)?);
+ total_sum += constraint_coefficients[226] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[227])
+ .field_div(&NonZeroFelt::try_from(point - pow1265 * oods_point)?);
+ total_sum += constraint_coefficients[227] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[228])
+ .field_div(&NonZeroFelt::try_from(point - pow1856 * oods_point)?);
+ total_sum += constraint_coefficients[228] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[229])
+ .field_div(&NonZeroFelt::try_from(point - pow1270 * oods_point)?);
+ total_sum += constraint_coefficients[229] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[230])
+ .field_div(&NonZeroFelt::try_from(point - pow1857 * oods_point)?);
+ total_sum += constraint_coefficients[230] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[231])
+ .field_div(&NonZeroFelt::try_from(point - pow1271 * oods_point)?);
+ total_sum += constraint_coefficients[231] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[232])
+ .field_div(&NonZeroFelt::try_from(point - pow1858 * oods_point)?);
+ total_sum += constraint_coefficients[232] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[233])
+ .field_div(&NonZeroFelt::try_from(point - pow1272 * oods_point)?);
+ total_sum += constraint_coefficients[233] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[234])
+ .field_div(&NonZeroFelt::try_from(point - pow1859 * oods_point)?);
+ total_sum += constraint_coefficients[234] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[235])
+ .field_div(&NonZeroFelt::try_from(point - pow1273 * oods_point)?);
+ total_sum += constraint_coefficients[235] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[236])
+ .field_div(&NonZeroFelt::try_from(point - pow1860 * oods_point)?);
+ total_sum += constraint_coefficients[236] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[237])
+ .field_div(&NonZeroFelt::try_from(point - pow1274 * oods_point)?);
+ total_sum += constraint_coefficients[237] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[238])
+ .field_div(&NonZeroFelt::try_from(point - pow1861 * oods_point)?);
+ total_sum += constraint_coefficients[238] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[239])
+ .field_div(&NonZeroFelt::try_from(point - pow1275 * oods_point)?);
+ total_sum += constraint_coefficients[239] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[240])
+ .field_div(&NonZeroFelt::try_from(point - pow1862 * oods_point)?);
+ total_sum += constraint_coefficients[240] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[241])
+ .field_div(&NonZeroFelt::try_from(point - pow1276 * oods_point)?);
+ total_sum += constraint_coefficients[241] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[242])
+ .field_div(&NonZeroFelt::try_from(point - pow1863 * oods_point)?);
+ total_sum += constraint_coefficients[242] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[243])
+ .field_div(&NonZeroFelt::try_from(point - pow1277 * oods_point)?);
+ total_sum += constraint_coefficients[243] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[244])
+ .field_div(&NonZeroFelt::try_from(point - pow1864 * oods_point)?);
+ total_sum += constraint_coefficients[244] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[245])
+ .field_div(&NonZeroFelt::try_from(point - pow1278 * oods_point)?);
+ total_sum += constraint_coefficients[245] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[246])
+ .field_div(&NonZeroFelt::try_from(point - pow1865 * oods_point)?);
+ total_sum += constraint_coefficients[246] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[247])
+ .field_div(&NonZeroFelt::try_from(point - pow1279 * oods_point)?);
+ total_sum += constraint_coefficients[247] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[248])
+ .field_div(&NonZeroFelt::try_from(point - pow1866 * oods_point)?);
+ total_sum += constraint_coefficients[248] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[249])
+ .field_div(&NonZeroFelt::try_from(point - pow1280 * oods_point)?);
+ total_sum += constraint_coefficients[249] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[250])
+ .field_div(&NonZeroFelt::try_from(point - pow1867 * oods_point)?);
+ total_sum += constraint_coefficients[250] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[251])
+ .field_div(&NonZeroFelt::try_from(point - pow1281 * oods_point)?);
+ total_sum += constraint_coefficients[251] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[252])
+ .field_div(&NonZeroFelt::try_from(point - pow1868 * oods_point)?);
+ total_sum += constraint_coefficients[252] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[253])
+ .field_div(&NonZeroFelt::try_from(point - pow1282 * oods_point)?);
+ total_sum += constraint_coefficients[253] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[254])
+ .field_div(&NonZeroFelt::try_from(point - pow1869 * oods_point)?);
+ total_sum += constraint_coefficients[254] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[255])
+ .field_div(&NonZeroFelt::try_from(point - pow1283 * oods_point)?);
+ total_sum += constraint_coefficients[255] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[256])
+ .field_div(&NonZeroFelt::try_from(point - pow1870 * oods_point)?);
+ total_sum += constraint_coefficients[256] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[257])
+ .field_div(&NonZeroFelt::try_from(point - pow1284 * oods_point)?);
+ total_sum += constraint_coefficients[257] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[258])
+ .field_div(&NonZeroFelt::try_from(point - pow1871 * oods_point)?);
+ total_sum += constraint_coefficients[258] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column]
+ - oods_values[259])
+ .field_div(&NonZeroFelt::try_from(point - pow1235 * oods_point)?);
+ total_sum += constraint_coefficients[259] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column]
+ - oods_values[260])
+ .field_div(&NonZeroFelt::try_from(point - pow1243 * oods_point)?);
+ total_sum += constraint_coefficients[260] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[261])
+ .field_div(&NonZeroFelt::try_from(point - pow1266 * oods_point)?);
+ total_sum += constraint_coefficients[261] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column]
+ - oods_values[262])
+ .field_div(&NonZeroFelt::try_from(point - pow1251 * oods_point)?);
+ total_sum += constraint_coefficients[262] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[263])
+ .field_div(&NonZeroFelt::try_from(point - pow1267 * oods_point)?);
+ total_sum += constraint_coefficients[263] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column]
+ - oods_values[264])
+ .field_div(&NonZeroFelt::try_from(point - pow1252 * oods_point)?);
+ total_sum += constraint_coefficients[264] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[265])
+ .field_div(&NonZeroFelt::try_from(point - pow1268 * oods_point)?);
+ total_sum += constraint_coefficients[265] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column]
+ - oods_values[266])
+ .field_div(&NonZeroFelt::try_from(point - pow1253 * oods_point)?);
+ total_sum += constraint_coefficients[266] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[267])
+ .field_div(&NonZeroFelt::try_from(point - pow1269 * oods_point)?);
+ total_sum += constraint_coefficients[267] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column]
+ - oods_values[268])
+ .field_div(&NonZeroFelt::try_from(point - pow1254 * oods_point)?);
+ total_sum += constraint_coefficients[268] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[269])
+ .field_div(&NonZeroFelt::try_from(point - pow1285 * oods_point)?);
+ total_sum += constraint_coefficients[269] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column]
+ - oods_values[270])
+ .field_div(&NonZeroFelt::try_from(point - pow1255 * oods_point)?);
+ total_sum += constraint_coefficients[270] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[271])
+ .field_div(&NonZeroFelt::try_from(point - pow1286 * oods_point)?);
+ total_sum += constraint_coefficients[271] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column]
+ - oods_values[272])
+ .field_div(&NonZeroFelt::try_from(point - pow1256 * oods_point)?);
+ total_sum += constraint_coefficients[272] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[273])
+ .field_div(&NonZeroFelt::try_from(point - pow1287 * oods_point)?);
+ total_sum += constraint_coefficients[273] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column]
+ - oods_values[274])
+ .field_div(&NonZeroFelt::try_from(point - pow1257 * oods_point)?);
+ total_sum += constraint_coefficients[274] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[275])
+ .field_div(&NonZeroFelt::try_from(point - pow1288 * oods_point)?);
+ total_sum += constraint_coefficients[275] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column]
+ - oods_values[276])
+ .field_div(&NonZeroFelt::try_from(point - pow1258 * oods_point)?);
+ total_sum += constraint_coefficients[276] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[277])
+ .field_div(&NonZeroFelt::try_from(point - pow1289 * oods_point)?);
+ total_sum += constraint_coefficients[277] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column]
+ - oods_values[278])
+ .field_div(&NonZeroFelt::try_from(point - pow1259 * oods_point)?);
+ total_sum += constraint_coefficients[278] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[279])
+ .field_div(&NonZeroFelt::try_from(point - pow1290 * oods_point)?);
+ total_sum += constraint_coefficients[279] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column]
+ - oods_values[280])
+ .field_div(&NonZeroFelt::try_from(point - pow1260 * oods_point)?);
+ total_sum += constraint_coefficients[280] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[281])
+ .field_div(&NonZeroFelt::try_from(point - pow1291 * oods_point)?);
+ total_sum += constraint_coefficients[281] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column]
+ - oods_values[282])
+ .field_div(&NonZeroFelt::try_from(point - pow1261 * oods_point)?);
+ total_sum += constraint_coefficients[282] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[283])
+ .field_div(&NonZeroFelt::try_from(point - pow1292 * oods_point)?);
+ total_sum += constraint_coefficients[283] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column]
+ - oods_values[284])
+ .field_div(&NonZeroFelt::try_from(point - pow1262 * oods_point)?);
+ total_sum += constraint_coefficients[284] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[285])
+ .field_div(&NonZeroFelt::try_from(point - pow1293 * oods_point)?);
+ total_sum += constraint_coefficients[285] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column]
+ - oods_values[286])
+ .field_div(&NonZeroFelt::try_from(point - pow1263 * oods_point)?);
+ total_sum += constraint_coefficients[286] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[287])
+ .field_div(&NonZeroFelt::try_from(point - pow1294 * oods_point)?);
+ total_sum += constraint_coefficients[287] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column]
+ - oods_values[288])
+ .field_div(&NonZeroFelt::try_from(point - pow1264 * oods_point)?);
+ total_sum += constraint_coefficients[288] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_reshaped_intermediate_column]
+ - oods_values[289])
+ .field_div(&NonZeroFelt::try_from(point - pow1295 * oods_point)?);
+ total_sum += constraint_coefficients[289] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[290])
+ .field_div(&NonZeroFelt::try_from(point - pow1219 * oods_point)?);
+ total_sum += constraint_coefficients[290] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[291])
+ .field_div(&NonZeroFelt::try_from(point - pow1203 * oods_point)?);
+ total_sum += constraint_coefficients[291] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[292])
+ .field_div(&NonZeroFelt::try_from(point - pow1211 * oods_point)?);
+ total_sum += constraint_coefficients[292] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[293])
+ .field_div(&NonZeroFelt::try_from(point - pow1204 * oods_point)?);
+ total_sum += constraint_coefficients[293] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[294])
+ .field_div(&NonZeroFelt::try_from(point - pow1214 * oods_point)?);
+ total_sum += constraint_coefficients[294] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[295])
+ .field_div(&NonZeroFelt::try_from(point - pow1212 * oods_point)?);
+ total_sum += constraint_coefficients[295] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column]
+ - oods_values[296])
+ .field_div(&NonZeroFelt::try_from(point - pow1236 * oods_point)?);
+ total_sum += constraint_coefficients[296] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[297])
+ .field_div(&NonZeroFelt::try_from(point - pow1215 * oods_point)?);
+ total_sum += constraint_coefficients[297] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column]
+ - oods_values[298])
+ .field_div(&NonZeroFelt::try_from(point - pow1244 * oods_point)?);
+ total_sum += constraint_coefficients[298] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[299])
+ .field_div(&NonZeroFelt::try_from(point - pow1213 * oods_point)?);
+ total_sum += constraint_coefficients[299] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column]
+ - oods_values[300])
+ .field_div(&NonZeroFelt::try_from(point - pow1237 * oods_point)?);
+ total_sum += constraint_coefficients[300] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[301])
+ .field_div(&NonZeroFelt::try_from(point - pow1217 * oods_point)?);
+ total_sum += constraint_coefficients[301] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column]
+ - oods_values[302])
+ .field_div(&NonZeroFelt::try_from(point - pow1245 * oods_point)?);
+ total_sum += constraint_coefficients[302] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[303])
+ .field_div(&NonZeroFelt::try_from(point - pow1216 * oods_point)?);
+ total_sum += constraint_coefficients[303] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column]
+ - oods_values[304])
+ .field_div(&NonZeroFelt::try_from(point - pow1238 * oods_point)?);
+ total_sum += constraint_coefficients[304] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[305])
+ .field_div(&NonZeroFelt::try_from(point - pow1218 * oods_point)?);
+ total_sum += constraint_coefficients[305] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column]
+ - oods_values[306])
+ .field_div(&NonZeroFelt::try_from(point - pow1246 * oods_point)?);
+ total_sum += constraint_coefficients[306] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[307])
+ .field_div(&NonZeroFelt::try_from(point - pow1221 * oods_point)?);
+ total_sum += constraint_coefficients[307] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column]
+ - oods_values[308])
+ .field_div(&NonZeroFelt::try_from(point - pow1239 * oods_point)?);
+ total_sum += constraint_coefficients[308] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[309])
+ .field_div(&NonZeroFelt::try_from(point - pow1226 * oods_point)?);
+ total_sum += constraint_coefficients[309] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column]
+ - oods_values[310])
+ .field_div(&NonZeroFelt::try_from(point - pow1247 * oods_point)?);
+ total_sum += constraint_coefficients[310] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[311])
+ .field_div(&NonZeroFelt::try_from(point - pow1222 * oods_point)?);
+ total_sum += constraint_coefficients[311] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column]
+ - oods_values[312])
+ .field_div(&NonZeroFelt::try_from(point - pow1240 * oods_point)?);
+ total_sum += constraint_coefficients[312] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[313])
+ .field_div(&NonZeroFelt::try_from(point - pow1227 * oods_point)?);
+ total_sum += constraint_coefficients[313] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column]
+ - oods_values[314])
+ .field_div(&NonZeroFelt::try_from(point - pow1248 * oods_point)?);
+ total_sum += constraint_coefficients[314] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[315])
+ .field_div(&NonZeroFelt::try_from(point - pow1223 * oods_point)?);
+ total_sum += constraint_coefficients[315] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column]
+ - oods_values[316])
+ .field_div(&NonZeroFelt::try_from(point - pow1241 * oods_point)?);
+ total_sum += constraint_coefficients[316] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[317])
+ .field_div(&NonZeroFelt::try_from(point - pow1231 * oods_point)?);
+ total_sum += constraint_coefficients[317] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column]
+ - oods_values[318])
+ .field_div(&NonZeroFelt::try_from(point - pow1249 * oods_point)?);
+ total_sum += constraint_coefficients[318] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column]
+ - oods_values[319])
+ .field_div(&NonZeroFelt::try_from(point - pow1242 * oods_point)?);
+ total_sum += constraint_coefficients[319] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[320])
+ .field_div(&NonZeroFelt::try_from(point - pow1225 * oods_point)?);
+ total_sum += constraint_coefficients[320] * value;
+
+ value = (column_values
+ [dynamic_params.keccak_keccak_parse_to_diluted_final_reshaped_input_column]
+ - oods_values[321])
+ .field_div(&NonZeroFelt::try_from(point - pow1250 * oods_point)?);
+ total_sum += constraint_coefficients[321] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[322])
+ .field_div(&NonZeroFelt::try_from(point - pow1224 * oods_point)?);
+ total_sum += constraint_coefficients[322] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[323])
+ .field_div(&NonZeroFelt::try_from(point - pow1207 * oods_point)?);
+ total_sum += constraint_coefficients[323] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[324])
+ .field_div(&NonZeroFelt::try_from(point - pow1232 * oods_point)?);
+ total_sum += constraint_coefficients[324] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[325])
+ .field_div(&NonZeroFelt::try_from(point - pow1208 * oods_point)?);
+ total_sum += constraint_coefficients[325] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[326])
+ .field_div(&NonZeroFelt::try_from(point - pow1673 * oods_point)?);
+ total_sum += constraint_coefficients[326] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[327])
+ .field_div(&NonZeroFelt::try_from(point - pow1233 * oods_point)?);
+ total_sum += constraint_coefficients[327] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[328])
+ .field_div(&NonZeroFelt::try_from(point - pow1209 * oods_point)?);
+ total_sum += constraint_coefficients[328] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[329])
+ .field_div(&NonZeroFelt::try_from(point - pow1674 * oods_point)?);
+ total_sum += constraint_coefficients[329] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[330])
+ .field_div(&NonZeroFelt::try_from(point - pow1234 * oods_point)?);
+ total_sum += constraint_coefficients[330] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[331])
+ .field_div(&NonZeroFelt::try_from(point - pow1210 * oods_point)?);
+ total_sum += constraint_coefficients[331] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[332])
+ .field_div(&NonZeroFelt::try_from(point - pow1220 * oods_point)?);
+ total_sum += constraint_coefficients[332] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[333])
+ .field_div(&NonZeroFelt::try_from(point - pow1228 * oods_point)?);
+ total_sum += constraint_coefficients[333] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[334])
+ .field_div(&NonZeroFelt::try_from(point - pow1571 * oods_point)?);
+ total_sum += constraint_coefficients[334] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[335])
+ .field_div(&NonZeroFelt::try_from(point - pow1205 * oods_point)?);
+ total_sum += constraint_coefficients[335] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[336])
+ .field_div(&NonZeroFelt::try_from(point - pow1229 * oods_point)?);
+ total_sum += constraint_coefficients[336] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[337])
+ .field_div(&NonZeroFelt::try_from(point - pow1572 * oods_point)?);
+ total_sum += constraint_coefficients[337] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[338])
+ .field_div(&NonZeroFelt::try_from(point - pow1206 * oods_point)?);
+ total_sum += constraint_coefficients[338] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_parse_to_diluted_cumulative_sum_column]
+ - oods_values[339])
+ .field_div(&NonZeroFelt::try_from(point - pow1230 * oods_point)?);
+ total_sum += constraint_coefficients[339] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[340])
+ .field_div(&NonZeroFelt::try_from(point - pow1615 * oods_point)?);
+ total_sum += constraint_coefficients[340] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[341])
+ .field_div(&NonZeroFelt::try_from(point - pow1581 * oods_point)?);
+ total_sum += constraint_coefficients[341] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[342])
+ .field_div(&NonZeroFelt::try_from(point - pow1588 * oods_point)?);
+ total_sum += constraint_coefficients[342] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[343])
+ .field_div(&NonZeroFelt::try_from(point - pow1596 * oods_point)?);
+ total_sum += constraint_coefficients[343] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[344])
+ .field_div(&NonZeroFelt::try_from(point - pow1604 * oods_point)?);
+ total_sum += constraint_coefficients[344] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[345])
+ .field_div(&NonZeroFelt::try_from(point - pow1546 * oods_point)?);
+ total_sum += constraint_coefficients[345] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[346])
+ .field_div(&NonZeroFelt::try_from(point - pow1518 * oods_point)?);
+ total_sum += constraint_coefficients[346] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[347])
+ .field_div(&NonZeroFelt::try_from(point - pow1512 * oods_point)?);
+ total_sum += constraint_coefficients[347] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[348])
+ .field_div(&NonZeroFelt::try_from(point - pow1574 * oods_point)?);
+ total_sum += constraint_coefficients[348] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[349])
+ .field_div(&NonZeroFelt::try_from(point - pow1582 * oods_point)?);
+ total_sum += constraint_coefficients[349] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[350])
+ .field_div(&NonZeroFelt::try_from(point - pow1590 * oods_point)?);
+ total_sum += constraint_coefficients[350] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[351])
+ .field_div(&NonZeroFelt::try_from(point - pow1599 * oods_point)?);
+ total_sum += constraint_coefficients[351] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[352])
+ .field_div(&NonZeroFelt::try_from(point - pow1605 * oods_point)?);
+ total_sum += constraint_coefficients[352] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[353])
+ .field_div(&NonZeroFelt::try_from(point - pow1622 * oods_point)?);
+ total_sum += constraint_coefficients[353] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[354])
+ .field_div(&NonZeroFelt::try_from(point - pow1548 * oods_point)?);
+ total_sum += constraint_coefficients[354] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[355])
+ .field_div(&NonZeroFelt::try_from(point - pow1508 * oods_point)?);
+ total_sum += constraint_coefficients[355] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[356])
+ .field_div(&NonZeroFelt::try_from(point - pow1575 * oods_point)?);
+ total_sum += constraint_coefficients[356] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[357])
+ .field_div(&NonZeroFelt::try_from(point - pow1583 * oods_point)?);
+ total_sum += constraint_coefficients[357] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[358])
+ .field_div(&NonZeroFelt::try_from(point - pow1591 * oods_point)?);
+ total_sum += constraint_coefficients[358] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[359])
+ .field_div(&NonZeroFelt::try_from(point - pow1600 * oods_point)?);
+ total_sum += constraint_coefficients[359] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[360])
+ .field_div(&NonZeroFelt::try_from(point - pow1608 * oods_point)?);
+ total_sum += constraint_coefficients[360] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[361])
+ .field_div(&NonZeroFelt::try_from(point - pow1516 * oods_point)?);
+ total_sum += constraint_coefficients[361] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[362])
+ .field_div(&NonZeroFelt::try_from(point - pow1628 * oods_point)?);
+ total_sum += constraint_coefficients[362] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[363])
+ .field_div(&NonZeroFelt::try_from(point - pow1619 * oods_point)?);
+ total_sum += constraint_coefficients[363] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[364])
+ .field_div(&NonZeroFelt::try_from(point - pow1576 * oods_point)?);
+ total_sum += constraint_coefficients[364] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[365])
+ .field_div(&NonZeroFelt::try_from(point - pow1584 * oods_point)?);
+ total_sum += constraint_coefficients[365] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[366])
+ .field_div(&NonZeroFelt::try_from(point - pow1592 * oods_point)?);
+ total_sum += constraint_coefficients[366] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[367])
+ .field_div(&NonZeroFelt::try_from(point - pow1601 * oods_point)?);
+ total_sum += constraint_coefficients[367] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[368])
+ .field_div(&NonZeroFelt::try_from(point - pow1609 * oods_point)?);
+ total_sum += constraint_coefficients[368] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[369])
+ .field_div(&NonZeroFelt::try_from(point - pow1547 * oods_point)?);
+ total_sum += constraint_coefficients[369] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[370])
+ .field_div(&NonZeroFelt::try_from(point - pow1519 * oods_point)?);
+ total_sum += constraint_coefficients[370] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[371])
+ .field_div(&NonZeroFelt::try_from(point - pow1513 * oods_point)?);
+ total_sum += constraint_coefficients[371] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[372])
+ .field_div(&NonZeroFelt::try_from(point - pow1579 * oods_point)?);
+ total_sum += constraint_coefficients[372] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[373])
+ .field_div(&NonZeroFelt::try_from(point - pow1587 * oods_point)?);
+ total_sum += constraint_coefficients[373] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[374])
+ .field_div(&NonZeroFelt::try_from(point - pow1593 * oods_point)?);
+ total_sum += constraint_coefficients[374] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[375])
+ .field_div(&NonZeroFelt::try_from(point - pow1602 * oods_point)?);
+ total_sum += constraint_coefficients[375] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[376])
+ .field_div(&NonZeroFelt::try_from(point - pow1614 * oods_point)?);
+ total_sum += constraint_coefficients[376] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[377])
+ .field_div(&NonZeroFelt::try_from(point - pow1627 * oods_point)?);
+ total_sum += constraint_coefficients[377] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[378])
+ .field_div(&NonZeroFelt::try_from(point - pow1549 * oods_point)?);
+ total_sum += constraint_coefficients[378] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity0_column] - oods_values[379])
+ .field_div(&NonZeroFelt::try_from(point - pow1195 * oods_point)?);
+ total_sum += constraint_coefficients[379] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity0_column] - oods_values[380])
+ .field_div(&NonZeroFelt::try_from(point - pow1192 * oods_point)?);
+ total_sum += constraint_coefficients[380] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[381])
+ .field_div(&NonZeroFelt::try_from(point - pow1677 * oods_point)?);
+ total_sum += constraint_coefficients[381] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity1_column] - oods_values[382])
+ .field_div(&NonZeroFelt::try_from(point - pow1188 * oods_point)?);
+ total_sum += constraint_coefficients[382] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity1_column] - oods_values[383])
+ .field_div(&NonZeroFelt::try_from(point - pow1182 * oods_point)?);
+ total_sum += constraint_coefficients[383] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[384])
+ .field_div(&NonZeroFelt::try_from(point - pow1538 * oods_point)?);
+ total_sum += constraint_coefficients[384] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity2_column] - oods_values[385])
+ .field_div(&NonZeroFelt::try_from(point - pow1175 * oods_point)?);
+ total_sum += constraint_coefficients[385] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity2_column] - oods_values[386])
+ .field_div(&NonZeroFelt::try_from(point - pow1171 * oods_point)?);
+ total_sum += constraint_coefficients[386] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[387])
+ .field_div(&NonZeroFelt::try_from(point - pow1568 * oods_point)?);
+ total_sum += constraint_coefficients[387] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity3_column] - oods_values[388])
+ .field_div(&NonZeroFelt::try_from(point - pow1165 * oods_point)?);
+ total_sum += constraint_coefficients[388] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity3_column] - oods_values[389])
+ .field_div(&NonZeroFelt::try_from(point - pow1164 * oods_point)?);
+ total_sum += constraint_coefficients[389] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[390])
+ .field_div(&NonZeroFelt::try_from(point - pow1678 * oods_point)?);
+ total_sum += constraint_coefficients[390] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity4_column] - oods_values[391])
+ .field_div(&NonZeroFelt::try_from(point - pow1156 * oods_point)?);
+ total_sum += constraint_coefficients[391] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity4_column] - oods_values[392])
+ .field_div(&NonZeroFelt::try_from(point - pow1153 * oods_point)?);
+ total_sum += constraint_coefficients[392] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[393])
+ .field_div(&NonZeroFelt::try_from(point - pow1542 * oods_point)?);
+ total_sum += constraint_coefficients[393] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[394])
+ .field_div(&NonZeroFelt::try_from(point - pow1383 * oods_point)?);
+ total_sum += constraint_coefficients[394] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[395])
+ .field_div(&NonZeroFelt::try_from(point - pow1629 * oods_point)?);
+ total_sum += constraint_coefficients[395] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[396])
+ .field_div(&NonZeroFelt::try_from(point - pow1404 * oods_point)?);
+ total_sum += constraint_coefficients[396] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[397])
+ .field_div(&NonZeroFelt::try_from(point - pow1455 * oods_point)?);
+ total_sum += constraint_coefficients[397] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[398])
+ .field_div(&NonZeroFelt::try_from(point - pow1570 * oods_point)?);
+ total_sum += constraint_coefficients[398] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity2_column] - oods_values[399])
+ .field_div(&NonZeroFelt::try_from(point - pow1181 * oods_point)?);
+ total_sum += constraint_coefficients[399] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[400])
+ .field_div(&NonZeroFelt::try_from(point - pow1676 * oods_point)?);
+ total_sum += constraint_coefficients[400] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[401])
+ .field_div(&NonZeroFelt::try_from(point - pow1553 * oods_point)?);
+ total_sum += constraint_coefficients[401] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[402])
+ .field_div(&NonZeroFelt::try_from(point - pow1421 * oods_point)?);
+ total_sum += constraint_coefficients[402] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[403])
+ .field_div(&NonZeroFelt::try_from(point - pow1485 * oods_point)?);
+ total_sum += constraint_coefficients[403] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[404])
+ .field_div(&NonZeroFelt::try_from(point - pow1494 * oods_point)?);
+ total_sum += constraint_coefficients[404] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[405])
+ .field_div(&NonZeroFelt::try_from(point - pow1517 * oods_point)?);
+ total_sum += constraint_coefficients[405] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity3_column] - oods_values[406])
+ .field_div(&NonZeroFelt::try_from(point - pow1166 * oods_point)?);
+ total_sum += constraint_coefficients[406] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[407])
+ .field_div(&NonZeroFelt::try_from(point - pow1650 * oods_point)?);
+ total_sum += constraint_coefficients[407] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[408])
+ .field_div(&NonZeroFelt::try_from(point - pow1447 * oods_point)?);
+ total_sum += constraint_coefficients[408] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[409])
+ .field_div(&NonZeroFelt::try_from(point - pow1393 * oods_point)?);
+ total_sum += constraint_coefficients[409] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[410])
+ .field_div(&NonZeroFelt::try_from(point - pow1491 * oods_point)?);
+ total_sum += constraint_coefficients[410] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[411])
+ .field_div(&NonZeroFelt::try_from(point - pow1531 * oods_point)?);
+ total_sum += constraint_coefficients[411] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[412])
+ .field_div(&NonZeroFelt::try_from(point - pow1562 * oods_point)?);
+ total_sum += constraint_coefficients[412] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity4_column] - oods_values[413])
+ .field_div(&NonZeroFelt::try_from(point - pow1161 * oods_point)?);
+ total_sum += constraint_coefficients[413] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[414])
+ .field_div(&NonZeroFelt::try_from(point - pow1577 * oods_point)?);
+ total_sum += constraint_coefficients[414] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[415])
+ .field_div(&NonZeroFelt::try_from(point - pow1521 * oods_point)?);
+ total_sum += constraint_coefficients[415] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[416])
+ .field_div(&NonZeroFelt::try_from(point - pow1416 * oods_point)?);
+ total_sum += constraint_coefficients[416] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[417])
+ .field_div(&NonZeroFelt::try_from(point - pow1440 * oods_point)?);
+ total_sum += constraint_coefficients[417] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[418])
+ .field_div(&NonZeroFelt::try_from(point - pow1453 * oods_point)?);
+ total_sum += constraint_coefficients[418] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[419])
+ .field_div(&NonZeroFelt::try_from(point - pow1640 * oods_point)?);
+ total_sum += constraint_coefficients[419] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity0_column] - oods_values[420])
+ .field_div(&NonZeroFelt::try_from(point - pow1199 * oods_point)?);
+ total_sum += constraint_coefficients[420] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[421])
+ .field_div(&NonZeroFelt::try_from(point - pow1667 * oods_point)?);
+ total_sum += constraint_coefficients[421] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[422])
+ .field_div(&NonZeroFelt::try_from(point - pow1442 * oods_point)?);
+ total_sum += constraint_coefficients[422] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[423])
+ .field_div(&NonZeroFelt::try_from(point - pow1417 * oods_point)?);
+ total_sum += constraint_coefficients[423] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[424])
+ .field_div(&NonZeroFelt::try_from(point - pow1473 * oods_point)?);
+ total_sum += constraint_coefficients[424] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[425])
+ .field_div(&NonZeroFelt::try_from(point - pow1492 * oods_point)?);
+ total_sum += constraint_coefficients[425] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[426])
+ .field_div(&NonZeroFelt::try_from(point - pow1527 * oods_point)?);
+ total_sum += constraint_coefficients[426] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity1_column] - oods_values[427])
+ .field_div(&NonZeroFelt::try_from(point - pow1189 * oods_point)?);
+ total_sum += constraint_coefficients[427] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[428])
+ .field_div(&NonZeroFelt::try_from(point - pow1663 * oods_point)?);
+ total_sum += constraint_coefficients[428] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[429])
+ .field_div(&NonZeroFelt::try_from(point - pow1443 * oods_point)?);
+ total_sum += constraint_coefficients[429] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[430])
+ .field_div(&NonZeroFelt::try_from(point - pow1385 * oods_point)?);
+ total_sum += constraint_coefficients[430] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[431])
+ .field_div(&NonZeroFelt::try_from(point - pow1504 * oods_point)?);
+ total_sum += constraint_coefficients[431] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[432])
+ .field_div(&NonZeroFelt::try_from(point - pow1545 * oods_point)?);
+ total_sum += constraint_coefficients[432] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[433])
+ .field_div(&NonZeroFelt::try_from(point - pow1625 * oods_point)?);
+ total_sum += constraint_coefficients[433] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity2_column] - oods_values[434])
+ .field_div(&NonZeroFelt::try_from(point - pow1177 * oods_point)?);
+ total_sum += constraint_coefficients[434] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[435])
+ .field_div(&NonZeroFelt::try_from(point - pow1624 * oods_point)?);
+ total_sum += constraint_coefficients[435] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[436])
+ .field_div(&NonZeroFelt::try_from(point - pow1520 * oods_point)?);
+ total_sum += constraint_coefficients[436] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[437])
+ .field_div(&NonZeroFelt::try_from(point - pow1408 * oods_point)?);
+ total_sum += constraint_coefficients[437] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[438])
+ .field_div(&NonZeroFelt::try_from(point - pow1414 * oods_point)?);
+ total_sum += constraint_coefficients[438] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[439])
+ .field_div(&NonZeroFelt::try_from(point - pow1463 * oods_point)?);
+ total_sum += constraint_coefficients[439] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[440])
+ .field_div(&NonZeroFelt::try_from(point - pow1539 * oods_point)?);
+ total_sum += constraint_coefficients[440] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity3_column] - oods_values[441])
+ .field_div(&NonZeroFelt::try_from(point - pow1170 * oods_point)?);
+ total_sum += constraint_coefficients[441] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[442])
+ .field_div(&NonZeroFelt::try_from(point - pow1668 * oods_point)?);
+ total_sum += constraint_coefficients[442] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[443])
+ .field_div(&NonZeroFelt::try_from(point - pow1441 * oods_point)?);
+ total_sum += constraint_coefficients[443] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[444])
+ .field_div(&NonZeroFelt::try_from(point - pow1424 * oods_point)?);
+ total_sum += constraint_coefficients[444] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[445])
+ .field_div(&NonZeroFelt::try_from(point - pow1456 * oods_point)?);
+ total_sum += constraint_coefficients[445] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[446])
+ .field_div(&NonZeroFelt::try_from(point - pow1399 * oods_point)?);
+ total_sum += constraint_coefficients[446] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[447])
+ .field_div(&NonZeroFelt::try_from(point - pow1510 * oods_point)?);
+ total_sum += constraint_coefficients[447] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity4_column] - oods_values[448])
+ .field_div(&NonZeroFelt::try_from(point - pow1154 * oods_point)?);
+ total_sum += constraint_coefficients[448] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[449])
+ .field_div(&NonZeroFelt::try_from(point - pow1585 * oods_point)?);
+ total_sum += constraint_coefficients[449] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[450])
+ .field_div(&NonZeroFelt::try_from(point - pow1457 * oods_point)?);
+ total_sum += constraint_coefficients[450] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[451])
+ .field_div(&NonZeroFelt::try_from(point - pow1406 * oods_point)?);
+ total_sum += constraint_coefficients[451] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[452])
+ .field_div(&NonZeroFelt::try_from(point - pow1511 * oods_point)?);
+ total_sum += constraint_coefficients[452] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity4_column] - oods_values[453])
+ .field_div(&NonZeroFelt::try_from(point - pow1155 * oods_point)?);
+ total_sum += constraint_coefficients[453] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[454])
+ .field_div(&NonZeroFelt::try_from(point - pow1586 * oods_point)?);
+ total_sum += constraint_coefficients[454] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[455])
+ .field_div(&NonZeroFelt::try_from(point - pow1476 * oods_point)?);
+ total_sum += constraint_coefficients[455] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[456])
+ .field_div(&NonZeroFelt::try_from(point - pow1407 * oods_point)?);
+ total_sum += constraint_coefficients[456] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[457])
+ .field_div(&NonZeroFelt::try_from(point - pow1558 * oods_point)?);
+ total_sum += constraint_coefficients[457] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity4_column] - oods_values[458])
+ .field_div(&NonZeroFelt::try_from(point - pow1158 * oods_point)?);
+ total_sum += constraint_coefficients[458] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[459])
+ .field_div(&NonZeroFelt::try_from(point - pow1611 * oods_point)?);
+ total_sum += constraint_coefficients[459] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[460])
+ .field_div(&NonZeroFelt::try_from(point - pow1422 * oods_point)?);
+ total_sum += constraint_coefficients[460] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[461])
+ .field_div(&NonZeroFelt::try_from(point - pow1384 * oods_point)?);
+ total_sum += constraint_coefficients[461] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[462])
+ .field_div(&NonZeroFelt::try_from(point - pow1559 * oods_point)?);
+ total_sum += constraint_coefficients[462] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity4_column] - oods_values[463])
+ .field_div(&NonZeroFelt::try_from(point - pow1159 * oods_point)?);
+ total_sum += constraint_coefficients[463] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[464])
+ .field_div(&NonZeroFelt::try_from(point - pow1644 * oods_point)?);
+ total_sum += constraint_coefficients[464] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[465])
+ .field_div(&NonZeroFelt::try_from(point - pow1423 * oods_point)?);
+ total_sum += constraint_coefficients[465] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[466])
+ .field_div(&NonZeroFelt::try_from(point - pow1386 * oods_point)?);
+ total_sum += constraint_coefficients[466] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[467])
+ .field_div(&NonZeroFelt::try_from(point - pow1560 * oods_point)?);
+ total_sum += constraint_coefficients[467] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity4_column] - oods_values[468])
+ .field_div(&NonZeroFelt::try_from(point - pow1160 * oods_point)?);
+ total_sum += constraint_coefficients[468] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[469])
+ .field_div(&NonZeroFelt::try_from(point - pow1651 * oods_point)?);
+ total_sum += constraint_coefficients[469] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[470])
+ .field_div(&NonZeroFelt::try_from(point - pow1388 * oods_point)?);
+ total_sum += constraint_coefficients[470] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[471])
+ .field_div(&NonZeroFelt::try_from(point - pow1395 * oods_point)?);
+ total_sum += constraint_coefficients[471] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[472])
+ .field_div(&NonZeroFelt::try_from(point - pow1426 * oods_point)?);
+ total_sum += constraint_coefficients[472] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[473])
+ .field_div(&NonZeroFelt::try_from(point - pow1552 * oods_point)?);
+ total_sum += constraint_coefficients[473] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[474])
+ .field_div(&NonZeroFelt::try_from(point - pow1641 * oods_point)?);
+ total_sum += constraint_coefficients[474] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity0_column] - oods_values[475])
+ .field_div(&NonZeroFelt::try_from(point - pow1200 * oods_point)?);
+ total_sum += constraint_coefficients[475] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[476])
+ .field_div(&NonZeroFelt::try_from(point - pow1671 * oods_point)?);
+ total_sum += constraint_coefficients[476] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[477])
+ .field_div(&NonZeroFelt::try_from(point - pow1551 * oods_point)?);
+ total_sum += constraint_coefficients[477] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[478])
+ .field_div(&NonZeroFelt::try_from(point - pow1397 * oods_point)?);
+ total_sum += constraint_coefficients[478] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[479])
+ .field_div(&NonZeroFelt::try_from(point - pow1466 * oods_point)?);
+ total_sum += constraint_coefficients[479] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[480])
+ .field_div(&NonZeroFelt::try_from(point - pow1462 * oods_point)?);
+ total_sum += constraint_coefficients[480] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[481])
+ .field_div(&NonZeroFelt::try_from(point - pow1541 * oods_point)?);
+ total_sum += constraint_coefficients[481] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity1_column] - oods_values[482])
+ .field_div(&NonZeroFelt::try_from(point - pow1191 * oods_point)?);
+ total_sum += constraint_coefficients[482] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[483])
+ .field_div(&NonZeroFelt::try_from(point - pow1589 * oods_point)?);
+ total_sum += constraint_coefficients[483] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[484])
+ .field_div(&NonZeroFelt::try_from(point - pow1438 * oods_point)?);
+ total_sum += constraint_coefficients[484] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[485])
+ .field_div(&NonZeroFelt::try_from(point - pow1418 * oods_point)?);
+ total_sum += constraint_coefficients[485] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[486])
+ .field_div(&NonZeroFelt::try_from(point - pow1472 * oods_point)?);
+ total_sum += constraint_coefficients[486] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[487])
+ .field_div(&NonZeroFelt::try_from(point - pow1474 * oods_point)?);
+ total_sum += constraint_coefficients[487] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[488])
+ .field_div(&NonZeroFelt::try_from(point - pow1616 * oods_point)?);
+ total_sum += constraint_coefficients[488] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity2_column] - oods_values[489])
+ .field_div(&NonZeroFelt::try_from(point - pow1172 * oods_point)?);
+ total_sum += constraint_coefficients[489] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[490])
+ .field_div(&NonZeroFelt::try_from(point - pow1612 * oods_point)?);
+ total_sum += constraint_coefficients[490] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[491])
+ .field_div(&NonZeroFelt::try_from(point - pow1444 * oods_point)?);
+ total_sum += constraint_coefficients[491] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[492])
+ .field_div(&NonZeroFelt::try_from(point - pow1387 * oods_point)?);
+ total_sum += constraint_coefficients[492] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[493])
+ .field_div(&NonZeroFelt::try_from(point - pow1503 * oods_point)?);
+ total_sum += constraint_coefficients[493] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[494])
+ .field_div(&NonZeroFelt::try_from(point - pow1569 * oods_point)?);
+ total_sum += constraint_coefficients[494] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[495])
+ .field_div(&NonZeroFelt::try_from(point - pow1536 * oods_point)?);
+ total_sum += constraint_coefficients[495] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity3_column] - oods_values[496])
+ .field_div(&NonZeroFelt::try_from(point - pow1168 * oods_point)?);
+ total_sum += constraint_coefficients[496] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[497])
+ .field_div(&NonZeroFelt::try_from(point - pow1626 * oods_point)?);
+ total_sum += constraint_coefficients[497] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[498])
+ .field_div(&NonZeroFelt::try_from(point - pow1550 * oods_point)?);
+ total_sum += constraint_coefficients[498] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[499])
+ .field_div(&NonZeroFelt::try_from(point - pow1410 * oods_point)?);
+ total_sum += constraint_coefficients[499] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[500])
+ .field_div(&NonZeroFelt::try_from(point - pow1460 * oods_point)?);
+ total_sum += constraint_coefficients[500] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[501])
+ .field_div(&NonZeroFelt::try_from(point - pow1669 * oods_point)?);
+ total_sum += constraint_coefficients[501] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[502])
+ .field_div(&NonZeroFelt::try_from(point - pow1564 * oods_point)?);
+ total_sum += constraint_coefficients[502] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity4_column] - oods_values[503])
+ .field_div(&NonZeroFelt::try_from(point - pow1162 * oods_point)?);
+ total_sum += constraint_coefficients[503] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[504])
+ .field_div(&NonZeroFelt::try_from(point - pow1653 * oods_point)?);
+ total_sum += constraint_coefficients[504] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[505])
+ .field_div(&NonZeroFelt::try_from(point - pow1647 * oods_point)?);
+ total_sum += constraint_coefficients[505] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[506])
+ .field_div(&NonZeroFelt::try_from(point - pow1430 * oods_point)?);
+ total_sum += constraint_coefficients[506] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[507])
+ .field_div(&NonZeroFelt::try_from(point - pow1427 * oods_point)?);
+ total_sum += constraint_coefficients[507] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[508])
+ .field_div(&NonZeroFelt::try_from(point - pow1481 * oods_point)?);
+ total_sum += constraint_coefficients[508] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[509])
+ .field_div(&NonZeroFelt::try_from(point - pow1620 * oods_point)?);
+ total_sum += constraint_coefficients[509] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity0_column] - oods_values[510])
+ .field_div(&NonZeroFelt::try_from(point - pow1193 * oods_point)?);
+ total_sum += constraint_coefficients[510] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[511])
+ .field_div(&NonZeroFelt::try_from(point - pow1594 * oods_point)?);
+ total_sum += constraint_coefficients[511] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[512])
+ .field_div(&NonZeroFelt::try_from(point - pow1429 * oods_point)?);
+ total_sum += constraint_coefficients[512] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[513])
+ .field_div(&NonZeroFelt::try_from(point - pow1484 * oods_point)?);
+ total_sum += constraint_coefficients[513] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[514])
+ .field_div(&NonZeroFelt::try_from(point - pow1621 * oods_point)?);
+ total_sum += constraint_coefficients[514] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity0_column] - oods_values[515])
+ .field_div(&NonZeroFelt::try_from(point - pow1194 * oods_point)?);
+ total_sum += constraint_coefficients[515] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[516])
+ .field_div(&NonZeroFelt::try_from(point - pow1595 * oods_point)?);
+ total_sum += constraint_coefficients[516] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[517])
+ .field_div(&NonZeroFelt::try_from(point - pow1475 * oods_point)?);
+ total_sum += constraint_coefficients[517] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[518])
+ .field_div(&NonZeroFelt::try_from(point - pow1495 * oods_point)?);
+ total_sum += constraint_coefficients[518] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[519])
+ .field_div(&NonZeroFelt::try_from(point - pow1639 * oods_point)?);
+ total_sum += constraint_coefficients[519] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity0_column] - oods_values[520])
+ .field_div(&NonZeroFelt::try_from(point - pow1196 * oods_point)?);
+ total_sum += constraint_coefficients[520] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[521])
+ .field_div(&NonZeroFelt::try_from(point - pow1613 * oods_point)?);
+ total_sum += constraint_coefficients[521] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[522])
+ .field_div(&NonZeroFelt::try_from(point - pow1425 * oods_point)?);
+ total_sum += constraint_coefficients[522] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[523])
+ .field_div(&NonZeroFelt::try_from(point - pow1390 * oods_point)?);
+ total_sum += constraint_coefficients[523] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[524])
+ .field_div(&NonZeroFelt::try_from(point - pow1660 * oods_point)?);
+ total_sum += constraint_coefficients[524] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity0_column] - oods_values[525])
+ .field_div(&NonZeroFelt::try_from(point - pow1197 * oods_point)?);
+ total_sum += constraint_coefficients[525] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[526])
+ .field_div(&NonZeroFelt::try_from(point - pow1659 * oods_point)?);
+ total_sum += constraint_coefficients[526] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[527])
+ .field_div(&NonZeroFelt::try_from(point - pow1428 * oods_point)?);
+ total_sum += constraint_coefficients[527] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[528])
+ .field_div(&NonZeroFelt::try_from(point - pow1392 * oods_point)?);
+ total_sum += constraint_coefficients[528] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[529])
+ .field_div(&NonZeroFelt::try_from(point - pow1662 * oods_point)?);
+ total_sum += constraint_coefficients[529] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity0_column] - oods_values[530])
+ .field_div(&NonZeroFelt::try_from(point - pow1198 * oods_point)?);
+ total_sum += constraint_coefficients[530] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[531])
+ .field_div(&NonZeroFelt::try_from(point - pow1661 * oods_point)?);
+ total_sum += constraint_coefficients[531] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[532])
+ .field_div(&NonZeroFelt::try_from(point - pow1394 * oods_point)?);
+ total_sum += constraint_coefficients[532] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[533])
+ .field_div(&NonZeroFelt::try_from(point - pow1433 * oods_point)?);
+ total_sum += constraint_coefficients[533] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[534])
+ .field_div(&NonZeroFelt::try_from(point - pow1498 * oods_point)?);
+ total_sum += constraint_coefficients[534] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[535])
+ .field_div(&NonZeroFelt::try_from(point - pow1486 * oods_point)?);
+ total_sum += constraint_coefficients[535] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[536])
+ .field_div(&NonZeroFelt::try_from(point - pow1514 * oods_point)?);
+ total_sum += constraint_coefficients[536] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity1_column] - oods_values[537])
+ .field_div(&NonZeroFelt::try_from(point - pow1184 * oods_point)?);
+ total_sum += constraint_coefficients[537] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[538])
+ .field_div(&NonZeroFelt::try_from(point - pow1597 * oods_point)?);
+ total_sum += constraint_coefficients[538] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[539])
+ .field_div(&NonZeroFelt::try_from(point - pow1499 * oods_point)?);
+ total_sum += constraint_coefficients[539] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[540])
+ .field_div(&NonZeroFelt::try_from(point - pow1496 * oods_point)?);
+ total_sum += constraint_coefficients[540] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[541])
+ .field_div(&NonZeroFelt::try_from(point - pow1515 * oods_point)?);
+ total_sum += constraint_coefficients[541] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity1_column] - oods_values[542])
+ .field_div(&NonZeroFelt::try_from(point - pow1186 * oods_point)?);
+ total_sum += constraint_coefficients[542] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[543])
+ .field_div(&NonZeroFelt::try_from(point - pow1598 * oods_point)?);
+ total_sum += constraint_coefficients[543] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[544])
+ .field_div(&NonZeroFelt::try_from(point - pow1500 * oods_point)?);
+ total_sum += constraint_coefficients[544] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[545])
+ .field_div(&NonZeroFelt::try_from(point - pow1497 * oods_point)?);
+ total_sum += constraint_coefficients[545] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[546])
+ .field_div(&NonZeroFelt::try_from(point - pow1528 * oods_point)?);
+ total_sum += constraint_coefficients[546] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity1_column] - oods_values[547])
+ .field_div(&NonZeroFelt::try_from(point - pow1183 * oods_point)?);
+ total_sum += constraint_coefficients[547] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[548])
+ .field_div(&NonZeroFelt::try_from(point - pow1637 * oods_point)?);
+ total_sum += constraint_coefficients[548] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[549])
+ .field_div(&NonZeroFelt::try_from(point - pow1431 * oods_point)?);
+ total_sum += constraint_coefficients[549] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[550])
+ .field_div(&NonZeroFelt::try_from(point - pow1396 * oods_point)?);
+ total_sum += constraint_coefficients[550] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[551])
+ .field_div(&NonZeroFelt::try_from(point - pow1529 * oods_point)?);
+ total_sum += constraint_coefficients[551] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity1_column] - oods_values[552])
+ .field_div(&NonZeroFelt::try_from(point - pow1185 * oods_point)?);
+ total_sum += constraint_coefficients[552] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[553])
+ .field_div(&NonZeroFelt::try_from(point - pow1638 * oods_point)?);
+ total_sum += constraint_coefficients[553] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[554])
+ .field_div(&NonZeroFelt::try_from(point - pow1432 * oods_point)?);
+ total_sum += constraint_coefficients[554] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[555])
+ .field_div(&NonZeroFelt::try_from(point - pow1398 * oods_point)?);
+ total_sum += constraint_coefficients[555] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[556])
+ .field_div(&NonZeroFelt::try_from(point - pow1530 * oods_point)?);
+ total_sum += constraint_coefficients[556] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity1_column] - oods_values[557])
+ .field_div(&NonZeroFelt::try_from(point - pow1187 * oods_point)?);
+ total_sum += constraint_coefficients[557] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[558])
+ .field_div(&NonZeroFelt::try_from(point - pow1652 * oods_point)?);
+ total_sum += constraint_coefficients[558] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[559])
+ .field_div(&NonZeroFelt::try_from(point - pow1401 * oods_point)?);
+ total_sum += constraint_coefficients[559] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[560])
+ .field_div(&NonZeroFelt::try_from(point - pow1400 * oods_point)?);
+ total_sum += constraint_coefficients[560] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[561])
+ .field_div(&NonZeroFelt::try_from(point - pow1470 * oods_point)?);
+ total_sum += constraint_coefficients[561] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[562])
+ .field_div(&NonZeroFelt::try_from(point - pow1646 * oods_point)?);
+ total_sum += constraint_coefficients[562] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[563])
+ .field_div(&NonZeroFelt::try_from(point - pow1623 * oods_point)?);
+ total_sum += constraint_coefficients[563] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity2_column] - oods_values[564])
+ .field_div(&NonZeroFelt::try_from(point - pow1176 * oods_point)?);
+ total_sum += constraint_coefficients[564] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[565])
+ .field_div(&NonZeroFelt::try_from(point - pow1603 * oods_point)?);
+ total_sum += constraint_coefficients[565] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[566])
+ .field_div(&NonZeroFelt::try_from(point - pow1645 * oods_point)?);
+ total_sum += constraint_coefficients[566] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[567])
+ .field_div(&NonZeroFelt::try_from(point - pow1419 * oods_point)?);
+ total_sum += constraint_coefficients[567] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[568])
+ .field_div(&NonZeroFelt::try_from(point - pow1490 * oods_point)?);
+ total_sum += constraint_coefficients[568] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[569])
+ .field_div(&NonZeroFelt::try_from(point - pow1487 * oods_point)?);
+ total_sum += constraint_coefficients[569] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[570])
+ .field_div(&NonZeroFelt::try_from(point - pow1537 * oods_point)?);
+ total_sum += constraint_coefficients[570] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity3_column] - oods_values[571])
+ .field_div(&NonZeroFelt::try_from(point - pow1169 * oods_point)?);
+ total_sum += constraint_coefficients[571] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[572])
+ .field_div(&NonZeroFelt::try_from(point - pow1664 * oods_point)?);
+ total_sum += constraint_coefficients[572] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[573])
+ .field_div(&NonZeroFelt::try_from(point - pow1445 * oods_point)?);
+ total_sum += constraint_coefficients[573] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[574])
+ .field_div(&NonZeroFelt::try_from(point - pow1389 * oods_point)?);
+ total_sum += constraint_coefficients[574] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[575])
+ .field_div(&NonZeroFelt::try_from(point - pow1468 * oods_point)?);
+ total_sum += constraint_coefficients[575] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[576])
+ .field_div(&NonZeroFelt::try_from(point - pow1469 * oods_point)?);
+ total_sum += constraint_coefficients[576] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[577])
+ .field_div(&NonZeroFelt::try_from(point - pow1565 * oods_point)?);
+ total_sum += constraint_coefficients[577] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity4_column] - oods_values[578])
+ .field_div(&NonZeroFelt::try_from(point - pow1163 * oods_point)?);
+ total_sum += constraint_coefficients[578] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[579])
+ .field_div(&NonZeroFelt::try_from(point - pow1670 * oods_point)?);
+ total_sum += constraint_coefficients[579] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[580])
+ .field_div(&NonZeroFelt::try_from(point - pow1437 * oods_point)?);
+ total_sum += constraint_coefficients[580] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[581])
+ .field_div(&NonZeroFelt::try_from(point - pow1411 * oods_point)?);
+ total_sum += constraint_coefficients[581] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[582])
+ .field_div(&NonZeroFelt::try_from(point - pow1415 * oods_point)?);
+ total_sum += constraint_coefficients[582] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[583])
+ .field_div(&NonZeroFelt::try_from(point - pow1543 * oods_point)?);
+ total_sum += constraint_coefficients[583] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[584])
+ .field_div(&NonZeroFelt::try_from(point - pow1666 * oods_point)?);
+ total_sum += constraint_coefficients[584] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity0_column] - oods_values[585])
+ .field_div(&NonZeroFelt::try_from(point - pow1202 * oods_point)?);
+ total_sum += constraint_coefficients[585] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[586])
+ .field_div(&NonZeroFelt::try_from(point - pow1665 * oods_point)?);
+ total_sum += constraint_coefficients[586] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[587])
+ .field_div(&NonZeroFelt::try_from(point - pow1523 * oods_point)?);
+ total_sum += constraint_coefficients[587] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[588])
+ .field_div(&NonZeroFelt::try_from(point - pow1412 * oods_point)?);
+ total_sum += constraint_coefficients[588] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[589])
+ .field_div(&NonZeroFelt::try_from(point - pow1413 * oods_point)?);
+ total_sum += constraint_coefficients[589] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[590])
+ .field_div(&NonZeroFelt::try_from(point - pow1566 * oods_point)?);
+ total_sum += constraint_coefficients[590] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[591])
+ .field_div(&NonZeroFelt::try_from(point - pow1540 * oods_point)?);
+ total_sum += constraint_coefficients[591] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity1_column] - oods_values[592])
+ .field_div(&NonZeroFelt::try_from(point - pow1190 * oods_point)?);
+ total_sum += constraint_coefficients[592] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[593])
+ .field_div(&NonZeroFelt::try_from(point - pow1672 * oods_point)?);
+ total_sum += constraint_coefficients[593] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[594])
+ .field_div(&NonZeroFelt::try_from(point - pow1554 * oods_point)?);
+ total_sum += constraint_coefficients[594] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[595])
+ .field_div(&NonZeroFelt::try_from(point - pow1436 * oods_point)?);
+ total_sum += constraint_coefficients[595] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[596])
+ .field_div(&NonZeroFelt::try_from(point - pow1451 * oods_point)?);
+ total_sum += constraint_coefficients[596] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[597])
+ .field_div(&NonZeroFelt::try_from(point - pow1439 * oods_point)?);
+ total_sum += constraint_coefficients[597] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[598])
+ .field_div(&NonZeroFelt::try_from(point - pow1617 * oods_point)?);
+ total_sum += constraint_coefficients[598] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity2_column] - oods_values[599])
+ .field_div(&NonZeroFelt::try_from(point - pow1173 * oods_point)?);
+ total_sum += constraint_coefficients[599] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[600])
+ .field_div(&NonZeroFelt::try_from(point - pow1606 * oods_point)?);
+ total_sum += constraint_coefficients[600] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[601])
+ .field_div(&NonZeroFelt::try_from(point - pow1452 * oods_point)?);
+ total_sum += constraint_coefficients[601] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[602])
+ .field_div(&NonZeroFelt::try_from(point - pow1458 * oods_point)?);
+ total_sum += constraint_coefficients[602] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[603])
+ .field_div(&NonZeroFelt::try_from(point - pow1618 * oods_point)?);
+ total_sum += constraint_coefficients[603] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity2_column] - oods_values[604])
+ .field_div(&NonZeroFelt::try_from(point - pow1174 * oods_point)?);
+ total_sum += constraint_coefficients[604] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[605])
+ .field_div(&NonZeroFelt::try_from(point - pow1607 * oods_point)?);
+ total_sum += constraint_coefficients[605] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[606])
+ .field_div(&NonZeroFelt::try_from(point - pow1454 * oods_point)?);
+ total_sum += constraint_coefficients[606] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[607])
+ .field_div(&NonZeroFelt::try_from(point - pow1459 * oods_point)?);
+ total_sum += constraint_coefficients[607] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[608])
+ .field_div(&NonZeroFelt::try_from(point - pow1656 * oods_point)?);
+ total_sum += constraint_coefficients[608] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity2_column] - oods_values[609])
+ .field_div(&NonZeroFelt::try_from(point - pow1178 * oods_point)?);
+ total_sum += constraint_coefficients[609] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[610])
+ .field_div(&NonZeroFelt::try_from(point - pow1642 * oods_point)?);
+ total_sum += constraint_coefficients[610] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[611])
+ .field_div(&NonZeroFelt::try_from(point - pow1434 * oods_point)?);
+ total_sum += constraint_coefficients[611] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[612])
+ .field_div(&NonZeroFelt::try_from(point - pow1403 * oods_point)?);
+ total_sum += constraint_coefficients[612] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[613])
+ .field_div(&NonZeroFelt::try_from(point - pow1657 * oods_point)?);
+ total_sum += constraint_coefficients[613] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity2_column] - oods_values[614])
+ .field_div(&NonZeroFelt::try_from(point - pow1179 * oods_point)?);
+ total_sum += constraint_coefficients[614] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[615])
+ .field_div(&NonZeroFelt::try_from(point - pow1654 * oods_point)?);
+ total_sum += constraint_coefficients[615] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[616])
+ .field_div(&NonZeroFelt::try_from(point - pow1435 * oods_point)?);
+ total_sum += constraint_coefficients[616] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[617])
+ .field_div(&NonZeroFelt::try_from(point - pow1405 * oods_point)?);
+ total_sum += constraint_coefficients[617] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[618])
+ .field_div(&NonZeroFelt::try_from(point - pow1658 * oods_point)?);
+ total_sum += constraint_coefficients[618] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity2_column] - oods_values[619])
+ .field_div(&NonZeroFelt::try_from(point - pow1180 * oods_point)?);
+ total_sum += constraint_coefficients[619] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[620])
+ .field_div(&NonZeroFelt::try_from(point - pow1655 * oods_point)?);
+ total_sum += constraint_coefficients[620] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[621])
+ .field_div(&NonZeroFelt::try_from(point - pow1409 * oods_point)?);
+ total_sum += constraint_coefficients[621] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[622])
+ .field_div(&NonZeroFelt::try_from(point - pow1402 * oods_point)?);
+ total_sum += constraint_coefficients[622] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[623])
+ .field_div(&NonZeroFelt::try_from(point - pow1502 * oods_point)?);
+ total_sum += constraint_coefficients[623] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[624])
+ .field_div(&NonZeroFelt::try_from(point - pow1544 * oods_point)?);
+ total_sum += constraint_coefficients[624] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[625])
+ .field_div(&NonZeroFelt::try_from(point - pow1526 * oods_point)?);
+ total_sum += constraint_coefficients[625] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity3_column] - oods_values[626])
+ .field_div(&NonZeroFelt::try_from(point - pow1167 * oods_point)?);
+ total_sum += constraint_coefficients[626] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[627])
+ .field_div(&NonZeroFelt::try_from(point - pow1636 * oods_point)?);
+ total_sum += constraint_coefficients[627] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[628])
+ .field_div(&NonZeroFelt::try_from(point - pow1522 * oods_point)?);
+ total_sum += constraint_coefficients[628] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[629])
+ .field_div(&NonZeroFelt::try_from(point - pow1420 * oods_point)?);
+ total_sum += constraint_coefficients[629] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[630])
+ .field_div(&NonZeroFelt::try_from(point - pow1501 * oods_point)?);
+ total_sum += constraint_coefficients[630] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[631])
+ .field_div(&NonZeroFelt::try_from(point - pow1493 * oods_point)?);
+ total_sum += constraint_coefficients[631] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[632])
+ .field_div(&NonZeroFelt::try_from(point - pow1509 * oods_point)?);
+ total_sum += constraint_coefficients[632] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity4_column] - oods_values[633])
+ .field_div(&NonZeroFelt::try_from(point - pow1157 * oods_point)?);
+ total_sum += constraint_coefficients[633] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[634])
+ .field_div(&NonZeroFelt::try_from(point - pow1610 * oods_point)?);
+ total_sum += constraint_coefficients[634] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[635])
+ .field_div(&NonZeroFelt::try_from(point - pow1446 * oods_point)?);
+ total_sum += constraint_coefficients[635] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[636])
+ .field_div(&NonZeroFelt::try_from(point - pow1391 * oods_point)?);
+ total_sum += constraint_coefficients[636] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[637])
+ .field_div(&NonZeroFelt::try_from(point - pow1478 * oods_point)?);
+ total_sum += constraint_coefficients[637] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[638])
+ .field_div(&NonZeroFelt::try_from(point - pow1643 * oods_point)?);
+ total_sum += constraint_coefficients[638] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[639])
+ .field_div(&NonZeroFelt::try_from(point - pow1649 * oods_point)?);
+ total_sum += constraint_coefficients[639] * value;
+
+ value = (column_values[dynamic_params.keccak_keccak_rotated_parity0_column] - oods_values[640])
+ .field_div(&NonZeroFelt::try_from(point - pow1201 * oods_point)?);
+ total_sum += constraint_coefficients[640] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[641])
+ .field_div(&NonZeroFelt::try_from(point - pow1648 * oods_point)?);
+ total_sum += constraint_coefficients[641] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[642])
+ .field_div(&NonZeroFelt::try_from(point - pow1635 * oods_point)?);
+ total_sum += constraint_coefficients[642] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[643])
+ .field_div(&NonZeroFelt::try_from(point - pow1573 * oods_point)?);
+ total_sum += constraint_coefficients[643] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[644])
+ .field_div(&NonZeroFelt::try_from(point - pow1380 * oods_point)?);
+ total_sum += constraint_coefficients[644] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[645])
+ .field_div(&NonZeroFelt::try_from(point - pow1377 * oods_point)?);
+ total_sum += constraint_coefficients[645] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[646])
+ .field_div(&NonZeroFelt::try_from(point - pow1630 * oods_point)?);
+ total_sum += constraint_coefficients[646] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[647])
+ .field_div(&NonZeroFelt::try_from(point - pow1448 * oods_point)?);
+ total_sum += constraint_coefficients[647] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[648])
+ .field_div(&NonZeroFelt::try_from(point - pow1449 * oods_point)?);
+ total_sum += constraint_coefficients[648] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[649])
+ .field_div(&NonZeroFelt::try_from(point - pow1450 * oods_point)?);
+ total_sum += constraint_coefficients[649] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[650])
+ .field_div(&NonZeroFelt::try_from(point - pow1524 * oods_point)?);
+ total_sum += constraint_coefficients[650] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[651])
+ .field_div(&NonZeroFelt::try_from(point - pow1555 * oods_point)?);
+ total_sum += constraint_coefficients[651] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[652])
+ .field_div(&NonZeroFelt::try_from(point - pow1631 * oods_point)?);
+ total_sum += constraint_coefficients[652] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[653])
+ .field_div(&NonZeroFelt::try_from(point - pow1461 * oods_point)?);
+ total_sum += constraint_coefficients[653] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[654])
+ .field_div(&NonZeroFelt::try_from(point - pow1464 * oods_point)?);
+ total_sum += constraint_coefficients[654] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[655])
+ .field_div(&NonZeroFelt::try_from(point - pow1465 * oods_point)?);
+ total_sum += constraint_coefficients[655] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[656])
+ .field_div(&NonZeroFelt::try_from(point - pow1525 * oods_point)?);
+ total_sum += constraint_coefficients[656] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[657])
+ .field_div(&NonZeroFelt::try_from(point - pow1556 * oods_point)?);
+ total_sum += constraint_coefficients[657] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[658])
+ .field_div(&NonZeroFelt::try_from(point - pow1632 * oods_point)?);
+ total_sum += constraint_coefficients[658] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[659])
+ .field_div(&NonZeroFelt::try_from(point - pow1467 * oods_point)?);
+ total_sum += constraint_coefficients[659] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[660])
+ .field_div(&NonZeroFelt::try_from(point - pow1471 * oods_point)?);
+ total_sum += constraint_coefficients[660] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[661])
+ .field_div(&NonZeroFelt::try_from(point - pow1477 * oods_point)?);
+ total_sum += constraint_coefficients[661] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[662])
+ .field_div(&NonZeroFelt::try_from(point - pow1532 * oods_point)?);
+ total_sum += constraint_coefficients[662] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[663])
+ .field_div(&NonZeroFelt::try_from(point - pow1557 * oods_point)?);
+ total_sum += constraint_coefficients[663] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[664])
+ .field_div(&NonZeroFelt::try_from(point - pow1633 * oods_point)?);
+ total_sum += constraint_coefficients[664] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[665])
+ .field_div(&NonZeroFelt::try_from(point - pow1479 * oods_point)?);
+ total_sum += constraint_coefficients[665] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[666])
+ .field_div(&NonZeroFelt::try_from(point - pow1482 * oods_point)?);
+ total_sum += constraint_coefficients[666] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[667])
+ .field_div(&NonZeroFelt::try_from(point - pow1488 * oods_point)?);
+ total_sum += constraint_coefficients[667] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[668])
+ .field_div(&NonZeroFelt::try_from(point - pow1533 * oods_point)?);
+ total_sum += constraint_coefficients[668] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[669])
+ .field_div(&NonZeroFelt::try_from(point - pow1561 * oods_point)?);
+ total_sum += constraint_coefficients[669] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[670])
+ .field_div(&NonZeroFelt::try_from(point - pow1634 * oods_point)?);
+ total_sum += constraint_coefficients[670] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[671])
+ .field_div(&NonZeroFelt::try_from(point - pow1480 * oods_point)?);
+ total_sum += constraint_coefficients[671] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[672])
+ .field_div(&NonZeroFelt::try_from(point - pow1483 * oods_point)?);
+ total_sum += constraint_coefficients[672] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[673])
+ .field_div(&NonZeroFelt::try_from(point - pow1489 * oods_point)?);
+ total_sum += constraint_coefficients[673] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[674])
+ .field_div(&NonZeroFelt::try_from(point - pow1534 * oods_point)?);
+ total_sum += constraint_coefficients[674] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[675])
+ .field_div(&NonZeroFelt::try_from(point - pow1563 * oods_point)?);
+ total_sum += constraint_coefficients[675] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[676])
+ .field_div(&NonZeroFelt::try_from(point - pow1675 * oods_point)?);
+ total_sum += constraint_coefficients[676] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[677])
+ .field_div(&NonZeroFelt::try_from(point - pow1505 * oods_point)?);
+ total_sum += constraint_coefficients[677] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[678])
+ .field_div(&NonZeroFelt::try_from(point - pow1506 * oods_point)?);
+ total_sum += constraint_coefficients[678] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[679])
+ .field_div(&NonZeroFelt::try_from(point - pow1507 * oods_point)?);
+ total_sum += constraint_coefficients[679] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[680])
+ .field_div(&NonZeroFelt::try_from(point - pow1535 * oods_point)?);
+ total_sum += constraint_coefficients[680] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[681])
+ .field_div(&NonZeroFelt::try_from(point - pow1567 * oods_point)?);
+ total_sum += constraint_coefficients[681] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[682])
+ .field_div(&NonZeroFelt::try_from(point - pow1580 * oods_point)?);
+ total_sum += constraint_coefficients[682] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[683])
+ .field_div(&NonZeroFelt::try_from(point - pow1382 * oods_point)?);
+ total_sum += constraint_coefficients[683] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[684])
+ .field_div(&NonZeroFelt::try_from(point - pow1379 * oods_point)?);
+ total_sum += constraint_coefficients[684] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[685])
+ .field_div(&NonZeroFelt::try_from(point - pow1578 * oods_point)?);
+ total_sum += constraint_coefficients[685] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[686])
+ .field_div(&NonZeroFelt::try_from(point - pow1381 * oods_point)?);
+ total_sum += constraint_coefficients[686] * value;
+
+ value = (column_values[dynamic_params.diluted_pool_column] - oods_values[687])
+ .field_div(&NonZeroFelt::try_from(point - pow1378 * oods_point)?);
+ total_sum += constraint_coefficients[687] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[688])
+ .field_div(&NonZeroFelt::try_from(point - pow1961 * oods_point)?);
+ total_sum += constraint_coefficients[688] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[689])
+ .field_div(&NonZeroFelt::try_from(point - pow1962 * oods_point)?);
+ total_sum += constraint_coefficients[689] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[690])
+ .field_div(&NonZeroFelt::try_from(point - pow1959 * oods_point)?);
+ total_sum += constraint_coefficients[690] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[691])
+ .field_div(&NonZeroFelt::try_from(point - pow1960 * oods_point)?);
+ total_sum += constraint_coefficients[691] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[692])
+ .field_div(&NonZeroFelt::try_from(point - pow1957 * oods_point)?);
+ total_sum += constraint_coefficients[692] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[693])
+ .field_div(&NonZeroFelt::try_from(point - pow1958 * oods_point)?);
+ total_sum += constraint_coefficients[693] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_full_rounds_state0_squared_column]
+ - oods_values[694])
+ .field_div(&NonZeroFelt::try_from(point - pow1150 * oods_point)?);
+ total_sum += constraint_coefficients[694] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_full_rounds_state0_column]
+ - oods_values[695])
+ .field_div(&NonZeroFelt::try_from(point - pow1145 * oods_point)?);
+ total_sum += constraint_coefficients[695] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_full_rounds_state1_squared_column]
+ - oods_values[696])
+ .field_div(&NonZeroFelt::try_from(point - pow1142 * oods_point)?);
+ total_sum += constraint_coefficients[696] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_full_rounds_state1_column]
+ - oods_values[697])
+ .field_div(&NonZeroFelt::try_from(point - pow1137 * oods_point)?);
+ total_sum += constraint_coefficients[697] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_full_rounds_state2_squared_column]
+ - oods_values[698])
+ .field_div(&NonZeroFelt::try_from(point - pow1134 * oods_point)?);
+ total_sum += constraint_coefficients[698] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_full_rounds_state2_column]
+ - oods_values[699])
+ .field_div(&NonZeroFelt::try_from(point - pow1129 * oods_point)?);
+ total_sum += constraint_coefficients[699] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_partial_rounds_state0_squared_column]
+ - oods_values[700])
+ .field_div(&NonZeroFelt::try_from(point - pow1126 * oods_point)?);
+ total_sum += constraint_coefficients[700] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_partial_rounds_state0_column]
+ - oods_values[701])
+ .field_div(&NonZeroFelt::try_from(point - pow1119 * oods_point)?);
+ total_sum += constraint_coefficients[701] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_partial_rounds_state1_squared_column]
+ - oods_values[702])
+ .field_div(&NonZeroFelt::try_from(point - pow1113 * oods_point)?);
+ total_sum += constraint_coefficients[702] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_partial_rounds_state1_column]
+ - oods_values[703])
+ .field_div(&NonZeroFelt::try_from(point - pow1106 * oods_point)?);
+ total_sum += constraint_coefficients[703] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[704])
+ .field_div(&NonZeroFelt::try_from(point - pow1884 * oods_point)?);
+ total_sum += constraint_coefficients[704] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[705])
+ .field_div(&NonZeroFelt::try_from(point - pow1882 * oods_point)?);
+ total_sum += constraint_coefficients[705] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[706])
+ .field_div(&NonZeroFelt::try_from(point - pow1880 * oods_point)?);
+ total_sum += constraint_coefficients[706] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_full_rounds_state0_column]
+ - oods_values[707])
+ .field_div(&NonZeroFelt::try_from(point - pow1147 * oods_point)?);
+ total_sum += constraint_coefficients[707] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_full_rounds_state1_column]
+ - oods_values[708])
+ .field_div(&NonZeroFelt::try_from(point - pow1138 * oods_point)?);
+ total_sum += constraint_coefficients[708] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_full_rounds_state2_column]
+ - oods_values[709])
+ .field_div(&NonZeroFelt::try_from(point - pow1131 * oods_point)?);
+ total_sum += constraint_coefficients[709] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[710])
+ .field_div(&NonZeroFelt::try_from(point - pow1885 * oods_point)?);
+ total_sum += constraint_coefficients[710] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_full_rounds_state0_column]
+ - oods_values[711])
+ .field_div(&NonZeroFelt::try_from(point - pow1149 * oods_point)?);
+ total_sum += constraint_coefficients[711] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_full_rounds_state0_squared_column]
+ - oods_values[712])
+ .field_div(&NonZeroFelt::try_from(point - pow1152 * oods_point)?);
+ total_sum += constraint_coefficients[712] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_full_rounds_state1_column]
+ - oods_values[713])
+ .field_div(&NonZeroFelt::try_from(point - pow1141 * oods_point)?);
+ total_sum += constraint_coefficients[713] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_full_rounds_state1_squared_column]
+ - oods_values[714])
+ .field_div(&NonZeroFelt::try_from(point - pow1144 * oods_point)?);
+ total_sum += constraint_coefficients[714] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_full_rounds_state2_column]
+ - oods_values[715])
+ .field_div(&NonZeroFelt::try_from(point - pow1133 * oods_point)?);
+ total_sum += constraint_coefficients[715] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_full_rounds_state2_squared_column]
+ - oods_values[716])
+ .field_div(&NonZeroFelt::try_from(point - pow1136 * oods_point)?);
+ total_sum += constraint_coefficients[716] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[717])
+ .field_div(&NonZeroFelt::try_from(point - pow1883 * oods_point)?);
+ total_sum += constraint_coefficients[717] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[718])
+ .field_div(&NonZeroFelt::try_from(point - pow1881 * oods_point)?);
+ total_sum += constraint_coefficients[718] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_partial_rounds_state0_column]
+ - oods_values[719])
+ .field_div(&NonZeroFelt::try_from(point - pow1123 * oods_point)?);
+ total_sum += constraint_coefficients[719] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_partial_rounds_state1_column]
+ - oods_values[720])
+ .field_div(&NonZeroFelt::try_from(point - pow1107 * oods_point)?);
+ total_sum += constraint_coefficients[720] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_partial_rounds_state0_column]
+ - oods_values[721])
+ .field_div(&NonZeroFelt::try_from(point - pow1124 * oods_point)?);
+ total_sum += constraint_coefficients[721] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_partial_rounds_state1_column]
+ - oods_values[722])
+ .field_div(&NonZeroFelt::try_from(point - pow1108 * oods_point)?);
+ total_sum += constraint_coefficients[722] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_partial_rounds_state0_column]
+ - oods_values[723])
+ .field_div(&NonZeroFelt::try_from(point - pow1125 * oods_point)?);
+ total_sum += constraint_coefficients[723] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_full_rounds_state0_column]
+ - oods_values[724])
+ .field_div(&NonZeroFelt::try_from(point - pow1146 * oods_point)?);
+ total_sum += constraint_coefficients[724] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_full_rounds_state0_squared_column]
+ - oods_values[725])
+ .field_div(&NonZeroFelt::try_from(point - pow1151 * oods_point)?);
+ total_sum += constraint_coefficients[725] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_full_rounds_state1_column]
+ - oods_values[726])
+ .field_div(&NonZeroFelt::try_from(point - pow1139 * oods_point)?);
+ total_sum += constraint_coefficients[726] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_full_rounds_state1_squared_column]
+ - oods_values[727])
+ .field_div(&NonZeroFelt::try_from(point - pow1143 * oods_point)?);
+ total_sum += constraint_coefficients[727] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_full_rounds_state2_column]
+ - oods_values[728])
+ .field_div(&NonZeroFelt::try_from(point - pow1130 * oods_point)?);
+ total_sum += constraint_coefficients[728] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_full_rounds_state2_squared_column]
+ - oods_values[729])
+ .field_div(&NonZeroFelt::try_from(point - pow1135 * oods_point)?);
+ total_sum += constraint_coefficients[729] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_partial_rounds_state0_column]
+ - oods_values[730])
+ .field_div(&NonZeroFelt::try_from(point - pow1120 * oods_point)?);
+ total_sum += constraint_coefficients[730] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_partial_rounds_state0_column]
+ - oods_values[731])
+ .field_div(&NonZeroFelt::try_from(point - pow1121 * oods_point)?);
+ total_sum += constraint_coefficients[731] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_partial_rounds_state0_squared_column]
+ - oods_values[732])
+ .field_div(&NonZeroFelt::try_from(point - pow1127 * oods_point)?);
+ total_sum += constraint_coefficients[732] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_partial_rounds_state0_column]
+ - oods_values[733])
+ .field_div(&NonZeroFelt::try_from(point - pow1122 * oods_point)?);
+ total_sum += constraint_coefficients[733] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_partial_rounds_state0_squared_column]
+ - oods_values[734])
+ .field_div(&NonZeroFelt::try_from(point - pow1128 * oods_point)?);
+ total_sum += constraint_coefficients[734] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_partial_rounds_state1_column]
+ - oods_values[735])
+ .field_div(&NonZeroFelt::try_from(point - pow1109 * oods_point)?);
+ total_sum += constraint_coefficients[735] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_partial_rounds_state1_squared_column]
+ - oods_values[736])
+ .field_div(&NonZeroFelt::try_from(point - pow1115 * oods_point)?);
+ total_sum += constraint_coefficients[736] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_partial_rounds_state1_squared_column]
+ - oods_values[737])
+ .field_div(&NonZeroFelt::try_from(point - pow1116 * oods_point)?);
+ total_sum += constraint_coefficients[737] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_full_rounds_state0_column]
+ - oods_values[738])
+ .field_div(&NonZeroFelt::try_from(point - pow1148 * oods_point)?);
+ total_sum += constraint_coefficients[738] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_partial_rounds_state1_column]
+ - oods_values[739])
+ .field_div(&NonZeroFelt::try_from(point - pow1110 * oods_point)?);
+ total_sum += constraint_coefficients[739] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_partial_rounds_state1_squared_column]
+ - oods_values[740])
+ .field_div(&NonZeroFelt::try_from(point - pow1114 * oods_point)?);
+ total_sum += constraint_coefficients[740] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_partial_rounds_state1_column]
+ - oods_values[741])
+ .field_div(&NonZeroFelt::try_from(point - pow1111 * oods_point)?);
+ total_sum += constraint_coefficients[741] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_partial_rounds_state1_squared_column]
+ - oods_values[742])
+ .field_div(&NonZeroFelt::try_from(point - pow1117 * oods_point)?);
+ total_sum += constraint_coefficients[742] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_partial_rounds_state1_column]
+ - oods_values[743])
+ .field_div(&NonZeroFelt::try_from(point - pow1112 * oods_point)?);
+ total_sum += constraint_coefficients[743] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_partial_rounds_state1_squared_column]
+ - oods_values[744])
+ .field_div(&NonZeroFelt::try_from(point - pow1118 * oods_point)?);
+ total_sum += constraint_coefficients[744] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_full_rounds_state1_column]
+ - oods_values[745])
+ .field_div(&NonZeroFelt::try_from(point - pow1140 * oods_point)?);
+ total_sum += constraint_coefficients[745] * value;
+
+ value = (column_values[dynamic_params.poseidon_poseidon_full_rounds_state2_column]
+ - oods_values[746])
+ .field_div(&NonZeroFelt::try_from(point - pow1132 * oods_point)?);
+ total_sum += constraint_coefficients[746] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[747])
+ .field_div(&NonZeroFelt::try_from(point - pow1854 * oods_point)?);
+ total_sum += constraint_coefficients[747] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[748])
+ .field_div(&NonZeroFelt::try_from(point - pow1785 * oods_point)?);
+ total_sum += constraint_coefficients[748] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[749])
+ .field_div(&NonZeroFelt::try_from(point - pow1784 * oods_point)?);
+ total_sum += constraint_coefficients[749] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[750])
+ .field_div(&NonZeroFelt::try_from(point - pow1783 * oods_point)?);
+ total_sum += constraint_coefficients[750] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[751])
+ .field_div(&NonZeroFelt::try_from(point - pow1782 * oods_point)?);
+ total_sum += constraint_coefficients[751] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[752])
+ .field_div(&NonZeroFelt::try_from(point - pow1781 * oods_point)?);
+ total_sum += constraint_coefficients[752] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[753])
+ .field_div(&NonZeroFelt::try_from(point - pow1780 * oods_point)?);
+ total_sum += constraint_coefficients[753] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[754])
+ .field_div(&NonZeroFelt::try_from(point - pow1946 * oods_point)?);
+ total_sum += constraint_coefficients[754] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[755])
+ .field_div(&NonZeroFelt::try_from(point - pow1945 * oods_point)?);
+ total_sum += constraint_coefficients[755] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[756])
+ .field_div(&NonZeroFelt::try_from(point - pow1943 * oods_point)?);
+ total_sum += constraint_coefficients[756] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[757])
+ .field_div(&NonZeroFelt::try_from(point - pow1942 * oods_point)?);
+ total_sum += constraint_coefficients[757] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[758])
+ .field_div(&NonZeroFelt::try_from(point - pow1941 * oods_point)?);
+ total_sum += constraint_coefficients[758] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[759])
+ .field_div(&NonZeroFelt::try_from(point - pow1940 * oods_point)?);
+ total_sum += constraint_coefficients[759] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[760])
+ .field_div(&NonZeroFelt::try_from(point - pow1939 * oods_point)?);
+ total_sum += constraint_coefficients[760] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[761])
+ .field_div(&NonZeroFelt::try_from(point - pow1938 * oods_point)?);
+ total_sum += constraint_coefficients[761] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[762])
+ .field_div(&NonZeroFelt::try_from(point - pow1937 * oods_point)?);
+ total_sum += constraint_coefficients[762] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[763])
+ .field_div(&NonZeroFelt::try_from(point - pow1944 * oods_point)?);
+ total_sum += constraint_coefficients[763] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[764])
+ .field_div(&NonZeroFelt::try_from(point - pow1877 * oods_point)?);
+ total_sum += constraint_coefficients[764] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[765])
+ .field_div(&NonZeroFelt::try_from(point - pow1853 * oods_point)?);
+ total_sum += constraint_coefficients[765] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[766])
+ .field_div(&NonZeroFelt::try_from(point - pow1851 * oods_point)?);
+ total_sum += constraint_coefficients[766] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[767])
+ .field_div(&NonZeroFelt::try_from(point - pow1850 * oods_point)?);
+ total_sum += constraint_coefficients[767] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[768])
+ .field_div(&NonZeroFelt::try_from(point - pow1849 * oods_point)?);
+ total_sum += constraint_coefficients[768] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[769])
+ .field_div(&NonZeroFelt::try_from(point - pow1855 * oods_point)?);
+ total_sum += constraint_coefficients[769] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[770])
+ .field_div(&NonZeroFelt::try_from(point - pow1848 * oods_point)?);
+ total_sum += constraint_coefficients[770] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[771])
+ .field_div(&NonZeroFelt::try_from(point - pow1847 * oods_point)?);
+ total_sum += constraint_coefficients[771] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[772])
+ .field_div(&NonZeroFelt::try_from(point - pow1846 * oods_point)?);
+ total_sum += constraint_coefficients[772] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[773])
+ .field_div(&NonZeroFelt::try_from(point - pow1845 * oods_point)?);
+ total_sum += constraint_coefficients[773] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[774])
+ .field_div(&NonZeroFelt::try_from(point - pow1844 * oods_point)?);
+ total_sum += constraint_coefficients[774] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[775])
+ .field_div(&NonZeroFelt::try_from(point - pow1843 * oods_point)?);
+ total_sum += constraint_coefficients[775] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[776])
+ .field_div(&NonZeroFelt::try_from(point - pow1842 * oods_point)?);
+ total_sum += constraint_coefficients[776] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[777])
+ .field_div(&NonZeroFelt::try_from(point - pow1852 * oods_point)?);
+ total_sum += constraint_coefficients[777] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[778])
+ .field_div(&NonZeroFelt::try_from(point - pow1936 * oods_point)?);
+ total_sum += constraint_coefficients[778] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[779])
+ .field_div(&NonZeroFelt::try_from(point - pow1935 * oods_point)?);
+ total_sum += constraint_coefficients[779] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[780])
+ .field_div(&NonZeroFelt::try_from(point - pow1934 * oods_point)?);
+ total_sum += constraint_coefficients[780] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[781])
+ .field_div(&NonZeroFelt::try_from(point - pow1933 * oods_point)?);
+ total_sum += constraint_coefficients[781] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[782])
+ .field_div(&NonZeroFelt::try_from(point - pow1841 * oods_point)?);
+ total_sum += constraint_coefficients[782] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[783])
+ .field_div(&NonZeroFelt::try_from(point - pow1932 * oods_point)?);
+ total_sum += constraint_coefficients[783] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[784])
+ .field_div(&NonZeroFelt::try_from(point - pow1931 * oods_point)?);
+ total_sum += constraint_coefficients[784] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[785])
+ .field_div(&NonZeroFelt::try_from(point - pow1930 * oods_point)?);
+ total_sum += constraint_coefficients[785] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[786])
+ .field_div(&NonZeroFelt::try_from(point - pow1929 * oods_point)?);
+ total_sum += constraint_coefficients[786] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[787])
+ .field_div(&NonZeroFelt::try_from(point - pow1840 * oods_point)?);
+ total_sum += constraint_coefficients[787] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[788])
+ .field_div(&NonZeroFelt::try_from(point - pow1928 * oods_point)?);
+ total_sum += constraint_coefficients[788] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[789])
+ .field_div(&NonZeroFelt::try_from(point - pow1927 * oods_point)?);
+ total_sum += constraint_coefficients[789] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[790])
+ .field_div(&NonZeroFelt::try_from(point - pow1926 * oods_point)?);
+ total_sum += constraint_coefficients[790] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[791])
+ .field_div(&NonZeroFelt::try_from(point - pow1925 * oods_point)?);
+ total_sum += constraint_coefficients[791] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[792])
+ .field_div(&NonZeroFelt::try_from(point - pow1839 * oods_point)?);
+ total_sum += constraint_coefficients[792] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[793])
+ .field_div(&NonZeroFelt::try_from(point - pow1924 * oods_point)?);
+ total_sum += constraint_coefficients[793] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[794])
+ .field_div(&NonZeroFelt::try_from(point - pow1923 * oods_point)?);
+ total_sum += constraint_coefficients[794] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[795])
+ .field_div(&NonZeroFelt::try_from(point - pow1922 * oods_point)?);
+ total_sum += constraint_coefficients[795] * value;
+
+ value = (column_values[dynamic_params.add_mod_sub_p_bit_column] - oods_values[796])
+ .field_div(&NonZeroFelt::try_from(point - pow1105 * oods_point)?);
+ total_sum += constraint_coefficients[796] * value;
+
+ value = (column_values[dynamic_params.add_mod_carry1_bit_column] - oods_values[797])
+ .field_div(&NonZeroFelt::try_from(point - pow1104 * oods_point)?);
+ total_sum += constraint_coefficients[797] * value;
+
+ value = (column_values[dynamic_params.add_mod_carry1_sign_column] - oods_values[798])
+ .field_div(&NonZeroFelt::try_from(point - pow1103 * oods_point)?);
+ total_sum += constraint_coefficients[798] * value;
+
+ value = (column_values[dynamic_params.add_mod_carry2_bit_column] - oods_values[799])
+ .field_div(&NonZeroFelt::try_from(point - pow1102 * oods_point)?);
+ total_sum += constraint_coefficients[799] * value;
+
+ value = (column_values[dynamic_params.add_mod_carry2_sign_column] - oods_values[800])
+ .field_div(&NonZeroFelt::try_from(point - pow1101 * oods_point)?);
+ total_sum += constraint_coefficients[800] * value;
+
+ value = (column_values[dynamic_params.add_mod_carry3_bit_column] - oods_values[801])
+ .field_div(&NonZeroFelt::try_from(point - pow1100 * oods_point)?);
+ total_sum += constraint_coefficients[801] * value;
+
+ value = (column_values[dynamic_params.add_mod_carry3_sign_column] - oods_values[802])
+ .field_div(&NonZeroFelt::try_from(point - pow1099 * oods_point)?);
+ total_sum += constraint_coefficients[802] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[803])
+ .field_div(&NonZeroFelt::try_from(point - pow1838 * oods_point)?);
+ total_sum += constraint_coefficients[803] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[804])
+ .field_div(&NonZeroFelt::try_from(point - pow1837 * oods_point)?);
+ total_sum += constraint_coefficients[804] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[805])
+ .field_div(&NonZeroFelt::try_from(point - pow1836 * oods_point)?);
+ total_sum += constraint_coefficients[805] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[806])
+ .field_div(&NonZeroFelt::try_from(point - pow1835 * oods_point)?);
+ total_sum += constraint_coefficients[806] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[807])
+ .field_div(&NonZeroFelt::try_from(point - pow1834 * oods_point)?);
+ total_sum += constraint_coefficients[807] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[808])
+ .field_div(&NonZeroFelt::try_from(point - pow1833 * oods_point)?);
+ total_sum += constraint_coefficients[808] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[809])
+ .field_div(&NonZeroFelt::try_from(point - pow1832 * oods_point)?);
+ total_sum += constraint_coefficients[809] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[810])
+ .field_div(&NonZeroFelt::try_from(point - pow1831 * oods_point)?);
+ total_sum += constraint_coefficients[810] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[811])
+ .field_div(&NonZeroFelt::try_from(point - pow1830 * oods_point)?);
+ total_sum += constraint_coefficients[811] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[812])
+ .field_div(&NonZeroFelt::try_from(point - pow1829 * oods_point)?);
+ total_sum += constraint_coefficients[812] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[813])
+ .field_div(&NonZeroFelt::try_from(point - pow1828 * oods_point)?);
+ total_sum += constraint_coefficients[813] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[814])
+ .field_div(&NonZeroFelt::try_from(point - pow1827 * oods_point)?);
+ total_sum += constraint_coefficients[814] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[815])
+ .field_div(&NonZeroFelt::try_from(point - pow1920 * oods_point)?);
+ total_sum += constraint_coefficients[815] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[816])
+ .field_div(&NonZeroFelt::try_from(point - pow1919 * oods_point)?);
+ total_sum += constraint_coefficients[816] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[817])
+ .field_div(&NonZeroFelt::try_from(point - pow1918 * oods_point)?);
+ total_sum += constraint_coefficients[817] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[818])
+ .field_div(&NonZeroFelt::try_from(point - pow1917 * oods_point)?);
+ total_sum += constraint_coefficients[818] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[819])
+ .field_div(&NonZeroFelt::try_from(point - pow1916 * oods_point)?);
+ total_sum += constraint_coefficients[819] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[820])
+ .field_div(&NonZeroFelt::try_from(point - pow1915 * oods_point)?);
+ total_sum += constraint_coefficients[820] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[821])
+ .field_div(&NonZeroFelt::try_from(point - pow1914 * oods_point)?);
+ total_sum += constraint_coefficients[821] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[822])
+ .field_div(&NonZeroFelt::try_from(point - pow1921 * oods_point)?);
+ total_sum += constraint_coefficients[822] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[823])
+ .field_div(&NonZeroFelt::try_from(point - pow1826 * oods_point)?);
+ total_sum += constraint_coefficients[823] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[824])
+ .field_div(&NonZeroFelt::try_from(point - pow1825 * oods_point)?);
+ total_sum += constraint_coefficients[824] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[825])
+ .field_div(&NonZeroFelt::try_from(point - pow1823 * oods_point)?);
+ total_sum += constraint_coefficients[825] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[826])
+ .field_div(&NonZeroFelt::try_from(point - pow1822 * oods_point)?);
+ total_sum += constraint_coefficients[826] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[827])
+ .field_div(&NonZeroFelt::try_from(point - pow1821 * oods_point)?);
+ total_sum += constraint_coefficients[827] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[828])
+ .field_div(&NonZeroFelt::try_from(point - pow1820 * oods_point)?);
+ total_sum += constraint_coefficients[828] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[829])
+ .field_div(&NonZeroFelt::try_from(point - pow1819 * oods_point)?);
+ total_sum += constraint_coefficients[829] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[830])
+ .field_div(&NonZeroFelt::try_from(point - pow1818 * oods_point)?);
+ total_sum += constraint_coefficients[830] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[831])
+ .field_div(&NonZeroFelt::try_from(point - pow1817 * oods_point)?);
+ total_sum += constraint_coefficients[831] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[832])
+ .field_div(&NonZeroFelt::try_from(point - pow1816 * oods_point)?);
+ total_sum += constraint_coefficients[832] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[833])
+ .field_div(&NonZeroFelt::try_from(point - pow1815 * oods_point)?);
+ total_sum += constraint_coefficients[833] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[834])
+ .field_div(&NonZeroFelt::try_from(point - pow1814 * oods_point)?);
+ total_sum += constraint_coefficients[834] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[835])
+ .field_div(&NonZeroFelt::try_from(point - pow1813 * oods_point)?);
+ total_sum += constraint_coefficients[835] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[836])
+ .field_div(&NonZeroFelt::try_from(point - pow1824 * oods_point)?);
+ total_sum += constraint_coefficients[836] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[837])
+ .field_div(&NonZeroFelt::try_from(point - pow1913 * oods_point)?);
+ total_sum += constraint_coefficients[837] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[838])
+ .field_div(&NonZeroFelt::try_from(point - pow1912 * oods_point)?);
+ total_sum += constraint_coefficients[838] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[839])
+ .field_div(&NonZeroFelt::try_from(point - pow1911 * oods_point)?);
+ total_sum += constraint_coefficients[839] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[840])
+ .field_div(&NonZeroFelt::try_from(point - pow1910 * oods_point)?);
+ total_sum += constraint_coefficients[840] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[841])
+ .field_div(&NonZeroFelt::try_from(point - pow1812 * oods_point)?);
+ total_sum += constraint_coefficients[841] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[842])
+ .field_div(&NonZeroFelt::try_from(point - pow1909 * oods_point)?);
+ total_sum += constraint_coefficients[842] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[843])
+ .field_div(&NonZeroFelt::try_from(point - pow1908 * oods_point)?);
+ total_sum += constraint_coefficients[843] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[844])
+ .field_div(&NonZeroFelt::try_from(point - pow1907 * oods_point)?);
+ total_sum += constraint_coefficients[844] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[845])
+ .field_div(&NonZeroFelt::try_from(point - pow1906 * oods_point)?);
+ total_sum += constraint_coefficients[845] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[846])
+ .field_div(&NonZeroFelt::try_from(point - pow1811 * oods_point)?);
+ total_sum += constraint_coefficients[846] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[847])
+ .field_div(&NonZeroFelt::try_from(point - pow1905 * oods_point)?);
+ total_sum += constraint_coefficients[847] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[848])
+ .field_div(&NonZeroFelt::try_from(point - pow1904 * oods_point)?);
+ total_sum += constraint_coefficients[848] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[849])
+ .field_div(&NonZeroFelt::try_from(point - pow1903 * oods_point)?);
+ total_sum += constraint_coefficients[849] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[850])
+ .field_div(&NonZeroFelt::try_from(point - pow1902 * oods_point)?);
+ total_sum += constraint_coefficients[850] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[851])
+ .field_div(&NonZeroFelt::try_from(point - pow1810 * oods_point)?);
+ total_sum += constraint_coefficients[851] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[852])
+ .field_div(&NonZeroFelt::try_from(point - pow1901 * oods_point)?);
+ total_sum += constraint_coefficients[852] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[853])
+ .field_div(&NonZeroFelt::try_from(point - pow1900 * oods_point)?);
+ total_sum += constraint_coefficients[853] * value;
+
+ value = (column_values[dynamic_params.mem_pool_addr_column] - oods_values[854])
+ .field_div(&NonZeroFelt::try_from(point - pow1899 * oods_point)?);
+ total_sum += constraint_coefficients[854] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[855])
+ .field_div(&NonZeroFelt::try_from(point - pow1809 * oods_point)?);
+ total_sum += constraint_coefficients[855] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[856])
+ .field_div(&NonZeroFelt::try_from(point - pow1808 * oods_point)?);
+ total_sum += constraint_coefficients[856] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[857])
+ .field_div(&NonZeroFelt::try_from(point - pow1807 * oods_point)?);
+ total_sum += constraint_coefficients[857] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[858])
+ .field_div(&NonZeroFelt::try_from(point - pow1806 * oods_point)?);
+ total_sum += constraint_coefficients[858] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[859])
+ .field_div(&NonZeroFelt::try_from(point - pow1805 * oods_point)?);
+ total_sum += constraint_coefficients[859] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[860])
+ .field_div(&NonZeroFelt::try_from(point - pow1804 * oods_point)?);
+ total_sum += constraint_coefficients[860] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[861])
+ .field_div(&NonZeroFelt::try_from(point - pow1803 * oods_point)?);
+ total_sum += constraint_coefficients[861] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[862])
+ .field_div(&NonZeroFelt::try_from(point - pow1802 * oods_point)?);
+ total_sum += constraint_coefficients[862] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[863])
+ .field_div(&NonZeroFelt::try_from(point - pow1801 * oods_point)?);
+ total_sum += constraint_coefficients[863] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[864])
+ .field_div(&NonZeroFelt::try_from(point - pow1800 * oods_point)?);
+ total_sum += constraint_coefficients[864] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[865])
+ .field_div(&NonZeroFelt::try_from(point - pow1799 * oods_point)?);
+ total_sum += constraint_coefficients[865] * value;
+
+ value = (column_values[dynamic_params.mem_pool_value_column] - oods_values[866])
+ .field_div(&NonZeroFelt::try_from(point - pow1798 * oods_point)?);
+ total_sum += constraint_coefficients[866] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[867])
+ .field_div(&NonZeroFelt::try_from(point - pow1779 * oods_point)?);
+ total_sum += constraint_coefficients[867] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[868])
+ .field_div(&NonZeroFelt::try_from(point - pow1778 * oods_point)?);
+ total_sum += constraint_coefficients[868] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[869])
+ .field_div(&NonZeroFelt::try_from(point - pow1777 * oods_point)?);
+ total_sum += constraint_coefficients[869] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[870])
+ .field_div(&NonZeroFelt::try_from(point - pow1776 * oods_point)?);
+ total_sum += constraint_coefficients[870] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[871])
+ .field_div(&NonZeroFelt::try_from(point - pow1775 * oods_point)?);
+ total_sum += constraint_coefficients[871] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[872])
+ .field_div(&NonZeroFelt::try_from(point - pow1774 * oods_point)?);
+ total_sum += constraint_coefficients[872] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[873])
+ .field_div(&NonZeroFelt::try_from(point - pow1773 * oods_point)?);
+ total_sum += constraint_coefficients[873] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[874])
+ .field_div(&NonZeroFelt::try_from(point - pow1772 * oods_point)?);
+ total_sum += constraint_coefficients[874] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[875])
+ .field_div(&NonZeroFelt::try_from(point - pow1771 * oods_point)?);
+ total_sum += constraint_coefficients[875] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[876])
+ .field_div(&NonZeroFelt::try_from(point - pow1770 * oods_point)?);
+ total_sum += constraint_coefficients[876] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[877])
+ .field_div(&NonZeroFelt::try_from(point - pow1769 * oods_point)?);
+ total_sum += constraint_coefficients[877] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[878])
+ .field_div(&NonZeroFelt::try_from(point - pow1768 * oods_point)?);
+ total_sum += constraint_coefficients[878] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[879])
+ .field_div(&NonZeroFelt::try_from(point - pow1767 * oods_point)?);
+ total_sum += constraint_coefficients[879] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[880])
+ .field_div(&NonZeroFelt::try_from(point - pow1766 * oods_point)?);
+ total_sum += constraint_coefficients[880] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[881])
+ .field_div(&NonZeroFelt::try_from(point - pow1765 * oods_point)?);
+ total_sum += constraint_coefficients[881] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[882])
+ .field_div(&NonZeroFelt::try_from(point - pow1764 * oods_point)?);
+ total_sum += constraint_coefficients[882] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[883])
+ .field_div(&NonZeroFelt::try_from(point - pow1763 * oods_point)?);
+ total_sum += constraint_coefficients[883] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[884])
+ .field_div(&NonZeroFelt::try_from(point - pow1762 * oods_point)?);
+ total_sum += constraint_coefficients[884] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[885])
+ .field_div(&NonZeroFelt::try_from(point - pow1761 * oods_point)?);
+ total_sum += constraint_coefficients[885] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[886])
+ .field_div(&NonZeroFelt::try_from(point - pow1760 * oods_point)?);
+ total_sum += constraint_coefficients[886] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[887])
+ .field_div(&NonZeroFelt::try_from(point - pow1759 * oods_point)?);
+ total_sum += constraint_coefficients[887] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[888])
+ .field_div(&NonZeroFelt::try_from(point - pow1758 * oods_point)?);
+ total_sum += constraint_coefficients[888] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[889])
+ .field_div(&NonZeroFelt::try_from(point - pow1757 * oods_point)?);
+ total_sum += constraint_coefficients[889] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[890])
+ .field_div(&NonZeroFelt::try_from(point - pow1756 * oods_point)?);
+ total_sum += constraint_coefficients[890] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[891])
+ .field_div(&NonZeroFelt::try_from(point - pow1755 * oods_point)?);
+ total_sum += constraint_coefficients[891] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[892])
+ .field_div(&NonZeroFelt::try_from(point - pow1754 * oods_point)?);
+ total_sum += constraint_coefficients[892] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[893])
+ .field_div(&NonZeroFelt::try_from(point - pow1753 * oods_point)?);
+ total_sum += constraint_coefficients[893] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[894])
+ .field_div(&NonZeroFelt::try_from(point - pow1752 * oods_point)?);
+ total_sum += constraint_coefficients[894] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[895])
+ .field_div(&NonZeroFelt::try_from(point - pow1751 * oods_point)?);
+ total_sum += constraint_coefficients[895] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[896])
+ .field_div(&NonZeroFelt::try_from(point - pow1750 * oods_point)?);
+ total_sum += constraint_coefficients[896] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[897])
+ .field_div(&NonZeroFelt::try_from(point - pow1749 * oods_point)?);
+ total_sum += constraint_coefficients[897] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[898])
+ .field_div(&NonZeroFelt::try_from(point - pow1748 * oods_point)?);
+ total_sum += constraint_coefficients[898] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[899])
+ .field_div(&NonZeroFelt::try_from(point - pow1747 * oods_point)?);
+ total_sum += constraint_coefficients[899] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[900])
+ .field_div(&NonZeroFelt::try_from(point - pow1746 * oods_point)?);
+ total_sum += constraint_coefficients[900] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[901])
+ .field_div(&NonZeroFelt::try_from(point - pow1745 * oods_point)?);
+ total_sum += constraint_coefficients[901] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[902])
+ .field_div(&NonZeroFelt::try_from(point - pow1744 * oods_point)?);
+ total_sum += constraint_coefficients[902] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[903])
+ .field_div(&NonZeroFelt::try_from(point - pow1743 * oods_point)?);
+ total_sum += constraint_coefficients[903] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[904])
+ .field_div(&NonZeroFelt::try_from(point - pow1742 * oods_point)?);
+ total_sum += constraint_coefficients[904] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[905])
+ .field_div(&NonZeroFelt::try_from(point - pow1741 * oods_point)?);
+ total_sum += constraint_coefficients[905] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[906])
+ .field_div(&NonZeroFelt::try_from(point - pow1740 * oods_point)?);
+ total_sum += constraint_coefficients[906] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[907])
+ .field_div(&NonZeroFelt::try_from(point - pow1739 * oods_point)?);
+ total_sum += constraint_coefficients[907] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[908])
+ .field_div(&NonZeroFelt::try_from(point - pow1738 * oods_point)?);
+ total_sum += constraint_coefficients[908] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[909])
+ .field_div(&NonZeroFelt::try_from(point - pow1737 * oods_point)?);
+ total_sum += constraint_coefficients[909] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[910])
+ .field_div(&NonZeroFelt::try_from(point - pow1736 * oods_point)?);
+ total_sum += constraint_coefficients[910] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[911])
+ .field_div(&NonZeroFelt::try_from(point - pow1735 * oods_point)?);
+ total_sum += constraint_coefficients[911] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[912])
+ .field_div(&NonZeroFelt::try_from(point - pow1734 * oods_point)?);
+ total_sum += constraint_coefficients[912] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[913])
+ .field_div(&NonZeroFelt::try_from(point - pow1733 * oods_point)?);
+ total_sum += constraint_coefficients[913] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[914])
+ .field_div(&NonZeroFelt::try_from(point - pow1732 * oods_point)?);
+ total_sum += constraint_coefficients[914] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[915])
+ .field_div(&NonZeroFelt::try_from(point - pow1731 * oods_point)?);
+ total_sum += constraint_coefficients[915] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[916])
+ .field_div(&NonZeroFelt::try_from(point - pow1730 * oods_point)?);
+ total_sum += constraint_coefficients[916] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[917])
+ .field_div(&NonZeroFelt::try_from(point - pow1729 * oods_point)?);
+ total_sum += constraint_coefficients[917] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[918])
+ .field_div(&NonZeroFelt::try_from(point - pow1728 * oods_point)?);
+ total_sum += constraint_coefficients[918] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[919])
+ .field_div(&NonZeroFelt::try_from(point - pow1727 * oods_point)?);
+ total_sum += constraint_coefficients[919] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[920])
+ .field_div(&NonZeroFelt::try_from(point - pow1726 * oods_point)?);
+ total_sum += constraint_coefficients[920] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[921])
+ .field_div(&NonZeroFelt::try_from(point - pow1725 * oods_point)?);
+ total_sum += constraint_coefficients[921] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[922])
+ .field_div(&NonZeroFelt::try_from(point - pow1724 * oods_point)?);
+ total_sum += constraint_coefficients[922] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[923])
+ .field_div(&NonZeroFelt::try_from(point - pow1723 * oods_point)?);
+ total_sum += constraint_coefficients[923] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[924])
+ .field_div(&NonZeroFelt::try_from(point - pow1722 * oods_point)?);
+ total_sum += constraint_coefficients[924] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[925])
+ .field_div(&NonZeroFelt::try_from(point - pow1721 * oods_point)?);
+ total_sum += constraint_coefficients[925] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[926])
+ .field_div(&NonZeroFelt::try_from(point - pow1720 * oods_point)?);
+ total_sum += constraint_coefficients[926] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[927])
+ .field_div(&NonZeroFelt::try_from(point - pow1719 * oods_point)?);
+ total_sum += constraint_coefficients[927] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[928])
+ .field_div(&NonZeroFelt::try_from(point - pow1718 * oods_point)?);
+ total_sum += constraint_coefficients[928] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[929])
+ .field_div(&NonZeroFelt::try_from(point - pow1717 * oods_point)?);
+ total_sum += constraint_coefficients[929] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[930])
+ .field_div(&NonZeroFelt::try_from(point - pow1716 * oods_point)?);
+ total_sum += constraint_coefficients[930] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[931])
+ .field_div(&NonZeroFelt::try_from(point - pow1715 * oods_point)?);
+ total_sum += constraint_coefficients[931] * value;
+
+ value = (column_values[dynamic_params.range_check16_pool_column] - oods_values[932])
+ .field_div(&NonZeroFelt::try_from(point - pow1714 * oods_point)?);
+ total_sum += constraint_coefficients[932] * value;
+
+ value = (column_values[dynamic_params.memory_multi_column_perm_perm_cum_prod0_column]
+ - oods_values[933])
+ .field_div(&NonZeroFelt::try_from(point - pow1097 * oods_point)?);
+ total_sum += constraint_coefficients[933] * value;
+
+ value = (column_values[dynamic_params.memory_multi_column_perm_perm_cum_prod0_column]
+ - oods_values[934])
+ .field_div(&NonZeroFelt::try_from(point - pow1098 * oods_point)?);
+ total_sum += constraint_coefficients[934] * value;
+
+ value = (column_values[dynamic_params.range_check16_perm_cum_prod0_column] - oods_values[935])
+ .field_div(&NonZeroFelt::try_from(point - pow1095 * oods_point)?);
+ total_sum += constraint_coefficients[935] * value;
+
+ value = (column_values[dynamic_params.range_check16_perm_cum_prod0_column] - oods_values[936])
+ .field_div(&NonZeroFelt::try_from(point - pow1096 * oods_point)?);
+ total_sum += constraint_coefficients[936] * value;
+
+ value = (column_values[dynamic_params.diluted_check_permutation_cum_prod0_column]
+ - oods_values[937])
+ .field_div(&NonZeroFelt::try_from(point - pow1093 * oods_point)?);
+ total_sum += constraint_coefficients[937] * value;
+
+ value = (column_values[dynamic_params.diluted_check_permutation_cum_prod0_column]
+ - oods_values[938])
+ .field_div(&NonZeroFelt::try_from(point - pow1094 * oods_point)?);
+ total_sum += constraint_coefficients[938] * value;
+
+ value = (column_values[dynamic_params.diluted_check_cumulative_value_column]
+ - oods_values[939])
+ .field_div(&NonZeroFelt::try_from(point - pow1091 * oods_point)?);
+ total_sum += constraint_coefficients[939] * value;
+
+ value = (column_values[dynamic_params.diluted_check_cumulative_value_column]
+ - oods_values[940])
+ .field_div(&NonZeroFelt::try_from(point - pow1092 * oods_point)?);
+ total_sum += constraint_coefficients[940] * value;
+
+ // Sum the OODS boundary constraints on the composition polynomials.
+ let oods_point_to_deg = oods_point.pow_felt(&Felt::from(Layout::CONSTRAINT_DEGREE));
+
+ value = (column_values[dynamic_params.num_columns_first + dynamic_params.num_columns_second]
+ - oods_values[941])
+ .field_div(&NonZeroFelt::try_from(point - oods_point_to_deg)?);
+ total_sum += constraint_coefficients[941] * value;
+
+ value = (column_values
+ [dynamic_params.num_columns_first + dynamic_params.num_columns_second + 1]
+ - oods_values[942])
+ .field_div(&NonZeroFelt::try_from(point - oods_point_to_deg)?);
+ total_sum += constraint_coefficients[942] * value;
+
+ Ok(total_sum)
+}
diff --git a/crates/air/src/layout/dynamic/global_values.rs b/crates/air/src/layout/dynamic/global_values.rs
new file mode 100644
index 0000000..f56e549
--- /dev/null
+++ b/crates/air/src/layout/dynamic/global_values.rs
@@ -0,0 +1,366 @@
+use serde::{Deserialize, Serialize};
+use serde_with::serde_as;
+use starknet_crypto::Felt;
+use swiftness_transcript::transcript::Transcript;
+
+#[serde_as]
+#[derive(Debug, PartialEq, Serialize, Deserialize)]
+pub struct EcPoint {
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub x: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub y: Felt,
+}
+
+#[serde_as]
+#[derive(Debug, PartialEq, Serialize, Deserialize)]
+pub struct CurveConfig {
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub alpha: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub beta: Felt,
+}
+
+#[serde_as]
+#[derive(Debug, PartialEq, Serialize, Deserialize)]
+pub struct EcdsaSigConfig {
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub alpha: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub beta: Felt,
+ pub shift_point: EcPoint,
+}
+
+// Accumulation of member expressions for auto generated composition polynomial code.
+#[serde_as]
+#[derive(Debug, PartialEq, Serialize, Deserialize)]
+pub struct GlobalValues {
+ // Public input.
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub trace_length: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub initial_pc: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub final_pc: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub initial_ap: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub final_ap: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub initial_pedersen_addr: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub initial_range_check_addr: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub initial_ecdsa_addr: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub initial_bitwise_addr: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub initial_ec_op_addr: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub initial_keccak_addr: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub initial_poseidon_addr: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub initial_range_check96_addr: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub add_mod_initial_mod_addr: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub mul_mod_initial_mod_addr: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub range_check_min: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub range_check_max: Felt,
+ // Constants.
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub offset_size: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub half_offset_size: Felt,
+ pub pedersen_shift_point: EcPoint,
+ pub ecdsa_sig_config: EcdsaSigConfig,
+ pub ec_op_curve_config: CurveConfig,
+ // Periodic columns.
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub pedersen_points_x: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub pedersen_points_y: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub ecdsa_generator_points_x: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub ecdsa_generator_points_y: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub keccak_keccak_keccak_round_key0: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub keccak_keccak_keccak_round_key1: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub keccak_keccak_keccak_round_key3: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub keccak_keccak_keccak_round_key7: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub keccak_keccak_keccak_round_key15: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub keccak_keccak_keccak_round_key31: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub keccak_keccak_keccak_round_key63: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub poseidon_poseidon_full_round_key0: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub poseidon_poseidon_full_round_key1: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub poseidon_poseidon_full_round_key2: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub poseidon_poseidon_partial_round_key0: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub poseidon_poseidon_partial_round_key1: Felt,
+ // Interaction elements.
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub memory_multi_column_perm_perm_interaction_elm: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub memory_multi_column_perm_hash_interaction_elm0: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub range_check16_perm_interaction_elm: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub diluted_check_permutation_interaction_elm: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub diluted_check_interaction_z: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub diluted_check_interaction_alpha: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub add_mod_interaction_elm: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub mul_mod_interaction_elm: Felt,
+ // Permutation products.
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub memory_multi_column_perm_perm_public_memory_prod: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub range_check16_perm_public_memory_prod: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub diluted_check_first_elm: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub diluted_check_permutation_public_memory_prod: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub diluted_check_final_cum_val: Felt,
+}
+
+// Elements that are sent from the prover after the commitment on the original trace.
+// Used for components after the first interaction, e.g., memory and range check.
+#[serde_as]
+#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
+pub struct InteractionElements {
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub memory_multi_column_perm_perm_interaction_elm: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub memory_multi_column_perm_hash_interaction_elm0: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub range_check16_perm_interaction_elm: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub diluted_check_permutation_interaction_elm: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub diluted_check_interaction_z: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub diluted_check_interaction_alpha: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub add_mod_interaction_elm: Felt,
+ #[cfg_attr(
+ feature = "std",
+ serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
+ )]
+ pub mul_mod_interaction_elm: Felt,
+}
+
+impl InteractionElements {
+ pub fn new(transcript: &mut Transcript) -> Self {
+ Self {
+ memory_multi_column_perm_perm_interaction_elm: transcript.random_felt_to_prover(),
+ memory_multi_column_perm_hash_interaction_elm0: transcript.random_felt_to_prover(),
+ range_check16_perm_interaction_elm: transcript.random_felt_to_prover(),
+ diluted_check_permutation_interaction_elm: transcript.random_felt_to_prover(),
+ diluted_check_interaction_z: transcript.random_felt_to_prover(),
+ diluted_check_interaction_alpha: transcript.random_felt_to_prover(),
+ add_mod_interaction_elm: transcript.random_felt_to_prover(),
+ mul_mod_interaction_elm: transcript.random_felt_to_prover(),
+ }
+ }
+}
diff --git a/crates/air/src/layout/dynamic/mod.rs b/crates/air/src/layout/dynamic/mod.rs
new file mode 100644
index 0000000..2f79f82
--- /dev/null
+++ b/crates/air/src/layout/dynamic/mod.rs
@@ -0,0 +1,802 @@
+pub mod autogenerated;
+pub mod global_values;
+
+use crate::{
+ alloc::borrow::ToOwned,
+ consts::*,
+ diluted::get_diluted_product,
+ layout::{safe_div, stark_curve},
+ periodic_columns::{
+ eval_ecdsa_x, eval_ecdsa_y, eval_keccak_round_key0, eval_keccak_round_key1,
+ eval_keccak_round_key15, eval_keccak_round_key3, eval_keccak_round_key31,
+ eval_keccak_round_key63, eval_keccak_round_key7, eval_pedersen_x, eval_pedersen_y,
+ eval_poseidon_poseidon_full_round_key0, eval_poseidon_poseidon_full_round_key1,
+ eval_poseidon_poseidon_full_round_key2, eval_poseidon_poseidon_partial_round_key0,
+ eval_poseidon_poseidon_partial_round_key1,
+ },
+ public_memory::{PublicInput, INITIAL_PC, MAX_ADDRESS, MAX_LOG_N_STEPS, MAX_RANGE_CHECK},
+};
+use alloc::vec;
+use alloc::vec::Vec;
+use global_values::{CurveConfig, EcPoint, EcdsaSigConfig, GlobalValues, InteractionElements};
+use starknet_core::types::NonZeroFelt;
+use starknet_crypto::{pedersen_hash, Felt};
+use swiftness_commitment::table::{commit::table_commit, decommit::table_decommit};
+use swiftness_transcript::ensure;
+
+use super::{
+ CompositionPolyEvalError, GenericLayoutTrait, LayoutTrait, OodsPolyEvalError, PublicInputError,
+};
+
+pub const N_DYNAMIC_PARAMS: usize = 340;
+pub const N_CONSTRAINTS: usize = 419;
+pub const MASK_SIZE: usize = 941;
+pub const CPU_COMPONENT_HEIGHT: usize = 16;
+pub const PUBLIC_MEMORY_FRACTION: usize = 8;
+pub const HAS_DILUTED_POOL: usize = 1;
+pub const DILUTED_SPACING: usize = 4;
+pub const DILUTED_N_BITS: usize = 16;
+pub const PEDERSEN_BUILTIN_REPETITIONS: usize = 1;
+pub const RANGE_CHECK_N_PARTS: usize = 8;
+pub const ECDSA_BUILTIN_REPETITIONS: usize = 1;
+pub const ECDSA_ELEMENT_BITS: usize = 251;
+pub const ECDSA_ELEMENT_HEIGHT: usize = 256;
+pub const BITWISE_TOTAL_N_BITS: usize = 251;
+pub const EC_OP_SCALAR_HEIGHT: usize = 256;
+pub const EC_OP_N_BITS: usize = 252;
+pub const POSEIDON_M: usize = 3;
+pub const POSEIDON_ROUNDS_FULL: usize = 8;
+pub const POSEIDON_ROUNDS_PARTIAL: usize = 83;
+pub const RANGE_CHECK96_N_PARTS: usize = 6;
+pub const ADD_MOD_WORD_BIT_LEN: usize = 96;
+pub const ADD_MOD_N_WORDS: usize = 4;
+pub const ADD_MOD_BATCH_SIZE: usize = 1;
+pub const MUL_MOD_WORD_BIT_LEN: usize = 96;
+pub const MUL_MOD_N_WORDS: usize = 4;
+pub const MUL_MOD_BATCH_SIZE: usize = 1;
+pub const HAS_OUTPUT_BUILTIN: usize = 1;
+pub const HAS_PEDERSEN_BUILTIN: usize = 1;
+pub const HAS_RANGE_CHECK_BUILTIN: usize = 1;
+pub const HAS_ECDSA_BUILTIN: usize = 1;
+pub const HAS_BITWISE_BUILTIN: usize = 1;
+pub const HAS_EC_OP_BUILTIN: usize = 1;
+pub const HAS_KECCAK_BUILTIN: usize = 1;
+pub const HAS_POSEIDON_BUILTIN: usize = 1;
+pub const HAS_RANGE_CHECK96_BUILTIN: usize = 1;
+pub const HAS_ADD_MOD_BUILTIN: usize = 1;
+pub const HAS_MUL_MOD_BUILTIN: usize = 1;
+pub const LAYOUT_CODE: Felt = Felt::from_hex_unchecked("0x64796e616d6963");
+pub const CONSTRAINT_DEGREE: usize = 2;
+pub const IS_DYNAMIC_AIR: usize = 1;
+pub const KECCAK_PERMUTATIONS_PER_INSTANCE: usize = DILUTED_N_BITS;
+
+pub mod segments {
+ pub const ADD_MOD: usize = 11;
+ pub const BITWISE: usize = 6;
+ pub const EC_OP: usize = 7;
+ pub const ECDSA: usize = 5;
+ pub const EXECUTION: usize = 1;
+ pub const KECCAK: usize = 8;
+ pub const MUL_MOD: usize = 12;
+ pub const N_SEGMENTS: usize = 13;
+ pub const OUTPUT: usize = 2;
+ pub const PEDERSEN: usize = 3;
+ pub const POSEIDON: usize = 9;
+ pub const PROGRAM: usize = 0;
+ pub const RANGE_CHECK: usize = 4;
+ pub const RANGE_CHECK96: usize = 10;
+}
+
+pub mod builtins {
+ use starknet_crypto::Felt;
+
+ pub const OUTPUT: Felt = Felt::from_hex_unchecked("0x6F7574707574");
+ pub const PEDERSEN: Felt = Felt::from_hex_unchecked("0x706564657273656E");
+ pub const RANGE_CHECK: Felt = Felt::from_hex_unchecked("0x72616E67655F636865636B");
+ pub const ECDSA: Felt = Felt::from_hex_unchecked("0x6563647361");
+ pub const BITWISE: Felt = Felt::from_hex_unchecked("0x62697477697365");
+ pub const EC_OP: Felt = Felt::from_hex_unchecked("0x65635F6F70");
+ pub const KECCAK: Felt = Felt::from_hex_unchecked("0x6B656363616B");
+ pub const POSEIDON: Felt = Felt::from_hex_unchecked("0x706F736569646F6E");
+ pub const RANGE_CHECK96: Felt = Felt::from_hex_unchecked("0x72616E67655F636865636B3936");
+ pub const ADD_MOD: Felt = Felt::from_hex_unchecked("0x6164645F6D6F64");
+ pub const MUL_MOD: Felt = Felt::from_hex_unchecked("0x6D756C5F6D6F64");
+}
+
+// Pedersen builtin
+pub const SHIFT_POINT_X: Felt =
+ Felt::from_hex_unchecked("0x49ee3eba8c1600700ee1b87eb599f16716b0b1022947733551fde4050ca6804");
+pub const SHIFT_POINT_Y: Felt =
+ Felt::from_hex_unchecked("0x3ca0cfe4b3bc6ddf346d49d06ea0ed34e621062c0e056c1d0405d266e10268a");
+
+pub const BUILTINS: [Felt; 11] = [
+ builtins::OUTPUT,
+ builtins::PEDERSEN,
+ builtins::RANGE_CHECK,
+ builtins::ECDSA,
+ builtins::BITWISE,
+ builtins::EC_OP,
+ builtins::KECCAK,
+ builtins::POSEIDON,
+ builtins::RANGE_CHECK96,
+ builtins::ADD_MOD,
+ builtins::MUL_MOD,
+];
+
+pub struct Layout {}
+
+impl GenericLayoutTrait for Layout {
+ fn get_num_columns_first(public_input: &PublicInput) -> Option {
+ public_input.dynamic_params.as_ref().map(|d| d.num_columns_first)
+ }
+ fn get_num_columns_second(public_input: &PublicInput) -> Option {
+ public_input.dynamic_params.as_ref().map(|d| d.num_columns_second)
+ }
+}
+
+impl LayoutTrait for Layout {
+ const CONSTRAINT_DEGREE: usize = 2;
+ const MASK_SIZE: usize = 941;
+ const N_CONSTRAINTS: usize = 419;
+ type InteractionElements = InteractionElements;
+
+ fn eval_composition_polynomial(
+ interaction_elements: &Self::InteractionElements,
+ public_input: &PublicInput,
+ mask_values: &[Felt],
+ constraint_coefficients: &[Felt],
+ point: &Felt,
+ trace_domain_size: &Felt,
+ trace_generator: &Felt,
+ ) -> Result {
+ let dynamic_params = public_input
+ .dynamic_params
+ .to_owned()
+ .ok_or(CompositionPolyEvalError::DynamicParamsMissing)?;
+ let memory_z = interaction_elements.memory_multi_column_perm_perm_interaction_elm;
+ let memory_alpha = interaction_elements.memory_multi_column_perm_hash_interaction_elm0;
+
+ // Public memory
+ let public_memory_column_size = trace_domain_size.field_div(&NonZeroFelt::try_from(
+ Felt::from(dynamic_params.memory_units_row_ratio) * Felt::from(PUBLIC_MEMORY_FRACTION),
+ )?);
+ ensure!(
+ public_memory_column_size < u128::MAX.into(),
+ CompositionPolyEvalError::ValueOutOfRange
+ );
+ let public_memory_prod_ratio = public_input.get_public_memory_product_ratio(
+ memory_z,
+ memory_alpha,
+ public_memory_column_size,
+ );
+
+ // Diluted
+ let diluted_z = interaction_elements.diluted_check_interaction_z;
+ let diluted_alpha = interaction_elements.diluted_check_interaction_alpha;
+ let diluted_prod = get_diluted_product(
+ DILUTED_N_BITS.into(),
+ DILUTED_SPACING.into(),
+ diluted_z,
+ diluted_alpha,
+ );
+
+ // Periodic columns
+ let (pedersen_points_x, pedersen_points_y) = if dynamic_params.uses_pedersen_builtin == 0 {
+ (FELT_0, FELT_0)
+ } else {
+ let n_pedersen_hash_copies = trace_domain_size.field_div(&NonZeroFelt::try_from(
+ Felt::from(dynamic_params.pedersen_builtin_row_ratio)
+ * Felt::from(PEDERSEN_BUILTIN_REPETITIONS),
+ )?);
+ ensure!(
+ n_pedersen_hash_copies < u128::MAX.into(),
+ CompositionPolyEvalError::ValueOutOfRange
+ );
+ let pedersen_point = point.pow_felt(&n_pedersen_hash_copies);
+ (eval_pedersen_x(pedersen_point), eval_pedersen_y(pedersen_point))
+ };
+
+ let (ecdsa_generator_points_x, ecdsa_generator_points_y) =
+ if dynamic_params.uses_ecdsa_builtin == 0 {
+ (FELT_0, FELT_0)
+ } else {
+ let n_ecdsa_signature_copies = trace_domain_size.field_div(&NonZeroFelt::try_from(
+ Felt::from(dynamic_params.ecdsa_builtin_row_ratio)
+ * Felt::from(ECDSA_BUILTIN_REPETITIONS),
+ )?);
+ ensure!(
+ n_ecdsa_signature_copies < u128::MAX.into(),
+ CompositionPolyEvalError::ValueOutOfRange
+ );
+ let ecdsa_point = point.pow_felt(&n_ecdsa_signature_copies);
+ (eval_ecdsa_x(ecdsa_point), eval_ecdsa_y(ecdsa_point))
+ };
+
+ let (
+ keccak_keccak_keccak_round_key0,
+ keccak_keccak_keccak_round_key1,
+ keccak_keccak_keccak_round_key3,
+ keccak_keccak_keccak_round_key7,
+ keccak_keccak_keccak_round_key15,
+ keccak_keccak_keccak_round_key31,
+ keccak_keccak_keccak_round_key63,
+ ) = if dynamic_params.uses_keccak_builtin == 0 {
+ (FELT_0, FELT_0, FELT_0, FELT_0, FELT_0, FELT_0, FELT_0)
+ } else {
+ let n_keccak_component_copies = trace_domain_size.field_div(&NonZeroFelt::try_from(
+ Felt::from(dynamic_params.keccak_row_ratio)
+ * Felt::from(KECCAK_PERMUTATIONS_PER_INSTANCE),
+ )?);
+ ensure!(
+ n_keccak_component_copies < u128::MAX.into(),
+ CompositionPolyEvalError::ValueOutOfRange
+ );
+ let n_keccak_periodic_columns_copies = Felt::from(2048) * n_keccak_component_copies;
+ let keccak_point = point.pow_felt(&n_keccak_periodic_columns_copies);
+ (
+ eval_keccak_round_key0(keccak_point),
+ eval_keccak_round_key1(keccak_point),
+ eval_keccak_round_key3(keccak_point),
+ eval_keccak_round_key7(keccak_point),
+ eval_keccak_round_key15(keccak_point),
+ eval_keccak_round_key31(keccak_point),
+ eval_keccak_round_key63(keccak_point),
+ )
+ };
+
+ let (
+ poseidon_poseidon_full_round_key0,
+ poseidon_poseidon_full_round_key1,
+ poseidon_poseidon_full_round_key2,
+ poseidon_poseidon_partial_round_key0,
+ poseidon_poseidon_partial_round_key1,
+ ) = if dynamic_params.uses_poseidon_builtin == 0 {
+ (FELT_0, FELT_0, FELT_0, FELT_0, FELT_0)
+ } else {
+ let n_poseidon_copies = trace_domain_size
+ .field_div(&NonZeroFelt::try_from(Felt::from(dynamic_params.poseidon_row_ratio))?);
+ ensure!(
+ n_poseidon_copies < u128::MAX.into(),
+ CompositionPolyEvalError::ValueOutOfRange
+ );
+ let poseidon_point = point.pow_felt(&n_poseidon_copies);
+ (
+ eval_poseidon_poseidon_full_round_key0(poseidon_point),
+ eval_poseidon_poseidon_full_round_key1(poseidon_point),
+ eval_poseidon_poseidon_full_round_key2(poseidon_point),
+ eval_poseidon_poseidon_partial_round_key0(poseidon_point),
+ eval_poseidon_poseidon_partial_round_key1(poseidon_point),
+ )
+ };
+
+ let global_values = GlobalValues {
+ trace_length: *trace_domain_size,
+ initial_pc: public_input
+ .segments
+ .get(segments::PROGRAM)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::PROGRAM })?
+ .begin_addr,
+ final_pc: public_input
+ .segments
+ .get(segments::PROGRAM)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::PROGRAM })?
+ .stop_ptr,
+ initial_ap: public_input
+ .segments
+ .get(segments::EXECUTION)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::EXECUTION })?
+ .begin_addr,
+ final_ap: public_input
+ .segments
+ .get(segments::EXECUTION)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::EXECUTION })?
+ .stop_ptr,
+ initial_pedersen_addr: public_input
+ .segments
+ .get(segments::PEDERSEN)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::PEDERSEN })?
+ .begin_addr,
+ initial_range_check_addr: public_input
+ .segments
+ .get(segments::RANGE_CHECK)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::RANGE_CHECK })?
+ .begin_addr,
+ initial_ecdsa_addr: public_input
+ .segments
+ .get(segments::ECDSA)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::ECDSA })?
+ .begin_addr,
+ initial_bitwise_addr: public_input
+ .segments
+ .get(segments::BITWISE)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::BITWISE })?
+ .begin_addr,
+ initial_ec_op_addr: public_input
+ .segments
+ .get(segments::EC_OP)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::EC_OP })?
+ .begin_addr,
+ initial_keccak_addr: public_input
+ .segments
+ .get(segments::KECCAK)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::KECCAK })?
+ .begin_addr,
+ initial_poseidon_addr: public_input
+ .segments
+ .get(segments::POSEIDON)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::POSEIDON })?
+ .begin_addr,
+ initial_range_check96_addr: public_input
+ .segments
+ .get(segments::RANGE_CHECK96)
+ .ok_or(CompositionPolyEvalError::SegmentMissing {
+ segment: segments::RANGE_CHECK96,
+ })?
+ .begin_addr,
+ add_mod_initial_mod_addr: public_input
+ .segments
+ .get(segments::ADD_MOD)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::ADD_MOD })?
+ .begin_addr,
+ mul_mod_initial_mod_addr: public_input
+ .segments
+ .get(segments::MUL_MOD)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::MUL_MOD })?
+ .begin_addr,
+ range_check_min: public_input.range_check_min,
+ range_check_max: public_input.range_check_max,
+ offset_size: FELT_65536,
+ half_offset_size: FELT_32768,
+ pedersen_shift_point: EcPoint { x: SHIFT_POINT_X, y: SHIFT_POINT_Y },
+ ecdsa_sig_config: EcdsaSigConfig {
+ alpha: stark_curve::ALPHA,
+ beta: stark_curve::BETA,
+ shift_point: EcPoint { x: SHIFT_POINT_X, y: SHIFT_POINT_Y },
+ },
+ ec_op_curve_config: CurveConfig { alpha: stark_curve::ALPHA, beta: stark_curve::BETA },
+ pedersen_points_x,
+ pedersen_points_y,
+ ecdsa_generator_points_x,
+ ecdsa_generator_points_y,
+ keccak_keccak_keccak_round_key0,
+ keccak_keccak_keccak_round_key1,
+ keccak_keccak_keccak_round_key3,
+ keccak_keccak_keccak_round_key7,
+ keccak_keccak_keccak_round_key15,
+ keccak_keccak_keccak_round_key31,
+ keccak_keccak_keccak_round_key63,
+ poseidon_poseidon_full_round_key0,
+ poseidon_poseidon_full_round_key1,
+ poseidon_poseidon_full_round_key2,
+ poseidon_poseidon_partial_round_key0,
+ poseidon_poseidon_partial_round_key1,
+ memory_multi_column_perm_perm_interaction_elm: memory_z,
+ memory_multi_column_perm_hash_interaction_elm0: memory_alpha,
+ range_check16_perm_interaction_elm: interaction_elements
+ .range_check16_perm_interaction_elm,
+ diluted_check_permutation_interaction_elm: interaction_elements
+ .diluted_check_permutation_interaction_elm,
+ diluted_check_interaction_z: diluted_z,
+ diluted_check_interaction_alpha: diluted_alpha,
+ add_mod_interaction_elm: interaction_elements.add_mod_interaction_elm,
+ mul_mod_interaction_elm: interaction_elements.mul_mod_interaction_elm,
+ memory_multi_column_perm_perm_public_memory_prod: public_memory_prod_ratio,
+ range_check16_perm_public_memory_prod: FELT_1,
+ diluted_check_first_elm: FELT_0,
+ diluted_check_permutation_public_memory_prod: FELT_1,
+ diluted_check_final_cum_val: diluted_prod,
+ };
+
+ autogenerated::eval_composition_polynomial_inner(
+ mask_values,
+ constraint_coefficients,
+ point,
+ trace_generator,
+ &global_values,
+ &dynamic_params,
+ )
+ }
+ fn eval_oods_polynomial(
+ public_input: &PublicInput,
+ column_values: &[Felt],
+ oods_values: &[Felt],
+ constraint_coefficients: &[Felt],
+ point: &Felt,
+ oods_point: &Felt,
+ trace_generator: &Felt,
+ ) -> Result {
+ let dynamic_params = public_input
+ .dynamic_params
+ .to_owned()
+ .ok_or(OodsPolyEvalError::DynamicParamsMissing)?;
+ autogenerated::eval_oods_polynomial_inner::(
+ column_values,
+ oods_values,
+ constraint_coefficients,
+ point,
+ oods_point,
+ trace_generator,
+ &dynamic_params,
+ )
+ }
+ fn traces_commit(
+ transcript: &mut swiftness_transcript::transcript::Transcript,
+ unsent_commitment: &crate::trace::UnsentCommitment,
+ config: crate::trace::config::Config,
+ ) -> crate::trace::Commitment {
+ // Read original commitment.
+ let original_commitment =
+ table_commit(transcript, unsent_commitment.original, config.original);
+
+ // Generate interaction elements for the first interaction.
+ let interaction_elements = Self::InteractionElements::new(transcript);
+
+ // Read interaction commitment.
+ let interaction_commitment =
+ table_commit(transcript, unsent_commitment.interaction, config.interaction);
+
+ crate::trace::Commitment {
+ original: original_commitment,
+ interaction_elements,
+ interaction: interaction_commitment,
+ }
+ }
+ fn traces_decommit(
+ queries: &[Felt],
+ commitment: crate::trace::Commitment,
+ decommitment: crate::trace::Decommitment,
+ witness: crate::trace::Witness,
+ ) -> Result<(), crate::trace::decommit::Error> {
+ Ok(table_decommit(commitment.original, queries, decommitment.original, witness.original)
+ .and(table_decommit(
+ commitment.interaction,
+ queries,
+ decommitment.interaction,
+ witness.interaction,
+ ))?)
+ }
+ fn validate_public_input(
+ public_input: &PublicInput,
+ stark_domains: &crate::domains::StarkDomains,
+ ) -> Result<(), PublicInputError> {
+ let dynamic_params =
+ public_input.dynamic_params.to_owned().ok_or(PublicInputError::DynamicParamsMissing)?;
+ ensure!(public_input.log_n_steps < MAX_LOG_N_STEPS, PublicInputError::MaxSteps);
+
+ let n_steps = Felt::TWO.pow_felt(&public_input.log_n_steps);
+ let trace_length = stark_domains.trace_domain_size;
+ ensure!(
+ n_steps
+ * Felt::from(CPU_COMPONENT_HEIGHT)
+ * Felt::from(dynamic_params.cpu_component_step)
+ == trace_length,
+ PublicInputError::TraceLengthInvalid
+ );
+
+ ensure!(
+ public_input.segments.len() == segments::N_SEGMENTS,
+ PublicInputError::InvalidSegments
+ );
+
+ ensure!(FELT_0 <= public_input.range_check_min, PublicInputError::RangeCheckInvalid);
+ ensure!(
+ public_input.range_check_min < public_input.range_check_max,
+ PublicInputError::RangeCheckInvalid
+ );
+ ensure!(
+ public_input.range_check_max <= MAX_RANGE_CHECK,
+ PublicInputError::RangeCheckInvalid
+ );
+
+ ensure!(public_input.layout == LAYOUT_CODE, PublicInputError::LayoutCodeInvalid);
+
+ let output_uses = public_input
+ .segments
+ .get(segments::OUTPUT)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
+ .stop_ptr
+ - public_input
+ .segments
+ .get(segments::OUTPUT)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
+ .begin_addr;
+ ensure!(output_uses <= u128::MAX.into(), PublicInputError::UsesInvalid);
+
+ let pedersen_copies = if dynamic_params.uses_pedersen_builtin == 0 {
+ FELT_0
+ } else {
+ trace_length.field_div(&NonZeroFelt::try_from(Felt::from(
+ dynamic_params.pedersen_builtin_row_ratio,
+ ))?)
+ };
+ let pedersen_uses = (public_input
+ .segments
+ .get(segments::PEDERSEN)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::PEDERSEN })?
+ .stop_ptr
+ - public_input
+ .segments
+ .get(segments::PEDERSEN)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::PEDERSEN })?
+ .begin_addr)
+ .field_div(&NonZeroFelt::from_felt_unchecked(FELT_3));
+ ensure!(pedersen_uses <= pedersen_copies, PublicInputError::UsesInvalid);
+
+ let range_check_copies = if dynamic_params.uses_range_check_builtin == 0 {
+ FELT_0
+ } else {
+ trace_length.field_div(&NonZeroFelt::try_from(Felt::from(
+ dynamic_params.range_check_builtin_row_ratio,
+ ))?)
+ };
+ let range_check_uses = public_input
+ .segments
+ .get(segments::RANGE_CHECK)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::RANGE_CHECK })?
+ .stop_ptr
+ - public_input
+ .segments
+ .get(segments::RANGE_CHECK)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::RANGE_CHECK })?
+ .begin_addr;
+ ensure!(range_check_uses <= range_check_copies, PublicInputError::UsesInvalid);
+
+ let ecdsa_copies = if dynamic_params.uses_ecdsa_builtin == 0 {
+ FELT_0
+ } else {
+ trace_length.field_div(&NonZeroFelt::try_from(Felt::from(
+ dynamic_params.ecdsa_builtin_row_ratio,
+ ))?)
+ };
+ let ecdsa_uses = (public_input
+ .segments
+ .get(segments::ECDSA)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::ECDSA })?
+ .stop_ptr
+ - public_input
+ .segments
+ .get(segments::ECDSA)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::ECDSA })?
+ .begin_addr)
+ .field_div(&NonZeroFelt::from_felt_unchecked(FELT_2));
+ ensure!(ecdsa_uses <= ecdsa_copies, PublicInputError::UsesInvalid);
+
+ let bitwise_copies = if dynamic_params.uses_bitwise_builtin == 0 {
+ FELT_0
+ } else {
+ trace_length
+ .field_div(&NonZeroFelt::try_from(Felt::from(dynamic_params.bitwise_row_ratio))?)
+ };
+ let bitwise_uses = (public_input
+ .segments
+ .get(segments::BITWISE)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::BITWISE })?
+ .stop_ptr
+ - public_input
+ .segments
+ .get(segments::BITWISE)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::BITWISE })?
+ .begin_addr)
+ .field_div(&NonZeroFelt::from_felt_unchecked(FELT_5));
+ ensure!(bitwise_uses <= bitwise_copies, PublicInputError::UsesInvalid);
+
+ let ec_op_copies = if dynamic_params.uses_ec_op_builtin == 0 {
+ FELT_0
+ } else {
+ trace_length.field_div(&NonZeroFelt::try_from(Felt::from(
+ dynamic_params.ec_op_builtin_row_ratio,
+ ))?)
+ };
+ let ec_op_uses = (public_input
+ .segments
+ .get(segments::EC_OP)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::EC_OP })?
+ .stop_ptr
+ - public_input
+ .segments
+ .get(segments::EC_OP)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::EC_OP })?
+ .begin_addr)
+ .field_div(&NonZeroFelt::from_felt_unchecked(FELT_7));
+ ensure!(ec_op_uses <= ec_op_copies, PublicInputError::UsesInvalid);
+
+ let keccak_copies = if dynamic_params.uses_keccak_builtin == 0 {
+ FELT_0
+ } else {
+ trace_length
+ .field_div(&NonZeroFelt::try_from(Felt::from(dynamic_params.keccak_row_ratio))?)
+ };
+ let keccak_uses = (public_input
+ .segments
+ .get(segments::KECCAK)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::KECCAK })?
+ .stop_ptr
+ - public_input
+ .segments
+ .get(segments::KECCAK)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::KECCAK })?
+ .begin_addr)
+ .field_div(&NonZeroFelt::from_felt_unchecked(FELT_16));
+ ensure!(keccak_uses <= keccak_copies, PublicInputError::UsesInvalid);
+
+ let poseidon_copies = if dynamic_params.uses_poseidon_builtin == 0 {
+ FELT_0
+ } else {
+ trace_length
+ .field_div(&NonZeroFelt::try_from(Felt::from(dynamic_params.poseidon_row_ratio))?)
+ };
+ let poseidon_uses = (public_input
+ .segments
+ .get(segments::POSEIDON)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::POSEIDON })?
+ .stop_ptr
+ - public_input
+ .segments
+ .get(segments::POSEIDON)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::POSEIDON })?
+ .begin_addr)
+ .field_div(&NonZeroFelt::from_felt_unchecked(FELT_6));
+ ensure!(poseidon_uses <= poseidon_copies, PublicInputError::UsesInvalid);
+
+ let range_check96_copies = if dynamic_params.uses_range_check96_builtin == 0 {
+ FELT_0
+ } else {
+ trace_length.field_div(&NonZeroFelt::try_from(Felt::from(
+ dynamic_params.range_check96_builtin_row_ratio,
+ ))?)
+ };
+ let range_check96_uses = public_input
+ .segments
+ .get(segments::RANGE_CHECK96)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::RANGE_CHECK96 })?
+ .stop_ptr
+ - public_input
+ .segments
+ .get(segments::RANGE_CHECK96)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::RANGE_CHECK96 })?
+ .begin_addr;
+ ensure!(range_check96_uses <= range_check96_copies, PublicInputError::UsesInvalid);
+
+ let add_mod_copies = if dynamic_params.uses_add_mod_builtin == 0 {
+ FELT_0
+ } else {
+ trace_length
+ .field_div(&NonZeroFelt::try_from(Felt::from(dynamic_params.add_mod_row_ratio))?)
+ };
+ let add_mod_uses = (public_input
+ .segments
+ .get(segments::ADD_MOD)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::ADD_MOD })?
+ .stop_ptr
+ - public_input
+ .segments
+ .get(segments::ADD_MOD)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::ADD_MOD })?
+ .begin_addr)
+ .field_div(&NonZeroFelt::from_felt_unchecked(FELT_7));
+ ensure!(add_mod_uses <= add_mod_copies, PublicInputError::UsesInvalid);
+
+ let mul_mod_copies = if dynamic_params.uses_mul_mod_builtin == 0 {
+ FELT_0
+ } else {
+ trace_length
+ .field_div(&NonZeroFelt::try_from(Felt::from(dynamic_params.mul_mod_row_ratio))?)
+ };
+ let mul_mod_uses = (public_input
+ .segments
+ .get(segments::MUL_MOD)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::MUL_MOD })?
+ .stop_ptr
+ - public_input
+ .segments
+ .get(segments::MUL_MOD)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::MUL_MOD })?
+ .begin_addr)
+ .field_div(&NonZeroFelt::from_felt_unchecked(FELT_7));
+ ensure!(mul_mod_uses <= mul_mod_copies, PublicInputError::UsesInvalid);
+
+ let memory_units = trace_length
+ .field_div(&NonZeroFelt::try_from(Felt::from(dynamic_params.memory_units_row_ratio))?);
+ ensure!(
+ FELT_4 * n_steps
+ + safe_div(memory_units, PUBLIC_MEMORY_FRACTION.into())?
+ + FELT_3 * pedersen_copies
+ + FELT_1 * range_check_copies
+ + FELT_2 * ecdsa_copies
+ + FELT_5 * bitwise_copies
+ + FELT_7 * ec_op_copies
+ + FELT_16 * keccak_copies
+ + FELT_6 * poseidon_copies
+ + FELT_1 * range_check96_copies
+ + FELT_7 * add_mod_copies
+ + FELT_7 * mul_mod_copies
+ <= memory_units,
+ PublicInputError::CopiesInvalid
+ );
+
+ let rc_units = trace_length.field_div(&NonZeroFelt::try_from(Felt::from(
+ dynamic_params.range_check_units_row_ratio,
+ ))?);
+ ensure!(
+ FELT_3 * n_steps
+ + FELT_8 * range_check_copies
+ + FELT_6 * range_check96_copies
+ + FELT_66 * mul_mod_copies
+ <= rc_units,
+ PublicInputError::CopiesInvalid
+ );
+
+ let diluted_units = trace_length
+ .field_div(&NonZeroFelt::try_from(Felt::from(dynamic_params.diluted_units_row_ratio))?);
+ ensure!(
+ FELT_68 * bitwise_copies + FELT_16384 * keccak_copies <= diluted_units,
+ PublicInputError::CopiesInvalid
+ );
+
+ Ok(autogenerated::check_asserts(&dynamic_params, stark_domains)?)
+ }
+
+ fn verify_public_input(public_input: &PublicInput) -> Result<(Felt, Felt), PublicInputError> {
+ let public_segments = &public_input.segments;
+
+ let initial_pc = public_segments
+ .get(segments::PROGRAM)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::PROGRAM })?
+ .begin_addr;
+ let final_pc = public_segments
+ .get(segments::PROGRAM)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::PROGRAM })?
+ .stop_ptr;
+ let initial_ap = public_segments
+ .get(segments::EXECUTION)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::EXECUTION })?
+ .begin_addr;
+ let initial_fp = initial_ap;
+ let final_ap = public_segments
+ .get(segments::EXECUTION)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::EXECUTION })?
+ .stop_ptr;
+ let output_start = public_segments
+ .get(segments::OUTPUT)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
+ .begin_addr;
+ let output_stop = public_segments
+ .get(segments::OUTPUT)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
+ .stop_ptr;
+
+ ensure!(initial_ap < MAX_ADDRESS, PublicInputError::MaxSteps);
+ ensure!(final_ap < MAX_ADDRESS, PublicInputError::MaxSteps);
+
+ // TODO support more pages?
+ ensure!(public_input.continuous_page_headers.is_empty(), PublicInputError::MaxSteps);
+
+ let memory = &public_input
+ .main_page
+ .iter()
+ .flat_map(|v| vec![v.address, v.value])
+ .collect::>();
+
+ ensure!(initial_pc == INITIAL_PC, PublicInputError::MaxSteps);
+ ensure!(final_pc == INITIAL_PC + FELT_4, PublicInputError::MaxSteps);
+
+ let program_end_pc = initial_fp - FELT_2;
+
+ let program: Vec<&Felt> = memory
+ .iter()
+ .skip(initial_pc.to_bigint().try_into()?)
+ .step_by(2)
+ .take((program_end_pc - FELT_1).to_bigint().try_into()?)
+ .collect();
+
+ let hash = program.iter().fold(FELT_0, |acc, &e| pedersen_hash(&acc, e));
+ let program_hash = pedersen_hash(&hash, &Felt::from(program.len()));
+
+ let output_len: usize = (output_stop - output_start).to_bigint().try_into()?;
+ let output = &memory[memory.len() - output_len * 2..];
+ let hash = output.iter().skip(1).step_by(2).fold(FELT_0, |acc, e| pedersen_hash(&acc, e));
+ let output_hash = pedersen_hash(&hash, &Felt::from(output_len));
+
+ Ok((program_hash, output_hash))
+ }
+}
diff --git a/crates/air/src/layout/mod.rs b/crates/air/src/layout/mod.rs
index 1a5a04c..3fb8aaf 100644
--- a/crates/air/src/layout/mod.rs
+++ b/crates/air/src/layout/mod.rs
@@ -1,8 +1,12 @@
use crate::{domains::StarkDomains, public_memory::PublicInput};
+use num_bigint::{BigInt, TryFromBigIntError};
+use starknet_core::types::NonZeroFelt;
use starknet_crypto::Felt;
+use starknet_types_core::felt::FeltIsZeroError;
use swiftness_transcript::transcript::Transcript;
pub mod dex;
+pub mod dynamic;
pub mod recursive;
pub mod recursive_with_poseidon;
pub mod small;
@@ -13,7 +17,7 @@ pub mod starknet_with_keccak;
pub mod stark_curve {
use starknet_crypto::Felt;
- pub const ALPHA: Felt = Felt::from_hex_unchecked("1");
+ pub const ALPHA: Felt = Felt::from_hex_unchecked("0x1");
pub const BETA: Felt = Felt::from_hex_unchecked(
"0x6f21413efbe40de150e596d72f7a8c5609ad26c15c915c1f4cdfcb99cee9e89",
);
@@ -32,8 +36,6 @@ pub trait LayoutTrait {
type InteractionElements;
const CONSTRAINT_DEGREE: usize;
- const NUM_COLUMNS_FIRST: usize;
- const NUM_COLUMNS_SECOND: usize;
const N_CONSTRAINTS: usize;
const MASK_SIZE: usize;
@@ -48,13 +50,14 @@ pub trait LayoutTrait {
) -> Result;
fn eval_oods_polynomial(
+ public_input: &PublicInput,
column_values: &[Felt],
oods_values: &[Felt],
constraint_coefficients: &[Felt],
point: &Felt,
oods_point: &Felt,
trace_generator: &Felt,
- ) -> Felt;
+ ) -> Result;
fn validate_public_input(
public_input: &PublicInput,
@@ -77,6 +80,29 @@ pub trait LayoutTrait {
fn verify_public_input(public_input: &PublicInput) -> Result<(Felt, Felt), PublicInputError>;
}
+pub trait StaticLayoutTrait {
+ const NUM_COLUMNS_FIRST: usize;
+ const NUM_COLUMNS_SECOND: usize;
+}
+
+pub trait GenericLayoutTrait {
+ fn get_num_columns_first(public_input: &PublicInput) -> Option;
+ fn get_num_columns_second(public_input: &PublicInput) -> Option;
+}
+
+pub fn safe_div(value: Felt, divisor: Felt) -> Result {
+ Ok(value.floor_div(&NonZeroFelt::try_from(divisor)?))
+}
+
+pub fn safe_mult(value: Felt, multiplier: Felt) -> Result {
+ let mul = value.to_bigint() * multiplier.to_bigint();
+ let felt_mul = value * multiplier;
+ match felt_mul.to_bigint().cmp(&mul) {
+ core::cmp::Ordering::Equal => Ok(felt_mul),
+ _ => Err(SafeMultError::Overflow { actual: felt_mul.to_bigint(), expected: mul }),
+ }
+}
+
#[cfg(feature = "std")]
use thiserror::Error;
@@ -85,6 +111,25 @@ use thiserror::Error;
pub enum CompositionPolyEvalError {
#[error("segment not present {segment}")]
SegmentMissing { segment: usize },
+
+ #[error("value out of range")]
+ ValueOutOfRange,
+
+ #[error("dynamic params missing")]
+ DynamicParamsMissing,
+
+ #[error("field element is zero")]
+ FeltIsZero(#[from] FeltIsZeroError),
+}
+
+#[cfg(feature = "std")]
+#[derive(Error, Debug)]
+pub enum OodsPolyEvalError {
+ #[error("dynamic params missing")]
+ DynamicParamsMissing,
+
+ #[error("field element is zero")]
+ FeltIsZero(#[from] FeltIsZeroError),
}
#[cfg(feature = "std")]
@@ -107,6 +152,53 @@ pub enum PublicInputError {
#[error("invalid number of builtin uses")]
UsesInvalid,
+
+ #[error("invalid number of builtin copies")]
+ CopiesInvalid,
+
+ #[error("invalid number of segments")]
+ InvalidSegments,
+
+ #[error("dynamic params missing")]
+ DynamicParamsMissing,
+
+ #[error("BigInt conversion Error")]
+ TryFromBigInt(#[from] TryFromBigIntError),
+
+ #[error("field element is zero")]
+ FeltIsZero(#[from] FeltIsZeroError),
+
+ #[error("dynamic params check failed")]
+ CheckAsserts(#[from] CheckAssertsError),
+}
+
+#[cfg(feature = "std")]
+#[derive(Error, Debug)]
+pub enum CheckAssertsError {
+ #[error("value is not power of two")]
+ NotPowerOfTwo,
+
+ #[error("value out of range")]
+ OutOfRange,
+
+ #[error("value not boolean")]
+ NotBoolean,
+
+ #[error("field element is zero")]
+ FeltIsZero(#[from] FeltIsZeroError),
+
+ #[error("field multiplication fail")]
+ SafeMult(#[from] SafeMultError),
+
+ #[error("segment not present {segment}")]
+ SegmentMissing { segment: usize },
+}
+
+#[cfg(feature = "std")]
+#[derive(Error, Debug)]
+pub enum SafeMultError {
+ #[error("value multiplication overflowed actual {actual}, expected {expected}")]
+ Overflow { actual: BigInt, expected: BigInt },
}
#[cfg(not(feature = "std"))]
@@ -117,6 +209,25 @@ use thiserror_no_std::Error;
pub enum CompositionPolyEvalError {
#[error("segment not present {segment}")]
SegmentMissing { segment: usize },
+
+ #[error("value out of range")]
+ ValueOutOfRange,
+
+ #[error("dynamic params missing")]
+ DynamicParamsMissing,
+
+ #[error("field element is zero")]
+ FeltIsZero(#[from] FeltIsZeroError),
+}
+
+#[cfg(not(feature = "std"))]
+#[derive(Error, Debug)]
+pub enum OodsPolyEvalError {
+ #[error("dynamic params missing")]
+ DynamicParamsMissing,
+
+ #[error("field element is zero")]
+ FeltIsZero(#[from] FeltIsZeroError),
}
#[cfg(not(feature = "std"))]
@@ -139,10 +250,51 @@ pub enum PublicInputError {
#[error("invalid number of builtin uses")]
UsesInvalid,
+
+ #[error("invalid number of builtin copies")]
+ CopiesInvalid,
+
+ #[error("invalid number of segments")]
+ InvalidSegments,
+
+ #[error("dynamic params missing")]
+ DynamicParamsMissing,
+
+ #[error("BigInt conversion Error")]
+ TryFromBigInt(#[from] TryFromBigIntError),
+
+ #[error("field element is zero")]
+ FeltIsZero(#[from] FeltIsZeroError),
+
+ #[error("dynamic params check failed")]
+ CheckAsserts(#[from] CheckAssertsError),
}
-pub mod segments {
- pub const EXECUTION: usize = 1;
- pub const OUTPUT: usize = 2;
- pub const PROGRAM: usize = 0;
+#[cfg(not(feature = "std"))]
+#[derive(Error, Debug)]
+pub enum CheckAssertsError {
+ #[error("value is not power of two")]
+ NotPowerOfTwo,
+
+ #[error("value out of range")]
+ OutOfRange,
+
+ #[error("value not boolean")]
+ NotBoolean,
+
+ #[error("field element is zero")]
+ FeltIsZero(#[from] FeltIsZeroError),
+
+ #[error("field multiplication fail")]
+ SafeMult(#[from] SafeMultError),
+
+ #[error("segment not present {segment}")]
+ SegmentMissing { segment: usize },
+}
+
+#[cfg(not(feature = "std"))]
+#[derive(Error, Debug)]
+pub enum SafeMultError {
+ #[error("value multiplication overflowed actual {actual}, expected {expected}")]
+ Overflow { actual: BigInt, expected: BigInt },
}
diff --git a/crates/air/src/layout/recursive/autogenerated.rs b/crates/air/src/layout/recursive/autogenerated.rs
index 30632e0..3b453c9 100644
--- a/crates/air/src/layout/recursive/autogenerated.rs
+++ b/crates/air/src/layout/recursive/autogenerated.rs
@@ -1,5 +1,5 @@
use super::global_values::GlobalValues;
-use crate::layout::LayoutTrait;
+use crate::layout::{LayoutTrait, StaticLayoutTrait};
use starknet_core::types::NonZeroFelt;
use starknet_crypto::Felt;
@@ -862,7 +862,7 @@ pub fn eval_composition_polynomial_inner(
total_sum
}
-pub fn eval_oods_polynomial_inner(
+pub fn eval_oods_polynomial_inner(
column_values: &[Felt],
oods_values: &[Felt],
constraint_coefficients: &[Felt],
diff --git a/crates/air/src/layout/recursive/mod.rs b/crates/air/src/layout/recursive/mod.rs
index 1647143..52eaadb 100644
--- a/crates/air/src/layout/recursive/mod.rs
+++ b/crates/air/src/layout/recursive/mod.rs
@@ -2,6 +2,7 @@ pub mod autogenerated;
pub mod global_values;
use crate::{
+ consts::*,
diluted::get_diluted_product,
periodic_columns::{eval_pedersen_x, eval_pedersen_y},
public_memory::{PublicInput, INITIAL_PC, MAX_ADDRESS, MAX_LOG_N_STEPS, MAX_RANGE_CHECK},
@@ -14,7 +15,10 @@ use starknet_crypto::{pedersen_hash, Felt};
use swiftness_commitment::table::{commit::table_commit, decommit::table_decommit};
use swiftness_transcript::ensure;
-use super::{CompositionPolyEvalError, LayoutTrait, PublicInputError};
+use super::{
+ CompositionPolyEvalError, GenericLayoutTrait, LayoutTrait, OodsPolyEvalError, PublicInputError,
+ StaticLayoutTrait,
+};
pub const BITWISE_RATIO: usize = 8;
pub const BITWISE_ROW_RATIO: usize = 128;
@@ -47,8 +51,11 @@ pub const RANGE_CHECK_N_PARTS: usize = 8;
pub mod segments {
pub const BITWISE: usize = 5;
+ pub const EXECUTION: usize = 1;
pub const N_SEGMENTS: usize = 6;
+ pub const OUTPUT: usize = 2;
pub const PEDERSEN: usize = 3;
+ pub const PROGRAM: usize = 0;
pub const RANGE_CHECK: usize = 4;
}
@@ -72,12 +79,24 @@ pub const BUILTINS: [Felt; 4] =
pub struct Layout {}
+impl StaticLayoutTrait for Layout {
+ const NUM_COLUMNS_FIRST: usize = 7;
+ const NUM_COLUMNS_SECOND: usize = 3;
+}
+
+impl GenericLayoutTrait for Layout {
+ fn get_num_columns_first(_public_input: &PublicInput) -> Option {
+ Some(Self::NUM_COLUMNS_FIRST)
+ }
+ fn get_num_columns_second(_public_input: &PublicInput) -> Option {
+ Some(Self::NUM_COLUMNS_SECOND)
+ }
+}
+
impl LayoutTrait for Layout {
const CONSTRAINT_DEGREE: usize = 2;
const MASK_SIZE: usize = 133;
const N_CONSTRAINTS: usize = 93;
- const NUM_COLUMNS_FIRST: usize = 7;
- const NUM_COLUMNS_SECOND: usize = 3;
type InteractionElements = InteractionElements;
fn eval_composition_polynomial(
@@ -93,8 +112,8 @@ impl LayoutTrait for Layout {
let memory_alpha = interaction_elements.memory_multi_column_perm_hash_interaction_elm0;
// Public memory
- let public_memory_column_size = trace_domain_size
- .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(PUBLIC_MEMORY_STEP)));
+ let public_memory_column_size =
+ trace_domain_size.field_div(&NonZeroFelt::try_from(Felt::from(PUBLIC_MEMORY_STEP))?);
assert!(public_memory_column_size < u128::MAX.into());
let public_memory_prod_ratio = public_input.get_public_memory_product_ratio(
memory_z,
@@ -114,9 +133,9 @@ impl LayoutTrait for Layout {
// Periodic columns
let n_steps = Felt::TWO.pow_felt(&public_input.log_n_steps);
- let n_pedersen_hash_copies = n_steps.field_div(&NonZeroFelt::from_felt_unchecked(
- Felt::from(PEDERSEN_BUILTIN_RATIO * PEDERSEN_BUILTIN_REPETITIONS),
- ));
+ let n_pedersen_hash_copies = n_steps.field_div(&NonZeroFelt::try_from(
+ Felt::from(PEDERSEN_BUILTIN_RATIO) * Felt::from(PEDERSEN_BUILTIN_REPETITIONS),
+ )?);
assert!(n_pedersen_hash_copies < u128::MAX.into());
let pedersen_point = point.pow_felt(&n_pedersen_hash_copies);
let pedersen_points_x = eval_pedersen_x(pedersen_point);
@@ -126,31 +145,23 @@ impl LayoutTrait for Layout {
trace_length: *trace_domain_size,
initial_pc: public_input
.segments
- .get(crate::layout::segments::PROGRAM)
- .ok_or(CompositionPolyEvalError::SegmentMissing {
- segment: crate::layout::segments::PROGRAM,
- })?
+ .get(segments::PROGRAM)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::PROGRAM })?
.begin_addr,
final_pc: public_input
.segments
- .get(crate::layout::segments::PROGRAM)
- .ok_or(CompositionPolyEvalError::SegmentMissing {
- segment: crate::layout::segments::PROGRAM,
- })?
+ .get(segments::PROGRAM)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::PROGRAM })?
.stop_ptr,
initial_ap: public_input
.segments
- .get(crate::layout::segments::EXECUTION)
- .ok_or(CompositionPolyEvalError::SegmentMissing {
- segment: crate::layout::segments::EXECUTION,
- })?
+ .get(segments::EXECUTION)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::EXECUTION })?
.begin_addr,
final_ap: public_input
.segments
- .get(crate::layout::segments::EXECUTION)
- .ok_or(CompositionPolyEvalError::SegmentMissing {
- segment: crate::layout::segments::EXECUTION,
- })?
+ .get(segments::EXECUTION)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::EXECUTION })?
.stop_ptr,
initial_pedersen_addr: public_input
.segments
@@ -169,8 +180,8 @@ impl LayoutTrait for Layout {
.begin_addr,
range_check_min: public_input.range_check_min,
range_check_max: public_input.range_check_max,
- offset_size: Felt::from(0x10000), // 2**16
- half_offset_size: Felt::from(0x8000), // 2**15
+ offset_size: FELT_65536,
+ half_offset_size: FELT_32768,
pedersen_shift_point: EcPoint { x: SHIFT_POINT_X, y: SHIFT_POINT_Y },
pedersen_points_x,
pedersen_points_y,
@@ -183,9 +194,9 @@ impl LayoutTrait for Layout {
diluted_check_interaction_z: diluted_z,
diluted_check_interaction_alpha: diluted_alpha,
memory_multi_column_perm_perm_public_memory_prod: public_memory_prod_ratio,
- range_check16_perm_public_memory_prod: Felt::from(1),
- diluted_check_first_elm: Felt::from(0),
- diluted_check_permutation_public_memory_prod: Felt::from(1),
+ range_check16_perm_public_memory_prod: FELT_1,
+ diluted_check_first_elm: FELT_0,
+ diluted_check_permutation_public_memory_prod: FELT_1,
diluted_check_final_cum_val: diluted_prod,
};
@@ -198,21 +209,22 @@ impl LayoutTrait for Layout {
))
}
fn eval_oods_polynomial(
+ _public_input: &PublicInput,
column_values: &[Felt],
oods_values: &[Felt],
constraint_coefficients: &[Felt],
point: &Felt,
oods_point: &Felt,
trace_generator: &Felt,
- ) -> Felt {
- autogenerated::eval_oods_polynomial_inner::(
+ ) -> Result {
+ Ok(autogenerated::eval_oods_polynomial_inner::(
column_values,
oods_values,
constraint_coefficients,
point,
oods_point,
trace_generator,
- )
+ ))
}
fn traces_commit(
transcript: &mut swiftness_transcript::transcript::Transcript,
@@ -264,7 +276,12 @@ impl LayoutTrait for Layout {
PublicInputError::TraceLengthInvalid
);
- ensure!(Felt::ZERO <= public_input.range_check_min, PublicInputError::RangeCheckInvalid);
+ ensure!(
+ public_input.segments.len() == segments::N_SEGMENTS,
+ PublicInputError::InvalidSegments
+ );
+
+ ensure!(FELT_0 <= public_input.range_check_min, PublicInputError::RangeCheckInvalid);
ensure!(
public_input.range_check_min < public_input.range_check_max,
PublicInputError::RangeCheckInvalid
@@ -278,68 +295,59 @@ impl LayoutTrait for Layout {
let output_uses = public_input
.segments
- .get(crate::layout::segments::OUTPUT)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::OUTPUT })?
+ .get(segments::OUTPUT)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
.stop_ptr
- public_input
.segments
- .get(crate::layout::segments::OUTPUT)
- .ok_or(PublicInputError::SegmentMissing {
- segment: crate::layout::segments::OUTPUT,
- })?
+ .get(segments::OUTPUT)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
.begin_addr;
- ensure!(output_uses < u128::MAX.into(), PublicInputError::UsesInvalid);
+ ensure!(output_uses <= u128::MAX.into(), PublicInputError::UsesInvalid);
- let pedersen_copies = trace_length
- .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(PEDERSEN_BUILTIN_ROW_RATIO)));
+ let pedersen_copies =
+ trace_length.field_div(&NonZeroFelt::try_from(Felt::from(PEDERSEN_BUILTIN_ROW_RATIO))?);
let pedersen_uses = (public_input
.segments
.get(segments::PEDERSEN)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::OUTPUT })?
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::PEDERSEN })?
.stop_ptr
- public_input
.segments
.get(segments::PEDERSEN)
- .ok_or(PublicInputError::SegmentMissing {
- segment: crate::layout::segments::OUTPUT,
- })?
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::PEDERSEN })?
.begin_addr)
- .field_div(&NonZeroFelt::from_felt_unchecked(Felt::THREE));
- ensure!(pedersen_uses < pedersen_copies, PublicInputError::UsesInvalid);
+ .field_div(&NonZeroFelt::from_felt_unchecked(FELT_3));
+ ensure!(pedersen_uses <= pedersen_copies, PublicInputError::UsesInvalid);
- let range_check_copies = trace_length.field_div(&NonZeroFelt::from_felt_unchecked(
- Felt::from(RANGE_CHECK_BUILTIN_ROW_RATIO),
- ));
+ let range_check_copies = trace_length
+ .field_div(&NonZeroFelt::try_from(Felt::from(RANGE_CHECK_BUILTIN_ROW_RATIO))?);
let range_check_uses = public_input
.segments
.get(segments::RANGE_CHECK)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::OUTPUT })?
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::RANGE_CHECK })?
.stop_ptr
- public_input
.segments
.get(segments::RANGE_CHECK)
- .ok_or(PublicInputError::SegmentMissing {
- segment: crate::layout::segments::OUTPUT,
- })?
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::RANGE_CHECK })?
.begin_addr;
- ensure!(range_check_uses < range_check_copies, PublicInputError::UsesInvalid);
+ ensure!(range_check_uses <= range_check_copies, PublicInputError::UsesInvalid);
- let bitwise_copies = trace_length
- .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(BITWISE_ROW_RATIO)));
+ let bitwise_copies =
+ trace_length.field_div(&NonZeroFelt::try_from(Felt::from(BITWISE_ROW_RATIO))?);
let bitwise_uses = (public_input
.segments
.get(segments::BITWISE)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::OUTPUT })?
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::BITWISE })?
.stop_ptr
- public_input
.segments
.get(segments::BITWISE)
- .ok_or(PublicInputError::SegmentMissing {
- segment: crate::layout::segments::OUTPUT,
- })?
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::BITWISE })?
.begin_addr)
- .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(0x5)));
- ensure!(bitwise_uses < bitwise_copies, PublicInputError::UsesInvalid);
+ .field_div(&NonZeroFelt::from_felt_unchecked(FELT_5));
+ ensure!(bitwise_uses <= bitwise_copies, PublicInputError::UsesInvalid);
Ok(())
}
@@ -347,29 +355,29 @@ impl LayoutTrait for Layout {
let public_segments = &public_input.segments;
let initial_pc = public_segments
- .get(crate::layout::segments::PROGRAM)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::PROGRAM)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::PROGRAM })?
.begin_addr;
let final_pc = public_segments
- .get(crate::layout::segments::PROGRAM)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::PROGRAM)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::PROGRAM })?
.stop_ptr;
let initial_ap = public_segments
- .get(crate::layout::segments::EXECUTION)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::EXECUTION)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::EXECUTION })?
.begin_addr;
let initial_fp = initial_ap;
let final_ap = public_segments
- .get(crate::layout::segments::EXECUTION)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::EXECUTION)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::EXECUTION })?
.stop_ptr;
let output_start = public_segments
- .get(crate::layout::segments::OUTPUT)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::OUTPUT)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
.begin_addr;
let output_stop = public_segments
- .get(crate::layout::segments::OUTPUT)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::OUTPUT)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
.stop_ptr;
ensure!(initial_ap < MAX_ADDRESS, PublicInputError::MaxSteps);
@@ -385,24 +393,23 @@ impl LayoutTrait for Layout {
.collect::>();
ensure!(initial_pc == INITIAL_PC, PublicInputError::MaxSteps);
- ensure!(final_pc == INITIAL_PC + 4, PublicInputError::MaxSteps);
+ ensure!(final_pc == INITIAL_PC + FELT_4, PublicInputError::MaxSteps);
- let program_end_pc = initial_fp - 2;
+ let program_end_pc = initial_fp - FELT_2;
let program: Vec<&Felt> = memory
.iter()
- .skip(initial_pc.to_bigint().try_into().unwrap())
+ .skip(initial_pc.to_bigint().try_into()?)
.step_by(2)
- .take((program_end_pc - Felt::ONE).to_bigint().try_into().unwrap())
+ .take((program_end_pc - FELT_1).to_bigint().try_into()?)
.collect();
- let hash = program.iter().fold(Felt::ZERO, |acc, &e| pedersen_hash(&acc, e));
+ let hash = program.iter().fold(FELT_0, |acc, &e| pedersen_hash(&acc, e));
let program_hash = pedersen_hash(&hash, &Felt::from(program.len()));
- let output_len: usize = (output_stop - output_start).to_bigint().try_into().unwrap();
+ let output_len: usize = (output_stop - output_start).to_bigint().try_into()?;
let output = &memory[memory.len() - output_len * 2..];
- let hash =
- output.iter().skip(1).step_by(2).fold(Felt::ZERO, |acc, e| pedersen_hash(&acc, e));
+ let hash = output.iter().skip(1).step_by(2).fold(FELT_0, |acc, e| pedersen_hash(&acc, e));
let output_hash = pedersen_hash(&hash, &Felt::from(output_len));
Ok((program_hash, output_hash))
diff --git a/crates/air/src/layout/recursive_with_poseidon/autogenerated.rs b/crates/air/src/layout/recursive_with_poseidon/autogenerated.rs
index 5de4590..5af8d7e 100644
--- a/crates/air/src/layout/recursive_with_poseidon/autogenerated.rs
+++ b/crates/air/src/layout/recursive_with_poseidon/autogenerated.rs
@@ -1,5 +1,5 @@
use super::global_values::GlobalValues;
-use crate::layout::LayoutTrait;
+use crate::layout::{LayoutTrait, StaticLayoutTrait};
use starknet_core::types::NonZeroFelt;
use starknet_crypto::Felt;
@@ -1236,7 +1236,7 @@ pub fn eval_composition_polynomial_inner(
total_sum
}
-pub fn eval_oods_polynomial_inner(
+pub fn eval_oods_polynomial_inner(
column_values: &[Felt],
oods_values: &[Felt],
constraint_coefficients: &[Felt],
diff --git a/crates/air/src/layout/recursive_with_poseidon/mod.rs b/crates/air/src/layout/recursive_with_poseidon/mod.rs
index e42aa2d..e6be9c5 100644
--- a/crates/air/src/layout/recursive_with_poseidon/mod.rs
+++ b/crates/air/src/layout/recursive_with_poseidon/mod.rs
@@ -2,6 +2,7 @@ pub mod autogenerated;
pub mod global_values;
use crate::{
+ consts::*,
diluted::get_diluted_product,
periodic_columns::{
eval_pedersen_x, eval_pedersen_y, eval_poseidon_poseidon_full_round_key0,
@@ -18,7 +19,10 @@ use starknet_crypto::{pedersen_hash, Felt};
use swiftness_commitment::table::{commit::table_commit, decommit::table_decommit};
use swiftness_transcript::ensure;
-use super::{CompositionPolyEvalError, LayoutTrait, PublicInputError};
+use super::{
+ CompositionPolyEvalError, GenericLayoutTrait, LayoutTrait, OodsPolyEvalError, PublicInputError,
+ StaticLayoutTrait,
+};
pub const BITWISE_RATIO: usize = 16;
pub const BITWISE_ROW_RATIO: usize = 256;
@@ -57,9 +61,12 @@ pub const RANGE_CHECK_N_PARTS: usize = 8;
pub mod segments {
pub const BITWISE: usize = 5;
+ pub const EXECUTION: usize = 1;
pub const N_SEGMENTS: usize = 7;
+ pub const OUTPUT: usize = 2;
pub const PEDERSEN: usize = 3;
pub const POSEIDON: usize = 6;
+ pub const PROGRAM: usize = 0;
pub const RANGE_CHECK: usize = 4;
}
@@ -89,12 +96,24 @@ pub const BUILTINS: [Felt; 5] = [
pub struct Layout {}
+impl StaticLayoutTrait for Layout {
+ const NUM_COLUMNS_FIRST: usize = 6;
+ const NUM_COLUMNS_SECOND: usize = 2;
+}
+
+impl GenericLayoutTrait for Layout {
+ fn get_num_columns_first(_public_input: &PublicInput) -> Option {
+ Some(Self::NUM_COLUMNS_FIRST)
+ }
+ fn get_num_columns_second(_public_input: &PublicInput) -> Option {
+ Some(Self::NUM_COLUMNS_SECOND)
+ }
+}
+
impl LayoutTrait for Layout {
const CONSTRAINT_DEGREE: usize = 2;
const MASK_SIZE: usize = 192;
const N_CONSTRAINTS: usize = 124;
- const NUM_COLUMNS_FIRST: usize = 6;
- const NUM_COLUMNS_SECOND: usize = 2;
type InteractionElements = InteractionElements;
fn eval_composition_polynomial(
@@ -110,8 +129,8 @@ impl LayoutTrait for Layout {
let memory_alpha = interaction_elements.memory_multi_column_perm_hash_interaction_elm0;
// Public memory
- let public_memory_column_size = trace_domain_size
- .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(PUBLIC_MEMORY_STEP)));
+ let public_memory_column_size =
+ trace_domain_size.field_div(&NonZeroFelt::try_from(Felt::from(PUBLIC_MEMORY_STEP))?);
assert!(public_memory_column_size < u128::MAX.into());
let public_memory_prod_ratio = public_input.get_public_memory_product_ratio(
memory_z,
@@ -130,17 +149,17 @@ impl LayoutTrait for Layout {
);
// Periodic columns
- let n_steps = Felt::TWO.pow_felt(&public_input.log_n_steps);
- let n_pedersen_hash_copies = n_steps.field_div(&NonZeroFelt::from_felt_unchecked(
- Felt::from(PEDERSEN_BUILTIN_RATIO * PEDERSEN_BUILTIN_REPETITIONS),
- ));
+ let n_steps = FELT_2.pow_felt(&public_input.log_n_steps);
+ let n_pedersen_hash_copies = n_steps.field_div(&NonZeroFelt::try_from(
+ Felt::from(PEDERSEN_BUILTIN_RATIO) * Felt::from(PEDERSEN_BUILTIN_REPETITIONS),
+ )?);
assert!(n_pedersen_hash_copies < u128::MAX.into());
let pedersen_point = point.pow_felt(&n_pedersen_hash_copies);
let pedersen_points_x = eval_pedersen_x(pedersen_point);
let pedersen_points_y = eval_pedersen_y(pedersen_point);
let n_poseidon_copies =
- n_steps.field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(POSEIDON_RATIO)));
+ n_steps.field_div(&NonZeroFelt::try_from(Felt::from(POSEIDON_RATIO))?);
assert!(n_pedersen_hash_copies < u128::MAX.into());
let poseidon_point = point.pow_felt(&n_poseidon_copies);
let poseidon_poseidon_full_round_key0 =
@@ -158,31 +177,23 @@ impl LayoutTrait for Layout {
trace_length: *trace_domain_size,
initial_pc: public_input
.segments
- .get(crate::layout::segments::PROGRAM)
- .ok_or(CompositionPolyEvalError::SegmentMissing {
- segment: crate::layout::segments::PROGRAM,
- })?
+ .get(segments::PROGRAM)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::PROGRAM })?
.begin_addr,
final_pc: public_input
.segments
- .get(crate::layout::segments::PROGRAM)
- .ok_or(CompositionPolyEvalError::SegmentMissing {
- segment: crate::layout::segments::PROGRAM,
- })?
+ .get(segments::PROGRAM)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::PROGRAM })?
.stop_ptr,
initial_ap: public_input
.segments
- .get(crate::layout::segments::EXECUTION)
- .ok_or(CompositionPolyEvalError::SegmentMissing {
- segment: crate::layout::segments::EXECUTION,
- })?
+ .get(segments::EXECUTION)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::EXECUTION })?
.begin_addr,
final_ap: public_input
.segments
- .get(crate::layout::segments::EXECUTION)
- .ok_or(CompositionPolyEvalError::SegmentMissing {
- segment: crate::layout::segments::EXECUTION,
- })?
+ .get(segments::EXECUTION)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::EXECUTION })?
.stop_ptr,
initial_pedersen_addr: public_input
.segments
@@ -206,8 +217,8 @@ impl LayoutTrait for Layout {
.begin_addr,
range_check_min: public_input.range_check_min,
range_check_max: public_input.range_check_max,
- offset_size: Felt::from(0x10000), // 2**16
- half_offset_size: Felt::from(0x8000), // 2**15
+ offset_size: FELT_65536,
+ half_offset_size: FELT_32768,
pedersen_shift_point: EcPoint { x: SHIFT_POINT_X, y: SHIFT_POINT_Y },
pedersen_points_x,
pedersen_points_y,
@@ -225,9 +236,9 @@ impl LayoutTrait for Layout {
diluted_check_interaction_z: diluted_z,
diluted_check_interaction_alpha: diluted_alpha,
memory_multi_column_perm_perm_public_memory_prod: public_memory_prod_ratio,
- range_check16_perm_public_memory_prod: Felt::from(1),
- diluted_check_first_elm: Felt::from(0),
- diluted_check_permutation_public_memory_prod: Felt::from(1),
+ range_check16_perm_public_memory_prod: FELT_1,
+ diluted_check_first_elm: FELT_0,
+ diluted_check_permutation_public_memory_prod: FELT_1,
diluted_check_final_cum_val: diluted_prod,
};
@@ -240,21 +251,22 @@ impl LayoutTrait for Layout {
))
}
fn eval_oods_polynomial(
+ _public_input: &PublicInput,
column_values: &[Felt],
oods_values: &[Felt],
constraint_coefficients: &[Felt],
point: &Felt,
oods_point: &Felt,
trace_generator: &Felt,
- ) -> Felt {
- autogenerated::eval_oods_polynomial_inner::(
+ ) -> Result {
+ Ok(autogenerated::eval_oods_polynomial_inner::(
column_values,
oods_values,
constraint_coefficients,
point,
oods_point,
trace_generator,
- )
+ ))
}
fn traces_commit(
transcript: &mut swiftness_transcript::transcript::Transcript,
@@ -298,7 +310,7 @@ impl LayoutTrait for Layout {
) -> Result<(), PublicInputError> {
ensure!(public_input.log_n_steps < MAX_LOG_N_STEPS, PublicInputError::MaxSteps);
- let n_steps = Felt::TWO.pow_felt(&public_input.log_n_steps);
+ let n_steps = FELT_2.pow_felt(&public_input.log_n_steps);
let trace_length = stark_domains.trace_domain_size;
ensure!(
n_steps * Felt::from(CPU_COMPONENT_HEIGHT) * Felt::from(CPU_COMPONENT_STEP)
@@ -306,7 +318,12 @@ impl LayoutTrait for Layout {
PublicInputError::TraceLengthInvalid
);
- ensure!(Felt::ZERO <= public_input.range_check_min, PublicInputError::RangeCheckInvalid);
+ ensure!(
+ public_input.segments.len() == segments::N_SEGMENTS,
+ PublicInputError::InvalidSegments
+ );
+
+ ensure!(FELT_0 <= public_input.range_check_min, PublicInputError::RangeCheckInvalid);
ensure!(
public_input.range_check_min < public_input.range_check_max,
PublicInputError::RangeCheckInvalid
@@ -320,68 +337,74 @@ impl LayoutTrait for Layout {
let output_uses = public_input
.segments
- .get(crate::layout::segments::OUTPUT)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::OUTPUT })?
+ .get(segments::OUTPUT)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
.stop_ptr
- public_input
.segments
- .get(crate::layout::segments::OUTPUT)
- .ok_or(PublicInputError::SegmentMissing {
- segment: crate::layout::segments::OUTPUT,
- })?
+ .get(segments::OUTPUT)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
.begin_addr;
- ensure!(output_uses < u128::MAX.into(), PublicInputError::UsesInvalid);
+ ensure!(output_uses <= u128::MAX.into(), PublicInputError::UsesInvalid);
- let pedersen_copies = trace_length
- .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(PEDERSEN_BUILTIN_ROW_RATIO)));
+ let pedersen_copies =
+ trace_length.field_div(&NonZeroFelt::try_from(Felt::from(PEDERSEN_BUILTIN_ROW_RATIO))?);
let pedersen_uses = (public_input
.segments
.get(segments::PEDERSEN)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::OUTPUT })?
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
.stop_ptr
- public_input
.segments
.get(segments::PEDERSEN)
- .ok_or(PublicInputError::SegmentMissing {
- segment: crate::layout::segments::OUTPUT,
- })?
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
.begin_addr)
- .field_div(&NonZeroFelt::from_felt_unchecked(Felt::THREE));
- ensure!(pedersen_uses < pedersen_copies, PublicInputError::UsesInvalid);
+ .field_div(&NonZeroFelt::from_felt_unchecked(FELT_3));
+ ensure!(pedersen_uses <= pedersen_copies, PublicInputError::UsesInvalid);
- let range_check_copies = trace_length.field_div(&NonZeroFelt::from_felt_unchecked(
- Felt::from(RANGE_CHECK_BUILTIN_ROW_RATIO),
- ));
+ let range_check_copies = trace_length
+ .field_div(&NonZeroFelt::try_from(Felt::from(RANGE_CHECK_BUILTIN_ROW_RATIO))?);
let range_check_uses = public_input
.segments
.get(segments::RANGE_CHECK)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::OUTPUT })?
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::RANGE_CHECK })?
.stop_ptr
- public_input
.segments
.get(segments::RANGE_CHECK)
- .ok_or(PublicInputError::SegmentMissing {
- segment: crate::layout::segments::OUTPUT,
- })?
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::RANGE_CHECK })?
.begin_addr;
- ensure!(range_check_uses < range_check_copies, PublicInputError::UsesInvalid);
+ ensure!(range_check_uses <= range_check_copies, PublicInputError::UsesInvalid);
- let bitwise_copies = trace_length
- .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(BITWISE_ROW_RATIO)));
+ let bitwise_copies =
+ trace_length.field_div(&NonZeroFelt::try_from(Felt::from(BITWISE_ROW_RATIO))?);
let bitwise_uses = (public_input
.segments
.get(segments::BITWISE)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::OUTPUT })?
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::BITWISE })?
.stop_ptr
- public_input
.segments
.get(segments::BITWISE)
- .ok_or(PublicInputError::SegmentMissing {
- segment: crate::layout::segments::OUTPUT,
- })?
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::BITWISE })?
+ .begin_addr)
+ .field_div(&NonZeroFelt::from_felt_unchecked(FELT_5));
+ ensure!(bitwise_uses <= bitwise_copies, PublicInputError::UsesInvalid);
+
+ let poseidon_copies =
+ trace_length.field_div(&NonZeroFelt::try_from(Felt::from(POSEIDON_ROW_RATIO))?);
+ let poseidon_uses = (public_input
+ .segments
+ .get(segments::POSEIDON)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::POSEIDON })?
+ .stop_ptr
+ - public_input
+ .segments
+ .get(segments::POSEIDON)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::POSEIDON })?
.begin_addr)
- .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(0x5)));
- ensure!(bitwise_uses < bitwise_copies, PublicInputError::UsesInvalid);
+ .field_div(&NonZeroFelt::from_felt_unchecked(FELT_6));
+ ensure!(poseidon_uses <= poseidon_copies, PublicInputError::UsesInvalid);
Ok(())
}
@@ -389,29 +412,29 @@ impl LayoutTrait for Layout {
let public_segments = &public_input.segments;
let initial_pc = public_segments
- .get(crate::layout::segments::PROGRAM)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::PROGRAM)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::PROGRAM })?
.begin_addr;
let final_pc = public_segments
- .get(crate::layout::segments::PROGRAM)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::PROGRAM)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::PROGRAM })?
.stop_ptr;
let initial_ap = public_segments
- .get(crate::layout::segments::EXECUTION)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::EXECUTION)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::EXECUTION })?
.begin_addr;
let initial_fp = initial_ap;
let final_ap = public_segments
- .get(crate::layout::segments::EXECUTION)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::EXECUTION)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::EXECUTION })?
.stop_ptr;
let output_start = public_segments
- .get(crate::layout::segments::OUTPUT)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::OUTPUT)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
.begin_addr;
let output_stop = public_segments
- .get(crate::layout::segments::OUTPUT)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::OUTPUT)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
.stop_ptr;
ensure!(initial_ap < MAX_ADDRESS, PublicInputError::MaxSteps);
@@ -427,24 +450,23 @@ impl LayoutTrait for Layout {
.collect::>();
ensure!(initial_pc == INITIAL_PC, PublicInputError::MaxSteps);
- ensure!(final_pc == INITIAL_PC + 4, PublicInputError::MaxSteps);
+ ensure!(final_pc == INITIAL_PC + FELT_4, PublicInputError::MaxSteps);
- let program_end_pc = initial_fp - 2;
+ let program_end_pc = initial_fp - FELT_2;
let program: Vec<&Felt> = memory
.iter()
- .skip(initial_pc.to_bigint().try_into().unwrap())
+ .skip(initial_pc.to_bigint().try_into()?)
.step_by(2)
- .take((program_end_pc - Felt::ONE).to_bigint().try_into().unwrap())
+ .take((program_end_pc - FELT_1).to_bigint().try_into()?)
.collect();
- let hash = program.iter().fold(Felt::ZERO, |acc, &e| pedersen_hash(&acc, e));
+ let hash = program.iter().fold(FELT_0, |acc, &e| pedersen_hash(&acc, e));
let program_hash = pedersen_hash(&hash, &Felt::from(program.len()));
- let output_len: usize = (output_stop - output_start).to_bigint().try_into().unwrap();
+ let output_len: usize = (output_stop - output_start).to_bigint().try_into()?;
let output = &memory[memory.len() - output_len * 2..];
- let hash =
- output.iter().skip(1).step_by(2).fold(Felt::ZERO, |acc, e| pedersen_hash(&acc, e));
+ let hash = output.iter().skip(1).step_by(2).fold(FELT_0, |acc, e| pedersen_hash(&acc, e));
let output_hash = pedersen_hash(&hash, &Felt::from(output_len));
Ok((program_hash, output_hash))
diff --git a/crates/air/src/layout/small/autogenerated.rs b/crates/air/src/layout/small/autogenerated.rs
index 94378a3..dd10926 100644
--- a/crates/air/src/layout/small/autogenerated.rs
+++ b/crates/air/src/layout/small/autogenerated.rs
@@ -1,5 +1,5 @@
use super::global_values::GlobalValues;
-use crate::layout::LayoutTrait;
+use crate::layout::{LayoutTrait, StaticLayoutTrait};
use starknet_core::types::NonZeroFelt;
use starknet_crypto::Felt;
@@ -1372,7 +1372,7 @@ pub fn eval_composition_polynomial_inner(
total_sum
}
-pub fn eval_oods_polynomial_inner(
+pub fn eval_oods_polynomial_inner(
column_values: &[Felt],
oods_values: &[Felt],
constraint_coefficients: &[Felt],
diff --git a/crates/air/src/layout/small/mod.rs b/crates/air/src/layout/small/mod.rs
index 308a923..16ff990 100644
--- a/crates/air/src/layout/small/mod.rs
+++ b/crates/air/src/layout/small/mod.rs
@@ -2,6 +2,7 @@ pub mod autogenerated;
pub mod global_values;
use crate::{
+ consts::*,
layout::stark_curve,
periodic_columns::{eval_ecdsa_x, eval_ecdsa_y, eval_pedersen_x, eval_pedersen_y},
public_memory::{PublicInput, INITIAL_PC, MAX_ADDRESS, MAX_LOG_N_STEPS, MAX_RANGE_CHECK},
@@ -14,7 +15,10 @@ use starknet_crypto::{pedersen_hash, Felt};
use swiftness_commitment::table::{commit::table_commit, decommit::table_decommit};
use swiftness_transcript::ensure;
-use super::{CompositionPolyEvalError, LayoutTrait, PublicInputError};
+use super::{
+ CompositionPolyEvalError, GenericLayoutTrait, LayoutTrait, OodsPolyEvalError, PublicInputError,
+ StaticLayoutTrait,
+};
pub const CPU_COMPONENT_HEIGHT: usize = 16;
pub const CPU_COMPONENT_STEP: usize = 1;
@@ -47,8 +51,11 @@ pub const RANGE_CHECK_N_PARTS: usize = 8;
pub mod segments {
pub const ECDSA: usize = 5;
+ pub const EXECUTION: usize = 1;
pub const N_SEGMENTS: usize = 6;
+ pub const OUTPUT: usize = 2;
pub const PEDERSEN: usize = 3;
+ pub const PROGRAM: usize = 0;
pub const RANGE_CHECK: usize = 4;
}
@@ -72,12 +79,24 @@ pub const BUILTINS: [Felt; 4] =
pub struct Layout {}
+impl StaticLayoutTrait for Layout {
+ const NUM_COLUMNS_FIRST: usize = 23;
+ const NUM_COLUMNS_SECOND: usize = 2;
+}
+
+impl GenericLayoutTrait for Layout {
+ fn get_num_columns_first(_public_input: &PublicInput) -> Option {
+ Some(Self::NUM_COLUMNS_FIRST)
+ }
+ fn get_num_columns_second(_public_input: &PublicInput) -> Option {
+ Some(Self::NUM_COLUMNS_SECOND)
+ }
+}
+
impl LayoutTrait for Layout {
const CONSTRAINT_DEGREE: usize = 2;
const MASK_SIZE: usize = 201;
const N_CONSTRAINTS: usize = 179;
- const NUM_COLUMNS_FIRST: usize = 23;
- const NUM_COLUMNS_SECOND: usize = 2;
type InteractionElements = InteractionElements;
fn eval_composition_polynomial(
@@ -93,8 +112,8 @@ impl LayoutTrait for Layout {
let memory_alpha = interaction_elements.memory_multi_column_perm_hash_interaction_elm0;
// Public memory
- let public_memory_column_size = trace_domain_size
- .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(PUBLIC_MEMORY_STEP)));
+ let public_memory_column_size =
+ trace_domain_size.field_div(&NonZeroFelt::try_from(Felt::from(PUBLIC_MEMORY_STEP))?);
assert!(public_memory_column_size < u128::MAX.into());
let public_memory_prod_ratio = public_input.get_public_memory_product_ratio(
memory_z,
@@ -103,19 +122,19 @@ impl LayoutTrait for Layout {
);
// Periodic columns
- let n_steps = Felt::TWO.pow_felt(&public_input.log_n_steps);
- let n_pedersen_hash_copies = n_steps.field_div(&NonZeroFelt::from_felt_unchecked(
- Felt::from(PEDERSEN_BUILTIN_RATIO * PEDERSEN_BUILTIN_REPETITIONS),
- ));
+ let n_steps = FELT_2.pow_felt(&public_input.log_n_steps);
+ let n_pedersen_hash_copies = n_steps.field_div(&NonZeroFelt::try_from(
+ Felt::from(PEDERSEN_BUILTIN_RATIO) * Felt::from(PEDERSEN_BUILTIN_REPETITIONS),
+ )?);
// TODO fix to ensure!
assert!(n_pedersen_hash_copies < u128::MAX.into());
let pedersen_point = point.pow_felt(&n_pedersen_hash_copies);
let pedersen_points_x = eval_pedersen_x(pedersen_point);
let pedersen_points_y = eval_pedersen_y(pedersen_point);
- let n_ecdsa_signature_copies = n_steps.field_div(&NonZeroFelt::from_felt_unchecked(
- Felt::from(ECDSA_BUILTIN_RATIO * ECDSA_BUILTIN_REPETITIONS),
- ));
+ let n_ecdsa_signature_copies = n_steps.field_div(&NonZeroFelt::try_from(
+ Felt::from(ECDSA_BUILTIN_RATIO) * Felt::from(ECDSA_BUILTIN_REPETITIONS),
+ )?);
assert!(n_ecdsa_signature_copies < u128::MAX.into());
let ecdsa_point = point.pow_felt(&n_ecdsa_signature_copies);
let ecdsa_generator_points_x = eval_ecdsa_x(ecdsa_point);
@@ -125,31 +144,23 @@ impl LayoutTrait for Layout {
trace_length: *trace_domain_size,
initial_pc: public_input
.segments
- .get(crate::layout::segments::PROGRAM)
- .ok_or(CompositionPolyEvalError::SegmentMissing {
- segment: crate::layout::segments::PROGRAM,
- })?
+ .get(segments::PROGRAM)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::PROGRAM })?
.begin_addr,
final_pc: public_input
.segments
- .get(crate::layout::segments::PROGRAM)
- .ok_or(CompositionPolyEvalError::SegmentMissing {
- segment: crate::layout::segments::PROGRAM,
- })?
+ .get(segments::PROGRAM)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::PROGRAM })?
.stop_ptr,
initial_ap: public_input
.segments
- .get(crate::layout::segments::EXECUTION)
- .ok_or(CompositionPolyEvalError::SegmentMissing {
- segment: crate::layout::segments::EXECUTION,
- })?
+ .get(segments::EXECUTION)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::EXECUTION })?
.begin_addr,
final_ap: public_input
.segments
- .get(crate::layout::segments::EXECUTION)
- .ok_or(CompositionPolyEvalError::SegmentMissing {
- segment: crate::layout::segments::EXECUTION,
- })?
+ .get(segments::EXECUTION)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::EXECUTION })?
.stop_ptr,
initial_pedersen_addr: public_input
.segments
@@ -168,8 +179,8 @@ impl LayoutTrait for Layout {
.begin_addr,
range_check_min: public_input.range_check_min,
range_check_max: public_input.range_check_max,
- offset_size: Felt::from(0x10000), // 2**16
- half_offset_size: Felt::from(0x8000), // 2**15
+ offset_size: FELT_65536,
+ half_offset_size: FELT_32768,
pedersen_shift_point: EcPoint { x: SHIFT_POINT_X, y: SHIFT_POINT_Y },
ecdsa_sig_config: EcdsaSigConfig {
alpha: stark_curve::ALPHA,
@@ -185,7 +196,7 @@ impl LayoutTrait for Layout {
range_check16_perm_interaction_elm: interaction_elements
.range_check16_perm_interaction_elm,
memory_multi_column_perm_perm_public_memory_prod: public_memory_prod_ratio,
- range_check16_perm_public_memory_prod: Felt::from(1),
+ range_check16_perm_public_memory_prod: FELT_1,
};
Ok(autogenerated::eval_composition_polynomial_inner(
@@ -197,21 +208,22 @@ impl LayoutTrait for Layout {
))
}
fn eval_oods_polynomial(
+ _public_input: &PublicInput,
column_values: &[Felt],
oods_values: &[Felt],
constraint_coefficients: &[Felt],
point: &Felt,
oods_point: &Felt,
trace_generator: &Felt,
- ) -> Felt {
- autogenerated::eval_oods_polynomial_inner::(
+ ) -> Result {
+ Ok(autogenerated::eval_oods_polynomial_inner::(
column_values,
oods_values,
constraint_coefficients,
point,
oods_point,
trace_generator,
- )
+ ))
}
fn traces_commit(
transcript: &mut swiftness_transcript::transcript::Transcript,
@@ -255,7 +267,7 @@ impl LayoutTrait for Layout {
) -> Result<(), PublicInputError> {
ensure!(public_input.log_n_steps < MAX_LOG_N_STEPS, PublicInputError::MaxSteps);
- let n_steps = Felt::TWO.pow_felt(&public_input.log_n_steps);
+ let n_steps = FELT_2.pow_felt(&public_input.log_n_steps);
let trace_length = stark_domains.trace_domain_size;
ensure!(
n_steps * Felt::from(CPU_COMPONENT_HEIGHT) * Felt::from(CPU_COMPONENT_STEP)
@@ -263,7 +275,12 @@ impl LayoutTrait for Layout {
PublicInputError::TraceLengthInvalid
);
- ensure!(Felt::ZERO <= public_input.range_check_min, PublicInputError::RangeCheckInvalid);
+ ensure!(
+ public_input.segments.len() == segments::N_SEGMENTS,
+ PublicInputError::InvalidSegments
+ );
+
+ ensure!(FELT_0 <= public_input.range_check_min, PublicInputError::RangeCheckInvalid);
ensure!(
public_input.range_check_min < public_input.range_check_max,
PublicInputError::RangeCheckInvalid
@@ -277,20 +294,18 @@ impl LayoutTrait for Layout {
let output_uses = public_input
.segments
- .get(crate::layout::segments::OUTPUT)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::OUTPUT })?
+ .get(segments::OUTPUT)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
.stop_ptr
- public_input
.segments
- .get(crate::layout::segments::OUTPUT)
- .ok_or(PublicInputError::SegmentMissing {
- segment: crate::layout::segments::OUTPUT,
- })?
+ .get(segments::OUTPUT)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
.begin_addr;
- ensure!(output_uses < u128::MAX.into(), PublicInputError::UsesInvalid);
+ ensure!(output_uses <= u128::MAX.into(), PublicInputError::UsesInvalid);
- let pedersen_copies = trace_length
- .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(PEDERSEN_BUILTIN_ROW_RATIO)));
+ let pedersen_copies =
+ trace_length.field_div(&NonZeroFelt::try_from(Felt::from(PEDERSEN_BUILTIN_ROW_RATIO))?);
let pedersen_uses = (public_input
.segments
.get(segments::PEDERSEN)
@@ -301,12 +316,11 @@ impl LayoutTrait for Layout {
.get(segments::PEDERSEN)
.ok_or(PublicInputError::SegmentMissing { segment: segments::PEDERSEN })?
.begin_addr)
- .field_div(&NonZeroFelt::from_felt_unchecked(Felt::THREE));
- ensure!(pedersen_uses < pedersen_copies, PublicInputError::UsesInvalid);
+ .field_div(&NonZeroFelt::from_felt_unchecked(FELT_3));
+ ensure!(pedersen_uses <= pedersen_copies, PublicInputError::UsesInvalid);
- let range_check_copies = trace_length.field_div(&NonZeroFelt::from_felt_unchecked(
- Felt::from(RANGE_CHECK_BUILTIN_ROW_RATIO),
- ));
+ let range_check_copies = trace_length
+ .field_div(&NonZeroFelt::try_from(Felt::from(RANGE_CHECK_BUILTIN_ROW_RATIO))?);
let range_check_uses = public_input
.segments
.get(segments::RANGE_CHECK)
@@ -317,10 +331,10 @@ impl LayoutTrait for Layout {
.get(segments::RANGE_CHECK)
.ok_or(PublicInputError::SegmentMissing { segment: segments::RANGE_CHECK })?
.begin_addr;
- ensure!(range_check_uses < range_check_copies, PublicInputError::UsesInvalid);
+ ensure!(range_check_uses <= range_check_copies, PublicInputError::UsesInvalid);
- let ecdsa_copies = trace_length
- .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(ECDSA_BUILTIN_ROW_RATIO)));
+ let ecdsa_copies =
+ trace_length.field_div(&NonZeroFelt::try_from(Felt::from(ECDSA_BUILTIN_ROW_RATIO))?);
let ecdsa_uses = (public_input
.segments
.get(segments::ECDSA)
@@ -329,12 +343,10 @@ impl LayoutTrait for Layout {
- public_input
.segments
.get(segments::ECDSA)
- .ok_or(PublicInputError::SegmentMissing {
- segment: crate::layout::segments::OUTPUT,
- })?
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
.begin_addr)
- .field_div(&NonZeroFelt::from_felt_unchecked(Felt::TWO));
- ensure!(ecdsa_uses < ecdsa_copies, PublicInputError::UsesInvalid);
+ .field_div(&NonZeroFelt::from_felt_unchecked(FELT_2));
+ ensure!(ecdsa_uses <= ecdsa_copies, PublicInputError::UsesInvalid);
Ok(())
}
@@ -342,29 +354,29 @@ impl LayoutTrait for Layout {
let public_segments = &public_input.segments;
let initial_pc = public_segments
- .get(crate::layout::segments::PROGRAM)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::PROGRAM)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::PROGRAM })?
.begin_addr;
let final_pc = public_segments
- .get(crate::layout::segments::PROGRAM)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::PROGRAM)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::PROGRAM })?
.stop_ptr;
let initial_ap = public_segments
- .get(crate::layout::segments::EXECUTION)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::EXECUTION)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::EXECUTION })?
.begin_addr;
let initial_fp = initial_ap;
let final_ap = public_segments
- .get(crate::layout::segments::EXECUTION)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::EXECUTION)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::EXECUTION })?
.stop_ptr;
let output_start = public_segments
- .get(crate::layout::segments::OUTPUT)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::OUTPUT)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
.begin_addr;
let output_stop = public_segments
- .get(crate::layout::segments::OUTPUT)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::OUTPUT)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
.stop_ptr;
ensure!(initial_ap < MAX_ADDRESS, PublicInputError::MaxSteps);
@@ -380,24 +392,23 @@ impl LayoutTrait for Layout {
.collect::>();
ensure!(initial_pc == INITIAL_PC, PublicInputError::MaxSteps);
- ensure!(final_pc == INITIAL_PC + 4, PublicInputError::MaxSteps);
+ ensure!(final_pc == INITIAL_PC + FELT_4, PublicInputError::MaxSteps);
- let program_end_pc = initial_fp - 2;
+ let program_end_pc = initial_fp - FELT_2;
let program: Vec<&Felt> = memory
.iter()
- .skip(initial_pc.to_bigint().try_into().unwrap())
+ .skip(initial_pc.to_bigint().try_into()?)
.step_by(2)
- .take((program_end_pc - Felt::ONE).to_bigint().try_into().unwrap())
+ .take((program_end_pc - FELT_1).to_bigint().try_into()?)
.collect();
- let hash = program.iter().fold(Felt::ZERO, |acc, &e| pedersen_hash(&acc, e));
+ let hash = program.iter().fold(FELT_0, |acc, &e| pedersen_hash(&acc, e));
let program_hash = pedersen_hash(&hash, &Felt::from(program.len()));
- let output_len: usize = (output_stop - output_start).to_bigint().try_into().unwrap();
+ let output_len: usize = (output_stop - output_start).to_bigint().try_into()?;
let output = &memory[memory.len() - output_len * 2..];
- let hash =
- output.iter().skip(1).step_by(2).fold(Felt::ZERO, |acc, e| pedersen_hash(&acc, e));
+ let hash = output.iter().skip(1).step_by(2).fold(FELT_0, |acc, e| pedersen_hash(&acc, e));
let output_hash = pedersen_hash(&hash, &Felt::from(output_len));
Ok((program_hash, output_hash))
diff --git a/crates/air/src/layout/starknet/autogenerated.rs b/crates/air/src/layout/starknet/autogenerated.rs
index af220c5..cfcf5ed 100644
--- a/crates/air/src/layout/starknet/autogenerated.rs
+++ b/crates/air/src/layout/starknet/autogenerated.rs
@@ -1,5 +1,5 @@
use super::global_values::GlobalValues;
-use crate::layout::LayoutTrait;
+use crate::layout::{LayoutTrait, StaticLayoutTrait};
use starknet_core::types::NonZeroFelt;
use starknet_crypto::Felt;
@@ -1734,7 +1734,7 @@ pub fn eval_composition_polynomial_inner(
total_sum
}
-pub fn eval_oods_polynomial_inner(
+pub fn eval_oods_polynomial_inner(
column_values: &[Felt],
oods_values: &[Felt],
constraint_coefficients: &[Felt],
diff --git a/crates/air/src/layout/starknet/mod.rs b/crates/air/src/layout/starknet/mod.rs
index e369bf3..b9bd328 100644
--- a/crates/air/src/layout/starknet/mod.rs
+++ b/crates/air/src/layout/starknet/mod.rs
@@ -2,6 +2,7 @@ pub mod autogenerated;
pub mod global_values;
use crate::{
+ consts::*,
diluted::get_diluted_product,
layout::stark_curve,
periodic_columns::{
@@ -20,7 +21,10 @@ use starknet_crypto::{pedersen_hash, Felt};
use swiftness_commitment::table::{commit::table_commit, decommit::table_decommit};
use swiftness_transcript::ensure;
-use super::{CompositionPolyEvalError, LayoutTrait, PublicInputError};
+use super::{
+ CompositionPolyEvalError, GenericLayoutTrait, LayoutTrait, OodsPolyEvalError, PublicInputError,
+ StaticLayoutTrait,
+};
pub const BITWISE_RATIO: usize = 64;
pub const BITWISE_ROW_RATIO: usize = 1024;
@@ -69,9 +73,12 @@ pub mod segments {
pub const BITWISE: usize = 6;
pub const EC_OP: usize = 7;
pub const ECDSA: usize = 5;
+ pub const EXECUTION: usize = 1;
pub const N_SEGMENTS: usize = 9;
+ pub const OUTPUT: usize = 2;
pub const PEDERSEN: usize = 3;
pub const POSEIDON: usize = 8;
+ pub const PROGRAM: usize = 0;
pub const RANGE_CHECK: usize = 4;
}
@@ -105,12 +112,24 @@ pub const BUILTINS: [Felt; 7] = [
pub struct Layout {}
+impl StaticLayoutTrait for Layout {
+ const NUM_COLUMNS_FIRST: usize = 9;
+ const NUM_COLUMNS_SECOND: usize = 1;
+}
+
+impl GenericLayoutTrait for Layout {
+ fn get_num_columns_first(_public_input: &PublicInput) -> Option {
+ Some(Self::NUM_COLUMNS_FIRST)
+ }
+ fn get_num_columns_second(_public_input: &PublicInput) -> Option {
+ Some(Self::NUM_COLUMNS_SECOND)
+ }
+}
+
impl LayoutTrait for Layout {
const CONSTRAINT_DEGREE: usize = 2;
const MASK_SIZE: usize = 271;
const N_CONSTRAINTS: usize = 198;
- const NUM_COLUMNS_FIRST: usize = 9;
- const NUM_COLUMNS_SECOND: usize = 1;
type InteractionElements = InteractionElements;
fn eval_composition_polynomial(
@@ -126,8 +145,8 @@ impl LayoutTrait for Layout {
let memory_alpha = interaction_elements.memory_multi_column_perm_hash_interaction_elm0;
// Public memory
- let public_memory_column_size = trace_domain_size
- .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(PUBLIC_MEMORY_STEP)));
+ let public_memory_column_size =
+ trace_domain_size.field_div(&NonZeroFelt::try_from(Felt::from(PUBLIC_MEMORY_STEP))?);
assert!(public_memory_column_size < u128::MAX.into());
let public_memory_prod_ratio = public_input.get_public_memory_product_ratio(
memory_z,
@@ -146,25 +165,25 @@ impl LayoutTrait for Layout {
);
// Periodic columns
- let n_steps = Felt::TWO.pow_felt(&public_input.log_n_steps);
- let n_pedersen_hash_copies = n_steps.field_div(&NonZeroFelt::from_felt_unchecked(
- Felt::from(PEDERSEN_BUILTIN_RATIO * PEDERSEN_BUILTIN_REPETITIONS),
- ));
+ let n_steps = FELT_2.pow_felt(&public_input.log_n_steps);
+ let n_pedersen_hash_copies = n_steps.field_div(&NonZeroFelt::try_from(
+ Felt::from(PEDERSEN_BUILTIN_RATIO) * Felt::from(PEDERSEN_BUILTIN_REPETITIONS),
+ )?);
assert!(n_pedersen_hash_copies < u128::MAX.into());
let pedersen_point = point.pow_felt(&n_pedersen_hash_copies);
let pedersen_points_x = eval_pedersen_x(pedersen_point);
let pedersen_points_y = eval_pedersen_y(pedersen_point);
- let n_ecdsa_signature_copies = n_steps.field_div(&NonZeroFelt::from_felt_unchecked(
- Felt::from(ECDSA_BUILTIN_RATIO * ECDSA_BUILTIN_REPETITIONS),
- ));
+ let n_ecdsa_signature_copies = n_steps.field_div(&NonZeroFelt::try_from(
+ Felt::from(ECDSA_BUILTIN_RATIO) * Felt::from(ECDSA_BUILTIN_REPETITIONS),
+ )?);
assert!(n_ecdsa_signature_copies < u128::MAX.into());
let ecdsa_point = point.pow_felt(&n_ecdsa_signature_copies);
let ecdsa_generator_points_x = eval_ecdsa_x(ecdsa_point);
let ecdsa_generator_points_y = eval_ecdsa_y(ecdsa_point);
let n_poseidon_copies =
- n_steps.field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(POSEIDON_RATIO)));
+ n_steps.field_div(&NonZeroFelt::try_from(Felt::from(POSEIDON_RATIO))?);
assert!(n_pedersen_hash_copies < u128::MAX.into());
let poseidon_point = point.pow_felt(&n_poseidon_copies);
let poseidon_poseidon_full_round_key0 =
@@ -182,31 +201,23 @@ impl LayoutTrait for Layout {
trace_length: *trace_domain_size,
initial_pc: public_input
.segments
- .get(crate::layout::segments::PROGRAM)
- .ok_or(CompositionPolyEvalError::SegmentMissing {
- segment: crate::layout::segments::PROGRAM,
- })?
+ .get(segments::PROGRAM)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::PROGRAM })?
.begin_addr,
final_pc: public_input
.segments
- .get(crate::layout::segments::PROGRAM)
- .ok_or(CompositionPolyEvalError::SegmentMissing {
- segment: crate::layout::segments::PROGRAM,
- })?
+ .get(segments::PROGRAM)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::PROGRAM })?
.stop_ptr,
initial_ap: public_input
.segments
- .get(crate::layout::segments::EXECUTION)
- .ok_or(CompositionPolyEvalError::SegmentMissing {
- segment: crate::layout::segments::EXECUTION,
- })?
+ .get(segments::EXECUTION)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::EXECUTION })?
.begin_addr,
final_ap: public_input
.segments
- .get(crate::layout::segments::EXECUTION)
- .ok_or(CompositionPolyEvalError::SegmentMissing {
- segment: crate::layout::segments::EXECUTION,
- })?
+ .get(segments::EXECUTION)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::EXECUTION })?
.stop_ptr,
initial_pedersen_addr: public_input
.segments
@@ -240,8 +251,8 @@ impl LayoutTrait for Layout {
.begin_addr,
range_check_min: public_input.range_check_min,
range_check_max: public_input.range_check_max,
- offset_size: Felt::from(0x10000), // 2**16
- half_offset_size: Felt::from(0x8000), // 2**15
+ offset_size: FELT_65536,
+ half_offset_size: FELT_32768,
pedersen_shift_point: EcPoint { x: SHIFT_POINT_X, y: SHIFT_POINT_Y },
ecdsa_sig_config: EcdsaSigConfig {
alpha: stark_curve::ALPHA,
@@ -267,9 +278,9 @@ impl LayoutTrait for Layout {
diluted_check_interaction_z: diluted_z,
diluted_check_interaction_alpha: diluted_alpha,
memory_multi_column_perm_perm_public_memory_prod: public_memory_prod_ratio,
- range_check16_perm_public_memory_prod: Felt::from(1),
- diluted_check_first_elm: Felt::from(0),
- diluted_check_permutation_public_memory_prod: Felt::from(1),
+ range_check16_perm_public_memory_prod: FELT_1,
+ diluted_check_first_elm: FELT_0,
+ diluted_check_permutation_public_memory_prod: FELT_1,
diluted_check_final_cum_val: diluted_prod,
};
@@ -282,21 +293,22 @@ impl LayoutTrait for Layout {
))
}
fn eval_oods_polynomial(
+ _public_input: &PublicInput,
column_values: &[Felt],
oods_values: &[Felt],
constraint_coefficients: &[Felt],
point: &Felt,
oods_point: &Felt,
trace_generator: &Felt,
- ) -> Felt {
- autogenerated::eval_oods_polynomial_inner::(
+ ) -> Result {
+ Ok(autogenerated::eval_oods_polynomial_inner::(
column_values,
oods_values,
constraint_coefficients,
point,
oods_point,
trace_generator,
- )
+ ))
}
fn traces_commit(
transcript: &mut swiftness_transcript::transcript::Transcript,
@@ -340,7 +352,7 @@ impl LayoutTrait for Layout {
) -> Result<(), PublicInputError> {
ensure!(public_input.log_n_steps < MAX_LOG_N_STEPS, PublicInputError::MaxSteps);
- let n_steps = Felt::TWO.pow_felt(&public_input.log_n_steps);
+ let n_steps = FELT_2.pow_felt(&public_input.log_n_steps);
let trace_length = stark_domains.trace_domain_size;
ensure!(
n_steps * Felt::from(CPU_COMPONENT_HEIGHT) * Felt::from(CPU_COMPONENT_STEP)
@@ -348,7 +360,12 @@ impl LayoutTrait for Layout {
PublicInputError::TraceLengthInvalid
);
- ensure!(Felt::ZERO <= public_input.range_check_min, PublicInputError::RangeCheckInvalid);
+ ensure!(
+ public_input.segments.len() == segments::N_SEGMENTS,
+ PublicInputError::InvalidSegments
+ );
+
+ ensure!(FELT_0 <= public_input.range_check_min, PublicInputError::RangeCheckInvalid);
ensure!(
public_input.range_check_min < public_input.range_check_max,
PublicInputError::RangeCheckInvalid
@@ -362,68 +379,104 @@ impl LayoutTrait for Layout {
let output_uses = public_input
.segments
- .get(crate::layout::segments::OUTPUT)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::OUTPUT })?
+ .get(segments::OUTPUT)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
.stop_ptr
- public_input
.segments
- .get(crate::layout::segments::OUTPUT)
- .ok_or(PublicInputError::SegmentMissing {
- segment: crate::layout::segments::OUTPUT,
- })?
+ .get(segments::OUTPUT)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
.begin_addr;
- ensure!(output_uses < u128::MAX.into(), PublicInputError::UsesInvalid);
+ ensure!(output_uses <= u128::MAX.into(), PublicInputError::UsesInvalid);
- let pedersen_copies = trace_length
- .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(PEDERSEN_BUILTIN_ROW_RATIO)));
+ let pedersen_copies =
+ trace_length.field_div(&NonZeroFelt::try_from(Felt::from(PEDERSEN_BUILTIN_ROW_RATIO))?);
let pedersen_uses = (public_input
.segments
.get(segments::PEDERSEN)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::OUTPUT })?
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::PEDERSEN })?
.stop_ptr
- public_input
.segments
.get(segments::PEDERSEN)
- .ok_or(PublicInputError::SegmentMissing {
- segment: crate::layout::segments::OUTPUT,
- })?
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::PEDERSEN })?
.begin_addr)
- .field_div(&NonZeroFelt::from_felt_unchecked(Felt::THREE));
- ensure!(pedersen_uses < pedersen_copies, PublicInputError::UsesInvalid);
+ .field_div(&NonZeroFelt::from_felt_unchecked(FELT_3));
+ ensure!(pedersen_uses <= pedersen_copies, PublicInputError::UsesInvalid);
- let range_check_copies = trace_length.field_div(&NonZeroFelt::from_felt_unchecked(
- Felt::from(RANGE_CHECK_BUILTIN_ROW_RATIO),
- ));
+ let range_check_copies = trace_length
+ .field_div(&NonZeroFelt::try_from(Felt::from(RANGE_CHECK_BUILTIN_ROW_RATIO))?);
let range_check_uses = public_input
.segments
.get(segments::RANGE_CHECK)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::OUTPUT })?
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::RANGE_CHECK })?
.stop_ptr
- public_input
.segments
.get(segments::RANGE_CHECK)
- .ok_or(PublicInputError::SegmentMissing {
- segment: crate::layout::segments::OUTPUT,
- })?
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::RANGE_CHECK })?
.begin_addr;
- ensure!(range_check_uses < range_check_copies, PublicInputError::UsesInvalid);
+ ensure!(range_check_uses <= range_check_copies, PublicInputError::UsesInvalid);
+
+ let ecdsa_copies =
+ trace_length.field_div(&NonZeroFelt::try_from(Felt::from(ECDSA_BUILTIN_ROW_RATIO))?);
+ let ecdsa_uses = (public_input
+ .segments
+ .get(segments::ECDSA)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::ECDSA })?
+ .stop_ptr
+ - public_input
+ .segments
+ .get(segments::ECDSA)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::ECDSA })?
+ .begin_addr)
+ .field_div(&NonZeroFelt::from_felt_unchecked(FELT_2));
+ ensure!(ecdsa_uses <= ecdsa_copies, PublicInputError::UsesInvalid);
- let bitwise_copies = trace_length
- .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(BITWISE_ROW_RATIO)));
+ let bitwise_copies =
+ trace_length.field_div(&NonZeroFelt::try_from(Felt::from(BITWISE_ROW_RATIO))?);
let bitwise_uses = (public_input
.segments
.get(segments::BITWISE)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::OUTPUT })?
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::BITWISE })?
.stop_ptr
- public_input
.segments
.get(segments::BITWISE)
- .ok_or(PublicInputError::SegmentMissing {
- segment: crate::layout::segments::OUTPUT,
- })?
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::BITWISE })?
+ .begin_addr)
+ .field_div(&NonZeroFelt::from_felt_unchecked(FELT_5));
+ ensure!(bitwise_uses <= bitwise_copies, PublicInputError::UsesInvalid);
+
+ let ec_op_copies =
+ trace_length.field_div(&NonZeroFelt::try_from(Felt::from(EC_OP_BUILTIN_ROW_RATIO))?);
+ let ec_op_uses = (public_input
+ .segments
+ .get(segments::EC_OP)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::EC_OP })?
+ .stop_ptr
+ - public_input
+ .segments
+ .get(segments::EC_OP)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::EC_OP })?
+ .begin_addr)
+ .field_div(&NonZeroFelt::from_felt_unchecked(FELT_7));
+ ensure!(ec_op_uses <= ec_op_copies, PublicInputError::UsesInvalid);
+
+ let poseidon_copies =
+ trace_length.field_div(&NonZeroFelt::try_from(Felt::from(POSEIDON_ROW_RATIO))?);
+ let poseidon_uses = (public_input
+ .segments
+ .get(segments::POSEIDON)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::POSEIDON })?
+ .stop_ptr
+ - public_input
+ .segments
+ .get(segments::POSEIDON)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::POSEIDON })?
.begin_addr)
- .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(0x5)));
- ensure!(bitwise_uses < bitwise_copies, PublicInputError::UsesInvalid);
+ .field_div(&NonZeroFelt::from_felt_unchecked(FELT_6));
+ ensure!(poseidon_uses <= poseidon_copies, PublicInputError::UsesInvalid);
Ok(())
}
@@ -431,29 +484,29 @@ impl LayoutTrait for Layout {
let public_segments = &public_input.segments;
let initial_pc = public_segments
- .get(crate::layout::segments::PROGRAM)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::PROGRAM)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::PROGRAM })?
.begin_addr;
let final_pc = public_segments
- .get(crate::layout::segments::PROGRAM)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::PROGRAM)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::PROGRAM })?
.stop_ptr;
let initial_ap = public_segments
- .get(crate::layout::segments::EXECUTION)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::EXECUTION)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::EXECUTION })?
.begin_addr;
let initial_fp = initial_ap;
let final_ap = public_segments
- .get(crate::layout::segments::EXECUTION)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::EXECUTION)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::EXECUTION })?
.stop_ptr;
let output_start = public_segments
- .get(crate::layout::segments::OUTPUT)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::OUTPUT)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
.begin_addr;
let output_stop = public_segments
- .get(crate::layout::segments::OUTPUT)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::OUTPUT)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
.stop_ptr;
ensure!(initial_ap < MAX_ADDRESS, PublicInputError::MaxSteps);
@@ -469,24 +522,23 @@ impl LayoutTrait for Layout {
.collect::>();
ensure!(initial_pc == INITIAL_PC, PublicInputError::MaxSteps);
- ensure!(final_pc == INITIAL_PC + 4, PublicInputError::MaxSteps);
+ ensure!(final_pc == INITIAL_PC + FELT_4, PublicInputError::MaxSteps);
- let program_end_pc = initial_fp - 2;
+ let program_end_pc = initial_fp - FELT_2;
let program: Vec<&Felt> = memory
.iter()
- .skip(initial_pc.to_bigint().try_into().unwrap())
+ .skip(initial_pc.to_bigint().try_into()?)
.step_by(2)
- .take((program_end_pc - Felt::ONE).to_bigint().try_into().unwrap())
+ .take((program_end_pc - FELT_1).to_bigint().try_into()?)
.collect();
- let hash = program.iter().fold(Felt::ZERO, |acc, &e| pedersen_hash(&acc, e));
+ let hash = program.iter().fold(FELT_0, |acc, &e| pedersen_hash(&acc, e));
let program_hash = pedersen_hash(&hash, &Felt::from(program.len()));
- let output_len: usize = (output_stop - output_start).to_bigint().try_into().unwrap();
+ let output_len: usize = (output_stop - output_start).to_bigint().try_into()?;
let output = &memory[memory.len() - output_len * 2..];
- let hash =
- output.iter().skip(1).step_by(2).fold(Felt::ZERO, |acc, e| pedersen_hash(&acc, e));
+ let hash = output.iter().skip(1).step_by(2).fold(FELT_0, |acc, e| pedersen_hash(&acc, e));
let output_hash = pedersen_hash(&hash, &Felt::from(output_len));
Ok((program_hash, output_hash))
diff --git a/crates/air/src/layout/starknet_with_keccak/autogenerated.rs b/crates/air/src/layout/starknet_with_keccak/autogenerated.rs
index 857bd4a..23494c5 100644
--- a/crates/air/src/layout/starknet_with_keccak/autogenerated.rs
+++ b/crates/air/src/layout/starknet_with_keccak/autogenerated.rs
@@ -1,5 +1,5 @@
use super::global_values::GlobalValues;
-use crate::layout::LayoutTrait;
+use crate::layout::{LayoutTrait, StaticLayoutTrait};
use starknet_core::types::NonZeroFelt;
use starknet_crypto::Felt;
@@ -10128,7 +10128,7 @@ pub fn eval_composition_polynomial_inner(
total_sum
}
-pub fn eval_oods_polynomial_inner(
+pub fn eval_oods_polynomial_inner(
column_values: &[Felt],
oods_values: &[Felt],
constraint_coefficients: &[Felt],
diff --git a/crates/air/src/layout/starknet_with_keccak/mod.rs b/crates/air/src/layout/starknet_with_keccak/mod.rs
index fe22501..fcf5b2d 100644
--- a/crates/air/src/layout/starknet_with_keccak/mod.rs
+++ b/crates/air/src/layout/starknet_with_keccak/mod.rs
@@ -2,6 +2,7 @@ pub mod autogenerated;
pub mod global_values;
use crate::{
+ consts::*,
diluted::get_diluted_product,
layout::stark_curve,
periodic_columns::{
@@ -22,7 +23,10 @@ use starknet_crypto::{pedersen_hash, Felt};
use swiftness_commitment::table::{commit::table_commit, decommit::table_decommit};
use swiftness_transcript::ensure;
-use super::{CompositionPolyEvalError, LayoutTrait, PublicInputError};
+use super::{
+ CompositionPolyEvalError, GenericLayoutTrait, LayoutTrait, OodsPolyEvalError, PublicInputError,
+ StaticLayoutTrait,
+};
pub const BITWISE_RATIO: usize = 64;
pub const BITWISE_ROW_RATIO: usize = 1024;
@@ -74,10 +78,13 @@ pub mod segments {
pub const BITWISE: usize = 6;
pub const EC_OP: usize = 7;
pub const ECDSA: usize = 5;
+ pub const EXECUTION: usize = 1;
+ pub const KECCAK: usize = 8;
pub const N_SEGMENTS: usize = 10;
+ pub const OUTPUT: usize = 2;
pub const PEDERSEN: usize = 3;
pub const POSEIDON: usize = 9;
- pub const KECCAK: usize = 8;
+ pub const PROGRAM: usize = 0;
pub const RANGE_CHECK: usize = 4;
}
@@ -113,12 +120,24 @@ pub const BUILTINS: [Felt; 8] = [
pub struct Layout {}
+impl StaticLayoutTrait for Layout {
+ const NUM_COLUMNS_FIRST: usize = 12;
+ const NUM_COLUMNS_SECOND: usize = 3;
+}
+
+impl GenericLayoutTrait for Layout {
+ fn get_num_columns_first(_public_input: &PublicInput) -> Option {
+ Some(Self::NUM_COLUMNS_FIRST)
+ }
+ fn get_num_columns_second(_public_input: &PublicInput) -> Option {
+ Some(Self::NUM_COLUMNS_SECOND)
+ }
+}
+
impl LayoutTrait for Layout {
const CONSTRAINT_DEGREE: usize = 2;
const MASK_SIZE: usize = 734;
const N_CONSTRAINTS: usize = 347;
- const NUM_COLUMNS_FIRST: usize = 12;
- const NUM_COLUMNS_SECOND: usize = 3;
type InteractionElements = InteractionElements;
fn eval_composition_polynomial(
@@ -134,8 +153,8 @@ impl LayoutTrait for Layout {
let memory_alpha = interaction_elements.memory_multi_column_perm_hash_interaction_elm0;
// Public memory
- let public_memory_column_size = trace_domain_size
- .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(PUBLIC_MEMORY_STEP)));
+ let public_memory_column_size =
+ trace_domain_size.field_div(&NonZeroFelt::try_from(Felt::from(PUBLIC_MEMORY_STEP))?);
assert!(public_memory_column_size < u128::MAX.into());
let public_memory_prod_ratio = public_input.get_public_memory_product_ratio(
memory_z,
@@ -154,26 +173,26 @@ impl LayoutTrait for Layout {
);
// Periodic columns
- let n_steps = Felt::TWO.pow_felt(&public_input.log_n_steps);
- let n_pedersen_hash_copies = n_steps.field_div(&NonZeroFelt::from_felt_unchecked(
- Felt::from(PEDERSEN_BUILTIN_RATIO * PEDERSEN_BUILTIN_REPETITIONS),
- ));
+ let n_steps = FELT_2.pow_felt(&public_input.log_n_steps);
+ let n_pedersen_hash_copies = n_steps.field_div(&NonZeroFelt::try_from(
+ Felt::from(PEDERSEN_BUILTIN_RATIO) * Felt::from(PEDERSEN_BUILTIN_REPETITIONS),
+ )?);
assert!(n_pedersen_hash_copies < u128::MAX.into());
let pedersen_point = point.pow_felt(&n_pedersen_hash_copies);
let pedersen_points_x = eval_pedersen_x(pedersen_point);
let pedersen_points_y = eval_pedersen_y(pedersen_point);
- let n_ecdsa_signature_copies = n_steps.field_div(&NonZeroFelt::from_felt_unchecked(
- Felt::from(ECDSA_BUILTIN_RATIO * ECDSA_BUILTIN_REPETITIONS),
- ));
+ let n_ecdsa_signature_copies = n_steps.field_div(&NonZeroFelt::try_from(
+ Felt::from(ECDSA_BUILTIN_RATIO) * Felt::from(ECDSA_BUILTIN_REPETITIONS),
+ )?);
assert!(n_ecdsa_signature_copies < u128::MAX.into());
let ecdsa_point = point.pow_felt(&n_ecdsa_signature_copies);
let ecdsa_generator_points_x = eval_ecdsa_x(ecdsa_point);
let ecdsa_generator_points_y = eval_ecdsa_y(ecdsa_point);
- let n_keccak_component_copies = n_steps.field_div(&NonZeroFelt::from_felt_unchecked(
- Felt::from(DILUTED_N_BITS * KECCAK_RATIO),
- ));
+ let n_keccak_component_copies = n_steps.field_div(&NonZeroFelt::try_from(
+ Felt::from(DILUTED_N_BITS) * Felt::from(KECCAK_RATIO),
+ )?);
assert!(n_keccak_component_copies < u128::MAX.into());
let n_keccak_periodic_columns_copies = Felt::from(2048) * n_keccak_component_copies;
let keccak_point = point.pow_felt(&n_keccak_periodic_columns_copies);
@@ -186,7 +205,7 @@ impl LayoutTrait for Layout {
let keccak_keccak_keccak_round_key63 = eval_keccak_round_key63(keccak_point);
let n_poseidon_copies =
- n_steps.field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(POSEIDON_RATIO)));
+ n_steps.field_div(&NonZeroFelt::try_from(Felt::from(POSEIDON_RATIO))?);
assert!(n_pedersen_hash_copies < u128::MAX.into());
let poseidon_point = point.pow_felt(&n_poseidon_copies);
let poseidon_poseidon_full_round_key0 =
@@ -204,31 +223,23 @@ impl LayoutTrait for Layout {
trace_length: *trace_domain_size,
initial_pc: public_input
.segments
- .get(crate::layout::segments::PROGRAM)
- .ok_or(CompositionPolyEvalError::SegmentMissing {
- segment: crate::layout::segments::PROGRAM,
- })?
+ .get(segments::PROGRAM)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::PROGRAM })?
.begin_addr,
final_pc: public_input
.segments
- .get(crate::layout::segments::PROGRAM)
- .ok_or(CompositionPolyEvalError::SegmentMissing {
- segment: crate::layout::segments::PROGRAM,
- })?
+ .get(segments::PROGRAM)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::PROGRAM })?
.stop_ptr,
initial_ap: public_input
.segments
- .get(crate::layout::segments::EXECUTION)
- .ok_or(CompositionPolyEvalError::SegmentMissing {
- segment: crate::layout::segments::EXECUTION,
- })?
+ .get(segments::EXECUTION)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::EXECUTION })?
.begin_addr,
final_ap: public_input
.segments
- .get(crate::layout::segments::EXECUTION)
- .ok_or(CompositionPolyEvalError::SegmentMissing {
- segment: crate::layout::segments::EXECUTION,
- })?
+ .get(segments::EXECUTION)
+ .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::EXECUTION })?
.stop_ptr,
initial_pedersen_addr: public_input
.segments
@@ -267,8 +278,8 @@ impl LayoutTrait for Layout {
.begin_addr,
range_check_min: public_input.range_check_min,
range_check_max: public_input.range_check_max,
- offset_size: Felt::from(0x10000), // 2**16
- half_offset_size: Felt::from(0x8000), // 2**15
+ offset_size: FELT_65536,
+ half_offset_size: FELT_32768,
pedersen_shift_point: EcPoint { x: SHIFT_POINT_X, y: SHIFT_POINT_Y },
ecdsa_sig_config: EcdsaSigConfig {
alpha: stark_curve::ALPHA,
@@ -301,9 +312,9 @@ impl LayoutTrait for Layout {
diluted_check_interaction_z: diluted_z,
diluted_check_interaction_alpha: diluted_alpha,
memory_multi_column_perm_perm_public_memory_prod: public_memory_prod_ratio,
- range_check16_perm_public_memory_prod: Felt::from(1),
- diluted_check_first_elm: Felt::from(0),
- diluted_check_permutation_public_memory_prod: Felt::from(1),
+ range_check16_perm_public_memory_prod: FELT_1,
+ diluted_check_first_elm: FELT_0,
+ diluted_check_permutation_public_memory_prod: FELT_1,
diluted_check_final_cum_val: diluted_prod,
};
@@ -316,21 +327,22 @@ impl LayoutTrait for Layout {
))
}
fn eval_oods_polynomial(
+ _public_input: &PublicInput,
column_values: &[Felt],
oods_values: &[Felt],
constraint_coefficients: &[Felt],
point: &Felt,
oods_point: &Felt,
trace_generator: &Felt,
- ) -> Felt {
- autogenerated::eval_oods_polynomial_inner::(
+ ) -> Result {
+ Ok(autogenerated::eval_oods_polynomial_inner::(
column_values,
oods_values,
constraint_coefficients,
point,
oods_point,
trace_generator,
- )
+ ))
}
fn traces_commit(
transcript: &mut swiftness_transcript::transcript::Transcript,
@@ -374,7 +386,7 @@ impl LayoutTrait for Layout {
) -> Result<(), PublicInputError> {
ensure!(public_input.log_n_steps < MAX_LOG_N_STEPS, PublicInputError::MaxSteps);
- let n_steps = Felt::TWO.pow_felt(&public_input.log_n_steps);
+ let n_steps = FELT_2.pow_felt(&public_input.log_n_steps);
let trace_length = stark_domains.trace_domain_size;
ensure!(
n_steps * Felt::from(CPU_COMPONENT_HEIGHT) * Felt::from(CPU_COMPONENT_STEP)
@@ -382,7 +394,12 @@ impl LayoutTrait for Layout {
PublicInputError::TraceLengthInvalid
);
- ensure!(Felt::ZERO <= public_input.range_check_min, PublicInputError::RangeCheckInvalid);
+ ensure!(
+ public_input.segments.len() == segments::N_SEGMENTS,
+ PublicInputError::InvalidSegments
+ );
+
+ ensure!(FELT_0 <= public_input.range_check_min, PublicInputError::RangeCheckInvalid);
ensure!(
public_input.range_check_min < public_input.range_check_max,
PublicInputError::RangeCheckInvalid
@@ -396,68 +413,119 @@ impl LayoutTrait for Layout {
let output_uses = public_input
.segments
- .get(crate::layout::segments::OUTPUT)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::OUTPUT })?
+ .get(segments::OUTPUT)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
.stop_ptr
- public_input
.segments
- .get(crate::layout::segments::OUTPUT)
- .ok_or(PublicInputError::SegmentMissing {
- segment: crate::layout::segments::OUTPUT,
- })?
+ .get(segments::OUTPUT)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
.begin_addr;
- ensure!(output_uses < u128::MAX.into(), PublicInputError::UsesInvalid);
+ ensure!(output_uses <= u128::MAX.into(), PublicInputError::UsesInvalid);
- let pedersen_copies = trace_length
- .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(PEDERSEN_BUILTIN_ROW_RATIO)));
+ let pedersen_copies =
+ trace_length.field_div(&NonZeroFelt::try_from(Felt::from(PEDERSEN_BUILTIN_ROW_RATIO))?);
let pedersen_uses = (public_input
.segments
.get(segments::PEDERSEN)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::OUTPUT })?
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::PEDERSEN })?
.stop_ptr
- public_input
.segments
.get(segments::PEDERSEN)
- .ok_or(PublicInputError::SegmentMissing {
- segment: crate::layout::segments::OUTPUT,
- })?
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::PEDERSEN })?
.begin_addr)
- .field_div(&NonZeroFelt::from_felt_unchecked(Felt::THREE));
- ensure!(pedersen_uses < pedersen_copies, PublicInputError::UsesInvalid);
+ .field_div(&NonZeroFelt::from_felt_unchecked(FELT_3));
+ ensure!(pedersen_uses <= pedersen_copies, PublicInputError::UsesInvalid);
- let range_check_copies = trace_length.field_div(&NonZeroFelt::from_felt_unchecked(
- Felt::from(RANGE_CHECK_BUILTIN_ROW_RATIO),
- ));
+ let range_check_copies = trace_length
+ .field_div(&NonZeroFelt::try_from(Felt::from(RANGE_CHECK_BUILTIN_ROW_RATIO))?);
let range_check_uses = public_input
.segments
.get(segments::RANGE_CHECK)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::OUTPUT })?
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::RANGE_CHECK })?
.stop_ptr
- public_input
.segments
.get(segments::RANGE_CHECK)
- .ok_or(PublicInputError::SegmentMissing {
- segment: crate::layout::segments::OUTPUT,
- })?
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::RANGE_CHECK })?
.begin_addr;
- ensure!(range_check_uses < range_check_copies, PublicInputError::UsesInvalid);
+ ensure!(range_check_uses <= range_check_copies, PublicInputError::UsesInvalid);
- let bitwise_copies = trace_length
- .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(BITWISE_ROW_RATIO)));
+ let ecdsa_copies =
+ trace_length.field_div(&NonZeroFelt::try_from(Felt::from(ECDSA_BUILTIN_ROW_RATIO))?);
+ let ecdsa_uses = (public_input
+ .segments
+ .get(segments::ECDSA)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::ECDSA })?
+ .stop_ptr
+ - public_input
+ .segments
+ .get(segments::ECDSA)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::ECDSA })?
+ .begin_addr)
+ .field_div(&NonZeroFelt::from_felt_unchecked(FELT_2));
+ ensure!(ecdsa_uses <= ecdsa_copies, PublicInputError::UsesInvalid);
+
+ let bitwise_copies =
+ trace_length.field_div(&NonZeroFelt::try_from(Felt::from(BITWISE_ROW_RATIO))?);
let bitwise_uses = (public_input
.segments
.get(segments::BITWISE)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::OUTPUT })?
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::BITWISE })?
.stop_ptr
- public_input
.segments
.get(segments::BITWISE)
- .ok_or(PublicInputError::SegmentMissing {
- segment: crate::layout::segments::OUTPUT,
- })?
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::BITWISE })?
+ .begin_addr)
+ .field_div(&NonZeroFelt::from_felt_unchecked(FELT_5));
+ ensure!(bitwise_uses <= bitwise_copies, PublicInputError::UsesInvalid);
+
+ let ec_op_copies =
+ trace_length.field_div(&NonZeroFelt::try_from(Felt::from(EC_OP_BUILTIN_ROW_RATIO))?);
+ let ec_op_uses = (public_input
+ .segments
+ .get(segments::EC_OP)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::EC_OP })?
+ .stop_ptr
+ - public_input
+ .segments
+ .get(segments::EC_OP)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::EC_OP })?
+ .begin_addr)
+ .field_div(&NonZeroFelt::from_felt_unchecked(FELT_7));
+ ensure!(ec_op_uses <= ec_op_copies, PublicInputError::UsesInvalid);
+
+ let keccak_copies =
+ trace_length.field_div(&NonZeroFelt::try_from(Felt::from(KECCAK_ROW_RATIO))?);
+ let keccak_uses = (public_input
+ .segments
+ .get(segments::KECCAK)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::KECCAK })?
+ .stop_ptr
+ - public_input
+ .segments
+ .get(segments::KECCAK)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::KECCAK })?
+ .begin_addr)
+ .field_div(&NonZeroFelt::from_felt_unchecked(FELT_16));
+ ensure!(keccak_uses <= keccak_copies, PublicInputError::UsesInvalid);
+
+ let poseidon_copies =
+ trace_length.field_div(&NonZeroFelt::try_from(Felt::from(POSEIDON_ROW_RATIO))?);
+ let poseidon_uses = (public_input
+ .segments
+ .get(segments::POSEIDON)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::POSEIDON })?
+ .stop_ptr
+ - public_input
+ .segments
+ .get(segments::POSEIDON)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::POSEIDON })?
.begin_addr)
- .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(0x5)));
- ensure!(bitwise_uses < bitwise_copies, PublicInputError::UsesInvalid);
+ .field_div(&NonZeroFelt::from_felt_unchecked(FELT_6));
+ ensure!(poseidon_uses <= poseidon_copies, PublicInputError::UsesInvalid);
Ok(())
}
@@ -465,29 +533,29 @@ impl LayoutTrait for Layout {
let public_segments = &public_input.segments;
let initial_pc = public_segments
- .get(crate::layout::segments::PROGRAM)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::PROGRAM)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::PROGRAM })?
.begin_addr;
let final_pc = public_segments
- .get(crate::layout::segments::PROGRAM)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::PROGRAM)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::PROGRAM })?
.stop_ptr;
let initial_ap = public_segments
- .get(crate::layout::segments::EXECUTION)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::EXECUTION)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::EXECUTION })?
.begin_addr;
let initial_fp = initial_ap;
let final_ap = public_segments
- .get(crate::layout::segments::EXECUTION)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::EXECUTION)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::EXECUTION })?
.stop_ptr;
let output_start = public_segments
- .get(crate::layout::segments::OUTPUT)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::OUTPUT)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
.begin_addr;
let output_stop = public_segments
- .get(crate::layout::segments::OUTPUT)
- .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })?
+ .get(segments::OUTPUT)
+ .ok_or(PublicInputError::SegmentMissing { segment: segments::OUTPUT })?
.stop_ptr;
ensure!(initial_ap < MAX_ADDRESS, PublicInputError::MaxSteps);
@@ -503,24 +571,23 @@ impl LayoutTrait for Layout {
.collect::>();
ensure!(initial_pc == INITIAL_PC, PublicInputError::MaxSteps);
- ensure!(final_pc == INITIAL_PC + 4, PublicInputError::MaxSteps);
+ ensure!(final_pc == INITIAL_PC + FELT_4, PublicInputError::MaxSteps);
- let program_end_pc = initial_fp - 2;
+ let program_end_pc = initial_fp - FELT_2;
let program: Vec<&Felt> = memory
.iter()
.skip(initial_pc.to_bigint().try_into().unwrap())
.step_by(2)
- .take((program_end_pc - Felt::ONE).to_bigint().try_into().unwrap())
+ .take((program_end_pc - FELT_1).to_bigint().try_into().unwrap())
.collect();
- let hash = program.iter().fold(Felt::ZERO, |acc, &e| pedersen_hash(&acc, e));
+ let hash = program.iter().fold(FELT_0, |acc, &e| pedersen_hash(&acc, e));
let program_hash = pedersen_hash(&hash, &Felt::from(program.len()));
let output_len: usize = (output_stop - output_start).to_bigint().try_into().unwrap();
let output = &memory[memory.len() - output_len * 2..];
- let hash =
- output.iter().skip(1).step_by(2).fold(Felt::ZERO, |acc, e| pedersen_hash(&acc, e));
+ let hash = output.iter().skip(1).step_by(2).fold(FELT_0, |acc, e| pedersen_hash(&acc, e));
let output_hash = pedersen_hash(&hash, &Felt::from(output_len));
Ok((program_hash, output_hash))
diff --git a/crates/air/src/lib.rs b/crates/air/src/lib.rs
index 44b1578..4698f76 100644
--- a/crates/air/src/lib.rs
+++ b/crates/air/src/lib.rs
@@ -5,8 +5,10 @@ extern crate alloc;
#[cfg(feature = "std")]
extern crate std;
+pub mod consts;
pub mod diluted;
pub mod domains;
+pub mod dynamic;
pub mod fixtures;
pub mod layout;
pub mod periodic_columns;
diff --git a/crates/air/src/periodic_columns.rs b/crates/air/src/periodic_columns.rs
index 916136c..38cbafb 100644
--- a/crates/air/src/periodic_columns.rs
+++ b/crates/air/src/periodic_columns.rs
@@ -1,3 +1,4 @@
+use crate::consts::FELT_0;
use starknet_crypto::Felt;
// Evaluates a periodic column at a point.
@@ -5,7 +6,7 @@ use starknet_crypto::Felt;
// To simulate a periodic column with 2**k repetitions, one should evaluate at point**(2**k)
// instead.
pub fn eval_pedersen_x(point: Felt) -> Felt {
- let mut res = Felt::ZERO;
+ let mut res = FELT_0;
res = res * point
+ Felt::from_hex_unchecked(
"0x43869b387c2d0eab20661ebdfaca58b4b23feac014e1e1d9413164312e77da",
@@ -2062,7 +2063,7 @@ pub fn eval_pedersen_x(point: Felt) -> Felt {
// To simulate a periodic column with 2**k repetitions, one should evaluate at point**(2**k)
// instead.
pub fn eval_pedersen_y(point: Felt) -> Felt {
- let mut res = Felt::ZERO;
+ let mut res = FELT_0;
res = res * point
+ Felt::from_hex_unchecked(
"0x62b07622f501888a668440d9b856be4b0c3bf12a401fc2bebaeab4a7e1684ad",
@@ -4119,7 +4120,7 @@ pub fn eval_pedersen_y(point: Felt) -> Felt {
// To simulate a periodic column with 2**k repetitions, one should evaluate at point**(2**k)
// instead.
pub fn eval_ecdsa_x(point: Felt) -> Felt {
- let mut res = Felt::ZERO;
+ let mut res = FELT_0;
res = res * point
+ Felt::from_hex_unchecked(
"0x22aac295d2c9dd7e94269a4a72b2fb3c3af04a0cb42ed1f66cfd446fc505ee2",
@@ -5152,7 +5153,7 @@ pub fn eval_ecdsa_x(point: Felt) -> Felt {
// To simulate a periodic column with 2**k repetitions, one should evaluate at point**(2**k)
// instead.
pub fn eval_ecdsa_y(point: Felt) -> Felt {
- let mut res = Felt::ZERO;
+ let mut res = FELT_0;
res = res * point
+ Felt::from_hex_unchecked(
"0x23a2994e807cd40717d68f37e1d765f4354a81b12374c82f481f09f9faff31a",
@@ -6185,7 +6186,7 @@ pub fn eval_ecdsa_y(point: Felt) -> Felt {
// To simulate a periodic column with 2**k repetitions, one should evaluate at point**(2**k)
// instead.
pub fn eval_keccak_round_key0(point: Felt) -> Felt {
- let mut res = Felt::ZERO;
+ let mut res = FELT_0;
res = res * point
+ Felt::from_hex_unchecked(
"0x25257ecfcf301b18da64254e59b151a549668b8c150b39f71eb3e3508224fbb",
@@ -6319,7 +6320,7 @@ pub fn eval_keccak_round_key0(point: Felt) -> Felt {
// To simulate a periodic column with 2**k repetitions, one should evaluate at point**(2**k)
// instead.
pub fn eval_keccak_round_key1(point: Felt) -> Felt {
- let mut res = Felt::ZERO;
+ let mut res = FELT_0;
res = res * point
+ Felt::from_hex_unchecked(
"0x46c20a61e3dd5f8e8d4085bfcf8e52c9c50152285742b9ba783a4edb6608353",
@@ -6453,7 +6454,7 @@ pub fn eval_keccak_round_key1(point: Felt) -> Felt {
// To simulate a periodic column with 2**k repetitions, one should evaluate at point**(2**k)
// instead.
pub fn eval_keccak_round_key3(point: Felt) -> Felt {
- let mut res = Felt::ZERO;
+ let mut res = FELT_0;
res = res * point
+ Felt::from_hex_unchecked(
"0x4a025b231a318123295e4fc2ad69f9552eec69c64066fac264b1cfcdd7d3158",
@@ -6587,7 +6588,7 @@ pub fn eval_keccak_round_key3(point: Felt) -> Felt {
// To simulate a periodic column with 2**k repetitions, one should evaluate at point**(2**k)
// instead.
pub fn eval_keccak_round_key7(point: Felt) -> Felt {
- let mut res = Felt::ZERO;
+ let mut res = FELT_0;
res = res * point
+ Felt::from_hex_unchecked(
"0x279b1137fbe58a227ed345e6b3136ea36aa5eabb7ebaac5f226c318ef599e60",
@@ -6721,7 +6722,7 @@ pub fn eval_keccak_round_key7(point: Felt) -> Felt {
// To simulate a periodic column with 2**k repetitions, one should evaluate at point**(2**k)
// instead.
pub fn eval_keccak_round_key15(point: Felt) -> Felt {
- let mut res = Felt::ZERO;
+ let mut res = FELT_0;
res = res * point
+ Felt::from_hex_unchecked(
"0x24ec7e1a7b8bcb5b138102f4131d7fa12dd5fc5278251892aa929a46b50dec4",
@@ -6858,7 +6859,7 @@ pub fn eval_keccak_round_key15(point: Felt) -> Felt {
// To simulate a periodic column with 2**k repetitions, one should evaluate at point**(2**k)
// instead.
pub fn eval_keccak_round_key31(point: Felt) -> Felt {
- let mut res = Felt::ZERO;
+ let mut res = FELT_0;
res = res * point
+ Felt::from_hex_unchecked(
"0x5852cb7312b6299275e11e7bf04e6a604038b1398d93ed46cdfa41cb9503116",
@@ -6995,7 +6996,7 @@ pub fn eval_keccak_round_key31(point: Felt) -> Felt {
// To simulate a periodic column with 2**k repetitions, one should evaluate at point**(2**k)
// instead.
pub fn eval_keccak_round_key63(point: Felt) -> Felt {
- let mut res = Felt::ZERO;
+ let mut res = FELT_0;
res = res * point
+ Felt::from_hex_unchecked(
"0x13c65642d180be37bf6db1ca47e2884a87a9c17aaa35744910c1b0fccc4c50f",
@@ -7132,7 +7133,7 @@ pub fn eval_keccak_round_key63(point: Felt) -> Felt {
// To simulate a periodic column with 2**k repetitions, one should evaluate at point**(2**k)
// instead.
pub fn eval_poseidon_poseidon_full_round_key0(point: Felt) -> Felt {
- let mut res = Felt::ZERO;
+ let mut res = FELT_0;
res = res * point
+ Felt::from_hex_unchecked(
"0x7ed6ec4a18e23340489e4e36db8f4fcebf6b6ebd56185c29397344c5deea4c8",
@@ -7173,7 +7174,7 @@ pub fn eval_poseidon_poseidon_full_round_key0(point: Felt) -> Felt {
// To simulate a periodic column with 2**k repetitions, one should evaluate at point**(2**k)
// instead.
pub fn eval_poseidon_poseidon_full_round_key1(point: Felt) -> Felt {
- let mut res = Felt::ZERO;
+ let mut res = FELT_0;
res = res * point
+ Felt::from_hex_unchecked(
"0x143ce163d9e857b549efa236512d839954411bc04e888aa114215f991ee8a57",
@@ -7214,7 +7215,7 @@ pub fn eval_poseidon_poseidon_full_round_key1(point: Felt) -> Felt {
// To simulate a periodic column with 2**k repetitions, one should evaluate at point**(2**k)
// instead.
pub fn eval_poseidon_poseidon_full_round_key2(point: Felt) -> Felt {
- let mut res = Felt::ZERO;
+ let mut res = FELT_0;
res = res * point
+ Felt::from_hex_unchecked(
"0x565a88ff293c0a9c48cb67be157ad800604990d390e1b173e9bdc09abf9f788",
@@ -7255,7 +7256,7 @@ pub fn eval_poseidon_poseidon_full_round_key2(point: Felt) -> Felt {
// To simulate a periodic column with 2**k repetitions, one should evaluate at point**(2**k)
// instead.
pub fn eval_poseidon_poseidon_partial_round_key0(point: Felt) -> Felt {
- let mut res = Felt::ZERO;
+ let mut res = FELT_0;
res = res * point
+ Felt::from_hex_unchecked(
"0x3413bee8966e47edad4d25455e74664d547713650ae8ef6f7f4bd1d56077b55",
@@ -7520,7 +7521,7 @@ pub fn eval_poseidon_poseidon_partial_round_key0(point: Felt) -> Felt {
// To simulate a periodic column with 2**k repetitions, one should evaluate at point**(2**k)
// instead.
pub fn eval_poseidon_poseidon_partial_round_key1(point: Felt) -> Felt {
- let mut res = Felt::ZERO;
+ let mut res = FELT_0;
res = res * point
+ Felt::from_hex_unchecked(
"0x26f2aa4059eb10ba60302d001cdf4a5482d43e2d7d05bd2b5486cd8c52ab9be",
diff --git a/crates/air/src/public_memory.rs b/crates/air/src/public_memory.rs
index 99963af..f1d2b0f 100644
--- a/crates/air/src/public_memory.rs
+++ b/crates/air/src/public_memory.rs
@@ -1,4 +1,8 @@
-use crate::types::{ContinuousPageHeader, Page, SegmentInfo};
+use crate::{
+ consts::{FELT_0, FELT_1, FELT_2},
+ dynamic::DynamicParams,
+ types::{ContinuousPageHeader, Page, SegmentInfo},
+};
use alloc::vec;
use alloc::vec::Vec;
use serde::{Deserialize, Serialize};
@@ -6,7 +10,7 @@ use serde_with::serde_as;
use starknet_core::types::NonZeroFelt;
use starknet_crypto::{pedersen_hash, poseidon_hash_many, Felt};
-pub const MAX_LOG_N_STEPS: Felt = Felt::from_hex_unchecked("50");
+pub const MAX_LOG_N_STEPS: Felt = Felt::from_hex_unchecked("0x50");
pub const MAX_RANGE_CHECK: Felt = Felt::from_hex_unchecked("0xffff");
pub const MAX_ADDRESS: Felt = Felt::from_hex_unchecked("0xffffffffffffffff");
pub const INITIAL_PC: Felt = Felt::from_hex_unchecked("0x1");
@@ -34,11 +38,8 @@ pub struct PublicInput {
serde_as(as = "starknet_core::serde::unsigned_field_element::UfeHex")
)]
pub layout: Felt,
- #[cfg_attr(
- feature = "std",
- serde_as(as = "Vec")
- )]
- pub dynamic_params: Vec,
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub dynamic_params: Option,
pub segments: Vec,
#[cfg_attr(
feature = "std",
@@ -56,7 +57,7 @@ pub struct PublicInput {
impl PublicInput {
// Returns the ratio between the product of all public memory cells and z^|public_memory|.
- // This is the value that needs to be at the memory__multi_column_perm__perm__public_memory_prod
+ // This is the value that needs to be at the memory_multi_column_perm_perm_public_memory_prod
// member expression.
pub fn get_public_memory_product_ratio(
&self,
@@ -90,18 +91,38 @@ impl PublicInput {
(prod, total_length)
}
- pub fn get_hash(&self) -> Felt {
- let mut main_page_hash = Felt::ZERO;
+ #[cfg_attr(feature = "stone5", allow(unused_variables))]
+ pub fn get_hash(&self, n_verifier_friendly_commitment_layers: Felt) -> Felt {
+ let mut main_page_hash = FELT_0;
for memory in self.main_page.iter() {
main_page_hash = pedersen_hash(&main_page_hash, &memory.address);
main_page_hash = pedersen_hash(&main_page_hash, &memory.value);
}
main_page_hash =
- pedersen_hash(&main_page_hash, &(Felt::TWO * Felt::from(self.main_page.len())));
-
- let mut hash_data =
- vec![self.log_n_steps, self.range_check_min, self.range_check_max, self.layout];
- hash_data.extend(self.dynamic_params.iter());
+ pedersen_hash(&main_page_hash, &(FELT_2 * Felt::from(self.main_page.len())));
+
+ let mut hash_data = {
+ #[cfg(feature = "stone5")]
+ {
+ vec![self.log_n_steps, self.range_check_min, self.range_check_max, self.layout]
+ }
+ #[cfg(feature = "stone6")]
+ {
+ vec![
+ n_verifier_friendly_commitment_layers,
+ self.log_n_steps,
+ self.range_check_min,
+ self.range_check_max,
+ self.layout,
+ ]
+ }
+ };
+
+ if let Some(dynamic_params) = &self.dynamic_params {
+ let dynamic_params_vec: Vec = dynamic_params.clone().into();
+
+ hash_data.extend(dynamic_params_vec.into_iter().map(Felt::from).collect::>());
+ }
// Segments.
hash_data.extend(self.segments.iter().flat_map(|s| vec![s.begin_addr, s.stop_ptr]));
@@ -124,8 +145,8 @@ impl PublicInput {
}
fn get_continuous_pages_product(page_headers: &[ContinuousPageHeader]) -> (Felt, Felt) {
- let mut res = Felt::ONE;
- let mut total_length = Felt::ZERO;
+ let mut res = FELT_1;
+ let mut total_length = FELT_0;
for header in page_headers {
res *= header.prod;
diff --git a/crates/air/src/tests/public_input.rs b/crates/air/src/tests/public_input.rs
index 349c3b8..bf61321 100644
--- a/crates/air/src/tests/public_input.rs
+++ b/crates/air/src/tests/public_input.rs
@@ -4,10 +4,19 @@ use starknet_crypto::Felt;
#[test]
fn test_public_input_hash() {
let public_input = get();
- assert_eq!(
- public_input.get_hash(),
- Felt::from_hex_unchecked(
- "0xaf91f2c71f4a594b1575d258ce82464475c82d8fb244142d0db450491c1b52"
- )
- );
+ let expected = {
+ #[cfg(feature = "stone5")]
+ {
+ Felt::from_hex_unchecked(
+ "0xaf91f2c71f4a594b1575d258ce82464475c82d8fb244142d0db450491c1b52",
+ )
+ }
+ #[cfg(feature = "stone6")]
+ {
+ Felt::from_hex_unchecked(
+ "0x78995ef92826448325c224646b2904b3ede3d36fdf35c3d12839c2bbff6d2e7",
+ )
+ }
+ };
+ assert_eq!(public_input.get_hash(Felt::ZERO), expected);
}
diff --git a/crates/air/src/trace/config.rs b/crates/air/src/trace/config.rs
index 85d4ee3..b1816bb 100644
--- a/crates/air/src/trace/config.rs
+++ b/crates/air/src/trace/config.rs
@@ -1,4 +1,3 @@
-use crate::layout::LayoutTrait;
use serde::{Deserialize, Serialize};
use starknet_crypto::Felt;
use swiftness_commitment::vector;
@@ -13,10 +12,12 @@ pub struct Config {
}
impl Config {
- pub fn validate(
+ pub fn validate(
&self,
log_eval_domain_size: Felt,
n_verifier_friendly_commitment_layers: Felt,
+ n_columns_original: Felt,
+ n_columns_interaction: Felt,
) -> Result<(), Error> {
if self.original.n_columns < Felt::ONE || self.original.n_columns > MAX_N_COLUMNS {
return Err(Error::OutOfBounds { min: Felt::ONE, max: MAX_N_COLUMNS });
@@ -25,11 +26,11 @@ impl Config {
return Err(Error::OutOfBounds { min: Felt::ONE, max: MAX_N_COLUMNS });
}
- if self.original.n_columns != Layout::NUM_COLUMNS_FIRST.into() {
+ if self.original.n_columns != n_columns_original {
return Err(Error::ColumnsNumInvalid);
}
- if self.interaction.n_columns != Layout::NUM_COLUMNS_SECOND.into() {
+ if self.interaction.n_columns != n_columns_interaction {
return Err(Error::ColumnsNumInvalid);
}
diff --git a/crates/commitment/Cargo.toml b/crates/commitment/Cargo.toml
index 480a2d8..c18efc3 100644
--- a/crates/commitment/Cargo.toml
+++ b/crates/commitment/Cargo.toml
@@ -8,24 +8,27 @@ repository.workspace = true
version.workspace = true
[features]
-default = ["std", "keccak"]
+default = ["std", "keccak_160_lsb"]
std = [
"dep:thiserror",
"swiftness_transcript/std",
"starknet-crypto/std",
]
-keccak = []
-blake2s = []
+keccak_160_lsb = []
+keccak_248_lsb = []
+blake2s_160_lsb = []
+blake2s_248_lsb = []
[dependencies]
+blake2.workspace = true
+num-bigint.workspace = true
serde_with.workspace = true
serde.workspace = true
sha3.workspace = true
starknet-core.workspace = true
-starknet-types-core.workspace = true
starknet-crypto.workspace = true
+starknet-types-core.workspace = true
thiserror = { optional = true, workspace = true }
thiserror-no-std.workspace = true
-blake2.workspace = true
swiftness_transcript.workspace = true
diff --git a/crates/commitment/src/table/decommit.rs b/crates/commitment/src/table/decommit.rs
index 2361491..0902f1a 100644
--- a/crates/commitment/src/table/decommit.rs
+++ b/crates/commitment/src/table/decommit.rs
@@ -1,18 +1,13 @@
+use super::types::{Commitment, Decommitment, Witness};
use crate::vector::{decommit::vector_commitment_decommit, types::Query};
use alloc::vec::Vec;
+#[cfg(any(feature = "blake2s_160_lsb", feature = "blake2s_248_lsb"))]
+use blake2::{Blake2s256, Digest};
+use num_bigint::{BigInt, TryFromBigIntError};
+#[cfg(any(feature = "keccak_160_lsb", feature = "keccak_248_lsb"))]
+use sha3::{Digest, Keccak256};
use starknet_crypto::{poseidon_hash_many, Felt};
-#[cfg(feature = "blake2s")]
-use blake2::Blake2s256;
-#[cfg(feature = "blake2s")]
-use blake2::Digest;
-#[cfg(feature = "keccak")]
-use sha3::Digest;
-#[cfg(feature = "keccak")]
-use sha3::Keccak256;
-
-use super::types::{Commitment, Decommitment, Witness};
-
const MONTGOMERY_R: Felt =
Felt::from_hex_unchecked("0x7FFFFFFFFFFFDF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1");
@@ -32,7 +27,7 @@ pub fn table_decommit(
commitment.vector_commitment.config.n_verifier_friendly_commitment_layers
>= bottom_layer_depth;
- let n_columns: u32 = commitment.config.n_columns.to_bigint().try_into().unwrap();
+ let n_columns: u32 = commitment.config.n_columns.to_bigint().try_into()?;
if n_columns as usize * queries.len() != decommitment.values.len() {
return Err(Error::DecommitmentLength);
}
@@ -70,13 +65,30 @@ fn generate_vector_queries(
let mut data = Vec::new();
data.extend(slice.iter().flat_map(|x| x.to_bytes_be().to_vec()));
- #[cfg(feature = "keccak")]
- let mut hasher = Keccak256::new();
- #[cfg(feature = "blake2s")]
- let mut hasher = Blake2s256::new();
+ let mut hasher = {
+ #[cfg(any(feature = "keccak_160_lsb", feature = "keccak_248_lsb"))]
+ {
+ Keccak256::new()
+ }
+ #[cfg(any(feature = "blake2s_160_lsb", feature = "blake2s_248_lsb"))]
+ {
+ Blake2s256::new()
+ }
+ };
hasher.update(&data);
- Felt::from_bytes_be_slice(&hasher.finalize().to_vec().as_slice()[12..32])
+
+ {
+ #[cfg(any(feature = "keccak_160_lsb", feature = "blake2s_160_lsb"))]
+ {
+ Felt::from_bytes_be_slice(&hasher.finalize().as_slice()[12..32])
+ }
+
+ #[cfg(any(feature = "keccak_248_lsb", feature = "blake2s_248_lsb"))]
+ {
+ Felt::from_bytes_be_slice(&hasher.finalize().as_slice()[1..32])
+ }
+ }
};
vector_queries.push(Query { index: queries[i], value: hash })
@@ -96,6 +108,9 @@ pub enum Error {
#[error("Vector Error")]
Vector(#[from] crate::vector::decommit::Error),
+
+ #[error("BigInt conversion Error")]
+ TryFromBigInt(#[from] TryFromBigIntError),
}
#[cfg(not(feature = "std"))]
@@ -109,4 +124,7 @@ pub enum Error {
#[error("Vector Error")]
Vector(#[from] crate::vector::decommit::Error),
+
+ #[error("BigInt conversion Error")]
+ TryFromBigInt(#[from] TryFromBigIntError),
}
diff --git a/crates/commitment/src/vector/decommit.rs b/crates/commitment/src/vector/decommit.rs
index 97d142d..756d537 100644
--- a/crates/commitment/src/vector/decommit.rs
+++ b/crates/commitment/src/vector/decommit.rs
@@ -1,13 +1,9 @@
use super::types::{Commitment, Query, QueryWithDepth, Witness};
use alloc::vec::Vec;
-#[cfg(feature = "blake2s")]
-use blake2::Blake2s256;
-#[cfg(feature = "blake2s")]
-use blake2::Digest;
-#[cfg(feature = "keccak")]
-use sha3::Digest;
-#[cfg(feature = "keccak")]
-use sha3::Keccak256;
+#[cfg(any(feature = "blake2s_160_lsb", feature = "blake2s_248_lsb"))]
+use blake2::{Blake2s256, Digest};
+#[cfg(any(feature = "keccak_160_lsb", feature = "keccak_248_lsb"))]
+use sha3::{Digest, Keccak256};
use starknet_core::types::NonZeroFelt;
use starknet_crypto::{poseidon_hash, Felt};
@@ -115,13 +111,30 @@ fn hash_friendly_unfriendly(x: Felt, y: Felt, is_verifier_friendly: bool) -> Fel
hash_data.extend(&x.to_bytes_be());
hash_data.extend(&y.to_bytes_be());
- #[cfg(feature = "keccak")]
- let mut hasher = Keccak256::new();
- #[cfg(feature = "blake2s")]
- let mut hasher = Blake2s256::new();
+ let mut hasher = {
+ #[cfg(any(feature = "keccak_160_lsb", feature = "keccak_248_lsb"))]
+ {
+ Keccak256::new()
+ }
+ #[cfg(any(feature = "blake2s_160_lsb", feature = "blake2s_248_lsb"))]
+ {
+ Blake2s256::new()
+ }
+ };
hasher.update(&hash_data);
- Felt::from_bytes_be_slice(&hasher.finalize().to_vec().as_slice()[12..32])
+
+ {
+ #[cfg(any(feature = "keccak_160_lsb", feature = "blake2s_160_lsb"))]
+ {
+ Felt::from_bytes_be_slice(&hasher.finalize().as_slice()[12..32])
+ }
+
+ #[cfg(any(feature = "keccak_248_lsb", feature = "blake2s_248_lsb"))]
+ {
+ Felt::from_bytes_be_slice(&hasher.finalize().as_slice()[1..32])
+ }
+ }
}
}
diff --git a/crates/fri/Cargo.toml b/crates/fri/Cargo.toml
index 678de0d..0846515 100644
--- a/crates/fri/Cargo.toml
+++ b/crates/fri/Cargo.toml
@@ -8,7 +8,7 @@ repository.workspace = true
version.workspace = true
[features]
-default = ["std", "keccak"]
+default = ["std", "keccak_160_lsb"]
std = [
"dep:thiserror",
"swiftness_commitment/std",
@@ -16,14 +16,13 @@ std = [
"starknet-core/std",
"starknet-crypto/std",
]
-keccak = [
- "swiftness_commitment/keccak",
-]
-blake2s = [
- "swiftness_commitment/blake2s",
-]
+keccak_160_lsb = ["swiftness_commitment/keccak_160_lsb"]
+keccak_248_lsb = ["swiftness_commitment/keccak_248_lsb"]
+blake2s_160_lsb = ["swiftness_commitment/blake2s_160_lsb"]
+blake2s_248_lsb = ["swiftness_commitment/blake2s_248_lsb"]
[dependencies]
+num-bigint.workspace = true
serde_with.workspace = true
serde.workspace = true
sha3.workspace = true
diff --git a/crates/fri/src/config.rs b/crates/fri/src/config.rs
index 47f0e54..f9b8c63 100644
--- a/crates/fri/src/config.rs
+++ b/crates/fri/src/config.rs
@@ -1,4 +1,5 @@
use alloc::vec::Vec;
+use num_bigint::{BigInt, TryFromBigIntError};
use serde::{Deserialize, Serialize};
use serde_with::serde_as;
use starknet_crypto::Felt;
@@ -59,7 +60,7 @@ impl Config {
return Err(Error::FirstFriStepInvalid);
}
- let n_layers: usize = self.n_layers.to_bigint().try_into().unwrap();
+ let n_layers: usize = self.n_layers.to_bigint().try_into()?;
let mut sum_of_step_sizes = Felt::ZERO;
let mut log_input_size = self.log_input_size;
@@ -72,7 +73,7 @@ impl Config {
if fri_step < MIN_FRI_STEP.into() || fri_step > MAX_FRI_STEP.into() {
return Err(Error::OutOfBounds { min: MIN_FRI_STEP, max: MAX_FRI_STEP });
}
- let fri_step: u64 = fri_step.to_bigint().try_into().unwrap();
+ let fri_step: u64 = fri_step.to_bigint().try_into()?;
let expected_n_columns = Felt::from(2).pow(fri_step);
if table_commitment.n_columns != expected_n_columns {
return Err(Error::InvalidColumnCount {
@@ -88,7 +89,7 @@ impl Config {
let log_expected_input_degree = sum_of_step_sizes + self.log_last_layer_degree_bound;
if log_expected_input_degree + log_n_cosets != self.log_input_size {
return Err(Error::LogInputSizeMismatch {
- expected: log_expected_input_degree,
+ expected: log_expected_input_degree + log_n_cosets,
actual: self.log_input_size,
});
}
@@ -113,6 +114,8 @@ pub enum Error {
LogInputSizeMismatch { expected: Felt, actual: Felt },
#[error("vector validation failed: {0}")]
VectorValidationFailed(#[from] swiftness_commitment::vector::config::Error),
+ #[error("BigInt conversion Error")]
+ TryFromBigInt(#[from] TryFromBigIntError),
}
#[cfg(not(feature = "std"))]
@@ -131,4 +134,6 @@ pub enum Error {
LogInputSizeMismatch { expected: Felt, actual: Felt },
#[error("vector validation failed: {0}")]
VectorValidationFailed(#[from] swiftness_commitment::vector::config::Error),
+ #[error("BigInt conversion Error")]
+ TryFromBigInt(#[from] TryFromBigIntError),
}
diff --git a/crates/fri/src/formula.rs b/crates/fri/src/formula.rs
index 5980258..73f4c0f 100644
--- a/crates/fri/src/formula.rs
+++ b/crates/fri/src/formula.rs
@@ -1,4 +1,5 @@
use alloc::vec::Vec;
+use num_bigint::{BigUint, TryFromBigIntError};
use starknet_crypto::Felt;
// Constants representing primitive roots of unity for orders 2, 4, 8, and 16.
@@ -76,7 +77,7 @@ pub fn fri_formula(
x_inv: Felt,
coset_size: Felt,
) -> Result {
- let coset_size: u64 = coset_size.to_biguint().try_into().unwrap();
+ let coset_size: u64 = coset_size.to_biguint().try_into()?;
// Sort by usage frequency.
match coset_size {
2 => {
@@ -98,4 +99,6 @@ use thiserror_no_std::Error;
pub enum Error {
#[error("Invalid values length: expected {expected}, got {got}")]
InvalidValuesLength { expected: usize, got: usize },
+ #[error("BigInt conversion Error")]
+ TryFromBigInt(#[from] TryFromBigIntError),
}
diff --git a/crates/pow/Cargo.toml b/crates/pow/Cargo.toml
index 07b9eac..20838a4 100644
--- a/crates/pow/Cargo.toml
+++ b/crates/pow/Cargo.toml
@@ -18,12 +18,12 @@ keccak = []
blake2s = []
[dependencies]
+blake2.workspace = true
serde.workspace = true
sha3.workspace = true
starknet-crypto.workspace = true
starknet-types-core.workspace = true
thiserror = { optional = true, workspace = true }
thiserror-no-std.workspace = true
-blake2.workspace = true
swiftness_transcript.workspace = true
\ No newline at end of file
diff --git a/crates/stark/Cargo.toml b/crates/stark/Cargo.toml
index ec82da5..20fe297 100644
--- a/crates/stark/Cargo.toml
+++ b/crates/stark/Cargo.toml
@@ -8,7 +8,7 @@ repository.workspace = true
version.workspace = true
[features]
-default = ["std", "recursive", "keccak"]
+default = ["std", "recursive", "keccak_160_lsb"]
std = [
"dep:thiserror",
"starknet-core/std",
@@ -27,16 +27,25 @@ recursive_with_poseidon = [
]
small = ["swiftness_air/small"]
starknet = ["swiftness_air/starknet"]
-starknet_with_keccak = [
- "swiftness_air/starknet_with_keccak",
+starknet_with_keccak = ["swiftness_air/starknet_with_keccak"]
+dynamic = ["swiftness_air/dynamic"]
+stone5 = ["swiftness_air/stone5"]
+stone6 = ["swiftness_air/stone6"]
+keccak_160_lsb = [
+ "swiftness_pow/keccak",
+ "swiftness_commitment/keccak_160_lsb"
]
-keccak = [
+keccak_248_lsb = [
"swiftness_pow/keccak",
- "swiftness_commitment/keccak",
+ "swiftness_commitment/keccak_248_lsb"
+]
+blake2s_160_lsb = [
+ "swiftness_pow/blake2s",
+ "swiftness_commitment/blake2s_160_lsb"
]
-blake2s = [
+blake2s_248_lsb = [
"swiftness_pow/blake2s",
- "swiftness_commitment/blake2s",
+ "swiftness_commitment/blake2s_248_lsb"
]
[dependencies]
diff --git a/crates/stark/src/config.rs b/crates/stark/src/config.rs
index 5224508..7984fbe 100644
--- a/crates/stark/src/config.rs
+++ b/crates/stark/src/config.rs
@@ -1,6 +1,7 @@
use serde::{Deserialize, Serialize};
use serde_with::serde_as;
use starknet_crypto::Felt;
+use swiftness_commitment::vector;
#[serde_as]
#[derive(Debug, PartialEq, Serialize, Deserialize)]
@@ -41,15 +42,24 @@ impl StarkConfig {
self.n_queries * self.log_n_cosets + Felt::from(self.proof_of_work.n_bits)
}
- pub fn validate(&self, security_bits: Felt) -> Result<(), Error> {
+ pub fn validate(
+ &self,
+ security_bits: Felt,
+ num_columns_first: Felt,
+ num_columns_second: Felt,
+ ) -> Result<(), Error> {
self.proof_of_work.validate()?;
- assert!(security_bits <= self.security_bits());
+ ensure!(security_bits <= self.security_bits(), Error::InsufficientSecurity);
// Validate traces config.
let log_eval_domain_size = self.log_trace_domain_size + self.log_n_cosets;
- self.traces
- .validate::(log_eval_domain_size, self.n_verifier_friendly_commitment_layers)?;
+ self.traces.validate(
+ log_eval_domain_size,
+ self.n_verifier_friendly_commitment_layers,
+ num_columns_first,
+ num_columns_second,
+ )?;
// Validate composition config.
self.composition
@@ -62,9 +72,7 @@ impl StarkConfig {
}
}
-use swiftness_air::layout::LayoutTrait;
-use swiftness_commitment::vector;
-
+use swiftness_transcript::ensure;
#[cfg(feature = "std")]
use thiserror::Error;
@@ -79,6 +87,10 @@ pub enum Error {
Pow(#[from] swiftness_pow::config::Error),
#[error("Trace Error")]
Trace(#[from] swiftness_air::trace::config::Error),
+ #[error("dynamic params missing")]
+ DynamicParamsMissing,
+ #[error("insufficient number ofsecurity bits")]
+ InsufficientSecurity,
}
#[cfg(not(feature = "std"))]
@@ -95,4 +107,8 @@ pub enum Error {
Pow(#[from] swiftness_pow::config::Error),
#[error("Trace Error")]
Trace(#[from] swiftness_air::trace::config::Error),
+ #[error("dynamic params missing")]
+ DynamicParamsMissing,
+ #[error("insufficient number ofsecurity bits")]
+ InsufficientSecurity,
}
diff --git a/crates/stark/src/lib.rs b/crates/stark/src/lib.rs
index 10409b6..4c754b1 100644
--- a/crates/stark/src/lib.rs
+++ b/crates/stark/src/lib.rs
@@ -5,14 +5,30 @@ extern crate alloc;
#[cfg(feature = "std")]
extern crate std;
-pub mod commit;
+macro_rules! import_module_if_layout {
+ ($mod_name:ident) => {
+ #[cfg(any(
+ feature = "dex",
+ feature = "recursive",
+ feature = "recursive_with_poseidon",
+ feature = "small",
+ feature = "starknet",
+ feature = "starknet_with_keccak",
+ feature = "dynamic"
+ ))]
+ pub mod $mod_name;
+ };
+}
+
+import_module_if_layout!(commit);
+import_module_if_layout!(oods);
+import_module_if_layout!(stark);
+import_module_if_layout!(verify);
+import_module_if_layout!(fixtures);
+
pub mod config;
-pub mod fixtures;
-pub mod oods;
pub mod queries;
-pub mod stark;
pub mod types;
-pub mod verify;
#[cfg(test)]
pub mod tests;
diff --git a/crates/stark/src/oods.rs b/crates/stark/src/oods.rs
index 8cea1dd..678f5dc 100644
--- a/crates/stark/src/oods.rs
+++ b/crates/stark/src/oods.rs
@@ -75,10 +75,11 @@ pub enum OodsVerifyError {
pub fn eval_oods_boundary_poly_at_points(
n_original_columns: usize,
n_interaction_columns: usize,
- eval_info: OodsEvaluationInfo,
+ public_input: &PublicInput,
+ eval_info: &OodsEvaluationInfo,
points: &[Felt],
- decommitment: trace::Decommitment,
- composition_decommitment: table::types::Decommitment,
+ decommitment: &trace::Decommitment,
+ composition_decommitment: &table::types::Decommitment,
) -> Vec {
assert!(
decommitment.original.values.len() == points.len() * n_original_columns,
@@ -113,13 +114,14 @@ pub fn eval_oods_boundary_poly_at_points(
);
evaluations.push(Layout::eval_oods_polynomial(
+ public_input,
&column_values,
&eval_info.oods_values,
&eval_info.constraint_coefficients,
&point,
&eval_info.oods_point,
&eval_info.trace_generator,
- ));
+ ).unwrap());
}
evaluations
diff --git a/crates/stark/src/queries.rs b/crates/stark/src/queries.rs
index 9d2475e..a85f0fd 100644
--- a/crates/stark/src/queries.rs
+++ b/crates/stark/src/queries.rs
@@ -5,6 +5,8 @@ use swiftness_air::domains::StarkDomains;
use swiftness_transcript::transcript::Transcript;
const FIELD_GENERATOR: Felt = Felt::from_hex_unchecked("0x3");
+const DIVISOR: Felt = Felt::from_hex_unchecked("0x100000000000000000000000000000000");
+const MAX_DOMAIN_SIZE: Felt = Felt::from_hex_unchecked("0x40");
pub fn generate_queries(
transcript: &mut Transcript,
@@ -15,10 +17,8 @@ pub fn generate_queries(
let mut samples: Vec = (0..n)
.map(|_| {
let res = transcript.random_felt_to_prover();
- let (_, low) = res.div_rem(&NonZeroFelt::from_felt_unchecked(
- Felt::from_hex_unchecked("0x100000000000000000000000000000000"),
- ));
- let (_, sample) = low.div_rem(&NonZeroFelt::from_felt_unchecked(query_upper_bound));
+ let (_, low) = res.div_rem(&NonZeroFelt::from_felt_unchecked(DIVISOR));
+ let (_, sample) = low.div_rem(&NonZeroFelt::try_from(query_upper_bound).unwrap());
sample
})
.collect();
@@ -31,11 +31,11 @@ pub fn queries_to_points(queries: &[Felt], stark_domains: &StarkDomains) -> Vec<
let mut points = Vec::::new();
// Evaluation domains of size greater than 2**64 are not supported
- assert!((stark_domains.log_eval_domain_size) <= Felt::from(64));
+ assert!((stark_domains.log_eval_domain_size) <= MAX_DOMAIN_SIZE);
// A 'log_eval_domain_size' bits index can be bit reversed using bit_reverse_u64 if it is
// multiplied by 2**(64 - log_eval_domain_size) first.
- let shift = Felt::TWO.pow_felt(&(Felt::from(64) - stark_domains.log_eval_domain_size));
+ let shift = Felt::TWO.pow_felt(&(MAX_DOMAIN_SIZE - stark_domains.log_eval_domain_size));
for query in queries {
let index: u64 = (query * shift).to_bigint().try_into().unwrap();
diff --git a/crates/stark/src/stark.rs b/crates/stark/src/stark.rs
index 89e2b42..52d7dd4 100644
--- a/crates/stark/src/stark.rs
+++ b/crates/stark/src/stark.rs
@@ -1,10 +1,28 @@
use crate::{
commit::stark_commit, queries::generate_queries, types::StarkProof, verify::stark_verify,
};
+use starknet_crypto::Felt;
+use swiftness_air::{
+ domains::StarkDomains,
+ layout::{GenericLayoutTrait, LayoutTrait, PublicInputError},
+};
+use swiftness_transcript::transcript::Transcript;
impl StarkProof {
- pub fn verify(&self, security_bits: Felt) -> Result<(Felt, Felt), Error> {
- self.config.validate::(security_bits)?;
+ pub fn verify(
+ &self,
+ security_bits: Felt,
+ ) -> Result<(Felt, Felt), Error> {
+ let n_original_columns =
+ Layout::get_num_columns_first(&self.public_input).ok_or(Error::ColumnMissing)?;
+ let n_interaction_columns =
+ Layout::get_num_columns_second(&self.public_input).ok_or(Error::ColumnMissing)?;
+
+ self.config.validate(
+ security_bits,
+ n_original_columns.into(),
+ n_interaction_columns.into(),
+ )?;
// Validate the public input.
let stark_domains =
@@ -13,7 +31,7 @@ impl StarkProof {
Layout::validate_public_input(&self.public_input, &stark_domains)?;
// Compute the initial hash seed for the Fiat-Shamir transcript.
- let digest = self.public_input.get_hash();
+ let digest = self.public_input.get_hash(self.config.n_verifier_friendly_commitment_layers);
// Construct the transcript.
let mut transcript = Transcript::new(digest);
@@ -35,8 +53,9 @@ impl StarkProof {
// STARK verify phase.
stark_verify::(
- Layout::NUM_COLUMNS_FIRST,
- Layout::NUM_COLUMNS_SECOND,
+ n_original_columns,
+ n_interaction_columns,
+ &self.public_input,
&queries,
stark_commitment,
&self.witness,
@@ -47,13 +66,6 @@ impl StarkProof {
}
}
-use starknet_crypto::Felt;
-use swiftness_air::{
- domains::StarkDomains,
- layout::{LayoutTrait, PublicInputError},
-};
-use swiftness_transcript::transcript::Transcript;
-
#[cfg(feature = "std")]
use thiserror::Error;
@@ -71,6 +83,9 @@ pub enum Error {
#[error("Verify Error")]
Verify(#[from] crate::verify::Error),
+
+ #[error("Column missing")]
+ ColumnMissing,
}
#[cfg(not(feature = "std"))]
@@ -90,4 +105,7 @@ pub enum Error {
#[error("Verify Error")]
Verify(#[from] crate::verify::Error),
+
+ #[error("Column missing")]
+ ColumnMissing,
}
diff --git a/crates/stark/src/tests/mod.rs b/crates/stark/src/tests/mod.rs
index afe27a6..d5768eb 100644
--- a/crates/stark/src/tests/mod.rs
+++ b/crates/stark/src/tests/mod.rs
@@ -1,3 +1,2 @@
pub mod commit;
-pub mod proof;
pub mod verify;
diff --git a/crates/stark/src/tests/verify.rs b/crates/stark/src/tests/verify.rs
index 6adef96..e9535c3 100644
--- a/crates/stark/src/tests/verify.rs
+++ b/crates/stark/src/tests/verify.rs
@@ -2,11 +2,15 @@ use crate::{
fixtures::{commitment, domains, witness},
verify::stark_verify,
};
-use swiftness_air::layout::{recursive::Layout, LayoutTrait};
+use swiftness_air::{
+ fixtures::public_input,
+ layout::{recursive::Layout, StaticLayoutTrait},
+};
use swiftness_fri::fixtures::queries;
#[test]
pub fn test_stark_verify() {
+ let public_input = public_input::get();
let queries = queries::get();
let commitment = commitment::get();
let witness = witness::get();
@@ -15,6 +19,7 @@ pub fn test_stark_verify() {
stark_verify::(
Layout::NUM_COLUMNS_FIRST,
Layout::NUM_COLUMNS_SECOND,
+ &public_input,
&queries,
commitment,
&witness,
diff --git a/crates/stark/src/verify.rs b/crates/stark/src/verify.rs
index f272efd..dcba729 100644
--- a/crates/stark/src/verify.rs
+++ b/crates/stark/src/verify.rs
@@ -1,6 +1,6 @@
use alloc::borrow::ToOwned;
use starknet_crypto::Felt;
-use swiftness_air::{domains::StarkDomains, layout::LayoutTrait};
+use swiftness_air::{domains::StarkDomains, layout::LayoutTrait, public_memory::PublicInput};
use swiftness_commitment::table::decommit::table_decommit;
use swiftness_fri::{
fri::{self, fri_verify},
@@ -17,6 +17,7 @@ use crate::{
pub fn stark_verify(
n_original_columns: usize,
n_interaction_columns: usize,
+ public_input: &PublicInput,
queries: &[Felt],
commitment: StarkCommitment,
witness: &StarkWitness,
@@ -50,10 +51,11 @@ pub fn stark_verify(
let oods_poly_evals = eval_oods_boundary_poly_at_points::(
n_original_columns,
n_interaction_columns,
- eval_info,
+ public_input,
+ &eval_info,
&points,
- witness.traces_decommitment.to_owned(),
- witness.composition_decommitment.to_owned(),
+ &witness.traces_decommitment,
+ &witness.composition_decommitment,
);
// Decommit FRI.
diff --git a/crates/transcript/Cargo.toml b/crates/transcript/Cargo.toml
index aadb56e..cb8eb32 100644
--- a/crates/transcript/Cargo.toml
+++ b/crates/transcript/Cargo.toml
@@ -12,6 +12,4 @@ starknet-crypto.workspace = true
[features]
default = ["std"]
-std = [
- "starknet-crypto/std",
-]
+std = ["starknet-crypto/std"]
diff --git a/crates/transcript/src/lib.rs b/crates/transcript/src/lib.rs
index 9ed0638..5c53206 100644
--- a/crates/transcript/src/lib.rs
+++ b/crates/transcript/src/lib.rs
@@ -26,3 +26,10 @@ macro_rules! assure {
}
};
}
+
+#[macro_export]
+macro_rules! felt {
+ ($from:expr) => {
+ Felt::from($from)
+ };
+}
diff --git a/examples/no_std_build/Cargo.lock b/examples/no_std_build/Cargo.lock
new file mode 100644
index 0000000..14b2a33
--- /dev/null
+++ b/examples/no_std_build/Cargo.lock
@@ -0,0 +1,722 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "autocfg"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
+
+[[package]]
+name = "base64"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+
+[[package]]
+name = "base64"
+version = "0.21.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
+
+[[package]]
+name = "blake2"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe"
+dependencies = [
+ "digest",
+]
+
+[[package]]
+name = "block-buffer"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "chrono"
+version = "0.4.38"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
+dependencies = [
+ "num-traits",
+ "serde",
+]
+
+[[package]]
+name = "const-default"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b396d1f76d455557e1218ec8066ae14bba60b4b36ecd55577ba979f5db7ecaa"
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "critical-section"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f64009896348fc5af4222e9cf7d7d82a95a256c634ebcf61c53e4ea461422242"
+
+[[package]]
+name = "crypto-bigint"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76"
+dependencies = [
+ "generic-array",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "crypto-common"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+dependencies = [
+ "generic-array",
+ "typenum",
+]
+
+[[package]]
+name = "darling"
+version = "0.20.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989"
+dependencies = [
+ "darling_core",
+ "darling_macro",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.20.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.20.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
+dependencies = [
+ "darling_core",
+ "quote",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "deranged"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
+dependencies = [
+ "powerfmt",
+]
+
+[[package]]
+name = "digest"
+version = "0.10.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+dependencies = [
+ "block-buffer",
+ "crypto-common",
+ "subtle",
+]
+
+[[package]]
+name = "embedded-alloc"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f2de9133f68db0d4627ad69db767726c99ff8585272716708227008d3f1bddd"
+dependencies = [
+ "const-default",
+ "critical-section",
+ "linked_list_allocator",
+ "rlsf",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "generic-array"
+version = "0.14.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+dependencies = [
+ "typenum",
+ "version_check",
+]
+
+[[package]]
+name = "hex"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+
+[[package]]
+name = "hmac"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
+dependencies = [
+ "digest",
+]
+
+[[package]]
+name = "ident_case"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+
+[[package]]
+name = "itoa"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
+
+[[package]]
+name = "keccak"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654"
+dependencies = [
+ "cpufeatures",
+]
+
+[[package]]
+name = "lambdaworks-math"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "358e172628e713b80a530a59654154bfc45783a6ed70ea284839800cebdf8f97"
+
+[[package]]
+name = "libc"
+version = "0.2.158"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439"
+
+[[package]]
+name = "linked_list_allocator"
+version = "0.10.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9afa463f5405ee81cdb9cc2baf37e08ec7e4c8209442b5d72c04cfb2cd6e6286"
+
+[[package]]
+name = "memchr"
+version = "2.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
+
+[[package]]
+name = "no_std_build"
+version = "0.1.0"
+dependencies = [
+ "embedded-alloc",
+ "swiftness_air",
+ "swiftness_commitment",
+ "swiftness_fri",
+ "swiftness_pow",
+ "swiftness_stark",
+ "swiftness_transcript",
+]
+
+[[package]]
+name = "num-bigint"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9"
+dependencies = [
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-conv"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
+[[package]]
+name = "num-integer"
+version = "0.1.46"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.86"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rfc6979"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2"
+dependencies = [
+ "hmac",
+ "subtle",
+]
+
+[[package]]
+name = "rlsf"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "222fb240c3286247ecdee6fa5341e7cdad0ffdf8e7e401d9937f2d58482a20bf"
+dependencies = [
+ "cfg-if",
+ "const-default",
+ "libc",
+ "svgbobdoc",
+]
+
+[[package]]
+name = "ryu"
+version = "1.0.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
+
+[[package]]
+name = "serde"
+version = "1.0.210"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.210"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.128"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8"
+dependencies = [
+ "itoa",
+ "memchr",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_json_pythonic"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62212da9872ca2a0cad0093191ee33753eddff9266cbbc1b4a602d13a3a768db"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_with"
+version = "2.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe"
+dependencies = [
+ "base64 0.13.1",
+ "chrono",
+ "hex",
+ "serde",
+ "serde_json",
+ "serde_with_macros 2.3.3",
+ "time",
+]
+
+[[package]]
+name = "serde_with"
+version = "3.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857"
+dependencies = [
+ "serde",
+ "serde_derive",
+ "serde_with_macros 3.9.0",
+]
+
+[[package]]
+name = "serde_with_macros"
+version = "2.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f"
+dependencies = [
+ "darling",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "serde_with_macros"
+version = "3.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350"
+dependencies = [
+ "darling",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "sha2"
+version = "0.10.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sha3"
+version = "0.10.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60"
+dependencies = [
+ "digest",
+ "keccak",
+]
+
+[[package]]
+name = "starknet-core"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d506e02a4083290d13b427dfe437fd95aa8b56315c455bb2f9cdeca76620d457"
+dependencies = [
+ "base64 0.21.7",
+ "crypto-bigint",
+ "hex",
+ "serde",
+ "serde_json",
+ "serde_json_pythonic",
+ "serde_with 2.3.3",
+ "sha3",
+ "starknet-crypto",
+ "starknet-types-core",
+]
+
+[[package]]
+name = "starknet-crypto"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff2a821ad8d98c6c3e4d0e5097f3fe6e2ed120ada9d32be87cd1330c7923a2f0"
+dependencies = [
+ "crypto-bigint",
+ "hex",
+ "hmac",
+ "num-bigint",
+ "num-integer",
+ "num-traits",
+ "rfc6979",
+ "sha2",
+ "starknet-crypto-codegen",
+ "starknet-curve",
+ "starknet-types-core",
+ "zeroize",
+]
+
+[[package]]
+name = "starknet-crypto-codegen"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e179dedc3fa6da064e56811d3e05d446aa2f7459e4eb0e3e49378a337235437"
+dependencies = [
+ "starknet-curve",
+ "starknet-types-core",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "starknet-curve"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56935b306dcf0b8f14bb2a1257164b8478bb8be4801dfae0923f5b266d1b457c"
+dependencies = [
+ "starknet-types-core",
+]
+
+[[package]]
+name = "starknet-types-core"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce6bacf0ba19bc721e518bc4bf389ff13daa8a7c5db5fd320600473b8aa9fcbd"
+dependencies = [
+ "lambdaworks-math",
+ "num-bigint",
+ "num-integer",
+ "num-traits",
+ "serde",
+]
+
+[[package]]
+name = "strsim"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
+
+[[package]]
+name = "subtle"
+version = "2.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
+
+[[package]]
+name = "svgbobdoc"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2c04b93fc15d79b39c63218f15e3fdffaa4c227830686e3b7c5f41244eb3e50"
+dependencies = [
+ "base64 0.13.1",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "unicode-width",
+]
+
+[[package]]
+name = "swiftness_air"
+version = "0.0.8"
+dependencies = [
+ "num-bigint",
+ "serde",
+ "serde_with 3.9.0",
+ "starknet-core",
+ "starknet-crypto",
+ "starknet-types-core",
+ "swiftness_commitment",
+ "swiftness_transcript",
+ "thiserror-no-std",
+]
+
+[[package]]
+name = "swiftness_commitment"
+version = "0.0.8"
+dependencies = [
+ "blake2",
+ "num-bigint",
+ "serde",
+ "serde_with 3.9.0",
+ "sha3",
+ "starknet-core",
+ "starknet-crypto",
+ "starknet-types-core",
+ "swiftness_transcript",
+ "thiserror-no-std",
+]
+
+[[package]]
+name = "swiftness_fri"
+version = "0.0.8"
+dependencies = [
+ "num-bigint",
+ "serde",
+ "serde_with 3.9.0",
+ "sha3",
+ "starknet-core",
+ "starknet-crypto",
+ "swiftness_commitment",
+ "swiftness_transcript",
+ "thiserror-no-std",
+]
+
+[[package]]
+name = "swiftness_pow"
+version = "0.0.8"
+dependencies = [
+ "blake2",
+ "serde",
+ "sha3",
+ "starknet-crypto",
+ "starknet-types-core",
+ "swiftness_transcript",
+ "thiserror-no-std",
+]
+
+[[package]]
+name = "swiftness_stark"
+version = "0.0.8"
+dependencies = [
+ "serde",
+ "serde_with 3.9.0",
+ "starknet-core",
+ "starknet-crypto",
+ "swiftness_air",
+ "swiftness_commitment",
+ "swiftness_fri",
+ "swiftness_pow",
+ "swiftness_transcript",
+ "thiserror-no-std",
+]
+
+[[package]]
+name = "swiftness_transcript"
+version = "0.0.8"
+dependencies = [
+ "starknet-crypto",
+]
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.77"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "thiserror-impl-no-std"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "58e6318948b519ba6dc2b442a6d0b904ebfb8d411a3ad3e07843615a72249758"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "thiserror-no-std"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3ad459d94dd517257cc96add8a43190ee620011bb6e6cdc82dafd97dfafafea"
+dependencies = [
+ "thiserror-impl-no-std",
+]
+
+[[package]]
+name = "time"
+version = "0.3.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
+dependencies = [
+ "deranged",
+ "num-conv",
+ "powerfmt",
+ "serde",
+ "time-core",
+]
+
+[[package]]
+name = "time-core"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
+
+[[package]]
+name = "typenum"
+version = "1.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "unicode-width"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d"
+
+[[package]]
+name = "version_check"
+version = "0.9.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
+
+[[package]]
+name = "zeroize"
+version = "1.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde"
diff --git a/examples/no_std_build/Cargo.toml b/examples/no_std_build/Cargo.toml
index 543a11f..bf17569 100644
--- a/examples/no_std_build/Cargo.toml
+++ b/examples/no_std_build/Cargo.toml
@@ -4,21 +4,18 @@ version = "0.1.0"
edition = "2021"
[dependencies]
+embedded-alloc = "0.6.0"
swiftness_air = { path = "../../crates/air", default-features = false }
-swiftness_stark = { path = "../../crates/stark", default-features = false }
swiftness_commitment = { path = "../../crates/commitment", default-features = false }
-swiftness_pow = { path = "../../crates/pow", default-features = false }
swiftness_fri = { path = "../../crates/fri", default-features = false }
+swiftness_pow = { path = "../../crates/pow", default-features = false }
+swiftness_stark = { path = "../../crates/stark", default-features = false }
swiftness_transcript = { path = "../../crates/transcript", default-features = false }
-embedded-alloc = "0.5.1"
[features]
-default = ["recursive", "blake2s"]
+default = ["recursive", "keccak_160_lsb", "stone5"]
dex = ["swiftness_air/dex", "swiftness_stark/dex"]
-recursive = [
- "swiftness_air/recursive",
- "swiftness_stark/recursive",
-]
+recursive = ["swiftness_air/recursive", "swiftness_stark/recursive"]
recursive_with_poseidon = [
"swiftness_air/recursive_with_poseidon",
"swiftness_stark/recursive_with_poseidon",
@@ -29,13 +26,43 @@ starknet_with_keccak = [
"swiftness_air/starknet_with_keccak",
"swiftness_stark/starknet_with_keccak",
]
-keccak = [
- "swiftness_commitment/keccak",
+dynamic = [
+ "swiftness_air/dynamic",
+ "swiftness_stark/dynamic",
+]
+stone5 = [
+ "swiftness_air/stone5",
+ "swiftness_stark/stone5",
+]
+stone6 = [
+ "swiftness_air/stone6",
+ "swiftness_stark/stone6",
+]
+keccak_160_lsb = [
+ "swiftness_pow/keccak",
+ "swiftness_air/keccak_160_lsb",
+ "swiftness_fri/keccak_160_lsb",
+ "swiftness_stark/keccak_160_lsb",
+ "swiftness_commitment/keccak_160_lsb",
+]
+keccak_248_lsb = [
"swiftness_pow/keccak",
- "swiftness_fri/keccak",
+ "swiftness_air/keccak_248_lsb",
+ "swiftness_fri/keccak_248_lsb",
+ "swiftness_stark/keccak_248_lsb",
+ "swiftness_commitment/keccak_248_lsb",
+]
+blake2s_160_lsb = [
+ "swiftness_pow/blake2s",
+ "swiftness_air/blake2s_160_lsb",
+ "swiftness_fri/blake2s_160_lsb",
+ "swiftness_stark/blake2s_160_lsb",
+ "swiftness_commitment/blake2s_160_lsb",
]
-blake2s = [
- "swiftness_commitment/blake2s",
+blake2s_248_lsb = [
"swiftness_pow/blake2s",
- "swiftness_fri/blake2s",
+ "swiftness_air/blake2s_248_lsb",
+ "swiftness_fri/blake2s_248_lsb",
+ "swiftness_stark/blake2s_248_lsb",
+ "swiftness_commitment/blake2s_248_lsb",
]
\ No newline at end of file
diff --git a/examples/no_std_build/src/main.rs b/examples/no_std_build/src/main.rs
index 603c503..455b389 100644
--- a/examples/no_std_build/src/main.rs
+++ b/examples/no_std_build/src/main.rs
@@ -2,7 +2,7 @@
#![no_main]
use core::panic::PanicInfo;
-use embedded_alloc::Heap;
+use embedded_alloc::LlffHeap as Heap;
/// This function is called on panic.
#[panic_handler]
diff --git a/examples/proofs/dex/cairo0_example_proof.json b/examples/proofs/dex/cairo0_stone5_example_proof.json
similarity index 100%
rename from examples/proofs/dex/cairo0_example_proof.json
rename to examples/proofs/dex/cairo0_stone5_example_proof.json
diff --git a/examples/proofs/dynamic/cairo0_stone6_example_proof.json b/examples/proofs/dynamic/cairo0_stone6_example_proof.json
new file mode 100644
index 0000000..661e386
--- /dev/null
+++ b/examples/proofs/dynamic/cairo0_stone6_example_proof.json
@@ -0,0 +1,6513 @@
+{
+ "annotations": [
+ "title cpu air Proof Protocol",
+ "",
+ "P->V[0:32]: /cpu air/STARK/Original/Commit on Trace: Commitment: Hash(0x82b2b04e6847cc5db94ce40fe26c769cb52048218009712c682ace4816eb38)",
+ "V->P: /cpu air/STARK/Interaction: Interaction element #0: Field Element(0x5e34c20c75219585e8a4cc904131880934e8335482e881f6291b340440bab7c)",
+ "V->P: /cpu air/STARK/Interaction: Interaction element #1: Field Element(0x2bc7ee935b49e80a223e38148ee958cc3149785f30f89c3946e16bf016845f7)",
+ "V->P: /cpu air/STARK/Interaction: Interaction element #2: Field Element(0x4bd9e5c097844b8ac5d5dfa2683e6b82452a59d169f16e1c59cdd991a792e2b)",
+ "V->P: /cpu air/STARK/Interaction: Interaction element #3: Field Element(0x106bb493f8901564493e165892afc0e6ac6737695e89473ac7cce5241af2dcb)",
+ "V->P: /cpu air/STARK/Interaction: Interaction element #4: Field Element(0x102f78d2d6a0ef4235ebeadf1c985aa6b19d93995d37d3e5cb83b0a7f48428b)",
+ "V->P: /cpu air/STARK/Interaction: Interaction element #5: Field Element(0x53a9aeb9bef67981977c0278be03f4688343b60c36c866aafacc5cf8b8ea064)",
+ "V->P: /cpu air/STARK/Interaction: Interaction element #6: Field Element(0x14f0227edab9233c60ebcf6e0704c6655a8142408cf4a8779ca4a470dcb5c30)",
+ "V->P: /cpu air/STARK/Interaction: Interaction element #7: Field Element(0x14c3f97215f56799573f4881541acfd34889b109424201cae41fac6906f879e)",
+ "P->V[32:64]: /cpu air/STARK/Interaction/Commit on Trace: Commitment: Hash(0x66d12f94a2b10d4ef451936110ac35f62cac35e19e56ddfc82ff69ac3f886e8)",
+ "V->P: /cpu air/STARK/Original: Constraint polynomial random element: Field Element(0x49aa2986454634ea6e9d04e541c5ade889d831d1f567c09c07ec3e3bb0280bb)",
+ "P->V[64:96]: /cpu air/STARK/Out Of Domain Sampling/Commit on Trace: Commitment: Hash(0x2ee6134282a5cad040523fa65715af22deac01539ab6e9f90d2670ab2b8f5c0)",
+ "V->P: /cpu air/STARK/Out Of Domain Sampling/OODS values: Evaluation point: Field Element(0x62059255826a199eaafc64e0e7b82ed6cc6b3043802c9ecf2925093c01b9340)",
+ "P->V[96:30272]: /cpu air/STARK/Out Of Domain Sampling/OODS values: : Field Elements(0xc3a6ba68911af16fa41bb9bc6ffa78d9c0186609f5789a718a34ffa4dc682c, 0x106be45689117c2ed9267069d812f3de8bef4a3a9b86ef3143839d27af7ac32, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x7c330653ccff4ca0540c4b8761474c855ff1c2b8e80c5f376403a9ecc1774ae, 0x452dc6329b7036c268dc0165c5cf14fd577029a2dfae42df1c68689679b6909, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0xa9fd454a1132b8b5e0b4b3bb2341d32446ba3a4129182949a96a45f9c20852, 0x72ca3913e0c3a78b062efc6726b9095a8f7bc019388455e2c08dc8fa3432b18, 0x36d7fbb80de24432bd8fdd75391e75eac17e72ec7069c3c12a2c0ce3aebaa7f, 0x54e5c8afc4942da442b3cf91dfd089e0a821992c041443f5db752c0508176ca, 0x72ca3913e0c3a78b062efc6726b9095a8f7bc019388455e2c08dc8fa3432b18, 0x36d7fbb80de24432bd8fdd75391e75eac17e72ec7069c3c12a2c0ce3aebaa7f, 0x54e5c8afc4942da442b3cf91dfd089e0a821992c041443f5db752c0508176ca, 0x5aff41b717f436811dadc46b839294f9fef033ec67d0caff65f45dee01dc31e, 0x5aff41b717f436811dadc46b839294f9fef033ec67d0caff65f45dee01dc31e, 0x5d58f81d0667cc5dafcfb09fa755e865332743b43752a653a4332540c6ede94, 0x3fc0dc82bca27e3f6777647ff56d720e78ea2f93e096659196c75322afb4068, 0x271dea9dc650805863f2f154fcf3255802db1af825e29d36eb0b1a2a54133e8, 0x5d58f81d0667cc5dafcfb09fa755e865332743b43752a653a4332540c6ede94, 0x1058624a923d2971a70217fb8995c20971bb58c40af744f35f3fa0fb57eae2a, 0x1058624a923d2971a70217fb8995c20971bb58c40af744f35f3fa0fb57eae2a, 0x3fc0dc82bca27e3f6777647ff56d720e78ea2f93e096659196c75322afb4068, 0x14bdbda8978bc9d552efa14b36084d9fa21176178d729f7e5a9b7e15df77b01, 0x76ab478cd550e58a548b7068d71ae7edcaa18fce68e1eef463d971b0176994f, 0x76ab478cd550e58a548b7068d71ae7edcaa18fce68e1eef463d971b0176994f, 0x20cd02ed7b9adee8109f0952cbdbc072821188fdb838400b7d51ea47d0f9f3c, 0x3e20e8c423b578c0a7b965c3af7cd5f40c58714feaff187ef3b2b44dffd5ede, 0x2683fb062c2d67e3001000e08a7d52e5281e3fae61dae38cc31d7b0ea762761, 0xbee55f2349f3a1724a3788b91dbe437c5894a94e952510239d2e89956d3f4c, 0x537e6c31dd447aca4e81282d2be7106557cc7c81ecde57e9e30b1ab8c259091, 0xa9fd454a1132b8b5e0b4b3bb2341d32446ba3a4129182949a96a45f9c20852, 0x248cbaed9e720be34bd41e619a8a2c623f94086036d7ead89f22d014b0aae9, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0x4e5f2e50ed4027034d661a86e785a8a8f42df3380cbc71cd8045ecf915aa4b8, 0x3b558ffa78f22252979c0993b42873b234754dec4c64afe1888f99d1f400656, 0x3fef0f405fbe90cf04734d62db04192eb0b8ea6791df70357c8ebf74bcd14c8, 0x75c54a339b6145c3ec3234ab7bab59a9e5e50ea035ace877e718c3af9323954, 0x35ac21d190426acecc0a8e130d80717b19a548a7b2d3178085b92c4a3110d5b, 0x1897b49340eb3048bda830ec6256568dd9e9732f9b2b9695f46447a105e9178, 0x1270d17c91920f6ad8d51c3f2d24aa5e06469b9b4facca4779c56cc6110aa9c, 0x5950ad7158359786ab660305ada248245163c041a19c5bc760ec0e4534e18a, 0x6e29cfe1e2945ceb59bcce56ccd67574b0da6d5c595bf8607319b3fbb1b23b, 0x271dea9dc650805863f2f154fcf3255802db1af825e29d36eb0b1a2a54133e8, 0x153038d7427863447d08216b191e6fd1792c74820de72c15791546fce1c33e6, 0x153038d7427863447d08216b191e6fd1792c74820de72c15791546fce1c33e6, 0x14bdbda8978bc9d552efa14b36084d9fa21176178d729f7e5a9b7e15df77b01, 0x2b35b76f56b8d7a8c3e6c2204845968680c3d0e64b28525ba2d818f9ff6e10c, 0x20cd02ed7b9adee8109f0952cbdbc072821188fdb838400b7d51ea47d0f9f3c, 0x1e8b37082d155dcde64d40affe0ed980cdfd49eadc5d8f631fddd542016c654, 0x623057ef8b4e5990fda34c8e31286e6f5ed500ba029e101531ca6e2b77d9c09, 0x51c39d6df3ec7f0916203c1ba05c56fff2b234c47ddb8d3917b8f0f477db63b, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x43f0072eefbd56b5e3f45466322405eca185c504bcaa6c4e8080d7cca4e8670, 0x1b1da7be929c0e64bc11626e0ab9119b1183aad30d4cbd62611564cc1f4e01, 0x708d861f1ddbc0a47278afd1f192ce666f50c3af1600c1b6b49b19c00aa9694, 0x72203b2eecac125df058964c42362f8354512bd5d6c4a443b9e62b61ec2a237, 0x708d861f1ddbc0a47278afd1f192ce666f50c3af1600c1b6b49b19c00aa9694, 0x72203b2eecac125df058964c42362f8354512bd5d6c4a443b9e62b61ec2a237, 0x4cc5cb49b5c682a678c00e2a0239867245a520b038c27463726241dca10fe5, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x2e811fbe55f59427c1e94d801d59d60f8ed9e80533047a36f445ec018882e29, 0xb55a85155c2ee0def7b0e9f80002ac5a76512f6392b8b2e2addae210710e09, 0x1c5ca5357cb8cbee72d3df88a73a59ec25a2e055cf8c6bf60dd85d182d698c0, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x54c5f04b6b65e041dcb44689ca0dd556c03b65f5023f3d5d90f309eb42745cf, 0xe4209589d0e4725b9e91095da7a1b5b9f0f96650a23e11c80cecf4d683b5a0, 0x723ceafe2d9fe0f924cf7f3c20970a6806691403e214b3bc8a2e5ebd87817f9, 0x7ea978554dd741cfe59cc1b047565958c9ce1c146af47fde39ca17989f67251, 0x1f5152bdcb11373c0183a85670a32c5641e87daf2000a405346f8b8c55bda18, 0x146bf1b164d294b97eeca2794d0774bb77c40710a9aac9c04e099fcbc8787a2, 0x4808f8df17f0ea478dc6ea425bed40a9e13a3caf19a737a52d5d2e3b05cc7d2, 0x1ed8444efe0bf40a36dfef9faca38033dca1892300a009f4799a334083726b1, 0x32e279a8219f942de74072ee9751afecaf13c03960648ae68872e8b9ee18a34, 0x3b0bd97279e0c5c295f268aa89720fb604fc2fa05ad1b4621175c155b841111, 0x478f5bdf083f6611a3ed89b963a1c37cc556072d4e6559ac6d2c92235850b79, 0x1ee5b076dc787bc97c78993baa5a905a026ce9234cfa21d34f6fd4eb3449d59, 0x51ae1f40232c0e9fc59324ebc1c13ca978ef2cb46f7e81b0f309a54ef6c5839, 0x779d9d48cbb243ef7669d8a0f9393af66318ffcb85323d628805e07e45a4176, 0x1225ad0e7b45f2ee0a07c8403273d67253dbe0847bc855c3eac2a13ad869583, 0x106792ca92cad53a99fbc9a6c74202ff39940fb8d789404fba8fe2aca3bcf7d, 0x479c2ac3e1c92e74f3c108cee6bf813a238907a05c2c3d81d83ab131220da4b, 0x690d8dd1b552c19c187c35715a8cbb09dab26405fe58fe2683a76226bb2357, 0x65059e9fcb4d0eb59bdd6d0ed855c82a8f6adf90854bf8a04ac98a7635467ee, 0x3164bb51c55887ab460790195353a3fdeee511785fcab117b6bcb918ffa8d99, 0xab0d07a1538231abee8d6c82cdeca43b1874289398fb249f42595bf8d3bdce, 0x15659a14aa84bf3eb9f1cab637ba2c96a1604d4c7556fabdec1a2e3f3a407a3, 0x2a10ebbb306b69d4cb658582450e85c3756a1de6eafaac553fa1077b5e0f866, 0x701dd4d0eae7ca3baff38f7e7422f965659570782d4f7d765003e30caca8ff2, 0x4d55d813838808fe6e923f4fb03f1b219796e2a194efbae051bb79ad39a3be8, 0x258ad3c49c25a1ef5b681e6e70f09e048b171f503c95162481e3802700b9942, 0x7ed729e1ec7a1daf7be09f2a782e1742785d7ff9e720ea81513a071b911cfd2, 0x6d7d004b5bd9eb334a750f49df0eba48029b2208a514ef431041f61ee6f05fd, 0x24499d8d8697d86c3cee8e60c6718fc34c7c4a2172236594c8c07a659dc60c0, 0x30cdfc7831b9362b447e930f20cbc03cf48d5fc9ab16b06153d70b05bd2642b, 0x72b44729a90d221df55326fd2011fb0e34c36f939193eca6f74ed9bf7d8086c, 0x5a9c79b5aab1bc49dbdd4d0c8da27e0595c1fe44a92828ca63f2d31616940c1, 0x2d8a2457f0a0ff99ca29756ee966f919148137c8c98baa1915081355e57bd6b, 0x6f244f04e7366c432cc388f12c1e8a024d2d444d91abc9f4d53eb801ea504b5, 0x33609329ce1d9f8baafd3418a753801cdda4e78e62a1abe6e45f1c8f2e85bd8, 0x1a2deffaa080c18df1e3a93ce38b189af2dcac55fb30e41f2dab4f28cb18695, 0x31c24ce5468c546bdd3f9656bfa7c488b00a20d3ae47c5032c2271bc0eac805, 0x20c04d249f49d2f68d7c1f79b7293be32e3dbe52c179ccc2586d4094e20f2f3, 0x8049e0c6ef8c705fe2770e04c89539091db2ce3d58984878e9ca836337858d, 0xd07cc3b9945903b8bf16c9b027c3cbaf8e62c6ba65b39ead846df51fea2ba1, 0x239693ccd4b125d03a731666c466fc1dfaf65abc6fdabdef3bbb5f9b7813608, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0x7d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0xc751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x3e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x76ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2, 0x54bd9d773136b5ad1341fa750ec0954c0435dfcaaff115e6413338e83d31748, 0x6cc8055b2ac28fed01cf367ae821a8b2ec3d78400ba3321b8f01c9a80bb4bba, 0x2cbcd62ef35b748d5a918dcf76616c6caf36d1713d238a518e27bd447fcd7b1, 0x18090f550aaf6b525148871beb4325a0f988a2385a269e2aaedf9e990181e00, 0x7d5741dc7a70d2d7f21397bd07446f5acd72192e9e2a1a79df13811b0e1e009, 0x1c9ffd973ad1b85699acd922822b95bbad5a299ecd9c688649914d4b3906e5f, 0x4d1caa33a19efe0216aa7d8861c38ca4ef520dc0c60963a364f9d03929e4e6e, 0x5e7c34a89f2c22e0f311eb73dccd3363dfab5e79aab1e01c74c3b76977c9d26, 0x43b33097e6107fc8dfc43f36b1729735cbf6f713eef1d42d6eeafd61dbca68a, 0x631257a67ddcaeeaff22e6f7eeb363d4662980bb5e8292ff444f0f032016c31)",
+ "V->P: /cpu air/STARK/Out Of Domain Sampling: Constraint polynomial random element: Field Element(0x44d2e33a9b8632bca0d719e53f8ed3c4e8e02a3000e5b1134dc4c90df3b570a)",
+ "P->V[30272:30304]: /cpu air/STARK/FRI/Commitment/Layer 1: Commitment: Hash(0x5fa119001ce4b29869cf8f228c24525a6e79187b44786e3522dc9a3185d7b6d)",
+ "V->P: /cpu air/STARK/FRI/Commitment/Layer 2: Evaluation point: Field Element(0x2c19ddf2d951954c80cff3ec2542218f01424d765fce1fa1191f9f391c58294)",
+ "P->V[30304:30336]: /cpu air/STARK/FRI/Commitment/Layer 2: Commitment: Hash(0x77926f27a26f2857e861cc872af7bb919cb727f065459b8b0ad6bf001977c65)",
+ "V->P: /cpu air/STARK/FRI/Commitment/Layer 3: Evaluation point: Field Element(0x3736d7a441b34a8aceb89394d9914028b1f5f2e7c1e12dffd6ebf43b95d29e)",
+ "P->V[30336:30368]: /cpu air/STARK/FRI/Commitment/Layer 3: Commitment: Hash(0x6ab60a52f628dcbd92d25b14344203be7ac2323e457b7f7733aff14ee4d8113)",
+ "V->P: /cpu air/STARK/FRI/Commitment/Layer 4: Evaluation point: Field Element(0x4c0cc8c394a68afa67c54ba93d8704a5d80881f0cac5aef4112f2ef1b967c7e)",
+ "P->V[30368:30400]: /cpu air/STARK/FRI/Commitment/Layer 4: Commitment: Hash(0x5443665de02c03cb4c9c549842a0100b2e3affa8ba9048b871a365f290fcdec)",
+ "V->P: /cpu air/STARK/FRI/Commitment/Layer 5: Evaluation point: Field Element(0x3539b9d59e1caf1460f8966ee576558a12a88add72c7e883036b4f4ffc12d19)",
+ "P->V[30400:32448]: /cpu air/STARK/FRI/Commitment/Last Layer: Coefficients: Field Elements(0x3282d0a5e9addefcd2396f954fd13d732d48e8e4f3c1aeb1e72d05972cac302, 0x5e0bd4a1f3ec9a347aa100094c53a6d12a8424900f2077144549f94897a5b4f, 0x40956ca097f81d25cdc51c93b2ed6c9f1c84524cc91548348cfc24167cc03ac, 0x1558419cb6bd7845bc5317796cbbd72ed38c78a4c7ded8613bea485586dbfe0, 0x5e132bbff75f5a69f2adc75271dd4a925662e33c3f2e719348548492454f28, 0x3e7f14a0c85d85b234a789e8b225b246345c982c218ab36963a7eaef1cabf3b, 0x331fc19804bd74da7726a8291bb6af8c596a50ff61da98600a8b20361e65a23, 0x3e959fd0793163ad0f252c8fc253664ed779010f875cb91dd57318876cd2d7b, 0x5c254a9f53601b6fd96ceed3a1db06a4139c88daeca1bcbeeb0d6124de1909e, 0x1d2834d4cda876a32092d56147ef7fcf2ec691f391989889c04579c21722e53, 0x668978071fa867ddbc360a0987e448003fc49abeac10f44e9a1a5ecf2c0d847, 0x7e486e3b23d75af9f2fe44b0039a281dc81afb2a3aae89b632c62c47cbc2fd8, 0x6525661416622613b14d81b6116c58c58d27cc70f47e84a93f4daabebfb549c, 0x7fc71146a74645d4a908ecdc29f4ba0124e6f171e63a79a5402aa9fffce8e07, 0x5c4ecbfbb4e3c8af715c48e66383ab3eb50fb56696a2b2aa470c6f054be2668, 0x5ebe15a05f70ccaa94f7b0f402cd794957c8f805830677a33089a9a6440686d, 0x201eae76c13d009f90d3a9c8bb19bbfff6a9f79d766711b122e4f6065c6cb81, 0x58dddc4b16c3cc6f820bfc022006750d21e83c60659e291f6e1522d2d7ed544, 0x76877768ca3938d8156cbe9721f657b9580d5765fcf927999a915d49fc7f332, 0x25c544ca75320518d470e29d231496fab84e12fca50dad925535f2d6f8627ad, 0x5bc4ae1ede4a0e5d27c2c5d700a854ca2faa7df816004f213ccb8241db343dd, 0x249646285a37f0a45fa7fa98755b1d414de9ffaab9ed8e3f10a4c7a87584dd5, 0x4f62f43f591324d3fdc41126be1d53d026143e0e2ee5c245192a3eebdc9ffe5, 0x6eb635c646274b8b7820ad3a87d6c994bbebb32a437fff43812eb3d90488882, 0x6fcbb0baae308c81f50358f2bbf8c5630677b00a5ff0f089bdddefff558809b, 0x5e5a0c2e385763de767fc06d9c69cfea3d29ad1d584e11d008a5ac22e8eb137, 0x6a7a2c5646254df514da1baf35dc943e7bed526a92519e8f70bea539136e00f, 0x3a3022e1b57d378944c17701aad1febfaed250185976eded70b92e02d34c178, 0x7429c5bd943805580fcdefc948927937019fa2efeaadcdf0874ce7ff7080389, 0x1c1c5182dd7093e7e1683a8225ac2e70f5ebb8b0a984307304f382cdbcb07cc, 0x9fa533dd9125a11a3bebb961f3316f18597ea23c3dce4968978f222888a9a7, 0x7f1f5dada20aebdb530e329fa34d65d15315d9bbedf25f11dbd5224ec71cd17, 0x68997799698de66d953c67924096f04c54aeea5a456be85145b556e787a5a55, 0x3e971f8a6e1a5730b619e98f016b00a70d2772c6842e3d1c46feb90b37a270c, 0x736744f047a118562396523d6ff23a64065948317c421a80ccc20e667076a2d, 0x4ffe873b2d766dd5a45888a573d89c9858a48feb18ad98ab0e42696da53d31d, 0x594170c682061b613893c568c09501b0a7c18c14addde30f3131ba3820436c1, 0x43658a91bbb260a5b12550392862a5637e568de1532f87cc12c0b4baf437594, 0x73b1e8a625f8cb4d2650c0224b7bd69b6eae928b243a91475aa6287998bd519, 0x7826a2cfefb331b55ad7892730214f93e517c6db65f76ec3cd555d5abf513a4, 0x79d99143c29ac1e2b276dc8f78c06297f9b2cecbbf1e025c125e12090753cf7, 0x24f988bba5ac47e3f82845ee7db60b64e16d45030e521752152b34d13f6814a, 0x7f13bef1bd2e94a2b853e9e7e5ea67af89977c8bd0aa811f172bb05fc0571c9, 0x30a16e5bf3f592642da6fe126f122ce15be839b538b090f17db91eb91a21410, 0x1d1b577beac192015243e75194146fdeb2a027d86282acd2c77d4b8c94fc68a, 0x450006c569204d3bbe05e1eb3556958637568691d203069af8c7ba4742ac713, 0x7d1e0d50ab9348228d8f3f2296beed1e2b427b9005115b630c50e739d430eff, 0x6542393429d3a292ffca6163dd4c6d566e4a71111938ac44f8ee90de0332764, 0x4f15c457c08642c567f85081389dbbafd6fa37c227124728ceaa70e102bf146, 0x7fa6f3131012c8b6a01d5a92e107d928758a242354ba34b4a951d4ed8710708, 0x7ffa38fcbf3a015eadbbef8d7cb9e34337bc3c36b4c2960b15a60153412221, 0x186dff8dd60153719bc52c203ccea94f01c1e9b53b0978a308036e5672a5cb1, 0x5a0f60edd2a9451563b9368a48b128c49df7c4fa70230d468b9675aba39ed75, 0x31e9744394b3c60ae2ae058533e16944ebc6f2190f50cbbeff16cae15767d9c, 0x646147f2e06a117cde8906f7658c8f5b7ad8b32480885a072268fb7ac9612a2, 0x6f52aba561c4e805c6d93fc2fe172eaa6e01bcf71c7a8619ee8b3dc91bb697f, 0x47fc720039d576fb921f7dbbc6322a113fcceb7ecd6675f36bfb91c765c355d, 0x239afb874780ebc139e3752380f752331c337620b4fa28628436f610a5ec3e, 0x6d4bd3c7e9ec65e3a6382ea4d81d1d181e0f2174b9b6e6c07a71a10545ddef7, 0x2f2ba4511e11aa84500b63ca3a9d7228aac2c2764756a38e5094af35e335b5b, 0x27534fb89e88791488f17607e9192b321939b14fce4a8c57efbd19c168232ef, 0x27d825e3b1399aa029aadf93762f669e308699fb90411fdd8b4d60f58cf18d5, 0x39d0f46b50a2db6c2a15ad03d60dcc40a1825c6cdb74bc2c77f413d92fec232, 0x60d56a00bb016ad7c7a591d87930d39bb5070f6274c04d5730b14d71ff20964)",
+ "P->V[32448:32480]: /cpu air/STARK/FRI/Proof of Work: POW: Data(0x22ad3717e)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 0: Number(291205)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 1: Number(111287)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 2: Number(414746)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 3: Number(341468)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 4: Number(492471)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 5: Number(303856)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 6: Number(249097)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 7: Number(433154)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 8: Number(289965)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 9: Number(424138)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 10: Number(196619)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 11: Number(327009)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 12: Number(420315)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 13: Number(282737)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 14: Number(111062)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 15: Number(319248)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 16: Number(213614)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 17: Number(416469)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 18: Number(458224)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 19: Number(47788)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 20: Number(337022)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 21: Number(292904)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 22: Number(498960)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 23: Number(9986)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 24: Number(446875)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 25: Number(443663)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 26: Number(13694)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 27: Number(486108)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 28: Number(358972)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 29: Number(295598)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 30: Number(207747)",
+ "V->P: /cpu air/STARK/FRI/QueryIndices: 31: Number(520375)",
+ "P->V[32480:32512]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 9986, Column 0: Field Element(0x1db202679d4053261a8672faa9fad739dffe8b6783e0d67475f226f2f5007bb)",
+ "P->V[32512:32544]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 9986, Column 1: Field Element(0x6075224e2e1cbe1766a9f7bbed0ba7d221886eea6d3f8704423617b3acf66d9)",
+ "P->V[32544:32576]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 9986, Column 2: Field Element(0x1e250b9f110abc8a7a92bd0912d575e81e21c9fa37b59eca7ada599d3e57b22)",
+ "P->V[32576:32608]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 9986, Column 3: Field Element(0x79c37be6fa0bd3ad65c8e922f642887e7064f834af6aca5aa478163613a5a22)",
+ "P->V[32608:32640]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 9986, Column 4: Field Element(0xab1ab4f1bb049343a73beeb4455487d9c120bc1de91cd4e036a2364d3dd094)",
+ "P->V[32640:32672]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 13694, Column 0: Field Element(0x63ef661944860ccb38b0a95ec58e2c423b673c0c1d48b6b39006267afc0ec6b)",
+ "P->V[32672:32704]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 13694, Column 1: Field Element(0x466f95152544bbe4d9eec047e5f82ae38ba4ca1e2d0dea8f53647234644f102)",
+ "P->V[32704:32736]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 13694, Column 2: Field Element(0x71b386d040531649df5363eb1bc4027a7c0874bf8b6ac7b2437ee6a71279b1e)",
+ "P->V[32736:32768]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 13694, Column 3: Field Element(0x47556992a98c6c61fc54b7ad7f9c66357225a9acff210e611b59cc0df7a6937)",
+ "P->V[32768:32800]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 13694, Column 4: Field Element(0x311d3899d20d454571c261d8ffa85db613d323a0f9e5ee4539acf5c4a39958a)",
+ "P->V[32800:32832]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 47788, Column 0: Field Element(0x463a114c2739f1223db52474837fbf145173fcb9562a978e9ebd858c5098482)",
+ "P->V[32832:32864]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 47788, Column 1: Field Element(0x33399484238087d5ae012cb3b5e9f3f6afd9318feea267df868eea1398cf571)",
+ "P->V[32864:32896]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 47788, Column 2: Field Element(0x2e7da590746303e7cb89080594df300a6410b0a6f6ed05fa8e4623bad4d1f50)",
+ "P->V[32896:32928]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 47788, Column 3: Field Element(0xe76eb61af3d74b90084945a8861e4dfc36a6a5d9b340208dbe37d4b0473e8b)",
+ "P->V[32928:32960]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 47788, Column 4: Field Element(0x3ae052c79bac0b2b1a895520c475eca79a86f56e7c4d6d6ca59e068ce655f10)",
+ "P->V[32960:32992]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 111062, Column 0: Field Element(0x5f59894cde8e1b74c74b1ad00563e76b86ce6aa6da54be68bd424efdc21998e)",
+ "P->V[32992:33024]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 111062, Column 1: Field Element(0x39b80955cc3db72be3ec382d0821f2bb76aa4e9d3467437014824c8848d14cd)",
+ "P->V[33024:33056]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 111062, Column 2: Field Element(0xdf5476adea1ced524524a0ae9452ee39c543de576df257b015084e7bfad355)",
+ "P->V[33056:33088]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 111062, Column 3: Field Element(0xd5b3c0752cb8f253cb89840c47c68a4383d1e2eb5ef1dd2eb84e827776a565)",
+ "P->V[33088:33120]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 111062, Column 4: Field Element(0x7695131f558664234a1424a2e9a2f407f61bc8f3437766d7bd3d97c889888ae)",
+ "P->V[33120:33152]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 111287, Column 0: Field Element(0x3c38a1956afb4eac79515a7c6f4d2b0a2dad07aaa3c04b932bbb644d8cd50fc)",
+ "P->V[33152:33184]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 111287, Column 1: Field Element(0x196b544dcb3c0f2e6796b1531214b400fcbc5de155860ab062b7b1dc8c7f05d)",
+ "P->V[33184:33216]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 111287, Column 2: Field Element(0x61243406da602514b7038b29b6edc2983df19573760aec8040cc0b95b46f8c7)",
+ "P->V[33216:33248]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 111287, Column 3: Field Element(0x5d80751e063da8ad77aa7b51d308861ca59f9086f3c5702f9eb744e10f2e069)",
+ "P->V[33248:33280]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 111287, Column 4: Field Element(0x16daca681b1b60e5554737582f037ba11ac4d0991860f962eb2fc02840dce7)",
+ "P->V[33280:33312]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 196619, Column 0: Field Element(0x6e56dabf9fc5623fe4cf5ec235844473f5c56450bae52dbad824f8569592ddf)",
+ "P->V[33312:33344]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 196619, Column 1: Field Element(0x1f120c3fd3b239c2560329fa439a40b0fec90d2ff57f444ec9940e83b37ff38)",
+ "P->V[33344:33376]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 196619, Column 2: Field Element(0xef16119eca003c6eea01fc41933b9e8bcc354df48d7161da588e5a377ddaf9)",
+ "P->V[33376:33408]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 196619, Column 3: Field Element(0x5f163b8f53464cc60321d5a92ff19628acfb30cf1f4549f5341b022b2e4c912)",
+ "P->V[33408:33440]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 196619, Column 4: Field Element(0x6f8ac59d7efbbc26dd11bc89f8708507af45235d455b79ee6a0817f0907b9fb)",
+ "P->V[33440:33472]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 207747, Column 0: Field Element(0x77e5cae13837f9f5f95cd42f48e1d1cf0aae4457d51afe32e70bc7be7c0da74)",
+ "P->V[33472:33504]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 207747, Column 1: Field Element(0x206f81e7fdc6423d3bc056f32dc5c541fb73619b2b53a8000fafa7c69605e1e)",
+ "P->V[33504:33536]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 207747, Column 2: Field Element(0x7b71c3947f13f17914e3f43b23eb7d0aaa8353b3c7777bc4d9d79b236432ec9)",
+ "P->V[33536:33568]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 207747, Column 3: Field Element(0x179db7394687f0990e92adb388f025b1fd48f0df089e6997f4597329f34b636)",
+ "P->V[33568:33600]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 207747, Column 4: Field Element(0x67f7ba3e32afebb9f9d3fd0aeb851cb02dbb228bc4ba1d006e5571fb18a43d2)",
+ "P->V[33600:33632]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 213614, Column 0: Field Element(0x114624f151c6f07d31ff10863a737db116c3f1b57fd376742c051829206699f)",
+ "P->V[33632:33664]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 213614, Column 1: Field Element(0x6c0324945f7e764d0b12702a447ea556da7a2585e38a0776c2751af1e4a97c6)",
+ "P->V[33664:33696]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 213614, Column 2: Field Element(0x30e6f60539a482db7920349b0a8561718223aa83a0c9afeb2d469e2bffb9792)",
+ "P->V[33696:33728]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 213614, Column 3: Field Element(0x358a1781c694b3cabf75ec57d25c06d24c61d0ffff9e93a4ff1c2bd91d6068a)",
+ "P->V[33728:33760]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 213614, Column 4: Field Element(0xb5fd8e72727b3b53c471795d11b0969a3f53cc2c632aca404db30d1248eed8)",
+ "P->V[33760:33792]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 249097, Column 0: Field Element(0x4f1a6b66d803d0be09d61fe867bcaf768fc01bc9ac823fe7372c8bddae2d90e)",
+ "P->V[33792:33824]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 249097, Column 1: Field Element(0x1b110b03751fe3c8ff388a68388508e1dc6a2b3879b6bdadad202a37919a99c)",
+ "P->V[33824:33856]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 249097, Column 2: Field Element(0x3dda1c2c1bfa00ec0fc8d108737bbbf5a04d944e2a8756c2acf3cbc7577ed1e)",
+ "P->V[33856:33888]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 249097, Column 3: Field Element(0x322aca9e41fb09ebd84eca51e40b762af3d2c8ead3791ef80cf0c9f0fb759a3)",
+ "P->V[33888:33920]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 249097, Column 4: Field Element(0xb1c5a50d7650e3412a4b5193107b2110a1d69481910d18d7c3cb096fca0563)",
+ "P->V[33920:33952]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 282737, Column 0: Field Element(0x4e7cac76133688bfd8f04de6944810e094c0020e2967316367b84486afb01c3)",
+ "P->V[33952:33984]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 282737, Column 1: Field Element(0x4afe3039651185df64c032e69054335f974271e52062ae1b29dd20e5dbf8e7c)",
+ "P->V[33984:34016]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 282737, Column 2: Field Element(0x3e2b9c8cb3c3db60f7a2986dd86845d4ab86f1a73729bff84d69d1d8aea4f8a)",
+ "P->V[34016:34048]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 282737, Column 3: Field Element(0x3effb746fe4ec7eb54397f32f1e64ea65c7bf7c3effe2b96d334144e4313d2e)",
+ "P->V[34048:34080]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 282737, Column 4: Field Element(0x72de201d92d9d77da0358c43de5f20cc68cabe9a1f9006f380592ad6b3b3059)",
+ "P->V[34080:34112]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 289965, Column 0: Field Element(0x75c4544abcb230d30d3e1ba46abc1ed7a177e9ddb0a12cec224f59b875568b6)",
+ "P->V[34112:34144]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 289965, Column 1: Field Element(0x4a46b2903662a44f4eec142fa0468836ec77e5bda83ec4ce0ddf0540c1f9cb7)",
+ "P->V[34144:34176]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 289965, Column 2: Field Element(0x38859632a222f5b843e798c74340a105fed03f00dd67817152a14c19221ac0)",
+ "P->V[34176:34208]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 289965, Column 3: Field Element(0x72e693f3fe7e60ad635ca06ce8282cfd37125dce4db3b16cf9956e2c08aa87b)",
+ "P->V[34208:34240]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 289965, Column 4: Field Element(0x316b1363af9d2a392259048aab8b6adcb210e1a8382070183d319116b64b974)",
+ "P->V[34240:34272]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 291205, Column 0: Field Element(0x22c6ba738372ed3e9cf263f0cc2e522cfee68c0fbbc0029eb53eb53b6149870)",
+ "P->V[34272:34304]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 291205, Column 1: Field Element(0x11a18198bfa827e5d5f5ed59955da0b885e7d3cd97ab11b9f73bbc1b2badd09)",
+ "P->V[34304:34336]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 291205, Column 2: Field Element(0x75891e62568c16dfb8cdad03d47846e7b41da1d7a217e60dab1684646580447)",
+ "P->V[34336:34368]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 291205, Column 3: Field Element(0x2f890b543b07da3c32d8be8c48d7a8bc9bebac3a0416a555bb7de3a50b1f4fc)",
+ "P->V[34368:34400]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 291205, Column 4: Field Element(0x1be8c537eab48f9fead64b830906a294c60be374d766a478ade34d1ec5ac79a)",
+ "P->V[34400:34432]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 292904, Column 0: Field Element(0x7fb9922d33564e04f5d34c3d35a0ba6bc92bca20c0ece65cce028952de19357)",
+ "P->V[34432:34464]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 292904, Column 1: Field Element(0x721736fd676a02275eb87ae33a5482704145e375b9ba638195054b7375ead51)",
+ "P->V[34464:34496]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 292904, Column 2: Field Element(0x1662bdc15131f415174289083701fb63fca51089d1db71a4f3560370b63617b)",
+ "P->V[34496:34528]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 292904, Column 3: Field Element(0x39775b4348b2c742ba429982cf51530a1a345f578f5f03f807c7657da558fbc)",
+ "P->V[34528:34560]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 292904, Column 4: Field Element(0x5c1c048b3eb9551bf2cb2159efbacb4f2d67484d776d052402a97dc9d6a9dc3)",
+ "P->V[34560:34592]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 295598, Column 0: Field Element(0x494ab5be453ba4fecc4528501cec5c6eb32431847fe7dae502f4b9d96052c0d)",
+ "P->V[34592:34624]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 295598, Column 1: Field Element(0x6e984ec8959bfc140d1d5746539ca51448245df0418c3436582cdc8f67368e7)",
+ "P->V[34624:34656]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 295598, Column 2: Field Element(0x4943eaa1d7b232f9fe8ae03cd7cd17f81349fc149c1c7654255fe68d02014e4)",
+ "P->V[34656:34688]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 295598, Column 3: Field Element(0x5d1e5ddb362fcbe475980c10d47ba13ad206344541a868f86b97dec903249e5)",
+ "P->V[34688:34720]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 295598, Column 4: Field Element(0x78764374fa29b6dbd1b6ae1d7564beefa079cf6c2b86dfb1da7d90aeab71724)",
+ "P->V[34720:34752]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 303856, Column 0: Field Element(0x5a8892eb20d92df56a6b0b9cac10d275f10c10953f193954b6823d60dd79681)",
+ "P->V[34752:34784]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 303856, Column 1: Field Element(0x42d1a2b207bb00a764c4ceb71cabfeb053bdec12ac24d00905267513295bdec)",
+ "P->V[34784:34816]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 303856, Column 2: Field Element(0x1cd9ede1a1d28c4e7aba5f04625928ce2b8909843f9fca94bf3578229763c31)",
+ "P->V[34816:34848]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 303856, Column 3: Field Element(0x295cde9495785c03a5aa8af36bc83668cda5b8c54163c6f8e7d93e516cd4422)",
+ "P->V[34848:34880]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 303856, Column 4: Field Element(0x6339ca60303cc36d7608313b8e81aabb84bf31375073ec20d7113c143605ac)",
+ "P->V[34880:34912]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 319248, Column 0: Field Element(0x4a5c4357a350980aa3a114b2bb54133de0594940ad38cae0da74ada8442673f)",
+ "P->V[34912:34944]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 319248, Column 1: Field Element(0x4e5ce33c039daac7ce7ffacab3e2afb22b1c687dd37727e03227c78aaae9baa)",
+ "P->V[34944:34976]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 319248, Column 2: Field Element(0x1da2a6f40ac2fe3618763d2c10f3325ae2780dd178ad6b2f1c0131f9cfce82d)",
+ "P->V[34976:35008]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 319248, Column 3: Field Element(0x79aba9c769254bf9cdf83365e120b343bed15ff55ebb38a5a3abf2a0bb0ed7d)",
+ "P->V[35008:35040]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 319248, Column 4: Field Element(0x7f53200dfb045eb2850739a8294a084a0a7e13c6262a8a829bf13ddbec80031)",
+ "P->V[35040:35072]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 327009, Column 0: Field Element(0xf0a50c107873b73fb60753f0d73e7bc7b2badb7b496eb7a03e9d2bcec735a1)",
+ "P->V[35072:35104]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 327009, Column 1: Field Element(0x260ed1a1994ca79d1251dcfe0a9c5cef49b474e068ef652ecd213a185cdb89a)",
+ "P->V[35104:35136]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 327009, Column 2: Field Element(0x716a45906e134f50660c1bfb66691666ea043d2f450ca3296e460e6ab271ea0)",
+ "P->V[35136:35168]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 327009, Column 3: Field Element(0x39ca61fd779b7b899597efa9050a7771c1a251fba00e4b3192031823e38f166)",
+ "P->V[35168:35200]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 327009, Column 4: Field Element(0x8daac530fd7f80b48bc25f19bae9db0f07f853647838b08b5650e5d3ff6a6)",
+ "P->V[35200:35232]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 337022, Column 0: Field Element(0x6edaf0ed361b7a7ca811df52561de924e5be7b9ce821f3a5c23584b91aae93b)",
+ "P->V[35232:35264]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 337022, Column 1: Field Element(0x34191fe76d4d821d037dd96d891164aa544547646cf3a3c5082c3d668f390ac)",
+ "P->V[35264:35296]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 337022, Column 2: Field Element(0x23a075c0c0e1c0296ae16f0a8f2c5245d3012721a97bda447af518aaa0320c3)",
+ "P->V[35296:35328]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 337022, Column 3: Field Element(0x60250f1521b138763f3f39118ee8015e19a8cc80bb87cbb5b9218dce6c346ec)",
+ "P->V[35328:35360]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 337022, Column 4: Field Element(0x560a6d6d8a198d8c013c517c4979d1d74e352d307de0de19dceaf98dd5355ef)",
+ "P->V[35360:35392]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 341468, Column 0: Field Element(0x6cb9dcc0c593fff1d171b4c62cff6c4fc8c012afb9594bbebd175b713fb2b88)",
+ "P->V[35392:35424]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 341468, Column 1: Field Element(0x4b88a77b6288569effe7ec2a9ae6327f77c8daf57bda3a3372852e58ec8c867)",
+ "P->V[35424:35456]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 341468, Column 2: Field Element(0x6daddd564c1b86b3cb5dd4e57cea1377d3d6afe12234286bccba57d6059c55c)",
+ "P->V[35456:35488]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 341468, Column 3: Field Element(0x619fd6ed2a8ff549375f6e8665ea0c8a82f788abac6948324acc77c0d2e16e2)",
+ "P->V[35488:35520]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 341468, Column 4: Field Element(0x363ae56f00ad17e88dbd0f53bb233a2b9f89387871f9658cfc1ecd2699cb947)",
+ "P->V[35520:35552]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 358972, Column 0: Field Element(0x3c361c207d3ed7067b55bdb47e88991a48b70bcfdf3e60b2742c80b1e5374dd)",
+ "P->V[35552:35584]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 358972, Column 1: Field Element(0x27d012470ffda3f1346c39ca8b2bb7ffbdda47ccf1319906803ad381229f243)",
+ "P->V[35584:35616]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 358972, Column 2: Field Element(0x70fda944d59130670bbd2cc28d9f00b637a1c5091d411557431ca6af80acbcd)",
+ "P->V[35616:35648]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 358972, Column 3: Field Element(0x38dfbb6fda79fa58f68bdbb8e8852dc473f1a6e3f165dd8b152315e8b93983b)",
+ "P->V[35648:35680]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 358972, Column 4: Field Element(0x1f2cf009a1eb37a45ddf1afbde753599bd81fa4d85367d3750cbae646db608b)",
+ "P->V[35680:35712]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 414746, Column 0: Field Element(0x1361e4b45f222295246b3207c5bcdc6cee274d9c888c21ef34dfe6de582029a)",
+ "P->V[35712:35744]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 414746, Column 1: Field Element(0x5287ca45c42941816197a748337b0a9d64ea8a954613bb002100a2d26976704)",
+ "P->V[35744:35776]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 414746, Column 2: Field Element(0x5bcd8c04dd526564027b315314db2f518a726f9c8dc930dfd3916580916272a)",
+ "P->V[35776:35808]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 414746, Column 3: Field Element(0x4dd88eac82b0a2c6ce185f958bf809f48c7d4a82e4c47c79734a6818775f60a)",
+ "P->V[35808:35840]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 414746, Column 4: Field Element(0x2a3895f56fce0b7e30ece84191453c85ab11a652b6f746ac0b32490e93244df)",
+ "P->V[35840:35872]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 416469, Column 0: Field Element(0x585ba5c259a88b868dfba8185df90cdb3e2a524a13f2338c3426bffe706171e)",
+ "P->V[35872:35904]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 416469, Column 1: Field Element(0x4f2ca89f096567f66c3c05d0dd63ab4107d41f2e49ed002bb1e4ed7fbee31c7)",
+ "P->V[35904:35936]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 416469, Column 2: Field Element(0x239bdfe4cda56af2335f1b02def16352d4c10a040d11bc376ca034e0e2279cb)",
+ "P->V[35936:35968]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 416469, Column 3: Field Element(0x28065485e701ccc9b22f92c78ae08c74cc2d50446f98a0d227349c2d62e974f)",
+ "P->V[35968:36000]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 416469, Column 4: Field Element(0x15d72670ccf3d04b06f52f0db2424d0dc26807353d434db0727ddb2a358c200)",
+ "P->V[36000:36032]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 420315, Column 0: Field Element(0x6c14f333cada58c68e2d4f54ec975f0f2990b1c7a5630bdd87f9547b6c60d39)",
+ "P->V[36032:36064]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 420315, Column 1: Field Element(0x272667b001a4a2c7f0b935dc20c044ec0e1e2eacbda58082c3f105c1322e841)",
+ "P->V[36064:36096]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 420315, Column 2: Field Element(0x77025aeb3cf0a9aaf4f090f3f00c1370c88cddcd407edeae8269624a97abe50)",
+ "P->V[36096:36128]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 420315, Column 3: Field Element(0x3555b10230c4d307480f685760084e1eae3f81ac06c536e0938f777786306d4)",
+ "P->V[36128:36160]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 420315, Column 4: Field Element(0x3d35da7e4fe9ef5b696045efaa5ab63a3d26090d072247518cce2b3a860c2c9)",
+ "P->V[36160:36192]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 424138, Column 0: Field Element(0x57a613c64730c3099397694a99327930cce990c862722fc1b72a596b185e188)",
+ "P->V[36192:36224]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 424138, Column 1: Field Element(0x555f9ea5e26ad0466829ef597868ce985ea7466ec1a00271b291390715f14ce)",
+ "P->V[36224:36256]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 424138, Column 2: Field Element(0x518201a80e75640bf8e11be210d16a32ac65cbe49ba0ffd351108f5005f9a01)",
+ "P->V[36256:36288]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 424138, Column 3: Field Element(0x5c3caa3eaacc9696b13431e8aec45f2cba57b2521f4f276c9801338209f0478)",
+ "P->V[36288:36320]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 424138, Column 4: Field Element(0x11deeeb88eaead21e5d5d88b1cce0a1f32a575b700cb0c782a9d5c93bcb1896)",
+ "P->V[36320:36352]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 433154, Column 0: Field Element(0x3c96fc21f28849ca59047e540d6cfbfc1a6827a699d9a6d33984804b71a8fcf)",
+ "P->V[36352:36384]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 433154, Column 1: Field Element(0x287b49f7a064c568bc0d2fb5eb1aafc6d0e468fa11e51e867add608b849af6d)",
+ "P->V[36384:36416]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 433154, Column 2: Field Element(0x6929abbfe747429b86aef6560b8252d75aefe19ee7e2f07e19db2587e0d4125)",
+ "P->V[36416:36448]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 433154, Column 3: Field Element(0x6985a727a6bb989c5d4ba4694fbad3dff7030fa26e91786f0f454d0a855270c)",
+ "P->V[36448:36480]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 433154, Column 4: Field Element(0x69bc6220aac76840677920b34cc076288d625d5a4c5ac0cd38627430b5d8501)",
+ "P->V[36480:36512]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 443663, Column 0: Field Element(0x3a7fcbb0fb49f2d6124414dd9328ed8c61de0b9c4a2b0633403fc30c74348ee)",
+ "P->V[36512:36544]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 443663, Column 1: Field Element(0x31696e76fd8cc4d45fe11b63c07f267d6712a6458438871149b2a1369a2aae8)",
+ "P->V[36544:36576]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 443663, Column 2: Field Element(0x18cf01bff4bd19efa549ca65787b05bdd121e37af1558a2123ca4bdbae4cdd5)",
+ "P->V[36576:36608]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 443663, Column 3: Field Element(0x4a1630822c63f23e163ed993ff751a54c0ffad09a34f78a56c906a16ddb226f)",
+ "P->V[36608:36640]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 443663, Column 4: Field Element(0x7346c3d69b3bc1ed6cd6c0d1e72d295d2954db81783233271100a771b79a4bd)",
+ "P->V[36640:36672]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 446875, Column 0: Field Element(0x54fea096a4ef41c9712126ca7e47a8e59efe564492710ca1db8cc1b3c0abe55)",
+ "P->V[36672:36704]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 446875, Column 1: Field Element(0x1929630d6451c45d29cc70b6a7d37a64ab5dcf85804bfd8672e91a04b10352e)",
+ "P->V[36704:36736]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 446875, Column 2: Field Element(0x6ef9224e99ed8045930e0346862e2a0371ad24f11b44620a8b4ec2838993d3a)",
+ "P->V[36736:36768]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 446875, Column 3: Field Element(0xd7eb5224c60ee6a9623c8f8476ae6cf23c08f659504d910d90abf401ee446)",
+ "P->V[36768:36800]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 446875, Column 4: Field Element(0x549af41a22c7545262d745a533ff421b1bb84716e1f2150505b3e57b113bbed)",
+ "P->V[36800:36832]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 458224, Column 0: Field Element(0x4fa5c15e22db1991bfe8762ed35e6934546c3c655ba82af0ae6edd23ead7f26)",
+ "P->V[36832:36864]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 458224, Column 1: Field Element(0x56966d9a04a4922f6ec841aa7ae7cad85d8d939cf254370c3a3f7c21b4ea714)",
+ "P->V[36864:36896]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 458224, Column 2: Field Element(0x13ef750a046146fc95fc28afca758a510cbba088a9e7bab397f2cbb6bed454)",
+ "P->V[36896:36928]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 458224, Column 3: Field Element(0x5b5b98dda31501b600b0590bd2008c583f08d175f43ad531bd57361e0f4c908)",
+ "P->V[36928:36960]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 458224, Column 4: Field Element(0x684bf4d2e78599beb36a8dd4bc6648123e539e7b82983813891d62bfefef80b)",
+ "P->V[36960:36992]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 486108, Column 0: Field Element(0x5c8737d40b6aa34875042e36440cb7565e7b1cace0c795a58858a018f1af50c)",
+ "P->V[36992:37024]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 486108, Column 1: Field Element(0x5e5be3cf4ccbce626dcf6fbe3c5c4e1c66768c9304aff15651754e5286f8612)",
+ "P->V[37024:37056]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 486108, Column 2: Field Element(0x30a5746784a8599662aaf55903449eb0b8276c8222be010e95072509f11fa1e)",
+ "P->V[37056:37088]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 486108, Column 3: Field Element(0x6feebd0f5c9a9e2440f1a12ea1dbe20ee3f4dc627b82ea78a71e1577da87ea0)",
+ "P->V[37088:37120]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 486108, Column 4: Field Element(0x4a31fb8ee829ca0991a5c1a943ff68c030076ff2a1466d7adcccb92906f4acc)",
+ "P->V[37120:37152]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 492471, Column 0: Field Element(0x11f9633b795a84ce8783dcd47082db73f24780061d3e72f6e236bea6f08c132)",
+ "P->V[37152:37184]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 492471, Column 1: Field Element(0x3669e835803cd73fc9da9d931367463a31d519b458a4ac1f8f2759f8e011e97)",
+ "P->V[37184:37216]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 492471, Column 2: Field Element(0x71d5957138b5a7c6d197da93dbdc8d46080192ba8b64154877389923d64ca90)",
+ "P->V[37216:37248]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 492471, Column 3: Field Element(0x7b40cc51a061471159b61260735cd8e4a54ba6d8ca65d58792d99a2531aee99)",
+ "P->V[37248:37280]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 492471, Column 4: Field Element(0x5bc24bce7e29f28e2482f6c85734188c92831abfae4e35bf827a6c67653e509)",
+ "P->V[37280:37312]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 498960, Column 0: Field Element(0xffd96dd3d352825e0e2e7f1cb49c1b54fe29327401721ffa0fcc17875ce4be)",
+ "P->V[37312:37344]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 498960, Column 1: Field Element(0x7e9d536b013a13e14fe7cb041b5925361b3da977d13a31c0d74a6485a9c3c2c)",
+ "P->V[37344:37376]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 498960, Column 2: Field Element(0xe607dfc1fde220c32fc871663d367e3f8b3f24a8a9beee53e346add97d9d37)",
+ "P->V[37376:37408]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 498960, Column 3: Field Element(0x2b5af19faa069fcffacbc3c31f58cd724fd2277173eb3d49fb676b6e4e345bc)",
+ "P->V[37408:37440]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 498960, Column 4: Field Element(0x3a1c9a11a47f14ad4eb0b3795ad7191068932274cb5c6621d8d71dbd1be13cc)",
+ "P->V[37440:37472]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 520375, Column 0: Field Element(0x446b944c3af64c3cd4feb493f1565b9b9d28dc968c86b48d36903eedfa8c01a)",
+ "P->V[37472:37504]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 520375, Column 1: Field Element(0x1578abf8a2887c43af47f9ad50049242f5bc24b5f4aae83b54398ccd80a488a)",
+ "P->V[37504:37536]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 520375, Column 2: Field Element(0xee950dc2528e03552693adfa35a3d3322eb4ffba79f42dbe13f858b124ba9d)",
+ "P->V[37536:37568]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 520375, Column 3: Field Element(0x59a39c7d1b61d3c233f601e1316fd15629b1461df1ff3295353b53b0284e9f8)",
+ "P->V[37568:37600]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 520375, Column 4: Field Element(0x55b37b8d9263f44d63be8097e95d30292d1fa9b2f899c439fc0d9f2ff9929be)",
+ "P->V[37600:37632]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 534275: Hash(0x3f9b6816e98b108ae61ac76925be07b35e0dea20efc92c46b4c5a94cd85b218)",
+ "P->V[37632:37664]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 537983: Hash(0x4ced743456bff547ce554c4a613c2b0750b6f71279ffd7469ba047d72a66297)",
+ "P->V[37664:37696]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 572077: Hash(0x1fc82d3093dfc58bd4d9e6f46e2b3ca6f08a88a9f8f7b0191cb1491c54a74d7)",
+ "P->V[37696:37728]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 635351: Hash(0x2bf1622f184a9ea0fe0bcf794625762d0c67b1714a983d65806813708e2d7c2)",
+ "P->V[37728:37760]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 635574: Hash(0x26b83f091c398569f03cd3104d621b73f5114bdad6e20fdf8c58de0296b1c36)",
+ "P->V[37760:37792]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 720906: Hash(0x1c9c412bd68e4cd214e45aa25cac941dff14476a821d2382d20776153d437e8)",
+ "P->V[37792:37824]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 732034: Hash(0x1c0774ce385f5d00dc6349011ce63d30d099c126d3dced3b726c484d22af5e5)",
+ "P->V[37824:37856]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 737903: Hash(0x58f15385fd3a5e20a0311ef51920dd51689aa7e256adf62713442f0c4d1807b)",
+ "P->V[37856:37888]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 773384: Hash(0xc23c307b9aa830604cd0f8703049e5767dcac5e3f94b6815c90c368edb433c)",
+ "P->V[37888:37920]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 807024: Hash(0x5c21aee80f4d905637913793f7887e6afe0d58d2e1091b4ac85f6d5300b4993)",
+ "P->V[37920:37952]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 814252: Hash(0xa8004a9507029b2e21c47a24eae70d1b6d4e021110a5bfb3ae435189d2db79)",
+ "P->V[37952:37984]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 815492: Hash(0x5eaf2557651507a2ba93f707f2bd7ca1c32f640fb10cc45439efaa3b6be54dc)",
+ "P->V[37984:38016]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 817193: Hash(0x29a23e70362422c27e6320d9325008bebd53b7f22ca2a7d1f0a6cd713d28aeb)",
+ "P->V[38016:38048]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 819887: Hash(0x5346e3cb97e2ef95619c364d90f0c66db0bc18bb31711ade988cf9d3e3833ae)",
+ "P->V[38048:38080]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 828145: Hash(0x709862f2c498b12b7dd5fce7c0672511458f97aaed8cb744adab53a32ee4504)",
+ "P->V[38080:38112]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 843537: Hash(0x6afd152feffc16659456cce4ab068ff22aab7e95c4671fe96b62194ba4b99ae)",
+ "P->V[38112:38144]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 851296: Hash(0x1556a2c37da0f0d75d2a2ccecb683ab8efc90510a76deb87e9cc026c7e8d9ea)",
+ "P->V[38144:38176]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 861311: Hash(0x1127d29c525abfa1e036e7671471551ac25dec0c532782402ac00a0fe41f12f)",
+ "P->V[38176:38208]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 865757: Hash(0x8ee82772743d10c62d7f6ec889438588815f7e2f59d682bdfcd847ad0b436a)",
+ "P->V[38208:38240]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 883261: Hash(0x7b6fce7dc1ecda0bd64623f84f4459846aedb536c7d52d9540fe7a883f89ea9)",
+ "P->V[38240:38272]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 939035: Hash(0x5f55876a2da526792cd45c333f46c00961766bfcc79cb04f876d46ca3cbdae8)",
+ "P->V[38272:38304]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 940756: Hash(0x298dedddd528314d1cd4b947d4c77266befff7e0d1d3592e00e7a41b3fc64c6)",
+ "P->V[38304:38336]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 944602: Hash(0x251fc06596673c704f202f117b8ba812a725dc2ef1d36bd73a4f00945c43fc9)",
+ "P->V[38336:38368]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 948427: Hash(0x3e6fcfbd43f1544a071801b3ec678c66b4911e77f42239b8a3d71b39d30d08b)",
+ "P->V[38368:38400]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 957443: Hash(0x5884da7dcc76b87df8ad6a83beb0a42de098e5c0a4f079c6de42cc0ee72af7d)",
+ "P->V[38400:38432]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 967950: Hash(0x6081893d4bd162f97de22378c3251f1a032f643f1f403fcf2c08a0e3c5d7d8c)",
+ "P->V[38432:38464]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 971162: Hash(0x20bbbcede27f5163d94be69033ae16be95b4e47424d1054ef88a7b11ca00d06)",
+ "P->V[38464:38496]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 982513: Hash(0x2fff5e60edac5be284aea97cfcd17700c1a24d650cb9ecad3f295b45d861ad8)",
+ "P->V[38496:38528]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1010397: Hash(0x5f4697749099c4838ab64598ac86742957d38b310ef0640608e5dc895ee7ac2)",
+ "P->V[38528:38560]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1016758: Hash(0x74cfac608907fb5999255d6d73b882e8c1ee9cc79a174c3c134326a49485dc8)",
+ "P->V[38560:38592]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1023249: Hash(0x3db66091ec889e374a564dbc16039c24cafe8867b7a16910a96c2d38407c173)",
+ "P->V[38592:38624]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1044662: Hash(0x384f3844661b1d681a637bed6cc9ecb47bb6a112ae22a3906742f960a0a0759)",
+ "P->V[38624:38656]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 267136: Hash(0x51f9170250c627ff78fddc441718f2b74b13f4bc8f99b86c3783812b52eb7c3)",
+ "P->V[38656:38688]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 268990: Hash(0x7b933cb2f516bfdf627073eee9b3b516e9ba49e410922d89e2dce556bccf1a3)",
+ "P->V[38688:38720]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 286039: Hash(0x417c3e723afa227db8e87c79a610ff2487f863a0f0756eaab2d89b8295fec6c)",
+ "P->V[38720:38752]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 317674: Hash(0x13dda5c29085c0a0e893ec78f4cecf85fe992d2ee07f8a2967310a1acca8f7e)",
+ "P->V[38752:38784]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 317786: Hash(0x1cd6e85ad133b86a4969185f05dea643dbabd899b619f97c81323046b57539c)",
+ "P->V[38784:38816]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 360452: Hash(0x77919907d426d7cea5591846c8fbb50c90b15aef2859413bb6ed1e1d0ce4ea6)",
+ "P->V[38816:38848]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 366016: Hash(0x286377b020bf3c50be798a08c2a1bccf50909d5618a9483a23c8ede7eb969d9)",
+ "P->V[38848:38880]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 368950: Hash(0x46f29c901ed51191224c1b3602aaeea23e92286cf1be729b013b4ae8215d48d)",
+ "P->V[38880:38912]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 386693: Hash(0x1770cf7af5cd484eeccb24a8aa71d5a9b536d847b829091b8d3a8f0b81de6ab)",
+ "P->V[38912:38944]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 403513: Hash(0x49fa820c86aef56c00d45edfbfc04fa23fd862515e2950d545557cdc0d16690)",
+ "P->V[38944:38976]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 407127: Hash(0x17960783170b22fa84f5213cf3319cdb18f5500051a5b15fb978771c83dae3c)",
+ "P->V[38976:39008]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 407747: Hash(0x518e91d3cbaf85f937e0b7f6833a036a9e74b609301d2b63b5cb1462901b1b9)",
+ "P->V[39008:39040]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 408597: Hash(0x5bac9014493d3e3d38e04667a4fee6f8295c3049026d69a1bf22e88330828a4)",
+ "P->V[39040:39072]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 409942: Hash(0x62f4e32cb8fe32f40fca809806557056d522f248974da659414b1f844734d76)",
+ "P->V[39072:39104]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 414073: Hash(0x57dcd0403a4cf0eb76d3f50ed7a9b89b186bb3b8e14af883622a32ad6430921)",
+ "P->V[39104:39136]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 421769: Hash(0x65a0ef29673266134382b0602712ab0d8283f301e4645e2b7a38e6d08a997ad)",
+ "P->V[39136:39168]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 425649: Hash(0x740eab8b0051112ce07e2f00102adb1f1031dffd842e47c14b0c25533a49287)",
+ "P->V[39168:39200]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 430654: Hash(0x61a0f7712440b5bd62191fa68836ea3a342811f379a8ae61a856933590a7651)",
+ "P->V[39200:39232]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 432879: Hash(0x16dd0ebeba4789836bdb9162c2e7144630de917d2dd7c689bb5a6ce9049d17)",
+ "P->V[39232:39264]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 441631: Hash(0x207ae3311227da2dd072774a43afa8ec7820e25a9c6312faf6634a88ae2093d)",
+ "P->V[39264:39296]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 469516: Hash(0x42449434bed506513bf61d9b4273a0f71df2a9945bc3a89b7c5f6cd458e31f8)",
+ "P->V[39296:39328]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 470379: Hash(0x2c55a5cd6ebc234fdf56c900411f0e6f916d8b41c41c356506d7d12d184f5b1)",
+ "P->V[39328:39360]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 472300: Hash(0x59202209f10a2f8984003a57f8dbabb8ab07e92d2847a09f7ca6f55b174ac64)",
+ "P->V[39360:39392]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 474212: Hash(0x61e79d17009806b1c67e9ad0cb50436ccd44a554d1cdd75d0b0f9b965a785fa)",
+ "P->V[39392:39424]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 478720: Hash(0x5bcfcfb7129ce10306f56c3a2768f0bb349f6a3948fafaa5e7547a538d6f35a)",
+ "P->V[39424:39456]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 483974: Hash(0x36e969311f666c2217ace9c6f1b36f0b1afc34fa8554b1f75ee85775d53e591)",
+ "P->V[39456:39488]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 485580: Hash(0x1aa205fbf217c6b8b368d3b7e466e6a489f5f627fc6678ed6d96196dbba6b16)",
+ "P->V[39488:39520]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 491257: Hash(0x74c7ab44631c7a6719d2e48eb54472c81a556f9367ef9276f41abab640f0998)",
+ "P->V[39520:39552]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 505199: Hash(0x10d18a043b0c486510035588d28e878bc996d570d2c04d2a410b51251a22b7)",
+ "P->V[39552:39584]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 508378: Hash(0x384afa4a525c1b825bdb8ecc944f3af41fd297e2a520d5b3a7aafc9c5d34238)",
+ "P->V[39584:39616]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 511625: Hash(0x2867566a1e5eb9bd1c8abd400804e5ddcfd305841a907948b6003efbf3c377)",
+ "P->V[39616:39648]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 522330: Hash(0x3db2edbd517627cc53900de45d5e77a23e8d155e3240acd9a5a0175b16f271d)",
+ "P->V[39648:39680]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 133569: Hash(0x7066ea653975bd189cbc93abe76ae94d90ad9cf0b694b0765c20704613c937b)",
+ "P->V[39680:39712]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 134494: Hash(0x683d79423e242fd6dcb9166e085026a953c19d5d09ae38d60a74ed712902af9)",
+ "P->V[39712:39744]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 143018: Hash(0x403fbfce9f1a7ac56dbdae0d27b2aa255e8065096272d61435e2dda632b1189)",
+ "P->V[39744:39776]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 158836: Hash(0x772e60cb863bfb2b0cf47a66a6308b95b989a325eb89b678b53f3a6eeb7437a)",
+ "P->V[39776:39808]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 158892: Hash(0x5d7a0937e09a2bcd53f36044d400d119c5710974e4c87f4b9ec5ccd2501cca4)",
+ "P->V[39808:39840]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 180227: Hash(0x4e475f3ddbd3633b370a7862d1f08f8f0caa8d7f71b7b999860ef210eadf9a7)",
+ "P->V[39840:39872]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 183009: Hash(0x45f26270397f500aaed63595cfaafbb0966a0e0dcdcee85126c7e926c00512a)",
+ "P->V[39872:39904]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 184474: Hash(0xa62213446796fe2aa4375179d6552bf391e9a037f3384c94d29f77e989cd8b)",
+ "P->V[39904:39936]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 193347: Hash(0x672629cc7be8ed8f4a760344797c3420739feab604da33402f8b84d6d2d5e24)",
+ "P->V[39936:39968]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 201757: Hash(0x389d08f06b80f7c52e1bc55e6800615b7b7005681a4a4dcfa19a2ca842a85d7)",
+ "P->V[39968:40000]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 203562: Hash(0x4a8dac4974cb9c6dc885688ea92a7d69fa2f7ee9e2d7156f0224536e81502e7)",
+ "P->V[40000:40032]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 203872: Hash(0x7e9660feb7a5fc106de95674afc8c385d9b4679bbcabcb2ead826c0daff488d)",
+ "P->V[40032:40064]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 204299: Hash(0x532b3824857ab1203bfd7bee90fff826e29d558f4968758c311885d1fa824b4)",
+ "P->V[40064:40096]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 204970: Hash(0x41f69efaba6277bf8fac8913842a61756c30802f5eca20182b42f5b2fa2567)",
+ "P->V[40096:40128]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 207037: Hash(0x2262ae9a806a7c1ce0e571c778c6b4ccc0daaf0c8430c31760e66d68218ff68)",
+ "P->V[40128:40160]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 210885: Hash(0x3f17fabc0a9449c7004cfc00d47c890b1caaba0335d644e5a331980bf4294)",
+ "P->V[40160:40192]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 212825: Hash(0x2536e88d740f2229dd8bb12590e8de2f525ee1831ed3260502870dd1876ff40)",
+ "P->V[40192:40224]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 215326: Hash(0x6efd1936c9cfb27366cafccdb67514eedb358a5061464fabaaf339c902ea9bf)",
+ "P->V[40224:40256]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 216438: Hash(0x7c61e4d0ba25e452a92ca866a6c60a066901abf23eb596ed73ef52e4007d1d2)",
+ "P->V[40256:40288]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 220814: Hash(0x902d38a6850f49e8b829da6d4ee07f5ca00243b51de77a047e3e5f9ca71853)",
+ "P->V[40288:40320]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 234759: Hash(0x448f5a4191f0fe83ef2b0b38992c8507a26272c93281b1cdb4930a0d5d9d7d1)",
+ "P->V[40320:40352]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 235188: Hash(0x2fa230dad4bd5064b18a836e4f8bad8642a4dffc8ac9bcd60fd0a49e380266d)",
+ "P->V[40352:40384]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 236151: Hash(0x7b036c047957b8f382be20a3fc5310ef8dcf8b3854d84ff71bb7fb2ca9b2b26)",
+ "P->V[40384:40416]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 237107: Hash(0x2a20367e3c7db5db55a83989f63f4015db27e5f31bb3672fd18f15509714f71)",
+ "P->V[40416:40448]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 239361: Hash(0x6415049b7c08b9090766bb9ce5c88ceeed04df39efa362cf43f1699902a0c87)",
+ "P->V[40448:40480]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 241986: Hash(0x725e00f3b6d50618efd216791f07e4cd881c68471bb6c87ae11f925b4ef1ceb)",
+ "P->V[40480:40512]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 242791: Hash(0x5ada39f8dced8fca75c040a01a7b595983347b842692a4bc0dffdde31d9cc78)",
+ "P->V[40512:40544]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 245629: Hash(0x5f1199d50b28803fa2078075f694661ad5d9466705fc27523d8d40b4821372e)",
+ "P->V[40544:40576]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 252598: Hash(0xb2772ccf7895603237168556b3d84d04c1e9ad3847e66079d4e2a785f31987)",
+ "P->V[40576:40608]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 254188: Hash(0x1d30b184d17816ca76ce712ec6c5df670c061de2b641e2fcad8686178bd9d48)",
+ "P->V[40608:40640]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 255813: Hash(0x4de684b7251da6bacdbafc6a1fb4791772d47a56927117069c826f2227a382d)",
+ "P->V[40640:40672]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 261164: Hash(0x39f0b9352525d523c57507c137e71767cf16a9eab84c662556223edf07c9650)",
+ "P->V[40672:40704]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 66785: Hash(0x629996c7d9596e55fdb3ef6fbec60cb68b074960a5c39908ab905d7f92f7d6e)",
+ "P->V[40704:40736]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 67246: Hash(0x387315f70e7b83435738438346b19f06a055cb90ee5d155a6d905610faddf9b)",
+ "P->V[40736:40768]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 71508: Hash(0x1499704ca951adf749c39662574db6d1ac6e9af20c5fad316038993943607f4)",
+ "P->V[40768:40800]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 79419: Hash(0x35a1455c0354b9bddfa5403b0d0a6aa533d1d834f64371f3df088484f65d234)",
+ "P->V[40800:40832]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 79447: Hash(0x460d72889bf64de2cc4fcb0814962e8b6d2f7b0f1187f7ed9d686e26b96f0da)",
+ "P->V[40832:40864]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 90112: Hash(0x435057e316178f81c6c4211b715ca77e818294548338f1a33bf0e2401c36184)",
+ "P->V[40864:40896]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 91505: Hash(0x54b670891e955d03be4fa13350337923dbacff289981ee737a9fa5e9053bf8d)",
+ "P->V[40896:40928]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 92236: Hash(0x1b24f8b81c9cee100a57d9c67c7a9ebc64a3a6f16de8a8062946286f7edc0eb)",
+ "P->V[40928:40960]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 96672: Hash(0x539b6673d7f7a7bd454bdb38428bb7b49909dfc9cab4552fc89210d153d59ca)",
+ "P->V[40960:40992]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 100879: Hash(0x68ac7f739a1a20963bee035a4470fd0146c54d96ae708d0746b1a753f85fdc8)",
+ "P->V[40992:41024]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 101780: Hash(0x37b035dd995a50662da133910ae2cae8c1951dc94520f95c13a67470fa6344f)",
+ "P->V[41024:41056]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 101937: Hash(0x7b60918324660e1242a3ff2329b90c9653e29bcf31e6fe09b68302ab99876b9)",
+ "P->V[41056:41088]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 102148: Hash(0x506fe87062d9a2a842a44616b8a769bf3d13497edd587c3fd6e0c25de6bc5f8)",
+ "P->V[41088:41120]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 102484: Hash(0x15abf623723414242a5fbe69889b014664ad2d1617b52044dc8c04885c9aa1a)",
+ "P->V[41120:41152]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 103519: Hash(0x725edc13ff6c31ec734e659f66e1bc6849ff3fc963eb96b6fd9d9cfb5f690ed)",
+ "P->V[41152:41184]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 105443: Hash(0x6d6b2a930a5efd1658e8221cc954f0876da467db573925f2992023627dd383b)",
+ "P->V[41184:41216]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 106413: Hash(0x53442c715c84900361e2f9b1fcbd8210400d3d1aaa9a59bc61d2aee455dd194)",
+ "P->V[41216:41248]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 107662: Hash(0x4eaa7638c239cf8500bc9a8a1a0b6e7241c4784d68d30de984562a203fa881)",
+ "P->V[41248:41280]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 108218: Hash(0x6fc1b29499502540931ff98199b86f0a48bd9d026f29a1c030a04d54cd8a11c)",
+ "P->V[41280:41312]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 110406: Hash(0x209dd8515508d9f8fa9c402d08f7a5f7fb8c484983c3d2c7f7da35b735635f2)",
+ "P->V[41312:41344]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 117378: Hash(0x6d8726423ae8771fccec0a159c9d587d1e3e63e3c01d22b22a6535df8ce58dd)",
+ "P->V[41344:41376]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 117595: Hash(0x5a2519880a4c641cc47a98fb473e0e1e9afdcdf07d13af8572ec125476d6ac9)",
+ "P->V[41376:41408]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 118074: Hash(0x514ce056c24caad7993cfa03ff82138188b32ae4c990c007c92c155d9f3218)",
+ "P->V[41408:41440]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 118552: Hash(0x467d7d7979c58a69fe288af950464d212997018d7f29b0a0419d9c19cfd54e6)",
+ "P->V[41440:41472]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 119681: Hash(0x284318cb674db79c0cbecd6f039bd636210c6500de27cd24e0135363cadedf3)",
+ "P->V[41472:41504]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 120992: Hash(0x474d23be5bdd7d767f2ec3e5faeb999903bbf22d99f1cc0eb508787c213184)",
+ "P->V[41504:41536]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 121394: Hash(0x98455a9f172bff26d4dd2ac6e7caa3d870b28edf32d6bce96f4804baedfa30)",
+ "P->V[41536:41568]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 122815: Hash(0x35fde680ff11b9bef5f12dbeb0478c1242b6f59f65dba0d31bd6c51ab6746e3)",
+ "P->V[41568:41600]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 126298: Hash(0x2017c1b75f57557880bc13675a104da08ed979588c5344dace70c158c40f433)",
+ "P->V[41600:41632]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 127095: Hash(0xa6edb0688524207378ce50f0ae33bd71b903600eef3d7fe3683460e420fad9)",
+ "P->V[41632:41664]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 127907: Hash(0x61e55da77128823223d35e226d130815518ab784d27156ae30679adc93b60d)",
+ "P->V[41664:41696]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 130583: Hash(0x1e880c8c1f43cac9dab43f607f992704ac4721fe8a583a9e3512b5c7edf69ab)",
+ "P->V[41696:41728]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 33393: Hash(0x3cf3f7f3822f9ab4106023b05b7ca1b40da58f495ef9cc904e9598631eae943)",
+ "P->V[41728:41760]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 33622: Hash(0x7304acad753a66aa91cf9c60e12c57e0de05b452fa4166fcdbe78dd484c4c2f)",
+ "P->V[41760:41792]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 35755: Hash(0x79de989f9ff27a9ac8f658f01ce67a808d93a36f61a4f78e9e40b0ec091a24c)",
+ "P->V[41792:41824]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 39708: Hash(0x3c8423c537b4a1da3e40a4b6de31f8661a1f290675407a0b346a2765ba1478f)",
+ "P->V[41824:41856]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 39722: Hash(0x7ad0143d62b8588e76a0ee0086d98bf8cae6efcfdc07722ca9171e30e2899c0)",
+ "P->V[41856:41888]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 45057: Hash(0x117c660f19287fd937712a713fa890f9dd0d66ae82d6adddc31601e13258f2c)",
+ "P->V[41888:41920]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 45753: Hash(0x49049dc2fa8a9d5416193aae548e8274275c26938a9797f459e87d2fa5a1961)",
+ "P->V[41920:41952]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 46119: Hash(0x69173eca87eab03b6e9d50f0686a01cfcc45a466b3389a4883f261e846f6adf)",
+ "P->V[41952:41984]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 48337: Hash(0x558b97c8184a823a2ddf43e8cea70f10901767e55c31f743f65469b6d2749de)",
+ "P->V[41984:42016]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 50438: Hash(0x1789abbb1ff05e7b87254989798f6e7a676c191666b0020b39b65bda2e36613)",
+ "P->V[42016:42048]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 50891: Hash(0x38867d99def4d3f639f3af96bfeb5826fe4005db1629ce96bd20fe845f3934c)",
+ "P->V[42048:42080]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 50969: Hash(0x4a36bbe2098e132dabe22fcdcad4648b63fc986a082e55da916156c86412e7b)",
+ "P->V[42080:42112]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 51075: Hash(0x4b489ad3337ba5d02187dc878c87467c37c11ab33cc1a2e24e8a79c2f7ad19f)",
+ "P->V[42112:42144]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 51243: Hash(0x55b8c3ffc3e69dc037dc0f7f3618d44b39443013cc0347878a61b78c22f4fa0)",
+ "P->V[42144:42176]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 51758: Hash(0x76ac6525c7cd58b9b73a4c4e11b194eb1766a35c1907b314f5d45d2b60debc3)",
+ "P->V[42176:42208]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 52720: Hash(0x57827d3997f4d8f5f7a026211c0952c5ef15015ad53dfb75eea7551d29e54d4)",
+ "P->V[42208:42240]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 53207: Hash(0x5400358bc86dfb8252eb718285789eb7ebeb1013e4f79b693fb1d7a791c5866)",
+ "P->V[42240:42272]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 53830: Hash(0x450b8f92ed465de6509d0fafeefb542ab6e054a15125e3d1226b1f4bf6cc099)",
+ "P->V[42272:42304]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 54108: Hash(0x500b9692d4973cbd357906f065817fcd3f3304e923f9fcb1e797f31fddd83fe)",
+ "P->V[42304:42336]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 55202: Hash(0x29d25ceeab9db711f7c9e7d5b43939df39a1941627207c3253483d08c48081b)",
+ "P->V[42336:42368]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 58688: Hash(0x15b2f9cf39bd8761ad6db3b69b47b63bc12eee6a28f88e81eed5a241b4156f0)",
+ "P->V[42368:42400]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 58796: Hash(0x552639263bb75f793eff85e33f16c9eb1d5928282cc3f019867c7bd09f146e6)",
+ "P->V[42400:42432]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 59036: Hash(0x62dbf515768414bf705fe6ab0656d4de7c51058cc872ee711fce12f8541e26c)",
+ "P->V[42432:42464]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 59277: Hash(0x3baa05f64f495062b90f424c9f55e159a09aa9cb17abb6ec348788c76384781)",
+ "P->V[42464:42496]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 59841: Hash(0x2b91054f8b07580aecab5f9198974914e9eb967258615e07c0d412eaae5fa91)",
+ "P->V[42496:42528]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 60497: Hash(0x641fd2e1a515f73f9dbbed016352d96d747d11ccb7fa136d6f3c7a9027dfef7)",
+ "P->V[42528:42560]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 60696: Hash(0x39a1bdf413c06a20f8639be5e177745eee954b4714aab9cc631fff59b905ea)",
+ "P->V[42560:42592]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 61406: Hash(0x4d66a0709b285f5436fb07d923279e84a4265b0548708397eb61b54ec435c09)",
+ "P->V[42592:42624]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 63148: Hash(0x6e1a10a043d729967135e90a8ceb019fe70d1c8db2c2b7f3a70349c88fb6f45)",
+ "P->V[42624:42656]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 63546: Hash(0x511484b5c1c9ad5828beb0bdd765f1d42a63858712315c1d0215d39669f4f50)",
+ "P->V[42656:42688]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 63952: Hash(0x133e74a75c343d6b269116df7c25eb0fe08d03971da6eb6c2702dbf49e481bd)",
+ "P->V[42688:42720]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 65290: Hash(0x15c4b03e524476a34dd9750caef8bb06989af0cc8f99bd77921bf8d8769160b)",
+ "P->V[42720:42752]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 16697: Hash(0x250d58de9c854ced624b7249cc7bbb321953bee39905fbc0a3c16f1cb842670)",
+ "P->V[42752:42784]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 16810: Hash(0x453bf92442eceda8f6114472592a94f1f44e1cc3b20020ac72c735cbb425273)",
+ "P->V[42784:42816]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 17876: Hash(0xf42eef0a9c0a48c5d8d26ddd481c40bc2eb93cbba4a0b25bb2b9f4de1a66d)",
+ "P->V[42816:42848]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 19855: Hash(0x21599420d24cc4fe982965d1e29b3a1a765b64181b7b6ca42a7537c8c9feca)",
+ "P->V[42848:42880]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 19860: Hash(0x50e763af7e82ef0497aa2eab0e7ede1645bafb9db3f675ceea33cf80e8a9a01)",
+ "P->V[42880:42912]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 22529: Hash(0x614a812cfeae27032c271dfcec89bf1f1072a5fc193b0f5fa4bb93eb76224fa)",
+ "P->V[42912:42944]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 22877: Hash(0x3b451c0f31843bbdb689853adf5ee26002d8198a0b0b4d92a45a6bc880c9490)",
+ "P->V[42944:42976]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 23058: Hash(0x209d57134e40ec7d83b98d4e0b702b6bc74985df3d5000e53637f9a7e41eaf0)",
+ "P->V[42976:43008]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 24169: Hash(0x318d4e1404556381e2c56c6a7347e1cc1993595b2e31490824ef0916298767c)",
+ "P->V[43008:43040]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 25218: Hash(0x460857f3c5954b664bce32511eb73174d5f37ff2367739a9518a501bd1572bc)",
+ "P->V[43040:43072]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 25444: Hash(0x1d92c7f82e386d7c49d5c36597c42148410b417f37601f11ce566a11de3714a)",
+ "P->V[43072:43104]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 25485: Hash(0x727d526f84e92c10bf993e83675d0437295b035d69a8440fa120c5b8f2d4805)",
+ "P->V[43104:43136]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 25536: Hash(0x794729dfcda61ea4cb4e31bea77f88af58695c42f8fcd37ceefb77d01614ba3)",
+ "P->V[43136:43168]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 25620: Hash(0x309a1e69af47c7a32de69da5122b1398361109ccfa37070fa848eea09a0ad93)",
+ "P->V[43168:43200]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 25878: Hash(0x1c4cb5dbbb4086256dd9f90779e532e3482acc61680716680bb75b94f62cfdd)",
+ "P->V[43200:43232]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 26361: Hash(0x4949e14c5c01eeb96058fc2f08f4da94cd6c6c801ec04af6c60376e02b5b19a)",
+ "P->V[43232:43264]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 26602: Hash(0x56b6a1d3d0d660e9fb5c0439f76fad6f916644ca5fb7bf514957500927facf)",
+ "P->V[43264:43296]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 26914: Hash(0x40b89fcf9dca4a31a83a30ba3c5d835f80cdf1b7353ff4f5e59dc87ed1cdfd3)",
+ "P->V[43296:43328]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 27055: Hash(0x2cf47fcc99593423f99a0e4766368b48c3ff472d09278b66c02b71773f48454)",
+ "P->V[43328:43360]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 27600: Hash(0x53552f01c9fc50c11a83272af19c8f90a0e74af6a69e0edd7422a59533aebeb)",
+ "P->V[43360:43392]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 29345: Hash(0x593d5f5304985c4c0711b3af993bd6e8ed4a5fac66b390cd62d1326961943cf)",
+ "P->V[43392:43424]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 29399: Hash(0x10e0362d513ec100f080f10f38717033c585e50f984b1418658fa19fd5d4007)",
+ "P->V[43424:43456]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 29519: Hash(0x60ca397fd0d4ac8171aae295a250a351481bf8d7948b79cb3d875181badbaef)",
+ "P->V[43456:43488]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 29639: Hash(0x10d61c656a13cf4474e0e43faf82dd9b7077b6ffc42283fa23db28aec1f2b12)",
+ "P->V[43488:43520]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 29921: Hash(0x4d73f0759892e245d0263a987022f773a61c2311e51a9acd87d96fe1205562f)",
+ "P->V[43520:43552]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 30249: Hash(0x3cf4f15be21950a20d2c4a52f1bed8b760188a61083d22c4b7c28f63b67b6e6)",
+ "P->V[43552:43584]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 30349: Hash(0x624d4bfefecbb13ca733a1e5cf5cbcc034a381df9ff43e6e60becd2c62be8d4)",
+ "P->V[43584:43616]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 30702: Hash(0x377ac16ec087514de2c22f8c6660e6f26ffcccbb3f06ded30dee1c1ed6eefc)",
+ "P->V[43616:43648]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 31575: Hash(0x6d50d864db6e18ad864f6ac04e9f9742f7634b86f5921edad14c95667fb4a01)",
+ "P->V[43648:43680]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 31772: Hash(0x1dc3b9ba3b34b15725c54f61307c5f19b99ee94daef40780aba50e56415b897)",
+ "P->V[43680:43712]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 31977: Hash(0x244fe25dbca37b49c488fe1725d9a8634c4bef84684f243a81b3c317035819f)",
+ "P->V[43712:43744]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 32644: Hash(0x5459c873dab9ced31e4e5e904f4129a837b3dbb88e7626f41a1a8243ee500ab)",
+ "P->V[43744:43776]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 8349: Hash(0x6784b0d7184805d1c859b8e4a9f94b983352721148e3729b47e7e3e2d6556bc)",
+ "P->V[43776:43808]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 8404: Hash(0x51d3ea5ad65f3e8be661d3741030e3faece0db0b18ac4d62dc65fcbfa4f98e9)",
+ "P->V[43808:43840]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 8939: Hash(0x39679ab73257083a028efb5713a5d71371d2880278b29f36f3af76ba520b412)",
+ "P->V[43840:43872]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 9926: Hash(0x79102497cc3ecac1ad92560a12f26f2172ea906acd0026e337a8e4f03f9e959)",
+ "P->V[43872:43904]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 9931: Hash(0x5052e5fd16af36b60c048eb6725e759da9e85eadb05845c154c4af2c01ec10)",
+ "P->V[43904:43936]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 11265: Hash(0x13efe35f238e8dfc98c74ef166efeb2bb1a83e634fa05dede6c531b344adaf8)",
+ "P->V[43936:43968]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 11439: Hash(0x12a71aea0de8a06f6fa3c3dc013ac1c99dbaa07205bd69393842a7bd0d6b0b9)",
+ "P->V[43968:44000]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 11528: Hash(0x6684d548c967f04fda25087070098fc15b9f54af87f648f4ef04d27607d837c)",
+ "P->V[44000:44032]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 12085: Hash(0x7875b63f4d796d8f7e8444e9086ab71ade5a0c98673992ea327cffdf295a62c)",
+ "P->V[44032:44064]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 12608: Hash(0x67a41e4cabd6504925263a243e3864c1f1bd0cc57d1e1494c356a9bc4acb0dd)",
+ "P->V[44064:44096]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 12723: Hash(0x6de48844807aa37fe601d924e49c1cb94c727f1e55404fafc898ebbfdfdb356)",
+ "P->V[44096:44128]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 12743: Hash(0x120042477236bff68eb6001ac6d18a5b67f490428f4faeab2f672d94fd5f71b)",
+ "P->V[44128:44160]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 12769: Hash(0x5400a5a602adcd464da97bf7f034d3d8ee99cd15aa4a64a2f23099b9fa5fd24)",
+ "P->V[44160:44192]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 12811: Hash(0x5fc95fc0d91a0c31b924ebdacb03d24a1b41e56246841229f4394984b16b24b)",
+ "P->V[44192:44224]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 12938: Hash(0x3df892e8e4a11be0aa87e80b8e4f634f7d9ff8bc20adef7a3e60e6a84ced932)",
+ "P->V[44224:44256]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 13181: Hash(0x7eaf5ad36941340833366343190acf74cabde123c37435636caca47100c3699)",
+ "P->V[44256:44288]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 13300: Hash(0x25280ff516ea131601e696da6dc9c5f096fd0e9f1a6ceb3f68eb94d10d2298)",
+ "P->V[44288:44320]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 13456: Hash(0x65da328da635fa5dcd767bed2607a524285bbfe78e1a20161dc1de012913146)",
+ "P->V[44320:44352]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 13526: Hash(0x4c8a3e2fbc102f85aa670d51af772197ef8d34a34d7462ad08f1b812a21e07e)",
+ "P->V[44352:44384]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 13801: Hash(0x33135a64db865dca25a162b8390c3afc2ee6ab348dbad98c81ccc21ea385cea)",
+ "P->V[44384:44416]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 14673: Hash(0x75e014fbc2558fcdcbc8dc215c177703eafeac84696ae54a4d7ba9cbbf0eb77)",
+ "P->V[44416:44448]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 14698: Hash(0x1d21aaa3d0af972d1768605eb1c0da1b8b5b10b502fdd86c399d340674aecd9)",
+ "P->V[44448:44480]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 14758: Hash(0x224f43bc10aa2b1bd4969b002c1bcc50636f818de0dd71797ca04ee3ad0ae4b)",
+ "P->V[44480:44512]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 14818: Hash(0x588b6146c6d560eb5892678a18aaa2cf0a6776531f58b963a92591da778ee79)",
+ "P->V[44512:44544]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 14961: Hash(0x64966ac095802f6b8b61c85df8dedf549e09e733b7fc1c56c85fb761e6f959e)",
+ "P->V[44544:44576]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 15125: Hash(0x5a70d540e9ee3cfd649140bed5a62fb866c990aaa9e396481098c63f8261a24)",
+ "P->V[44576:44608]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 15175: Hash(0x3150a75f846087b2cf433dc56ca7db7f458348627ed3325b9fb84eb5bf007d)",
+ "P->V[44608:44640]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 15350: Hash(0x2ce79598cc459e9b52789a29b6fff833da2e1e931c7fc1db6ca46130cf84b49)",
+ "P->V[44640:44672]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 15786: Hash(0x5bc3ad4616fe8ff443410410076a1e3548c94c479b1be8bc7f7539d469d6243)",
+ "P->V[44672:44704]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 15887: Hash(0x3a494b76e53efa2976074615c0aa7222225c94572550b757343805c7bc82b6f)",
+ "P->V[44704:44736]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 15989: Hash(0x1663f0f6ab857c488af52f001f11cc96a9316a1d2050230dba14a12351ea829)",
+ "P->V[44736:44768]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 16323: Hash(0x3a598657f49316587bdeac43a70b0fdbce08a0f290821baf011e41402deea62)",
+ "P->V[44768:44800]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 4175: Hash(0x26a8904cdae45a7b0337d71eb364a3f5e225f7237bd102c70bf14b89c97e7a4)",
+ "P->V[44800:44832]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 4203: Hash(0x408423bfee41b48dcb93365f40985ba4e4e53340adfb5f0c41dce61961a224)",
+ "P->V[44832:44864]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 4468: Hash(0x64f37f73430660a0026c59e15b41c597c2c079aa4acc28b91c01935356a9531)",
+ "P->V[44864:44896]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 4962: Hash(0x2ded00204a1bb4d166cce3300b2eb0069c6bae7129f0b432ed357a1164cb3a5)",
+ "P->V[44896:44928]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 4964: Hash(0x698e0cc484b806d214ce8b98d133927e19f94dc056e20f8e3ada24894f5a0cb)",
+ "P->V[44928:44960]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 5633: Hash(0x4ebae47fbf20d51f15b17955704549451e2aad6f05a3dea445f16dbfcb45f48)",
+ "P->V[44960:44992]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 5718: Hash(0x46c013fa2827470ec7b98a60ff1f2bf68702f4ba2b082621f462759d44f183a)",
+ "P->V[44992:45024]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 5765: Hash(0x37eec3dbbb143edf37c1a9d3b03fd1987d05be1160b755ea0d471739bc83312)",
+ "P->V[45024:45056]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 6043: Hash(0x3e06806180c0e86089226c2dc2c03c4be2555a5bb64af11a498434625cfcfcd)",
+ "P->V[45056:45088]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 6305: Hash(0x3428a4c96a205165de7365dcb4262d7bb5aa9e68e9889e3a17763063edc6c74)",
+ "P->V[45088:45120]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 6360: Hash(0x303f90139bd5ab3a2003081a9ae9d1c2b4d772e1cfc1be426593cbf65679423)",
+ "P->V[45120:45152]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 6370: Hash(0x2884f8ee44afa9c580ea4a5babe8603eee110d4900b362f0ec8f572e6a5e9a)",
+ "P->V[45152:45184]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 6385: Hash(0xe0992033202eb9ae415ba4944634bd24201499a55feccb30c770a3ae226099)",
+ "P->V[45184:45216]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 6404: Hash(0x5757167518ccf6da810081f8264e3a6401bbfc29395eb4b28131c8cb1c1dfcd)",
+ "P->V[45216:45248]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 6468: Hash(0x55cf15fc4fb3eb8a14bd2f4c80a7270f98956620ed480c2c9fb7face9202b24)",
+ "P->V[45248:45280]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 6591: Hash(0x7af972a87275a5c6cdbe49953428d6b14671faae14d547c017d596a63b9d5ed)",
+ "P->V[45280:45312]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 6651: Hash(0x667f1a49ebc4185dcf176272d209ddac041a64ebf94d77dffc64e978432f871)",
+ "P->V[45312:45344]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 6729: Hash(0xc477715ccc262205f902435bac51e9d94323a9ab8f87efdc4e965775d40918)",
+ "P->V[45344:45376]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 6762: Hash(0x2059c6348236d5926eba3b80d7740609ce3d13a03db3f1c66f425ab19906fe6)",
+ "P->V[45376:45408]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 6901: Hash(0x440f7592370c2dcc603d062fb99623214dc501551e7b509335c05644eebecda)",
+ "P->V[45408:45440]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 7337: Hash(0x3c3ec48d4f77095507f23e67d465b91645003e0ab8ede246b2c6e69f2a66e06)",
+ "P->V[45440:45472]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 7348: Hash(0x7f32abc9cac39291da5b976f6f10194da13eb1d442df8598bb1c8ee250d5d07)",
+ "P->V[45472:45504]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 7378: Hash(0x3b716a2cd556c6ca3cf1900b2a2573aa2bc2e5648849042b969c3ee23678ea)",
+ "P->V[45504:45536]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 7408: Hash(0x12d8a1a653e02430049794d4eccbd54e9ed3d9d40bafe2cc4b771d7124b54c5)",
+ "P->V[45536:45568]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 7481: Hash(0x21a825350206cbaa72e6bd77fe24b8afe3d8f6e0ee5366c9dc102dbdc1eb56)",
+ "P->V[45568:45600]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 7563: Hash(0x7c312581b6e5bd1c9ca7c08b5ac951653a43ac0776a3dacaf345c5dcb9f97bd)",
+ "P->V[45600:45632]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 7586: Hash(0x7c80d94a91c471186e515a4f613721e272193bee2503478553dfe85909cf02c)",
+ "P->V[45632:45664]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 7674: Hash(0x7ec7665700f6fe130f28bc902f2fcfa339f077fb511022c18b6530fcb643728)",
+ "P->V[45664:45696]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 7892: Hash(0x3309e1c571697f8691a2ac9510297816a4caafcbfb8f2fe1616ba3562834fc1)",
+ "P->V[45696:45728]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 7942: Hash(0xca4d4810367f3e3629ef93263f72fdb5bd740c902c134fe75edab8a09b0b25)",
+ "P->V[45728:45760]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 7995: Hash(0xbaa468cb410a17dac782092901c6ab332a05edbaa47229006e1e0f39489aa8)",
+ "P->V[45760:45792]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 8160: Hash(0xe1b6813c95ad4a2a8c781066052ccfd79f381d86697d5250a5cbeb85eb3ba9)",
+ "P->V[45792:45824]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 2086: Hash(0x3315f85d49deca11d119a18bc49e9f4c4fabc5a04786a304e3b0c728012ed52)",
+ "P->V[45824:45856]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 2100: Hash(0x5b6b8d96774747f87379d5eec09f3a93a891870b4025c1d9a32008bdf8453f9)",
+ "P->V[45856:45888]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 2235: Hash(0x7ec0b3665e046c6135dbffb0f1bb7a6edd6776eee4f538f260ae6e94a3e5fb0)",
+ "P->V[45888:45920]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 2480: Hash(0x77c13b211b51755bc2d90bcb5f86f888e33db74d40278404155bff026500b42)",
+ "P->V[45920:45952]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 2483: Hash(0x1e3403cb950c34470ca9cc295f608354f63e76d1ef31001c328a9bf84d9fbb3)",
+ "P->V[45952:45984]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 2817: Hash(0x39c19c20d6fb08bef2c9e2edeca7e1f50ddbc5e92141ba279d9af4dbdee687e)",
+ "P->V[45984:46016]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 2858: Hash(0x640e1144d151517f134fe88adc5a5aefcb50abdd83ce731d48ecb3b9e3527b7)",
+ "P->V[46016:46048]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 2883: Hash(0xb29c3ab060b98b5c8df70d9b4c3372230d4dfe7f1dd24face9057bd612568a)",
+ "P->V[46048:46080]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 3020: Hash(0x485d5d3a651f8f824cf91bf272ee24b74928f0c5c180595d7ba923676d5a213)",
+ "P->V[46080:46112]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 3153: Hash(0x11fc8661f4ec549ded648a152d36753f82fc6a1307516a9b1c5ae61af1882fb)",
+ "P->V[46112:46144]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 3181: Hash(0x2f425915fb7f99a44f4a74d6b0d4378bd5697095ed0788ecbdd5e90b31900da)",
+ "P->V[46144:46176]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 3184: Hash(0x6092f947009cfac31d7281320ec22c5f6ac1620bfb71d21a078bdefa36c65fa)",
+ "P->V[46176:46208]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 3193: Hash(0xdb3401bc6243aa0636b439adbc79b5b70df16bdc3edb05cade61a2e2819996)",
+ "P->V[46208:46240]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 3203: Hash(0x34fd67e4be2255ea40cc1659fd0da6e69f1ea3fd9077ada6ff63a2c4314bbc5)",
+ "P->V[46240:46272]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 3235: Hash(0x381bfb0a6b3f1a9aa94ed8b34ea11516882a39173ef65cf92b8bd0d049e095b)",
+ "P->V[46272:46304]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 3294: Hash(0x4ae2bde797d7ace7a51b9704da7032193bccd6905f3c720079cdb9c0cdc9914)",
+ "P->V[46304:46336]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 3324: Hash(0x6014c5979a9ee511a579f819848abb508d496983849a4aa8abdbb0086e668cd)",
+ "P->V[46336:46368]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 3365: Hash(0x58346e91bd255d42ba2445364ea1d1c7d5100d8d1dd9c01bd36fe5c5e032218)",
+ "P->V[46368:46400]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 3380: Hash(0x7b9a0e7799b9186c5fdfded7ee4198c701d794d8abcf7e13933fb42c72a7d70)",
+ "P->V[46400:46432]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 3451: Hash(0x701788cd3b41c4404878bfa73c6caf4f11ae6c02af76cc4c93cf51c312cdfa5)",
+ "P->V[46432:46464]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 3669: Hash(0x19a7f877d7f545cdf3bb402a790d445038bb1eb6cf9b504522f3e04e29d13e8)",
+ "P->V[46464:46496]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 3675: Hash(0x47345851e18e159fd11a274303420444b43c9eb5337c8cb0fd4315ce981823e)",
+ "P->V[46496:46528]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 3688: Hash(0x96f32513fb19e6ad24004450e4b2bebfb4e559890d93973dc9307fdb530e5f)",
+ "P->V[46528:46560]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 3705: Hash(0x246bae0a1addbf4d3012a6bcf51c2c70831edb0bafebfab7e8b15dc48b2b936)",
+ "P->V[46560:46592]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 3741: Hash(0x2d9ecfdb087be421cfea9498c5d27e660fdcb63f297e68abe7d4fded8963a8e)",
+ "P->V[46592:46624]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 3780: Hash(0x4777c7896f1a4eb57f326156dd3320b3fc3052823d6961c3c701502a00d85de)",
+ "P->V[46624:46656]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 3792: Hash(0x42f8f496358a27df826f175a410f2f50ba6e0ca023065f4432c7a8dbd850224)",
+ "P->V[46656:46688]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 3836: Hash(0x55312109b149efb20c18ae3ce558e7b4731fbaccd2c635f2ef5af00beb65552)",
+ "P->V[46688:46720]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 3947: Hash(0x67d29583a5cb90b2c62a2f5cb13decf59b27776e6f7d8d88f77f6ed49934881)",
+ "P->V[46720:46752]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 3970: Hash(0x63f558e8a233d19a01487952c89ea5786329aaf5e529f19a2e17259886ed3f9)",
+ "P->V[46752:46784]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 3996: Hash(0x4cb3c62db1aee65072f0d1d0fe014c37bf12eeed979b13c518465f614717860)",
+ "P->V[46784:46816]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 4081: Hash(0x1b18a5cf421155b9b1617c585afccc6a8278d764a8236172c2105ad488617a9)",
+ "P->V[46816:46848]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1042: Hash(0x3cb4ea15509029f207c0c81a5095d01454df6f38805196ff3a502d63aaae889)",
+ "P->V[46848:46880]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1051: Hash(0x6e045b30267d5f9c788a55e687e8144519fa3382fb6a607aa98c49f2dc8aeb6)",
+ "P->V[46880:46912]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1116: Hash(0x3e2afc17cd5cacdd03ca76343d639f189fc41fa0e5ebe0bbb5408584f9f6975)",
+ "P->V[46912:46944]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1409: Hash(0x4c793ec86029547d7d94f304a18d2be27cd162067d04d4318287e1ed56f9850)",
+ "P->V[46944:46976]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1428: Hash(0x75a93cd05e6471f849db9876b4aff25ac1c0ac5620d921163db7b5d5113ddd8)",
+ "P->V[46976:47008]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1440: Hash(0x36dae88c687c5097048d3dd533b873c9d039c09ca7c5ade74317edfc4fd2b64)",
+ "P->V[47008:47040]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1511: Hash(0x256356c27cd479a789e227c5a945e6b001e9cc9160abb1869f539fd6d24b137)",
+ "P->V[47040:47072]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1577: Hash(0x4fcb08252d98a8a235ef9e15d68ed825aaf4f1c906d8ddeac3b88107a8df14c)",
+ "P->V[47072:47104]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1591: Hash(0x56372c8a6d477456b9490da576dcef45b4a9148ceaad462777476e1f109b374)",
+ "P->V[47104:47136]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1593: Hash(0x60baa99c9f259d83bdd7407c3e86fa1b254d1fb5ae551648e7c4dcf38e55e4e)",
+ "P->V[47136:47168]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1597: Hash(0x3536bd40e4b009f9dd856986c1e61307a794b9543d5ad00f335d4066db9491d)",
+ "P->V[47168:47200]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1600: Hash(0x7e584a8a15d2f6aeceebd4dda691264769523e42b9c35fa8371e11454c93fa4)",
+ "P->V[47200:47232]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1616: Hash(0x6950e9ec80f683e825f7a1aa63290da9eb48a32384df5b2d8a1810c324575b2)",
+ "P->V[47232:47264]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1646: Hash(0x5c913c2127d288db3e99d75fb79973c8e6239f60f79b58c29e92b934c2abf8)",
+ "P->V[47264:47296]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1663: Hash(0x63d70f4bd0a38f89ea90ac3e3585bd69135a64dad02d3cc85186145184d4f18)",
+ "P->V[47296:47328]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1683: Hash(0x6c0ae43c9e3709e70dbf5affe8bf8d0310fac9edff7dc25e9a92c57d784453f)",
+ "P->V[47328:47360]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1691: Hash(0x1d5ab8842cac10ada9586110d0166cb13e9ab7f892ae6f80e3ef5792d8aaab9)",
+ "P->V[47360:47392]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1724: Hash(0x45b63981652a25058d96fabdee969923fb75b1f15e7466877d31c929720f603)",
+ "P->V[47392:47424]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1835: Hash(0x48f732750c3ef60e7b1c7b7eb0f3f23679b6d03a48b42c8453dc0187f6f70ff)",
+ "P->V[47424:47456]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1836: Hash(0x263aeb5f48795ffe08c1c8bc69185c54d52c21c4913509b7bae2901565a6dc4)",
+ "P->V[47456:47488]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1845: Hash(0x5dd1635b7bed7f99ff96a8e4ba2d6945ea592b2addcc29060e9645c8386cd91)",
+ "P->V[47488:47520]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1853: Hash(0x35dd1026059ed8563d2d81596e37ef34a640e001bbade514d03157a4083f644)",
+ "P->V[47520:47552]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1871: Hash(0x75f1da8da156e7210224428b8fb7a4612a8b8da69d4283ce0cf43b3106a449a)",
+ "P->V[47552:47584]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1891: Hash(0x43a082a710f75eb0302ccf2b2e96bc9a93858f26043491bd5e6ba96f9e32fd1)",
+ "P->V[47584:47616]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1897: Hash(0x68811a83bdb0df59f36bed08448890f7aed9d2c7a452adf842659e7b5d4ca06)",
+ "P->V[47616:47648]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1919: Hash(0x79ee3a8968c533b6bcbc43338fdb94a2bd8d433f79c3946bf73f54cf20234b8)",
+ "P->V[47648:47680]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1972: Hash(0xb64532ae6ed02f5f862430777f495d35ba26871648d9628bd5fa712080315b)",
+ "P->V[47680:47712]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1984: Hash(0x27b77a280097fc242966804a130fd5fd6e26a5c74379826a1c78ccf4a247707)",
+ "P->V[47712:47744]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1999: Hash(0x687a67e759360da59a96fb0295a2dd742079263b9dbaa4aebe6e27ae907a369)",
+ "P->V[47744:47776]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 2041: Hash(0x320f7331e637f1c88e1a44fbe01e1e31b98f7322608f3e9c8f03a766da3aeb)",
+ "P->V[47776:47808]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 520: Hash(0x310b64a7b31f5aa066916a414a54fdaf88548fb721157629b256eb94b1d28c1)",
+ "P->V[47808:47840]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 524: Hash(0x31bf32f0594d22757526e7cdec84a79a9a439bd59ac080041ecd0dc2d9e992a)",
+ "P->V[47840:47872]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 559: Hash(0x50179bc45e8379a6197c658682728e93928a1a52a07569b93771932c67869e2)",
+ "P->V[47872:47904]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 621: Hash(0x32629bb08940af2c8dd4f393ff4b422149fb5b3da099e7a129152fba3483ce6)",
+ "P->V[47904:47936]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 705: Hash(0x46fabe7a419a6dad86663e99fd149f8cb6aab76c77cc05753c2796ef904a524)",
+ "P->V[47936:47968]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 715: Hash(0x7c85015efbeadc0d59e40faddf2043498a36722cf5c14b2d01925d00c33edf0)",
+ "P->V[47968:48000]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 721: Hash(0x379e41eb85d1a69f2115853b736a40686b52129e26c606bec90c6e63ca47199)",
+ "P->V[48000:48032]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 754: Hash(0x550efdbe4e188ba1750b37ca5b9df999f212432b05049b891a5921dc8b8283d)",
+ "P->V[48032:48064]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 789: Hash(0x5b939aa87bc3eb08a03a2309a879a463e7be5e02c2ddda3b29a1a29d9d37d38)",
+ "P->V[48064:48096]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 794: Hash(0x4d58bf4f09694d81a183a15e0d509c3952b783874f0c880c2ce5336b543e52b)",
+ "P->V[48096:48128]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 797: Hash(0x7230a49aefb5ae548127eace4c1c64a66b286da625dc0d643efe36d0c895d3d)",
+ "P->V[48128:48160]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 799: Hash(0x45306f76a9adab0454786518fe9eaa5f1b52eef8c4edd6076d90fe028135707)",
+ "P->V[48160:48192]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 801: Hash(0x22bb44938bc76cce7c4fbbbd3051d5edf7dc2e2d716328b12c6a9291c5f7137)",
+ "P->V[48192:48224]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 809: Hash(0x1bd4e847da487305a7cb0cb2884d2a166de008ece5d307ad54cad13adeda0db)",
+ "P->V[48224:48256]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 822: Hash(0xaf6ce0b51af33077057b7ac8cf87c1354fbc75dd8642e6d45a51141bdfe13)",
+ "P->V[48256:48288]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 830: Hash(0x3b984f753c7c8aa7ee4f25001338cab34daf69b319601a5deedae0fed7b84e1)",
+ "P->V[48288:48320]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 840: Hash(0x5e6b4d037fc7841379174031a99da9b40197ac6d3311eb26bd7c2b0cf38ac14)",
+ "P->V[48320:48352]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 844: Hash(0x1d2b51ce745bea724415ddc7f2848980b75fbf78807427f9a15337f0a8c9f72)",
+ "P->V[48352:48384]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 863: Hash(0x393302efa4234562c64620bb7141a06b0efce322331ac44bcd8e44fd933d1e0)",
+ "P->V[48384:48416]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 916: Hash(0x1f07f4a7d8758e08900f641d2ba3a301b20c949101a80a863a1a159b71ed1ec)",
+ "P->V[48416:48448]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 919: Hash(0x1d88867324c0ce69a0352ac99364ae025ab51f31c224f28a892e01c0b51893f)",
+ "P->V[48448:48480]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 923: Hash(0x49b2cafd100ff4a42bee56c0604ed39a6fb9568cb2e638f1091d8ffd49df5e7)",
+ "P->V[48480:48512]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 927: Hash(0x647f957c02bd0e288b4f0f77d2194331cf9b4f95c6a829bede8303f01b44faa)",
+ "P->V[48512:48544]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 934: Hash(0x17821ebb66195df1d85d1da9fa79246bb6f69744d89d9e27a974c55d4e45ec4)",
+ "P->V[48544:48576]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 944: Hash(0x7ab3624c76e3bbc44e213b558fff6b98fb48bee9549e2014c23bb6371b12e8d)",
+ "P->V[48576:48608]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 949: Hash(0x668611846086ee2a228f7e017b1bb76fbc6fc438368702e54f0cb7ead990ec6)",
+ "P->V[48608:48640]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 958: Hash(0x7ea65ffb9461522a202695ae930b87ac1102d99ae4503ce2996b19bccfd53ae)",
+ "P->V[48640:48672]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 987: Hash(0x6c74a200007177923218b039a8d5387b7ebe8f9ceb37365d0a5b03b8ca18e64)",
+ "P->V[48672:48704]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 993: Hash(0x21449b863f2fb2560b9c9373fabb9157e818f055308fa236d3ccb71a4e6ef44)",
+ "P->V[48704:48736]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 998: Hash(0x720c66f624486747a0919ed35e44a7688dfd6aee8647bc1c65d84a723605a9c)",
+ "P->V[48736:48768]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1021: Hash(0x7077d89a1a9942f958e51abca2d2ef0d459535fa49f4a458529deb8c64ebdb0)",
+ "P->V[48768:48800]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 261: Hash(0x73fe5b865b3ea9addab2e0346514eefa7690fd27deb63ab5261e0d86ab0fe5c)",
+ "P->V[48800:48832]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 263: Hash(0x1ed1af6a19f996a8d1bb09e27f0b88079004d3516dd219ab4277ca46987d06b)",
+ "P->V[48832:48864]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 278: Hash(0x4082031b4cc96fa0afce5133ea29c218e9c0c5eb29fbfca3cffb102adfb86f9)",
+ "P->V[48864:48896]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 311: Hash(0x7ddab34779fb47cad4b5503926b8cfd966488949d5986b9de601cf9a05c2d86)",
+ "P->V[48896:48928]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 353: Hash(0x1f641b3fb124321bba2a68953d7c4cc0fb4ce57be0bc7168252367d1c02de4a)",
+ "P->V[48928:48960]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 356: Hash(0x276d1faf080fd94ddfc6fc438fdedf505b644308dc89ffbc94fcab0708e2c51)",
+ "P->V[48960:48992]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 361: Hash(0x7eb58ddde747cfc0b1de736cc46feedd0f075ed16ae1f7c902e901ef2896bf2)",
+ "P->V[48992:49024]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 376: Hash(0x3705e5cdbee377ab8e2a9eb72b2c62513a163dc2d163d7d18292907b636967b)",
+ "P->V[49024:49056]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 395: Hash(0x10d9570c947517eff1cb322b607e89cd6e647e71364188ab62ab424a288721e)",
+ "P->V[49056:49088]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 396: Hash(0x127612c9a8e06f3b77fead240ab6f99bbf39ae202339390045243f0cafba7f8)",
+ "P->V[49088:49120]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 401: Hash(0x24fffd96f6f3347ca819fd66af2b467c2775c82843938982d75e0c1d7794e3c)",
+ "P->V[49120:49152]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 405: Hash(0x62b41fe7f5b5391cc7076d55e3aa57391464d57b5d698868b6498e3f1e5a1fd)",
+ "P->V[49152:49184]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 410: Hash(0x61d29167d741b3cc4187671f9b9fd3cacfdc22d9ca23d172e1957b40a496848)",
+ "P->V[49184:49216]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 414: Hash(0x750fd286196c95265550994c518e57a2f89abe32212191d883bcdb6e5538653)",
+ "P->V[49216:49248]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 421: Hash(0x1d4d005ed8ec1a098f5232bcbb3842ba8cdf07e19f7eb52667f705f29c4b80b)",
+ "P->V[49248:49280]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 423: Hash(0xad58d78cf70f9bf3b78ce378a8c5b19d7e473a1360c47bffe809d885774863)",
+ "P->V[49280:49312]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 430: Hash(0x679e3be0470a2e5d9a07121db9ec0c30f8f10f8d6ec76cf1d1807629e33cbdd)",
+ "P->V[49312:49344]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 460: Hash(0x31b9c3fd5901aa3dda0e55e44eb873aeffa709b672d1cdf1f173c2599a3635b)",
+ "P->V[49344:49376]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 462: Hash(0xbbb95a1dd8b37c831c77500c398dd0e3e457ce068cdae12893e3b462b11a79)",
+ "P->V[49376:49408]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 466: Hash(0x59bf3b6718f96ef1ec03c6a485031e37ea0a4850a6df21d856ce87f1064e409)",
+ "P->V[49408:49440]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 473: Hash(0x76662081460cb2f78c34c94fc70f182749c5b183833627a73f51b54c1dcb89)",
+ "P->V[49440:49472]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 475: Hash(0x7932e8b0d68c05ce5c90109252f42c0cf3c45ef638e2e071b239431ab7113eb)",
+ "P->V[49472:49504]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 478: Hash(0x4522cc7ed4ca1200e8db782d2e1a2d60a2dc3f91f3093eca522c77dd38a46d6)",
+ "P->V[49504:49536]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 492: Hash(0x7ef020e13e727290f2323549b4756bc05883cb106cf0ef8e2f43dce975a3b3c)",
+ "P->V[49536:49568]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 497: Hash(0x4925cfa34f7a4a62512b992011bc9c4b465e3be585f900bc14d7d91416e8e24)",
+ "P->V[49568:49600]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 498: Hash(0x46f439e18424dea96acc832e9d1fc121909a461daabc499bd23e212c3391977)",
+ "P->V[49600:49632]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 511: Hash(0x12248fd680ebbe1a9d0b5f602aa01c9f83cc6ced7e893482ace83eaa84b619f)",
+ "P->V[49632:49664]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 138: Hash(0x5cf16ba629afde64b6ca866a8b113be33b624a6fa7c717b8dc1400499fbd037)",
+ "P->V[49664:49696]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 154: Hash(0xebd16bdf9357ab46ff32455813f54f1d9d3cf9cb448b9b1c437fe71088e2ba)",
+ "P->V[49696:49728]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 177: Hash(0x249e87f1dd3b3e3f18b415c25833e93366aa7810ba734fb5a43a8c2ea749376)",
+ "P->V[49728:49760]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 179: Hash(0x1b960332153ccef897facadc988f91a45dabbd38a63375e9ee3c085073de6ab)",
+ "P->V[49760:49792]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 181: Hash(0x8c85b0a6f91333933e5198d8835e54e6f6fc31bcde2b57e749cde80a60b2d)",
+ "P->V[49792:49824]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 189: Hash(0x32f9c13ff30a96a13c475d3d100fe06394fa3cbae58dc483693f1b2b6e50814)",
+ "P->V[49824:49856]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 196: Hash(0x2a6221739edaa50e2bcff73996c8f6f661e4bd3d51f73c6980d97fa633da48d)",
+ "P->V[49856:49888]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 201: Hash(0x33a8b0f1afd3285b99850c68ef362aaa980bcba8ef3231b5a519bfe668afdc3)",
+ "P->V[49888:49920]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 203: Hash(0x70be0309d7cc03e2880e6ecadfe488d97b74a52462aa51c7a102e30176af3b6)",
+ "P->V[49920:49952]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 204: Hash(0x503e8852f6366aa8683990a0d1353e1385e3ebfc03dc40e6f69e2751989e265)",
+ "P->V[49952:49984]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 206: Hash(0x6b3e3b0f82c987358f3254e78fbdb817af76f8faca9565f6284cc3243f9ff47)",
+ "P->V[49984:50016]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 214: Hash(0x191457d63ab62b754a09a0c554b66bc29f7aee215bd095ade18077eaa0a038d)",
+ "P->V[50016:50048]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 228: Hash(0x707ec22c3651486c4c6a851e12adb55ad8502d3155be8a5ca51f096ab149e61)",
+ "P->V[50048:50080]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 232: Hash(0x233c8d8d40ae60c5b08d0df7106776cea1e73e09bd60e194f44765fd9eb9c65)",
+ "P->V[50080:50112]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 238: Hash(0x32e82bbfe7fb032306a78996f90fcafbf7ce1353d94fd36c9adf8a654e6c2b3)",
+ "P->V[50112:50144]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 247: Hash(0x4ff148861d56b411619e7cd23da8cd2bbb1a2dcea2ec83eb053adffff307348)",
+ "P->V[50144:50176]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 254: Hash(0x5a7d1b8120719dadb0ce019e35c65dedf7c7d86654f5eb7dea43904ba64a952)",
+ "P->V[50176:50208]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 64: Hash(0x6720d0ad83f954ef03d759567cdb53aab359b2cc10965e55c37b6fb605f98a5)",
+ "P->V[50208:50240]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 68: Hash(0x1a9c7596db165c21e472cfc2d12a96207f1aaf6027ef3f1832368e99e42e157)",
+ "P->V[50240:50272]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 76: Hash(0x106a86bfa3fcd8573cd1934ae5815d4bbfc8b809a8b4631af656f95919c5b5)",
+ "P->V[50272:50304]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 91: Hash(0x416007f73be938d104de2583893b30dbba563064e9d59aa257ec89b5f016b82)",
+ "P->V[50304:50336]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 95: Hash(0x350cf74c7af89121ad07cf4051e7d65357c7f3759384b549cb9b21f19fefdea)",
+ "P->V[50336:50368]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 104: Hash(0x64668582e864758da12ecab8eb383d2969e6afcbc83fd93741e81338786f3a0)",
+ "P->V[50368:50400]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 106: Hash(0xc748cbb7d337a2ec72c1859c525cbba68a933da590b8243e7b5958342910ef)",
+ "P->V[50400:50432]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 117: Hash(0x4435c35b9f20eed89e1aecb424c676077ae34b8786945b9289478b4b3771e16)",
+ "P->V[50432:50464]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 122: Hash(0x3cdc99b0014a3a2b771eeac26d25f34ba2fae3b17f54c4906cf96305df5a6c)",
+ "P->V[50464:50496]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 125: Hash(0x1200918b3739fbb6bed651b2541cf252ffe7c25e72b8d99a29dd59224aa0005)",
+ "P->V[50496:50528]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 126: Hash(0xa0314f468a45390227d73aef77d742be063b2f53873c20c9a1cbc68b10f0a7)",
+ "P->V[50528:50560]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 33: Hash(0x64e4d5461432b7a1b72af26944e9b80a6c7809e29012265d7619b4a6250fdf2)",
+ "P->V[50560:50592]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 35: Hash(0x16ee15765d7fdc29fcd5cafc886480e871c44c14921063dc67aade80c73fa93)",
+ "P->V[50592:50624]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 39: Hash(0xc42a641a18c3c3e2402804d84a426d40b3ba768b7122cf1f434479cce9f2a3)",
+ "P->V[50624:50656]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 46: Hash(0x34a03137abb192553a85b31d61668e3fefdd3acfec5d4b6646e075c5e677940)",
+ "P->V[50656:50688]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 48: Hash(0x3a96e0459831ff5cf2fa5ebed10e2139fd1ea58fc7ed86593a794239d4b863c)",
+ "P->V[50688:50720]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 56: Hash(0x686730314c897db79dfdf05b50fadfb55a4a27f0a588c223586fcd79f21bd9c)",
+ "P->V[50720:50752]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 60: Hash(0x41d92301577d3aa797b7696b50bbb88b3a0e5565194ba2a6a623489da90a7a6)",
+ "P->V[50752:50784]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 18: Hash(0x6ff2f7d2eb303c356e36bfc58e782ab69dfff96c988dab893d707dd6d4d40a6)",
+ "P->V[50784:50816]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 27: Hash(0x6c11dd847dbeafd71779b6d4c7eb4bbf0546c204308e4efca1b1bcaad8f87eb)",
+ "P->V[50816:50848]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 10: Hash(0x2c696104d6c80bad23b0f0aecb410059e557b8730ccdb179c4e7458038c370c)",
+ "P->V[50848:50880]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 9986, Column 0: Field Element(0x4f5fba84720a0d8d13a4fd50fa35f8eba63a4bf71b230fb842cfade8caf9512)",
+ "P->V[50880:50912]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 9986, Column 1: Field Element(0x242465339ec0ac1aed097191d9ba0ea0120be64ec6d70d2cf0debc486c4d94e)",
+ "P->V[50912:50944]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 9986, Column 2: Field Element(0x606a0950f4529de86ca9fdbcb08b3175a30667842b4e97dcd4139a5c9f22fd6)",
+ "P->V[50944:50976]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 13694, Column 0: Field Element(0x73a6d4bbf30872ff1bae681fc3d96b78bd265779ae541c629114eeeadaf360f)",
+ "P->V[50976:51008]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 13694, Column 1: Field Element(0x4beeb73a869c03ea95af99ae987afbd1677063fbd74db880aba8a24968cde82)",
+ "P->V[51008:51040]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 13694, Column 2: Field Element(0x6deae641ac9c49b29f7e5d80415ee9f0db27294c7b3ec9150b482883396a036)",
+ "P->V[51040:51072]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 47788, Column 0: Field Element(0x20e03e0b9c6f4a789154f27d9c5cc80e029d503090e1f568528ba791548b798)",
+ "P->V[51072:51104]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 47788, Column 1: Field Element(0x35ca2aa3f6d1aba142eea1250318d70f4fec700418c25fee73551f9bf3e2aac)",
+ "P->V[51104:51136]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 47788, Column 2: Field Element(0x480b7e036e446067e5619575107fac075d2a5d68c3159564d307a95691f57a1)",
+ "P->V[51136:51168]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 111062, Column 0: Field Element(0x3b1413e3ca80c1c326f4b2b9ed41c802dde5c52e0f45188778d99faca19bc0f)",
+ "P->V[51168:51200]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 111062, Column 1: Field Element(0x76c8b9d6caf7fb74a8cc1f973ef94338aded89b3faedd00f38a474a885dd892)",
+ "P->V[51200:51232]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 111062, Column 2: Field Element(0x491b31f9bde8368f5d0868ed2a3032ad74ab9d392b060c31c127f56ba0bbcb)",
+ "P->V[51232:51264]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 111287, Column 0: Field Element(0x62d3ac67f13b75ae5d80476a9a6ff26b434dc79ddae3102ed1220a44f72c9be)",
+ "P->V[51264:51296]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 111287, Column 1: Field Element(0x78a61266599210871935b9b37cda443131b85e1d28b191caf99efa6f1b11bf1)",
+ "P->V[51296:51328]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 111287, Column 2: Field Element(0x403947e640508fc3494ee7ccaa2f5aeb95b9bdea28014c6ff6ff4eb2ea3ae30)",
+ "P->V[51328:51360]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 196619, Column 0: Field Element(0x566f9b406f7ba4f792613a0bd3a503909d21a29918c28fbcf2c1ee73880965d)",
+ "P->V[51360:51392]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 196619, Column 1: Field Element(0x291aa63c80255dfc8708f980a2e40810c94b3060ecc51e1af6d04aa035276cf)",
+ "P->V[51392:51424]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 196619, Column 2: Field Element(0x7b1a5e85b8953a05e8860c0966bd90cb3646a0902ff65abfc8c3e152e7fe3a6)",
+ "P->V[51424:51456]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 207747, Column 0: Field Element(0x2f9ac72ad41cd1bd2bccfd36b4c68b1e74a8148fd70503143b98e7b8f1f899b)",
+ "P->V[51456:51488]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 207747, Column 1: Field Element(0x7a3d97f52a5921b0520d7ae03e7bb4fb693eacae8f3f3f89978cc558b43b354)",
+ "P->V[51488:51520]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 207747, Column 2: Field Element(0x732358bc2f718a7495b811d3a094b32cae0199eb25f7b0c99253033761458fc)",
+ "P->V[51520:51552]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 213614, Column 0: Field Element(0x2516f09f45247d6517140ee3c6539a516b4a7624dfeb1af195b0a5d97fdf240)",
+ "P->V[51552:51584]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 213614, Column 1: Field Element(0x383a51aac61625f936f6b6ecb0211fa72c2a51369adce40badbc2177d9ce1b1)",
+ "P->V[51584:51616]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 213614, Column 2: Field Element(0x63456ca9bae69c537c97dd2544f59e85bb680defe3faa9411ddc99992d61498)",
+ "P->V[51616:51648]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 249097, Column 0: Field Element(0x6566b0d635f96f3af997a3f56563874eac5e1749ecaa884a884e83eaaaef1b9)",
+ "P->V[51648:51680]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 249097, Column 1: Field Element(0x1cd922802bf8bcbefce0623c4cfc1aa51a269c9383b5acae1d9b120467fd9df)",
+ "P->V[51680:51712]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 249097, Column 2: Field Element(0x5dcda6a1d31c4d9d7a7e7aa19a517b038b3043f7c18eed5576b07a8c4eb26db)",
+ "P->V[51712:51744]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 282737, Column 0: Field Element(0x331bd1c37dc10b42ca920264d567c38526cdb8c8db23d6aa9bbd866863fe29d)",
+ "P->V[51744:51776]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 282737, Column 1: Field Element(0x5fff03eb4d026e4ea9baac14ef2f3a7d8c64083e8dd17345898b6c67df73dc5)",
+ "P->V[51776:51808]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 282737, Column 2: Field Element(0x646daf738053a4374917d967a44c6430281061df3cd9111b1afcf4909aa917e)",
+ "P->V[51808:51840]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 289965, Column 0: Field Element(0x7cd7856c440012513b15a839e66f123ea3ea401064303604bff0e8920abc3f8)",
+ "P->V[51840:51872]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 289965, Column 1: Field Element(0x54101ff19de65b23f15e607c46069b23d5e16a2c4135a51ca098a87ef2bdcb0)",
+ "P->V[51872:51904]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 289965, Column 2: Field Element(0x4d415653f671f406babca30ed170dee75161a93db20251d97b374a528253c06)",
+ "P->V[51904:51936]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 291205, Column 0: Field Element(0x6d28981cc32cf13fea10d2ecf676ed9046cd8abd465e367e1f3fb8bf22050bc)",
+ "P->V[51936:51968]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 291205, Column 1: Field Element(0x2b40a1b260f3e7720dce327ab50d1cc3873e8dbc5ec4a2c6f27491665b5a09b)",
+ "P->V[51968:52000]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 291205, Column 2: Field Element(0x58834f65978ebe279e057f7a8c2882f19055f3bcd9215b698ed13c0adf4b486)",
+ "P->V[52000:52032]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 292904, Column 0: Field Element(0x7f08f524d182837baf5e8d043df77d75215dd3aad9269efdcaac3e32ce41ea0)",
+ "P->V[52032:52064]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 292904, Column 1: Field Element(0x777e1080fa1f8ec6113927f07341c56126e3e9615ec31ade181636bc179b9ba)",
+ "P->V[52064:52096]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 292904, Column 2: Field Element(0x43e596c2de159e4dfe08dd0ef726d756b249170e34c5ec824ab34cab5c48e71)",
+ "P->V[52096:52128]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 295598, Column 0: Field Element(0x6ee8a077ddbfce167c74cc9eed864391b144208c1600309f33238e9a100470)",
+ "P->V[52128:52160]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 295598, Column 1: Field Element(0x447273fd66f7d618c203b57e5eb39db454b8075f4fbb96ac289c968fa5e065a)",
+ "P->V[52160:52192]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 295598, Column 2: Field Element(0x11c653c48d248c93f1d38a23c495c7b715b35656fa254358ed1da8e1f38e9f6)",
+ "P->V[52192:52224]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 303856, Column 0: Field Element(0x70fc6b6e8f1bd4bff91c3bb31cde7c123e26d3e1574a37e86c508bd9fa7a971)",
+ "P->V[52224:52256]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 303856, Column 1: Field Element(0x683e612dca38dde33bfcfd2bef4cf67cc410ed0492089cf9c328b6448142788)",
+ "P->V[52256:52288]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 303856, Column 2: Field Element(0x441870e2dc8f4c1ef48674499a57f6df71e045e862c5ebbfbf95a68f763a3be)",
+ "P->V[52288:52320]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 319248, Column 0: Field Element(0x481a1e57201d6bacfcb8b278e5bd549865d5aa58d947499a90aff8ee02e8b2b)",
+ "P->V[52320:52352]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 319248, Column 1: Field Element(0x6ed4052d086e1164311cd35f8727a313e58ed23559dd09455db5a81e7753d6b)",
+ "P->V[52352:52384]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 319248, Column 2: Field Element(0x7eb35a8bafaaad5e0c2e948bd084499388a623f7c0fece7c15e3128cb5c57fc)",
+ "P->V[52384:52416]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 327009, Column 0: Field Element(0xc32accff781b9f6984f380fb4ba3e9c10b4fd4667537ab36acbae28d68db0b)",
+ "P->V[52416:52448]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 327009, Column 1: Field Element(0xa0db9ced367b3496754624755f639521d4f18970cb35fac7da743f9963bc3a)",
+ "P->V[52448:52480]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 327009, Column 2: Field Element(0xfcb7bfd0fd25b865e9d6d05c8601ce7cfae0916ee5f5b3651c5a039d910edb)",
+ "P->V[52480:52512]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 337022, Column 0: Field Element(0x20a1708f7df09404bc1ce1241b6cac7ebf20d20dd302e035c7384072e085f05)",
+ "P->V[52512:52544]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 337022, Column 1: Field Element(0x5c79f34d3ce2452f526913b529a7b113c6c8e6b6413d80f86dbff68688555c2)",
+ "P->V[52544:52576]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 337022, Column 2: Field Element(0x6116307907a3290bf489acb6213a11fe3400418667c050b10f772f171ac59d6)",
+ "P->V[52576:52608]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 341468, Column 0: Field Element(0x6a73f66da5c3793f4ac669b53fc8129e97df788a0b7f0643faa0977c8a0c050)",
+ "P->V[52608:52640]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 341468, Column 1: Field Element(0x187ee55bdfe4b1c3f4da6eeb0560502a45afb7a2de1ae36f9d911e709ed6e)",
+ "P->V[52640:52672]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 341468, Column 2: Field Element(0x62e09e89244d936aa40d794c2b05bf421002874cb6c721d9e390b8d1203340b)",
+ "P->V[52672:52704]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 358972, Column 0: Field Element(0x28365e6345ef31b14f4884a93ef89467fdfefad50aee2565c5f20a75bf74468)",
+ "P->V[52704:52736]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 358972, Column 1: Field Element(0x3a80fd905272030aec096df3cf23136192a56436cfb0d44a791ceffaec06d74)",
+ "P->V[52736:52768]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 358972, Column 2: Field Element(0x3d1710ea48817725382fbc0c9033e19fa981ebfb5a49f79dcdc89e195c1e24)",
+ "P->V[52768:52800]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 414746, Column 0: Field Element(0x455f2e0a8c9a8cb6504106074106b005981a16c841778cb57ceae9ad2c28d24)",
+ "P->V[52800:52832]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 414746, Column 1: Field Element(0x69ed3be065e2749f6e894684d4e9f066ecd9cab89204aa860d1c937d9ae26ac)",
+ "P->V[52832:52864]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 414746, Column 2: Field Element(0x376b8fa4bd1683499d8fd3492f047df2f4539ef2573d0d214b343d239be5f69)",
+ "P->V[52864:52896]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 416469, Column 0: Field Element(0x15c64fe5b90b276120d2ac8f7736aa775994a64d4016b69e542aae69715009f)",
+ "P->V[52896:52928]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 416469, Column 1: Field Element(0x71dce391396ba6b3d431726e358485ff2c1dc1d27e3c27f165d9021a5e7256e)",
+ "P->V[52928:52960]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 416469, Column 2: Field Element(0x39272f643fe6216c4c68b47db8cfa9e92836edd449d13b45cd9a40016034da7)",
+ "P->V[52960:52992]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 420315, Column 0: Field Element(0x59db73e36fc2b9898d65d3c25be08bdfaf6414b72aa25f244d2d6e657c776c9)",
+ "P->V[52992:53024]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 420315, Column 1: Field Element(0x3321e9a405ad125bb4769c667649d4706b5eac86a4e022378b340fa25cdf3ce)",
+ "P->V[53024:53056]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 420315, Column 2: Field Element(0x5c2e5895ffe9ef2fa6c44c98c5f0d987b2684954f27a9243de8b8a4b171cf60)",
+ "P->V[53056:53088]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 424138, Column 0: Field Element(0x387f4d745ea49367398579735506a1151da7ef9da5011cee95d8175a721fbac)",
+ "P->V[53088:53120]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 424138, Column 1: Field Element(0x708244d48ec6ed91c90a61a8ee4bef3d7bac532632dd8677dec9a21f7e74508)",
+ "P->V[53120:53152]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 424138, Column 2: Field Element(0x480b16ef3c293eba676ba5ed4dd3d8f4493d94a8a08cabcfeb92298515c2f26)",
+ "P->V[53152:53184]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 433154, Column 0: Field Element(0x56c71f64b24649c90c444e5d1f05176473f1153eb88e269185716357b3a5beb)",
+ "P->V[53184:53216]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 433154, Column 1: Field Element(0x2052634e34f0d5aeab25a088e4602927983fb0ec5d890d867ed3019a6f8243c)",
+ "P->V[53216:53248]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 433154, Column 2: Field Element(0x595e124014de47a1b346290bb281b43be98bcdf165b3faf217a0f9add6b4905)",
+ "P->V[53248:53280]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 443663, Column 0: Field Element(0x29f5f51d2765beb7aa79f05d7663dd6bd58f64ba865497fb1ca7b7bfb99cc3c)",
+ "P->V[53280:53312]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 443663, Column 1: Field Element(0x40c6b04128936652e7edb28f160aad9caf23a6309f3716b618fb12344bbbaa)",
+ "P->V[53312:53344]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 443663, Column 2: Field Element(0x359edb65bbc0a79b06e60ff0dab9aa94082e38239078ff3bba045654c533540)",
+ "P->V[53344:53376]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 446875, Column 0: Field Element(0x1b1d69bbe13724b753ca475f3b2a1d7580d0433e34f6723616c2c8e59be815b)",
+ "P->V[53376:53408]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 446875, Column 1: Field Element(0x74aa3e56f5d156e0222133cc0bea6264070d58ba1402d4ae7721be7c4002419)",
+ "P->V[53408:53440]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 446875, Column 2: Field Element(0x1e63713a5a2444c1023a6cfc3559a343df663ceac3e4e018cc28df0c8ef32c)",
+ "P->V[53440:53472]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 458224, Column 0: Field Element(0x6beb92835b57388d9ef0c27b7017f5d0cd4bac944fe50d5acfd903beca491df)",
+ "P->V[53472:53504]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 458224, Column 1: Field Element(0x255cf4b4d3781103a72215002a62e9032f32208f4151ab0080aa853ca077917)",
+ "P->V[53504:53536]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 458224, Column 2: Field Element(0x7964637ba8b1389efafc93a586666ee66b9649a5bf8b1088a7292c8c663364e)",
+ "P->V[53536:53568]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 486108, Column 0: Field Element(0x58fb5f8433c084aedd7d8aafbf8437b1c1f8b573b3ac1e36f86acb8c168ebce)",
+ "P->V[53568:53600]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 486108, Column 1: Field Element(0x29d9fd096fb9ac51a047acada80b05744bb4b1e7e5ca8a6b93e074bc2f29ca8)",
+ "P->V[53600:53632]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 486108, Column 2: Field Element(0x1674763c46130a590b4c2cb290f396ae7c32ac4bce8be120cb9c0aba2ab7875)",
+ "P->V[53632:53664]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 492471, Column 0: Field Element(0x1bdd9c4c2f66c13c3fea9fedae502529daf42ebb6d0e92bc11117c498155f2c)",
+ "P->V[53664:53696]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 492471, Column 1: Field Element(0x3608d6fc0059cb8f846f1af0421f2ab96621726b83230bc4265a77c96e4c338)",
+ "P->V[53696:53728]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 492471, Column 2: Field Element(0x8d9e1a9ccb2f8a37b601f4895fd1d63e3fc6d72a20b860de8a0835f9f04b31)",
+ "P->V[53728:53760]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 498960, Column 0: Field Element(0x26d0f1ec4a547aed8b8c705ae8eebab4dfaf40f21eca87e1816fece0c21bd12)",
+ "P->V[53760:53792]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 498960, Column 1: Field Element(0xed73b0f47bd08f48f2d29549b92a5ebb0e045087bf248c2b37d4c8cb4be0ae)",
+ "P->V[53792:53824]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 498960, Column 2: Field Element(0xd6992fd4959002ae79e5667b5e156f820e83f6d46ff1e8c860a4582e9bdf99)",
+ "P->V[53824:53856]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 520375, Column 0: Field Element(0x238ba3b1ff69de2764cd6da16c8cba288ea1824685abebe15ac66de63b2763c)",
+ "P->V[53856:53888]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 520375, Column 1: Field Element(0x3def49b7e3331c39ac5be41062ccea7d4990157844cc6b34cf7a68772f8635f)",
+ "P->V[53888:53920]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 520375, Column 2: Field Element(0x18bd0470c22b20abcd99214ff9aba264360a736fb7d6299aa054dc4aff7385d)",
+ "P->V[53920:53952]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 534275: Hash(0x4cf1b4347515d58988de9d76b1f6394b90c46ad2a714743bb8f32ed0208c663)",
+ "P->V[53952:53984]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 537983: Hash(0x7d966a397b3cb432769796aaac6e6a5a7e1fd0e436bb7dd9de521422ab54490)",
+ "P->V[53984:54016]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 572077: Hash(0x2e2759e419affe4d814c7909c1d33dfe9ed9a7b74e3e573b2e6f953d1b7fcc5)",
+ "P->V[54016:54048]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 635351: Hash(0x41f4609d947b061f1db6faad40b3dee993624c34500bf5a19af47458af2e195)",
+ "P->V[54048:54080]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 635574: Hash(0x65a7ae8a61906af14781806ed5717339317721156759268f2fc3cdf21f61c85)",
+ "P->V[54080:54112]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 720906: Hash(0x6700dcc77b809a79e50e33a0c7b4de8a1afe20c10198f04e86a034b27989d0d)",
+ "P->V[54112:54144]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 732034: Hash(0x7707b7bbf1ae55a9d03ed2ab2a631ef64c9214f7ecff30a718cc803d9ff80d)",
+ "P->V[54144:54176]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 737903: Hash(0x2295af8c985ae1b5c0b2d058d6099980fa828c01316b4dc84671928bed63d63)",
+ "P->V[54176:54208]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 773384: Hash(0x87b7c4dd13ceb0e72ce7445355a96e927de847d12a598de2f8df8fbcd01f9c)",
+ "P->V[54208:54240]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 807024: Hash(0x4e00c80dbdd4bed7d382e55b64b75235d5d11688d73405f44da6b637e4c1ee1)",
+ "P->V[54240:54272]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 814252: Hash(0x6aca61ddd9149c2bfafb38bb7636829ab64f12c4b40daccab66f0aa518ae929)",
+ "P->V[54272:54304]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 815492: Hash(0x1e1136cc5af4a6a82d86a6f964e350760bed8f4110db8cce28167f27a67db4d)",
+ "P->V[54304:54336]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 817193: Hash(0x1c9d1c8882759b78331289a53254aeacff4710b83fcfe061997c0d696060e84)",
+ "P->V[54336:54368]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 819887: Hash(0x642fe6367cdca4e85f15e2a02b0098222359d8379b4bd650ee1dd624bdd83c0)",
+ "P->V[54368:54400]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 828145: Hash(0x3594de22c0b182bb2e524636af444010a9f79b22d52efe89101abd87c1e5cea)",
+ "P->V[54400:54432]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 843537: Hash(0x7d4d24f5db597b9b9490bf84683efb763385dcd22687fa1cb88827508461bc9)",
+ "P->V[54432:54464]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 851296: Hash(0xd43165bddaf48174401dc477666c73c2cbfea807d42ed4dce3cefb86eaf4ba)",
+ "P->V[54464:54496]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 861311: Hash(0xc4c7d0c8596d10d22a3cc8da13452060cc6bb4680754f5d81a61dea053fcd5)",
+ "P->V[54496:54528]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 865757: Hash(0xa0163eab9daf99f4dc3ded311ca07b4837d58c7fdeddb3a09ce30485f0cfdf)",
+ "P->V[54528:54560]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 883261: Hash(0x6608117d6fd071a307006d27824081328626256f67293978693fe1ed84dd12b)",
+ "P->V[54560:54592]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 939035: Hash(0x34936ad56b68a4c99779005cbafb9da08302ebe8d4a44f98706cca5a26e2fd1)",
+ "P->V[54592:54624]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 940756: Hash(0x205dc5beaf4f6c9ade43f55203e4eccca55656b234acd299a41f5ea8842242b)",
+ "P->V[54624:54656]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 944602: Hash(0x6a6e263d7cb5f81b952fd3f1ecb95d4ef946f5bf4aab8c29e0b4d34596cab4c)",
+ "P->V[54656:54688]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 948427: Hash(0x6ffa3a633ae3fb56bacb5c70ad1ff0dc3f02070e84a4a01984def747d702d36)",
+ "P->V[54688:54720]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 957443: Hash(0x2aae0368b651eea2a2d67b7093252d6e701c601b7f564f28ab425343b20c01a)",
+ "P->V[54720:54752]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 967950: Hash(0x50e89549358d8e7323a0a4762102276d50a90e9e6a40fb7b5234ff96f89b62)",
+ "P->V[54752:54784]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 971162: Hash(0x573c1512d102adc71982669d6749e81f3da338bf1a0ac27d36f572fd094ba6a)",
+ "P->V[54784:54816]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 982513: Hash(0x6c35c72d60043025cd0815e357e39544031c98d9f27dcaa306582b2291bf026)",
+ "P->V[54816:54848]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1010397: Hash(0x42b76caa9f4f3368690fd9813d06082f933063389d78200f29c5f78cdd95f68)",
+ "P->V[54848:54880]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1016758: Hash(0x3f5c2c550f666b0e10d5ea02081bdfb79bf9562ceb06943ccaccbb6c3ba8430)",
+ "P->V[54880:54912]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1023249: Hash(0xa64f64d71609ecdd7eff3471139b5b0e5ef8cb419b950e857391cc2992f0c)",
+ "P->V[54912:54944]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1044662: Hash(0x10c72532bc2600a407a15f55430a8d2c496c9f3f7441f1e4937194f76e66cb7)",
+ "P->V[54944:54976]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 267136: Hash(0x6276480950266d90803c4cf7404671aa4d50804bc8d272b88d057224369b01f)",
+ "P->V[54976:55008]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 268990: Hash(0x2a5111de264946efbc8c9407d584f1c48fb1d4a4db07844af6ed77e17b63e89)",
+ "P->V[55008:55040]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 286039: Hash(0x4db87774bcf308f4d6156bc2cb0eff16e4ef6a957608d53fc6159fb4d1b1ddb)",
+ "P->V[55040:55072]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 317674: Hash(0x726c3ca86ee3847dcf4b2255a83f10971746a49a0a5b6f92b03df6088805fdd)",
+ "P->V[55072:55104]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 317786: Hash(0x6f08b44b3f58275afc7ffe6eef3bc0d0f1fc0fc82a188b6e7984eedefc3f3a7)",
+ "P->V[55104:55136]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 360452: Hash(0x3cfe687dd35ce6fc5540866cb59f696ddada2e696449ba8a2406a0aab9e43cd)",
+ "P->V[55136:55168]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 366016: Hash(0x7f956f7402df53a44e7e92744bfd56c2a5af3816a408798babdb831a5205873)",
+ "P->V[55168:55200]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 368950: Hash(0x5ca7ae7a5b832364a08562375b968682131ab7bd91398934671bba5ca36139c)",
+ "P->V[55200:55232]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 386693: Hash(0x59d1ed54e64b57fb2d6b77aecfbfc61171b6386c6df5cd2a06769d70700d954)",
+ "P->V[55232:55264]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 403513: Hash(0x2f7480d1591934e41f0c2581d70c122ace1a5ec1d0769f36e359482e9178d4b)",
+ "P->V[55264:55296]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 407127: Hash(0x77f79fe61b143e708cc08d707bd5d8733df3909459d5a0187acafe4469e8e77)",
+ "P->V[55296:55328]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 407747: Hash(0x382a53dfc1009ac6074eddefe6d3d13f5764d6fa818794694567515c838f525)",
+ "P->V[55328:55360]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 408597: Hash(0x2d73f3741a77e33ab9fa758963fabf3c84a13ad052f5bd9755eac18a61e3b3a)",
+ "P->V[55360:55392]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 409942: Hash(0x50bf15a8d90cb0faee7a03aaa5687e8a281d00602e0452aabc9e81531425200)",
+ "P->V[55392:55424]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 414073: Hash(0x302ac14e3a079ddd7e8b923518d2f9f299fc7dbfb2f149a99e817f0fd277d86)",
+ "P->V[55424:55456]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 421769: Hash(0x7dd303206ecc04d197e13e60fa463292609f808fc80274b030eea169bc71077)",
+ "P->V[55456:55488]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 425649: Hash(0x592a3ab8dacd67e5a03132289361f8f452976c31a1f55fd6b9e88773e9f66da)",
+ "P->V[55488:55520]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 430654: Hash(0x4a7bc09f1af40775ee5465ad4bc36a00fa0daaf57268f71e979636687bfa98f)",
+ "P->V[55520:55552]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 432879: Hash(0x7586392fc71e2d2418c64c67059fefc7116721812c36b58616e81310f22f084)",
+ "P->V[55552:55584]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 441631: Hash(0x45636fb7aaabab690fe21fe9d32f60fc80dc05fd4023d5f09ab9d0a95490b61)",
+ "P->V[55584:55616]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 469516: Hash(0x5b8ba9854dac961402a981b2a2272a13a4f360eb54873e5ad02c8a5b49ca5fb)",
+ "P->V[55616:55648]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 470379: Hash(0x5120492c4431407513ec9b00e41aa0ae8b88f634fc89ccb5a55cdf4d2a16947)",
+ "P->V[55648:55680]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 472300: Hash(0x5a6b14f93c09ebea6d9cc8a4d4351414a2e17000214733403fae8ea459504e8)",
+ "P->V[55680:55712]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 474212: Hash(0x755936875d952acdd1629f149dd1bec1acff47976c9b37096a53bda0692f836)",
+ "P->V[55712:55744]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 478720: Hash(0x15c0bcbf2bb3410473ab3b371915820ac68ed831a1018036471ef9f80edefe0)",
+ "P->V[55744:55776]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 483974: Hash(0x21ca35158cf64d521a433496110a7daccb4a5173d74bac5a43bdfe3936628d5)",
+ "P->V[55776:55808]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 485580: Hash(0x7d6a07a3fec622f7a11a5fa3822b77adffb7e0cdc5de3b8e0187aa993cc3b46)",
+ "P->V[55808:55840]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 491257: Hash(0x1939af966c30acf8a990e16cd476a38a5af4e923bf0aa063de8e5998b7b1fff)",
+ "P->V[55840:55872]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 505199: Hash(0x3d1c44104032fd813114c01ebe1416c70b552178186276039495e0a8d379301)",
+ "P->V[55872:55904]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 508378: Hash(0x6e673010c165c5130b2afc1c7ff053b26a51404de5ec5ffd7ffb5491c23e3b1)",
+ "P->V[55904:55936]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 511625: Hash(0x5b6754db0ffb13dbe5c646076a8cc049b263ba158cd60a03e2702024d341ea4)",
+ "P->V[55936:55968]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 522330: Hash(0x46b156d3a71af5a236a5bb2738798473d0c8895748881cf65eb9fcc1cf5556e)",
+ "P->V[55968:56000]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 133569: Hash(0x1960885a27a9328618a448df600ad33b3db34a4a3da9393de9a198070b56091)",
+ "P->V[56000:56032]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 134494: Hash(0x2dc234a5aef7f46b751298f38245ba27e263dd95f0ad5d1628fefde1fe8f9e1)",
+ "P->V[56032:56064]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 143018: Hash(0x32d82069fa78a1205b237c5bc3cd98527abe2af29422130855483f2d31d5050)",
+ "P->V[56064:56096]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 158836: Hash(0x5724376e6cbe8dc8ea8d4da91c4e1fd8217420b7340fd0804ee2bd87337680f)",
+ "P->V[56096:56128]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 158892: Hash(0x69bffa61bbc72ceefb46a7f31fff3c94d4f328bef4e702ec72662af1ad82284)",
+ "P->V[56128:56160]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 180227: Hash(0x64de10f6bed74f1eef67845c7d396665f3231a129b2d1183373737c09580490)",
+ "P->V[56160:56192]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 183009: Hash(0xb927ca560b703686d52f3d3094beaa40ea0d932b30a26bdd3b8f56677e2682)",
+ "P->V[56192:56224]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 184474: Hash(0x3ba83a8f6322a6c3ead71a23a590a78d313ef5628efd3ab1e77781ab94f3ca4)",
+ "P->V[56224:56256]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 193347: Hash(0x118623e5770b147e9e5cacef16a496defd2275aaedf68a344f70c177cb24bfe)",
+ "P->V[56256:56288]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 201757: Hash(0xc0ebae50968063ca92867ca45e0c9d1884420a5634fd895257618c068fe57f)",
+ "P->V[56288:56320]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 203562: Hash(0x7ee5802bde9d4bf427f86e1b776c5876a3686bbf105f9802f02908469f7f30f)",
+ "P->V[56320:56352]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 203872: Hash(0x61077f25fe2cb345f68c64546df61e1d5cf2d60644e16e0026a20a6c7cad710)",
+ "P->V[56352:56384]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 204299: Hash(0x403e1e316c05de596d31da0804a673a10f7a3412e565aa8debe30b7645ffb13)",
+ "P->V[56384:56416]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 204970: Hash(0x2900283058473bbdaebf6b5828d689370f1f9f15d05805ce89fca1e74ff3dd8)",
+ "P->V[56416:56448]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 207037: Hash(0x7912104cc77302c39549814636c3aaef03bde7435fc2a9cde8bdee24cef39dc)",
+ "P->V[56448:56480]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 210885: Hash(0x669b18375550cd06eb795d338822dad358514b7d4311844a0ce8d0d7a517734)",
+ "P->V[56480:56512]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 212825: Hash(0x859af1efcfcd5999f081dce0c7c18769eb3697d431b6b69487cd994491cf2a)",
+ "P->V[56512:56544]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 215326: Hash(0x1550f4bef5476638b9c332f8f39cb6c9a731aeaedcbceefa8639b5a90cf20ee)",
+ "P->V[56544:56576]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 216438: Hash(0x1ecbcfed3e7be2fa66b1a450a1df93b9261bb54bf9f5ab1de40d00e0728d261)",
+ "P->V[56576:56608]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 220814: Hash(0x58bc55ff1a5d299176732a8b559134755594c6255a4c92e59080ceb6224f7a4)",
+ "P->V[56608:56640]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 234759: Hash(0xa65e2e80a7bf347b86f6e0b417177136123c62b593916bd737942a88353ebe)",
+ "P->V[56640:56672]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 235188: Hash(0x29d7a2db689a9debd73b5bc0f33bc8b804c6d427a03b0c8364b98a32ff3a1d2)",
+ "P->V[56672:56704]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 236151: Hash(0x109ee328d9acbc6377bda0f8b83d884fef516eb43293d773ff529d743151541)",
+ "P->V[56704:56736]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 237107: Hash(0x6b2b9b74683881718e9a2924fffdb66d611f6ddf200aa2e305385015224a771)",
+ "P->V[56736:56768]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 239361: Hash(0x65a8506e88d74c101f5686b738f5acec61d8b1972217a164f20375376412c09)",
+ "P->V[56768:56800]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 241986: Hash(0xe02f477bd8f6286999e2760611729539f72b37b736243d0cd030fe90e2f742)",
+ "P->V[56800:56832]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 242791: Hash(0x235c27a3c0b0035a753fb069c88cad84ac5386c4977d5845a12edb0952f3069)",
+ "P->V[56832:56864]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 245629: Hash(0x525ef97d77d88f216a678493562d2304700cffb3a3a0bfb1d16d80d352b5380)",
+ "P->V[56864:56896]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 252598: Hash(0x44017d60da5170575683fdb516adf1bc05c01b563b930d6a832f4657b1ce785)",
+ "P->V[56896:56928]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 254188: Hash(0x55e0a418ae988fdfbcbe26e37dfb9889ca8a6ed163eb2456c8757534e4e5003)",
+ "P->V[56928:56960]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 255813: Hash(0x4cc1dca467249e7a4ef41c888d1deb3f6a397d69d7de93c865d44c9bda54405)",
+ "P->V[56960:56992]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 261164: Hash(0x4d5507cf6ee738f08a9a910689cc0663ef36a382c34a8bf9cc44ce9c8d7b343)",
+ "P->V[56992:57024]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 66785: Hash(0x54bc17743426a2f463564e3ac9fa38332e17c9a23a0189018ad8ae95fa2230f)",
+ "P->V[57024:57056]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 67246: Hash(0x3e9cb68576661b456e4b13a3f8c8ec5e0b7a264769a4ce8296cebb3606b20a9)",
+ "P->V[57056:57088]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 71508: Hash(0xea0abb41ace3f6cc7088aa1014d8272c2800981c8c25a3ffeb20b02085ad7b)",
+ "P->V[57088:57120]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 79419: Hash(0x290f6dd248adf76237aa7cde0e8489dea7e48f957366cf6a0889e480fce5459)",
+ "P->V[57120:57152]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 79447: Hash(0x1912b96939992a161f9329cb8ffd30c8d475fdd6171329d6a23886971b3cfe7)",
+ "P->V[57152:57184]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 90112: Hash(0x6fcd35bf27a7f882ea5c90155f6919b086918ba863eddbcf1fc3ab8515fa654)",
+ "P->V[57184:57216]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 91505: Hash(0x3e1e54f944d45c7f4c383d82e7c2b6da04b03d100d40352cddceb7c0f974cd3)",
+ "P->V[57216:57248]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 92236: Hash(0x4286de3ce4269a34a52d6eadceafaab5690b22772f232832ae7cde093c2811e)",
+ "P->V[57248:57280]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 96672: Hash(0x343fcb1b89769ce8f1acd9d51194e46c2fc19a87cb5e750cccd86fddc042a7)",
+ "P->V[57280:57312]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 100879: Hash(0x1cd675ef2fed9bcc152602deefe2c11fdd89b8ac23fe70bbe32eb82a42378b0)",
+ "P->V[57312:57344]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 101780: Hash(0x6a4f6a187805c8cba6f467e80f106c858f5f657e11812fb4ff7dda9978a3ef6)",
+ "P->V[57344:57376]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 101937: Hash(0x5b57fc5753cf22a081213c9274e8201f978325d7bdbd5d4d6665f9eef648622)",
+ "P->V[57376:57408]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 102148: Hash(0x5b576b1f3127c323e2dab0985abc53ae0cd2020c9683a0d06d35acc5f6c8fc8)",
+ "P->V[57408:57440]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 102484: Hash(0x5a2646ad4ddc9c010dd9f1a4551646fe467fd4cb174793f639bef674bb45b85)",
+ "P->V[57440:57472]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 103519: Hash(0x147431127bf1b27daefb8dcfd63de6781b99b902da6b221ab767124f25497d8)",
+ "P->V[57472:57504]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 105443: Hash(0x11e08306d4d6580fd070fc922d2517bcaebf94a388a40db61bdee762207cd64)",
+ "P->V[57504:57536]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 106413: Hash(0x5468190ad94b2fa0168e8c424a3976297382b9ae7043265ddccbda15e382c70)",
+ "P->V[57536:57568]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 107662: Hash(0x6b41cfddc55ecf6fa1acfdafd92d828a38bf711caa7ebdfdf1bf5b23c2f0766)",
+ "P->V[57568:57600]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 108218: Hash(0x455f2cee62497cc490d0ce427446b4e58dc73f8eec2e6cfccbad62a8b792f00)",
+ "P->V[57600:57632]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 110406: Hash(0x5d58377073ff85595c72702bb2cc62fbf643e94604d7b390e0d25eea8aa687a)",
+ "P->V[57632:57664]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 117378: Hash(0x1751d23e8d77dc7eeaf05b74f4bcc04a524ed23e72cc3652b151cdf4ddfe135)",
+ "P->V[57664:57696]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 117595: Hash(0x66629b2abf1b6d581d79f7c956197ba9d5aa3c39df89edb6a7401b6e9abe543)",
+ "P->V[57696:57728]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 118074: Hash(0x4b4c3a9e31c03ce6939e92e8e96e45f332dbe2800ab905fb48c77729bdea72a)",
+ "P->V[57728:57760]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 118552: Hash(0x3304e7cffbbfd5187be8ec9495f5562deddaf6ecd6407b47e083c8cbc61c2ea)",
+ "P->V[57760:57792]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 119681: Hash(0x6cadc1649be22a964326d30d6323e85b151656ca408077e222e1074009d9851)",
+ "P->V[57792:57824]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 120992: Hash(0x3c8ce2928f4cad60c98d7047d81195fc164aed2a22204e4f4150080b822d6d6)",
+ "P->V[57824:57856]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 121394: Hash(0x1987c5dd80145a61b3739fbb4c8de833d97a37dca840527704c2131187c1cdf)",
+ "P->V[57856:57888]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 122815: Hash(0x6cbbc52d45379a1222657757f2cbeff12124e596f728b283070b2b64c2a52fc)",
+ "P->V[57888:57920]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 126298: Hash(0x6e2324f1bee5d1659264ca7dcd7328a0833ef908cf0641afcead4dc86567467)",
+ "P->V[57920:57952]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 127095: Hash(0x5b872d58521837618b33d1a67d5b6b9ccf5c35fc44a5eeab3f3746b94c41243)",
+ "P->V[57952:57984]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 127907: Hash(0x503b15a38d88e5919f60bbcf05c8b5b617b396e28d75be225a68a49fc187ad1)",
+ "P->V[57984:58016]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 130583: Hash(0x325f0d174d346c0b5979fcef58038bae663f4eb6dd5a25151557ba61cfb5ab4)",
+ "P->V[58016:58048]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 33393: Hash(0xdc357da0f630575b1ebda5134ac8f172a95156a1da08320453632f151fbc43)",
+ "P->V[58048:58080]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 33622: Hash(0x63cbbe1e10524d2808b8db76ff190cb4ee1fde63505727028ab26ae8c6b0ecd)",
+ "P->V[58080:58112]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 35755: Hash(0x1bbf2b5267431edaa3bd173026555880c3ab6b341c14fdb6636193234e6981a)",
+ "P->V[58112:58144]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 39708: Hash(0x46befb1a4a0b55fc41b816e9dcf74996cd1497475f424a3f6570c9796d7ccc3)",
+ "P->V[58144:58176]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 39722: Hash(0x32685d94ca4f5ec680a2c6e78ec6335721c5e975bf3f3d85e2a97d545747e62)",
+ "P->V[58176:58208]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 45057: Hash(0x75e26c09df479c828e93beec2037921e5fcecf13f0245e7c4b806c1668b2bb2)",
+ "P->V[58208:58240]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 45753: Hash(0x709a1aaae621249d84bb5189b00805644712052ed31023c7d6295623edc7f27)",
+ "P->V[58240:58272]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 46119: Hash(0x5c79056b79104b5772f0256aaadba5141f85d3624d9e21fcad25e508e0958fd)",
+ "P->V[58272:58304]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 48337: Hash(0x1be866ae072a5795ad10b4cad3bd9ad6e011a66bf636d4626d1eaa6dda36ccd)",
+ "P->V[58304:58336]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 50438: Hash(0x14b2ead7bb84bb63544f32fd78ee4554d89afe330ec446ac442a96d4c52bfd0)",
+ "P->V[58336:58368]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 50891: Hash(0x72081e12a08012a71a8046db10e86740e5d534ab78afb8bfaabf3577045b947)",
+ "P->V[58368:58400]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 50969: Hash(0x4a547aed325fa32d7c77fb62d4bdf8a61f8222d0221218a02be7cb9877048d1)",
+ "P->V[58400:58432]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 51075: Hash(0x16d98f9f233dbaf92dedb99f5fbfc98aa9a79cee149c064aa289e2d105a416)",
+ "P->V[58432:58464]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 51243: Hash(0x70187f99a4a1a87be9a4cfe476638702bcc0a486dd29098bc68d2cee1ecb817)",
+ "P->V[58464:58496]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 51758: Hash(0x732cd1dc98e5a8be76864a6f6e26c5a891f10c60c4d2705b3f91eab651bf4dc)",
+ "P->V[58496:58528]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 52720: Hash(0x7f1613fc5fd655f5ccc6922d6de616ce66b74e8fdcf4c4eca4d6569c471e061)",
+ "P->V[58528:58560]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 53207: Hash(0x4d36285d4b4c3c794065183d68eb0fd0ec4231c54b4a81e1acfd29fb4e4b9d2)",
+ "P->V[58560:58592]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 53830: Hash(0x2cdb6b6e5761ea493149955c6f16be64bfd69dcf0594bbee4734864f46905ff)",
+ "P->V[58592:58624]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 54108: Hash(0x46f36419813a83dbdc5600aef87cdf436ca14484d2978096da1281e5b7774d)",
+ "P->V[58624:58656]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 55202: Hash(0x7ba43580a3a7c7df99d36bf6b7bafd175087b631e61fd9fe589da2b3ec8959b)",
+ "P->V[58656:58688]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 58688: Hash(0x6dbf02a758cfa112fe1d76a84b4d40ed0e4e21a652fa26e3d9aeb620f558657)",
+ "P->V[58688:58720]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 58796: Hash(0x4bce7af72dde3d46362e7e8419b7bca4b9850363971eb5bd54ff79c85c775b9)",
+ "P->V[58720:58752]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 59036: Hash(0x2eac63f2ad6de3061ddab3aa6abad15a07b634ab14d095bde750bec8232b8c9)",
+ "P->V[58752:58784]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 59277: Hash(0x28942090f4a258a48d3477ab756279d3074345c5b060f3ee930b589d9d1b6eb)",
+ "P->V[58784:58816]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 59841: Hash(0x52986a824f512fbb572fddd6df600afd980408070efda9d8b5901055849e7a9)",
+ "P->V[58816:58848]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 60497: Hash(0x1da438e85c1d378b4205df52db08a3fe4cf5bd256d4abeb8d9314c9c5f6b49)",
+ "P->V[58848:58880]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 60696: Hash(0x3e036265d45b29a2b29a7f77943a96a163c50d20061627e77acf00db980085c)",
+ "P->V[58880:58912]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 61406: Hash(0x365b6a4dd2508fc0c0dcbdf00382b55903fa14233661b39cafbbb87ef947a39)",
+ "P->V[58912:58944]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 63148: Hash(0x2393eb2d04bec6b76fe3b8ba1e744f881f4b599dd1580f45ee2fa8e7608599e)",
+ "P->V[58944:58976]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 63546: Hash(0x64470772fae1bc2851ac53ccdde11bf05247b0dde6d77f2ae54a2e082186c72)",
+ "P->V[58976:59008]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 63952: Hash(0x341b38586d1be36f78730e4e70681f6ce892ba184402547026b6366c32b13d8)",
+ "P->V[59008:59040]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 65290: Hash(0x9ea682ce9147b341e4b1c696ff0e7272e1bac65cf6ffe9ae69155baa01f087)",
+ "P->V[59040:59072]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 16697: Hash(0x5586f99a02d526868da2ffd05abb7ce9196960055d21327f81d6d3ed4e8480)",
+ "P->V[59072:59104]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 16810: Hash(0x202e2db3ce2792c77c93c2a84b0050035c680a3ab5295fceb078df47072cb36)",
+ "P->V[59104:59136]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 17876: Hash(0x2035bbc90aed7d544ea7c10f64a3fda8f03656a5c1de471325112b6f949a97b)",
+ "P->V[59136:59168]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 19855: Hash(0x4e24c1f4aa2d50173b85398aa4c7e447d86fccf43718ccc3dc18bab6bc1c334)",
+ "P->V[59168:59200]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 19860: Hash(0x73cc913a67c051438796c759e17efa51362f955330432b310c73ee8aea97877)",
+ "P->V[59200:59232]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 22529: Hash(0x11d2d2b3bf46ccadde41b79aa8ae642764f921e6b624a7b9430a2a6dc07ebf5)",
+ "P->V[59232:59264]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 22877: Hash(0x5c99ca756ac16a062efe7283e706bdaede2d018da629509ef003dca1370de1c)",
+ "P->V[59264:59296]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 23058: Hash(0x78dde88aae200a2673cb86b30527af12b22b1780be4e79f1864a8ce9fbea6e0)",
+ "P->V[59296:59328]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 24169: Hash(0xe92121f18dee8f86af326eea5993d2d4e66a1504ef1082d7a49b495bf17a53)",
+ "P->V[59328:59360]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 25218: Hash(0x3d0ee23a2712903b0a20fc703f3d088925112651b0185ad840892aec34882e7)",
+ "P->V[59360:59392]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 25444: Hash(0x455fa6f48322f8adcecf1f0bfab954d8c0144ded26457d7af61a54505b0c7a3)",
+ "P->V[59392:59424]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 25485: Hash(0x6432d3745da5a9c47233438f4cf66db7e25639d13ab04aae45a5115ea8a29cb)",
+ "P->V[59424:59456]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 25536: Hash(0x45d593b90de037e964eb193477d94aae31f06464ca6c03a47f19376dfa50374)",
+ "P->V[59456:59488]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 25620: Hash(0x55c14530b9eeaaadf2a006d42d5ceb76da05de0b84508cbcea7386c6162bad1)",
+ "P->V[59488:59520]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 25878: Hash(0x229ec0ce44039ae90c633d46194b84b8f87c170f4294ae2e284f354c151ff3c)",
+ "P->V[59520:59552]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 26361: Hash(0x6c42b8768df636959515849fc02756d1bb493f51cd6d6679bd88cdd8589e037)",
+ "P->V[59552:59584]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 26602: Hash(0x6b524411b3233e65ae17935a0daa92b6d3f8554ef1e5ca759f1ef62ae9378d0)",
+ "P->V[59584:59616]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 26914: Hash(0x286e1fd7eaa4aec9190eef0f84ce50318a8f31ba0f5f80559215b1da258025c)",
+ "P->V[59616:59648]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 27055: Hash(0xa6c389c48dc891f236c22208650d418bcbd05b40f10f6ee6cfcf8130c6cfdd)",
+ "P->V[59648:59680]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 27600: Hash(0x31e8ae9088d78e13f1df24c5dc3acd96f8ad817dc4d29b6cdf9e51e2a214adb)",
+ "P->V[59680:59712]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 29345: Hash(0x645512b2574d4d6c2c42b4456cf1dc571b632d4be02b86feadc22a02b04b301)",
+ "P->V[59712:59744]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 29399: Hash(0x631725a3323d59b1d8b7283b9528769a8b619a0e0f5280f6a44d639f35365af)",
+ "P->V[59744:59776]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 29519: Hash(0x5b3e977e2547f1f2ca7a3d0290a18c03e8431ad4273925f8ca8e7e247ef2af1)",
+ "P->V[59776:59808]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 29639: Hash(0x643bbbd534d2e5772d979d16da1cbf1462fd4f52c30467022cec2fc2e36e2d3)",
+ "P->V[59808:59840]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 29921: Hash(0x78e856b25fad074e29d0e448b0a5aea5f9e6aea929ac27bfa616fe628e8ecf9)",
+ "P->V[59840:59872]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 30249: Hash(0x2b13ca74e3373eb2dcb59c17f5346886cc24e1235968007a55faa25faeed82e)",
+ "P->V[59872:59904]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 30349: Hash(0x36a09007a66faf3c4eed56d9adaa6f7407d5603f9a2a386657721ad4419293a)",
+ "P->V[59904:59936]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 30702: Hash(0x3f3c2448cc943a211df79f764b681d0bdd0fb4ecaa0edb6d7e8c1365c4abe20)",
+ "P->V[59936:59968]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 31575: Hash(0x4c26ce7cf2a36d94d0b17fd0724557c0a2730d2f3eefde10ec52e3cec57bc37)",
+ "P->V[59968:60000]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 31772: Hash(0x5bc338bc5236eb3b5262eb9429959cfc0821fac05d1d36b857efb1bd1098a85)",
+ "P->V[60000:60032]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 31977: Hash(0x63bfe7746c09576ba321e397634d1e07f817e7885e9d2e31052677a531365fa)",
+ "P->V[60032:60064]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 32644: Hash(0x77c1a72080eb2e960a67d378a3f8c0f69edb60a3101f76fe4ea73db5cba317e)",
+ "P->V[60064:60096]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 8349: Hash(0x26144a626f8e2d74e0d0db1dccc7cc1f4c712d6bcc665a4adca6f8ab32b83)",
+ "P->V[60096:60128]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 8404: Hash(0x13c41b6f8e85774166f9f204b9b75ce0242fbccb593a22b00ebfcf0c1e6192a)",
+ "P->V[60128:60160]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 8939: Hash(0x7e6b48ac0ac41ac28c1127f97b33b2ae85c9e55937f7084ca6752dbf238a37d)",
+ "P->V[60160:60192]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 9926: Hash(0x79b7e0ad04cec6aa5848d324cc1c0bee3ff7eb5bfe9039fcdf69a678d0be496)",
+ "P->V[60192:60224]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 9931: Hash(0x7bcb8fd637288ad20982a5ee8b49baae1236f7fc64cfac7495521837d38426)",
+ "P->V[60224:60256]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 11265: Hash(0x684f9cc6fc028f1ac3fb1fb79237e6be239bef4696aafd76d8b417e02597dc)",
+ "P->V[60256:60288]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 11439: Hash(0x21409fbe9594833f376aea4d358def46539a10cc938b152b076db05fe18bb2c)",
+ "P->V[60288:60320]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 11528: Hash(0x24b696fc40ea91326df75a22d5fc22fb9874a585c1fed7aacb4951c3e2d476c)",
+ "P->V[60320:60352]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 12085: Hash(0x529ab1730ab8901101bf3be2b492ae26c49b7114a733d1eb3544efd5ab416df)",
+ "P->V[60352:60384]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 12608: Hash(0x646b558a0283b99e32424cd475539ee14dcbdf65df072f0a0135f68e83756f)",
+ "P->V[60384:60416]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 12723: Hash(0x7997c49f54253c0021bcb6926e9dd1c70eec31198f41bd6f5ba76f8923cd411)",
+ "P->V[60416:60448]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 12743: Hash(0x7201e7f4c16ddf95a0f49d44494affbf68a3d33026336430709e0f4b1e22051)",
+ "P->V[60448:60480]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 12769: Hash(0x5c3f7c5efafa87662553ddd1723f0d4e7801e620cfae8a16e1fadba849ffce6)",
+ "P->V[60480:60512]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 12811: Hash(0x129183f4a3aa2c19b6cd8641496909f2144d1c35da4926b0df52f3729df5375)",
+ "P->V[60512:60544]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 12938: Hash(0x6f42d32b0336e7b5a9ac5ba2dd63ff3057540cb8871f6b7b9486ddef8d75669)",
+ "P->V[60544:60576]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 13181: Hash(0x4dadaee8c82562040e1b224ad88c15994eca11240de4dec3378eb55db651c2)",
+ "P->V[60576:60608]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 13300: Hash(0x1c9cf56422f1f9f16ffb4c2192ab114fe2410679f2e4da4d72324e862db6716)",
+ "P->V[60608:60640]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 13456: Hash(0xaeb78106afa1c49f48d53177a968a397891322a8846d701aac3e960e019a21)",
+ "P->V[60640:60672]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 13526: Hash(0x1f9e123b1fc22ef7df293492201eb07450ef31640a755d2b1eddeaa84bea05e)",
+ "P->V[60672:60704]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 13801: Hash(0x30c5d1410a06250755377d4c0a3524f3feb888ed0d8a9a24aac306c97dfbdf3)",
+ "P->V[60704:60736]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 14673: Hash(0x5897977835aad2dfa775a369c428511bb1c2549b58f1f1088d2ca16fbee5513)",
+ "P->V[60736:60768]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 14698: Hash(0x6d67a15d4a1870fa684e48e765b56d0a47108a5a20b651f9cec88f16a3893b2)",
+ "P->V[60768:60800]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 14758: Hash(0x750bae7b66417f8fb3a45f44b0a9a3d0e80956e7aad2b9cc86bc48b3f9201d5)",
+ "P->V[60800:60832]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 14818: Hash(0x543b581262aceb892f19dec695eb83e22851e12c723126a5e6744108de7dd49)",
+ "P->V[60832:60864]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 14961: Hash(0x34239be784dfe7828356e3415a870094ff64d31a6bf5a7da200596a94c98563)",
+ "P->V[60864:60896]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 15125: Hash(0x7d76396f3821ab01ad197b6056ce3698d3fac8ad2834d35a8ade943b0ae1286)",
+ "P->V[60896:60928]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 15175: Hash(0x6a31cdaca52a4215a23d66a87b25d67bfafdf7c692966c0773b539c6a724dcb)",
+ "P->V[60928:60960]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 15350: Hash(0x4c61e758127c564b1da7d5f38c92118000582d9d9bb62d5251c75e072f9dc80)",
+ "P->V[60960:60992]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 15786: Hash(0x6853fb1e6fd87d205584fb060f1e0d1dbe5ba85e6c429162b7fd9c5f26deae)",
+ "P->V[60992:61024]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 15887: Hash(0x4f6f8bf5ccf585e01d55cbc446063edd31943df089b3d2016b8650d39608627)",
+ "P->V[61024:61056]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 15989: Hash(0x4c2f5e8bfb856f1ddb7b3124cbe8d2b3c8c5692e98ffe9e3fc111961c40a10d)",
+ "P->V[61056:61088]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 16323: Hash(0x16c0b6c54c7bcc4848755985822e511c288f9c684a4185715c7f3fda331956e)",
+ "P->V[61088:61120]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 4175: Hash(0x3d14beeb3e4160f2f3a442b9f040f22e8fd2f02f43427e996a02d5328e2d865)",
+ "P->V[61120:61152]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 4203: Hash(0x339b635ba86856c6592ffb0da1f7c3beaa9e667b798384e3f54882671d5c4c7)",
+ "P->V[61152:61184]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 4468: Hash(0x20f372b6671a897cabb9cb51219905c37adc464128a1b1b7c444053e291d55d)",
+ "P->V[61184:61216]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 4962: Hash(0x3355a3f34183c4fb9f36df27a1b8430683b0931bc8f8b4f77d2e36a3a630c2b)",
+ "P->V[61216:61248]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 4964: Hash(0x4e8416e2bf268b13c2e0ee6d6eda3ce58c267c7e1e8a093f8cb70f9929cbd7d)",
+ "P->V[61248:61280]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 5633: Hash(0x4e6d8eeb07fe21f342c13fd08b2e3c208715d5f45beaafa2ba6cd6e16e75b29)",
+ "P->V[61280:61312]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 5718: Hash(0x776e26e217c817848c0bfdf7f21eddc9a3e17b55a14a4d321504984f251d63c)",
+ "P->V[61312:61344]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 5765: Hash(0x5fe27d1fd513a1e4bffc47f36cb51e621b5ecab446ae8444674e0f067482eb4)",
+ "P->V[61344:61376]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 6043: Hash(0x2df25ca51245827bbc8fa8837280b27010f0dcc8cf510449757eff7e4aa3247)",
+ "P->V[61376:61408]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 6305: Hash(0x2606b29f9e9eea4fbd536e4864252e6559f29c4374cae6dd49edb39a79a52de)",
+ "P->V[61408:61440]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 6360: Hash(0x60cc4c0e8dba35e27fd2268ba2a58ed36570cb17f4a3d94ccf0ba345d8cb3b0)",
+ "P->V[61440:61472]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 6370: Hash(0x416db1a95917999fb05e08174337e1f2adf3b7bfc89cd2cc4b1ee055ffe67d0)",
+ "P->V[61472:61504]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 6385: Hash(0x763c66206befdb2718e01994f3c4e61d4e19d40439ffa6565bac2779b90d1ec)",
+ "P->V[61504:61536]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 6404: Hash(0x584542c8ad34211b8511226f3dd0f9812a93f3d3b206866f852d802ec54dd67)",
+ "P->V[61536:61568]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 6468: Hash(0x1b0a339f2832eff31b539d6e3ddeadc04c026f830d5ab92c3531b15ff5d8a59)",
+ "P->V[61568:61600]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 6591: Hash(0x647da2a835bfa07e78116240037e1e52b3b6dcf8c0e0f5b356dd744b8be536f)",
+ "P->V[61600:61632]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 6651: Hash(0x38ab7fe076e53280aea0026c30ebcd6802ebe6c3b17852373f06b1d95a08e00)",
+ "P->V[61632:61664]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 6729: Hash(0x44a9ab7af5df0e41b8344eba545f44d449383a98865a0d32c1b86b9d9ff4090)",
+ "P->V[61664:61696]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 6762: Hash(0x586072a4c213f9cd27775dc27b6f86d48bc720be8a6aa23f0da9e3ab0db5f2a)",
+ "P->V[61696:61728]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 6901: Hash(0x7d8780216fbe121c47acf704b792640f634a60fa5bc0a38f70ea7f4df5d0d54)",
+ "P->V[61728:61760]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 7337: Hash(0x8827745fea4c439bf2e7976a99b210357289fd21ba20ffebb7a6520093da8d)",
+ "P->V[61760:61792]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 7348: Hash(0x336ff57ca97edbb481a7bc4a00e9a0a8e36a658463192a08d7bac901324992a)",
+ "P->V[61792:61824]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 7378: Hash(0xa76357e91a2e119ce534c66fcca3d46060e92675926628881229f4b9359e6c)",
+ "P->V[61824:61856]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 7408: Hash(0x6e265239bc9b33232ebef5a259453f58052538bcc93c608097f1787d3c0bcaf)",
+ "P->V[61856:61888]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 7481: Hash(0x647280b7bef7df532f8707a7f1a41085c8c38e6cdbedec6f62ca882c760128a)",
+ "P->V[61888:61920]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 7563: Hash(0x5e2b18f2e55a3a423a76e93431c2eb3529e1d7e093ff2ba621a5a5f7b894b24)",
+ "P->V[61920:61952]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 7586: Hash(0x5bde73cc5d18df98cda2e2be79e68b765c13bde6ad687bd6e152767686dc4b6)",
+ "P->V[61952:61984]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 7674: Hash(0x27a6c456b510c33bbfea628be34e68aef0b83eecbf11ac6447b8f164d101006)",
+ "P->V[61984:62016]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 7892: Hash(0x5c9870d76d5fa799ec78b3183d007301649521d2c3d1791fec53d82eeec8dc9)",
+ "P->V[62016:62048]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 7942: Hash(0x2075fcde7eec4019c31d94914b1f7a09ae11ee13b1995cae161142099e295ca)",
+ "P->V[62048:62080]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 7995: Hash(0x5b54f6b3da147042ad056de4eb92699c98ba25781a196736789b9d4266f2dd1)",
+ "P->V[62080:62112]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 8160: Hash(0x76a171de0c264397920717cdd4a451c9d652fc3ed1aa2dd76952474f0e7089a)",
+ "P->V[62112:62144]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 2086: Hash(0x1f2fd9afcb5a1437ad82a6daa7e5ea719c6998d9cfba9345010fed2588eb53d)",
+ "P->V[62144:62176]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 2100: Hash(0x21038e307591cecd95a178db6a8761ea44bb2e804f7d0c0aad64b9ce029f6a0)",
+ "P->V[62176:62208]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 2235: Hash(0x2eec30a47fc8dff6734487c51965d16b1156209e690c8e78afb87fe87bdbe45)",
+ "P->V[62208:62240]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 2480: Hash(0x454a895eb30e14fec72e4433df78af3f8890d7d0c50534759125f88acae4971)",
+ "P->V[62240:62272]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 2483: Hash(0x26fae26469cd6368949a21a5e135800636a053534e2a9cd3b8abf9e57240eee)",
+ "P->V[62272:62304]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 2817: Hash(0x11247e0d8a8c5ca155e6fd32dcfecb7efe9bd852cd324099e191f725c23b20d)",
+ "P->V[62304:62336]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 2858: Hash(0x364aa33ff587440b041b9ec6f38710b6ca770dabbff1e819fecd06590fc7b8)",
+ "P->V[62336:62368]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 2883: Hash(0x6d29d9f45c649630a08b801dd1e8d23812fb1f11ac9afda9988675e30725de5)",
+ "P->V[62368:62400]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 3020: Hash(0x29f65e2d782e8a21aa97371990b69cc5248b2cfd78ecaf0376fdba698889485)",
+ "P->V[62400:62432]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 3153: Hash(0x74e219daadce35c96c75e3ae878d1233faa2b0dd6135b3b6321d62cd01c267)",
+ "P->V[62432:62464]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 3181: Hash(0xfdcb1bf83db7098e6a3502f03c31f825f80d98640fc962b4152c29507bf8ec)",
+ "P->V[62464:62496]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 3184: Hash(0x68dc18a2c2d0dcf4b08aab83e4a9e80d893a9fa560aad59d09021fd50224003)",
+ "P->V[62496:62528]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 3193: Hash(0x6ea2eff5a42c7e14f5c3bc7f69b1fb8893eba0702a0e1f735f46d5b5a1c2169)",
+ "P->V[62528:62560]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 3203: Hash(0x64ad59dc246f8059d089276876307b4ac0be1da89100104857cd136ca4aea3b)",
+ "P->V[62560:62592]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 3235: Hash(0x453fa316f90963d5e67ae15dfc1b308a98f09490a3e60ac27f9759d1a41ba51)",
+ "P->V[62592:62624]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 3294: Hash(0x2144bc9b614a7b9af4d53bee93f9ad855d94f6e4664c26f727ad7c58eaa0623)",
+ "P->V[62624:62656]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 3324: Hash(0x59b4a0f2d090488c991ef9f509a3b82f76c2e9e6cc02717c86fb603e1f3ec7e)",
+ "P->V[62656:62688]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 3365: Hash(0x4797c5edaea37866cd2f840457b4de286f20a3c0b50a13dfb2d4a26c76b4bd)",
+ "P->V[62688:62720]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 3380: Hash(0x5cc408acaee6394ea0a50675e5aeec78d49bbd91a86de027b61d0302c9ebc70)",
+ "P->V[62720:62752]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 3451: Hash(0x23bf2f46799ee25812a66e2e4687811daf6aa547edf85e801918e6d4c883639)",
+ "P->V[62752:62784]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 3669: Hash(0x605c64930396400c4d4cb650b96e422b8d606a3cf1dfe848445cbedb62f0d3e)",
+ "P->V[62784:62816]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 3675: Hash(0x66d55f8bbd94e8a7ced97115fe4720c6ede2ff551b65a1c32703dbb22bb7874)",
+ "P->V[62816:62848]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 3688: Hash(0x1ce494ef306d276220683d5830a808230d0f2466350f9b0a14d79977fb5b855)",
+ "P->V[62848:62880]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 3705: Hash(0x6e65c902d59f2301bfb5e3d5c8c349e194e5b4daec20582d3caf327e31f92ce)",
+ "P->V[62880:62912]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 3741: Hash(0x3e063d19de5d70801278624150827d47f5646e0e743ba333d28d43efc4365aa)",
+ "P->V[62912:62944]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 3780: Hash(0x654658f48f9b1c5e327b0b83321dc12f998b204db7179d066f7be6b62983cff)",
+ "P->V[62944:62976]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 3792: Hash(0x7ebd44a0181a2930d36073d4e1908ba7f3a972caa2a317eaa5d34f83cb5fc84)",
+ "P->V[62976:63008]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 3836: Hash(0x147cb6c1b1706258ac1078323edc70199a105de0b0b489e7d873fc55280f982)",
+ "P->V[63008:63040]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 3947: Hash(0x4ee6ed0c93985f1543d68ee97061c615b4cd99130f7e07a311a9f37c52734fa)",
+ "P->V[63040:63072]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 3970: Hash(0x2edefe5f015a8e0570aa61e6917cf3498b077a410eac51241ac0b787ceb58a3)",
+ "P->V[63072:63104]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 3996: Hash(0x733732e9ebb41e15f4e3df5034d9495649d59b9ae1f9d1e4e7491f456dab5e)",
+ "P->V[63104:63136]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 4081: Hash(0x5ba9ec68218362ecddc9a1925f3fa9ffd91eb89784bacb1b4f097d5183ea5cb)",
+ "P->V[63136:63168]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1042: Hash(0x58e8cc0fea0fddd541d51277c73d4ae6579b4c12d6b8ed212bd8124b1790029)",
+ "P->V[63168:63200]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1051: Hash(0x7fe43ca726341737dac08d55332120cf1d3bc5ea7df8fa616688ea8cd21cebf)",
+ "P->V[63200:63232]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1116: Hash(0x9c795b38732d131de5d24bb1d52ab8ddf421a7d2de2fd0700b1a5da9056b9e)",
+ "P->V[63232:63264]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1409: Hash(0x47353afc77736301071e2c1929d9a3d9c9f7ff7b6904868c52003cb5f8b8723)",
+ "P->V[63264:63296]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1428: Hash(0x78f0e9a2f9edae143351ae9d19525d7f62106166c43df7ed8cf86873c1e8f72)",
+ "P->V[63296:63328]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1440: Hash(0x5619b960aab230c5f2c707995a11ffea400acf8f5c81fc8fcc92b827a0816c8)",
+ "P->V[63328:63360]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1511: Hash(0x1d4cc49711b1442206d33a06034a186f31e15130aa7724f2596754afa83f372)",
+ "P->V[63360:63392]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1577: Hash(0xdb3a4df33680c98084da50fa78a85e172eeab5d45f3de2378a30cd4e0655f7)",
+ "P->V[63392:63424]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1591: Hash(0x3dd5bc93cca9bffc6cee2ca2f3690f9b52d8599dbd7bbd3b8972bfd99d50163)",
+ "P->V[63424:63456]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1593: Hash(0x23ad4c336a6dd47664d1162e37795174831c45faac433846e65c7582550372a)",
+ "P->V[63456:63488]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1597: Hash(0x66204dd51673dafd533cb8f414ea295693a2094a4409f2b5aa26bc7e23b1230)",
+ "P->V[63488:63520]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1600: Hash(0x5700b53720542ef1817e8ef3c2548e3d617394e8619be7d9a0b2303a1390eea)",
+ "P->V[63520:63552]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1616: Hash(0x67b0f03ea31533d5790a6f938948f57d27e4703a85efb3a05dbf6cbf88d2369)",
+ "P->V[63552:63584]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1646: Hash(0x5d14e750e4360423666ce2eea9ff0cbf0c1f309a4e5df975c043796b3c496a6)",
+ "P->V[63584:63616]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1663: Hash(0x584c221b12be61ed6c96a0ae53f8af932ab5466782bc4a049a4c5b3167498ec)",
+ "P->V[63616:63648]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1683: Hash(0x6e9d8ede27793c2fff17b422d5400a5f50151f94ad186109972b789d3ab2973)",
+ "P->V[63648:63680]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1691: Hash(0x5d7c81d5fe45c310131c0f68ba385026c287ff2ca17d5c06b0ae005870f978b)",
+ "P->V[63680:63712]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1724: Hash(0x7cd50e2ccc2f2ff7a89baed885ba79ca5c66bd3dd494cc7ba384594d55fe8f0)",
+ "P->V[63712:63744]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1835: Hash(0x3f547b5dd761922aee3be781474f1ae053b6f585c03d4122bc745e342c5106d)",
+ "P->V[63744:63776]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1836: Hash(0x6ad44b269bd7bcf8783e8da36395b4b4a947110f3f675bd9d26c097b721e94d)",
+ "P->V[63776:63808]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1845: Hash(0x7af5b0ebe8e788cd3d2727121c04483d242711a3ca0ae22493d7d1546729dea)",
+ "P->V[63808:63840]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1853: Hash(0x17e922af815af415cedf13a36f807f1407dbcd7b88e5c4039906b8736700bbc)",
+ "P->V[63840:63872]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1871: Hash(0x39ad48153150ce82d34966bb9fc913333e90563538b5d40ef021c72b6392989)",
+ "P->V[63872:63904]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1891: Hash(0x43ee275dcd41f76796bf2b56972737c202af39bffa020c60c6979f3d24fed0b)",
+ "P->V[63904:63936]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1897: Hash(0x1fda1117204a2f607ebf02d7e6855f320dd72f6233adaa1fa11949948e90b8d)",
+ "P->V[63936:63968]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1919: Hash(0x485a9641db07208bd54316d78233360d1df05d920bbd1e1e60f5201f6dd8d93)",
+ "P->V[63968:64000]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1972: Hash(0x7c1e5c4ca9664721e65229082d8b0043d8909492800d460e1fa526b455374ce)",
+ "P->V[64000:64032]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1984: Hash(0x4d642a368b46477f0a15f9b2c53c86a7bb35e91a0ef52a9f0e7ccbb603f6bfa)",
+ "P->V[64032:64064]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1999: Hash(0x5ce5480ea7437153540244c02f57181bec84f035ae44128841c39241e7fdeaf)",
+ "P->V[64064:64096]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 2041: Hash(0x3b5ac72323a124b2c0ab8ff91f2ad24fc19d698d54140594a6b0b9a01f8c5aa)",
+ "P->V[64096:64128]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 520: Hash(0x3db06af5bfe611216a329d2f1619789646e5550e1c944c80cf19c600fa7a4b5)",
+ "P->V[64128:64160]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 524: Hash(0x3e4dd5e2ee6163505783f31a7812700530f30bd6023baabeb490f4bda06d9e0)",
+ "P->V[64160:64192]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 559: Hash(0x31ba3f2c87725ca923d658e34bfd3e45b283fa6d4b1b4e8e0ea90ed6050aaa8)",
+ "P->V[64192:64224]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 621: Hash(0x50096bda9a1732b9516d31b53c1fbce9a2b1c2c8b5267be40656b299b18b05)",
+ "P->V[64224:64256]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 705: Hash(0x74b4e72a80d52e2766eabc5b61d0ef52424fab6a0a07975922ce11c537d4182)",
+ "P->V[64256:64288]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 715: Hash(0x72d4d4f5a582bf96a76c74755b95685c7054a95bdab36a7459d2bd193e7ad22)",
+ "P->V[64288:64320]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 721: Hash(0x6eb73ea10485a54caaf9b4ac7e260bd7ee21fe5cb10e2ee8a91dacb5a0fa0c1)",
+ "P->V[64320:64352]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 754: Hash(0x73866cc2ffad23120522b9bcbd6dd392bffd5d6d32616f0e641b0a9fafe78ba)",
+ "P->V[64352:64384]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 789: Hash(0x16cc5da73d6f1310986ece346f22240b43c94e4d5ed8b5552c4469a956b8de7)",
+ "P->V[64384:64416]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 794: Hash(0x1ddc1a1a610c8a9e3eb420611c1f51cc23fec136c3b5b5333fced52d808ddb1)",
+ "P->V[64416:64448]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 797: Hash(0x19e850c773cb1e0d5cbdd215013cd95f9264a83c0d268bfb204bf4f68fb8535)",
+ "P->V[64448:64480]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 799: Hash(0x5dd04287bca5f882e35bfe4c2ef70a5b95b3530640edbb45e010b1ce50326e4)",
+ "P->V[64480:64512]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 801: Hash(0x473c1c3c688c100371f7205971b6d903b9d4ba0376b445258014f91e0b300ac)",
+ "P->V[64512:64544]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 809: Hash(0x46bc30f26fcafd52b8b19c8c2b81c829cd0c7c5c4d826bf64d24ab80a3e91d2)",
+ "P->V[64544:64576]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 822: Hash(0x2d1012a0b35fb554b8c7559195de9d123b8ab885a156f992a552c934bd6ef3)",
+ "P->V[64576:64608]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 830: Hash(0x7f28664f9dec88f339ed10cf207e2cdfa8ed7ed4c9d03612f829c4917da9efb)",
+ "P->V[64608:64640]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 840: Hash(0x3ffd48b4cc3b85620138945cbac502329b456ea16355cf9bad3f5f9af412e51)",
+ "P->V[64640:64672]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 844: Hash(0x17e6b8ac92b471c8cf4d17709a3d9d7400e88f6f8b9787c6a637e33a8f765ff)",
+ "P->V[64672:64704]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 863: Hash(0x7d3ded592618897d22c8da7376f812f511af5aea22385112d6fd6ce76ec386c)",
+ "P->V[64704:64736]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 916: Hash(0x7051e1316a4b866641bd33e56639ee624731f1a4135b1d3b7802cec2e302f09)",
+ "P->V[64736:64768]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 919: Hash(0x4e51ad7acef8d785bb20540776c14761070533acc2408aa3e9008cf2e365bd)",
+ "P->V[64768:64800]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 923: Hash(0x67d6b0f1a1b5e63d4e9171eb1ba88f72bcccde0c71f00e5882cf03925545bff)",
+ "P->V[64800:64832]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 927: Hash(0x69f36823bd70b77a92a3d954de7a2b964d5d80d79500a04bee11df7226c604b)",
+ "P->V[64832:64864]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 934: Hash(0x435008a018216b0936c66a644649bb37418fee8877f211b521988fb8dc4d629)",
+ "P->V[64864:64896]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 944: Hash(0x3ab0d4fc49492245e4e1af5cbf412a4bc9346b63ecc74ad69ced1b98c211d26)",
+ "P->V[64896:64928]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 949: Hash(0x184b6c3cc9bd0049d38e7c41a8afdd5f317f73bfdfe058401ce59c8076fbc66)",
+ "P->V[64928:64960]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 958: Hash(0x45b92850d3f9bd46efa547d61a70351fbd8c60f3acfbcf6d3dbe83321dec62e)",
+ "P->V[64960:64992]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 987: Hash(0x32ee7822ccda19d2a407073da5139a7a793cc13ff892198b1d9bc7f26f14c74)",
+ "P->V[64992:65024]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 993: Hash(0xf8893b57611ba4b9d9f1688cf0f8d439ff6bfb1ee2296cf2f86b6c89c85968)",
+ "P->V[65024:65056]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 998: Hash(0x2b4ae3db5a33278054eb43e8c648bc2fe76b9e96a9c35f6fe320d19dd35c041)",
+ "P->V[65056:65088]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1021: Hash(0x34c3e105d0530580288554cda6a01275c7ed9061dc1219fa4e3e5b6240b3771)",
+ "P->V[65088:65120]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 261: Hash(0x28b9df4d2ea8f4e58412e1e37b5f5b5481f2e2ee40bf87fa36e175f5e3b3e99)",
+ "P->V[65120:65152]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 263: Hash(0x36d4253ccd1912003763f6cf6432e65ac2ec2a89cbc8a3b67a2f088c37658e)",
+ "P->V[65152:65184]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 278: Hash(0x2ed57428bdd24facb2c5f73a696c664838126989029842971ec2a625edbbc4f)",
+ "P->V[65184:65216]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 311: Hash(0xaf4398477f5d16cd8c75a3ec1738d38b5fe40588a9c6c1a137906f59269c2d)",
+ "P->V[65216:65248]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 353: Hash(0x5a95a22f323659192b08c7eb064c0006f6e1f0c57a088b446556ad987ce4a72)",
+ "P->V[65248:65280]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 356: Hash(0x6d768da45e856a22ab67a393c607b6ef05a577be834f527d54bdb0319ceb096)",
+ "P->V[65280:65312]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 361: Hash(0x2fceb27095d7d121f6f90381dfd1acf673cf965e6bf949865fcf56bb40a84d1)",
+ "P->V[65312:65344]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 376: Hash(0x3209be808c8798d5cfbdc466dda113e8ad42d1085a99ee39e2c09df5fda802e)",
+ "P->V[65344:65376]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 395: Hash(0x5a83b0ce36cd03a53ba059655bfb0650ee3d455924b4028abb8ddd73dfeb656)",
+ "P->V[65376:65408]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 396: Hash(0x3cfaa2f260626a4b0616c9583de6940e220dd2c1521dd146701d2a746824a1f)",
+ "P->V[65408:65440]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 401: Hash(0x623991b0137bb6176e22b64c1af2562b388b21a226bbc74ef37de18d4734768)",
+ "P->V[65440:65472]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 405: Hash(0x799ad148dadfd8652c8276f95ce346978ad201b88e23e023d46affc11db584a)",
+ "P->V[65472:65504]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 410: Hash(0x59f8873a71e0951699ab7738fddfc9508f53058b04d9035772eb586f86fc288)",
+ "P->V[65504:65536]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 414: Hash(0x40495d8d75d7d0cd0f075ff22da3549ff273ae0fe2d31bebfbf327d8e5007f1)",
+ "P->V[65536:65568]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 421: Hash(0x62cfbc553397ac8ca963d91168bb61d89c7814593e633d618d2905a1963f66e)",
+ "P->V[65568:65600]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 423: Hash(0x14c9e5a425e70cd2a1639acc888b155d9d732e94bf2cafff6fa32d5998ea79e)",
+ "P->V[65600:65632]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 430: Hash(0x25063103db577752ba2ee5e77735e1010c719e2da30759d71744b717283c71b)",
+ "P->V[65632:65664]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 460: Hash(0x21679a454663d4f7ad2efe34c66efb1c477d0f77f3a63c6e771c9c16dfc9ea9)",
+ "P->V[65664:65696]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 462: Hash(0xaae90b8072c04100b9a8cabafaa012f2cbf741de2da606c38152697e7b0068)",
+ "P->V[65696:65728]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 466: Hash(0x3d95281e2fef88b470f2b02edc96580e58de83d2738daf8993040825c83b62)",
+ "P->V[65728:65760]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 473: Hash(0x2171cda864d8f1d64bebb7e63e691f2efea5813309fd48d91a6cdec8a6d08c3)",
+ "P->V[65760:65792]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 475: Hash(0x6f62ba5f779a79a0940ae444d870814e2413ddaa7b9379f572de779a95ce6e1)",
+ "P->V[65792:65824]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 478: Hash(0x7502314bdc4ec2547b3f9815182eb508e091a4490593029008d73b12184ab85)",
+ "P->V[65824:65856]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 492: Hash(0x42aa49e49fb40b17ff209532ec918f1619f39ae4864c3cbc9ebfe5196195e09)",
+ "P->V[65856:65888]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 497: Hash(0x1b36e8a8ca9b37d737ab4a3b30f4ee15d7135afdba7babbeb2af01317b694ef)",
+ "P->V[65888:65920]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 498: Hash(0x23fd7fe9b60c246ef5f6cfc37acd166729a6d0257247f8ff0eac1b323050299)",
+ "P->V[65920:65952]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 511: Hash(0x639ff95708eea9b32a39d92962de742d14d62ab9eeaf70d44ae5e0b4349c72a)",
+ "P->V[65952:65984]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 138: Hash(0x79f097c555b2aac1576dfd053e453adfaadfe7b3bf51410b349341e08083129)",
+ "P->V[65984:66016]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 154: Hash(0x7c1f91e06eb6af2eb1e21c114fbaa5858297cb1634aa76bbc2a830e0f43c071)",
+ "P->V[66016:66048]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 177: Hash(0x1d2f44fe75de5ca11d017aa186fe6f1228d3f4014a65c0d740634278f3b1f74)",
+ "P->V[66048:66080]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 179: Hash(0x75df5644a123cc9f254f0337a6c8c95b78514a4057dbd6246e9b3e95f14709d)",
+ "P->V[66080:66112]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 181: Hash(0x6e1315c88572b34d6fbe81e131acda22a0973a0d13314b211133b2199f767f3)",
+ "P->V[66112:66144]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 189: Hash(0x586bad548a4e516b7412f9e75350c02bb6c9ca9ee230d86451c2ca13b40bf7a)",
+ "P->V[66144:66176]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 196: Hash(0x5af192025c16cfb8f79b2b46c6c7a45d65bd26b2bc71e8f5fa2c940960c292d)",
+ "P->V[66176:66208]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 201: Hash(0x27c6b1143101f0fd0fb04cd67917b07f99c7991b6de51616fa9f18158fb7cb8)",
+ "P->V[66208:66240]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 203: Hash(0x2be3d42594472842e7c6b0b82d1caaf7005fd9532d67879a44d780adf37d1ab)",
+ "P->V[66240:66272]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 204: Hash(0x7eef131df4928085950e4f6b8f88394163ee8b8ba864b1b5604ff34447ce3d5)",
+ "P->V[66272:66304]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 206: Hash(0x40065e81583152219ddb83b62678dab30864be3de241fea813780b174cf793)",
+ "P->V[66304:66336]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 214: Hash(0x3364f0255849d5fd038842cd04ab6bbd92687a4455a00cb657591ae78044d24)",
+ "P->V[66336:66368]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 228: Hash(0xa6e6fa2364c1634661ed8c389560906b7808d0ed88264e48e95e4b2408b75a)",
+ "P->V[66368:66400]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 232: Hash(0x7c176c44f31c534851d3f46fb21832303bd31a837ac850eaae5baf3e1e4c386)",
+ "P->V[66400:66432]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 238: Hash(0xd47b9a6b119c5f86ecc7b5d9f8513567d64785a1cc4e41d524debac28a3896)",
+ "P->V[66432:66464]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 247: Hash(0xd3d5d8c7a438301bb81e4248b3bf8e0616cce765825057c88833a6b29be183)",
+ "P->V[66464:66496]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 254: Hash(0x4983a44e7a756840f883ae91883c1f7d8394913c2607866263c6b418bbae169)",
+ "P->V[66496:66528]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 64: Hash(0x277e717556cb67769edf720bea810e92edf4282797eaa96ae86d4430817b96d)",
+ "P->V[66528:66560]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 68: Hash(0x26a1b4f24e5cfe3b14abc6c0595502e266817301eda53791545497896d9bb5b)",
+ "P->V[66560:66592]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 76: Hash(0x50bbf825bc1d84b28aabdcb782ba53069162ce12e07930b7438a262fbde2ec4)",
+ "P->V[66592:66624]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 91: Hash(0x700167c596abac7efe090ba37c6e972f5d0f4cd2a4e8286b725cbd2f3b1ad9a)",
+ "P->V[66624:66656]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 95: Hash(0x7a586f043ba5718b7071ddbcace3ebedc7f5262eba405d13eba6bf2b695bf21)",
+ "P->V[66656:66688]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 104: Hash(0x5af3deda7c8bcd4feb0e3173bf028f6364a7346e9ddae93b8e6c9a3bfaecd72)",
+ "P->V[66688:66720]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 106: Hash(0x389cdbf35018923ce02b0238988267e0447112fd2edb2ffb9d90e3f95fae3d)",
+ "P->V[66720:66752]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 117: Hash(0x48b52bbc6ba6be72cb652e19c4aae42b1fb113c46dc60943df1c8d1063d5fe9)",
+ "P->V[66752:66784]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 122: Hash(0x182603f53ba0d034a5a3d6f4bba261f87ba16e10fba50f24cbbfb16eadd5e57)",
+ "P->V[66784:66816]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 125: Hash(0x6dc6a5727e0347e225cd3432a685dcec164dc457cddb9a872d1d48ae7d556e1)",
+ "P->V[66816:66848]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 126: Hash(0x268cf2032cea41502e75995f93f44b782573a2438cc72ec2c10dc281398fa38)",
+ "P->V[66848:66880]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 33: Hash(0xe4a475028f16a448d214b5b760963f0d2eeb2227595e2304ebb8f11ee5a255)",
+ "P->V[66880:66912]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 35: Hash(0x3c3cb871b7d9063dd4bffdda1ff1628a2811fd1aea09754aa049848c2e937fb)",
+ "P->V[66912:66944]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 39: Hash(0x421e3b4052449cad19f4206bce5713953f94aad6f0128a1baac14b43f18b7d8)",
+ "P->V[66944:66976]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 46: Hash(0x3892be6d542790f7b68e27b6d56909f050984c18d373cad70ea7521e417f710)",
+ "P->V[66976:67008]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 48: Hash(0x4f15a2219e8b5d0e9bc8ba39c07eb3575ef2a8837357cd06923d75507c752f4)",
+ "P->V[67008:67040]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 56: Hash(0x4a8044680fe56578fb516318d7e68ed3872305c0398824232813409cf444e13)",
+ "P->V[67040:67072]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 60: Hash(0x423472cb21ad3ed431ede33eb31bc89c3dd2f9b78a355645325e164aedb77)",
+ "P->V[67072:67104]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 18: Hash(0x7c6501f6114cad9701188f4b3a4758881577ba19a5aed0c270c96bbf3ce2333)",
+ "P->V[67104:67136]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 27: Hash(0x42015fcfbd06c2bca6f8d5645d1aceb52b9aedfb5d6b33f383a5e46ef0b3df7)",
+ "P->V[67136:67168]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 10: Hash(0x61d4b8677d28a3560d9d9c8986c3f018377711ff3c428996409d0e38162d5cb)",
+ "P->V[67168:67200]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 9986, Column 0: Field Element(0x287a67036de50ace973fdfe81dcf0a326d21f238bd5856aaa6059d28a8cfd55)",
+ "P->V[67200:67232]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 9986, Column 1: Field Element(0x5af3a5719a5e0a15c11e3d048552c17aa8b325eee46027634d303f24cdce771)",
+ "P->V[67232:67264]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 13694, Column 0: Field Element(0x31d07077d9048ee4958bb5d65368e2e58c2d52566368859fc3e46e348bbe4af)",
+ "P->V[67264:67296]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 13694, Column 1: Field Element(0x393274bed1a8a9029d11918b427e029b7191a81ce660961cbe74fd14313d998)",
+ "P->V[67296:67328]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 47788, Column 0: Field Element(0x52a31492997e9a0828f99619f18e31e850dc335151d9f006e1a7def40fa3893)",
+ "P->V[67328:67360]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 47788, Column 1: Field Element(0x7c2bac24e6024ec22782f79d85cf24ba73e194fdfed5ec4f89814e892dc97e2)",
+ "P->V[67360:67392]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 111062, Column 0: Field Element(0x5364c4ff30b2e59fe55e9a2c6a109e04a547cd9fe15185daf7d90e7c2359b3)",
+ "P->V[67392:67424]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 111062, Column 1: Field Element(0x680c73804188f131c586879328d775cae8137d0b076ffec88e731ef0ee08d6)",
+ "P->V[67424:67456]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 111287, Column 0: Field Element(0x50ba69d21a793e608e5289a9f3d638043c3b961839ca685c33f9b4a2ea9de2c)",
+ "P->V[67456:67488]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 111287, Column 1: Field Element(0x7566c4ad1a474b62771f612dc1e461298682ae0f71cb23571334d76e66e4132)",
+ "P->V[67488:67520]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 196619, Column 0: Field Element(0x23b8c1acf43047c1c41bf5831a8f4f068284f9ec9dbaa2cbde81510fd9524c3)",
+ "P->V[67520:67552]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 196619, Column 1: Field Element(0x69eaaf42367273e2852ff8412f3f6bbcaa3d2269d43cf09918250fe62d7d66d)",
+ "P->V[67552:67584]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 207747, Column 0: Field Element(0xb7bd84613d4420352854ee92ea33be514794a09603399da2c9220cf2de46be)",
+ "P->V[67584:67616]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 207747, Column 1: Field Element(0x2a60da6f4a354eac58392f5dbe80755f905a1721d1763b04d9493706ea7f96)",
+ "P->V[67616:67648]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 213614, Column 0: Field Element(0x128c1d60fabe6ae6cc46ddc0b5d46c945cd6c183fbb4d2b2fd1a0d956976ab8)",
+ "P->V[67648:67680]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 213614, Column 1: Field Element(0x46ee1b0b2878dfee7590899ec7193c405bf2a7584888e4e5207ad69dd431a29)",
+ "P->V[67680:67712]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 249097, Column 0: Field Element(0x3b7c77487cd9fd19295af5a521fead83af6ef3e9fddcd8f3ef94a528375e21d)",
+ "P->V[67712:67744]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 249097, Column 1: Field Element(0x4f9fa6ea493a461674b2c934820ab178b63ec2bc301426e678e14ea77ecc8e4)",
+ "P->V[67744:67776]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 282737, Column 0: Field Element(0x5fde4e11eec2c7b2634cee8be51651df90ddb3f5038e402e248839437afb5c5)",
+ "P->V[67776:67808]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 282737, Column 1: Field Element(0x3b0f15179d5c3e286ccd53a20d2692b218ee036dd7c31bf8051cbd0dbea4e76)",
+ "P->V[67808:67840]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 289965, Column 0: Field Element(0x67e9fea724ade96b99b53b11e190a5bf96ae198bfcee8aeb6b43495b671a13)",
+ "P->V[67840:67872]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 289965, Column 1: Field Element(0x6f708a181b6907e1b3485ed68ef18c241d861453084eb1a7db8bf58aa7561f8)",
+ "P->V[67872:67904]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 291205, Column 0: Field Element(0x2bc996f60b5f0289a454d1a900718a5d950f37d14d217d443493a6c97efd3c6)",
+ "P->V[67904:67936]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 291205, Column 1: Field Element(0x7cf30de68a4de19677711c2aa6ae738f46c6d82eb67343107bc516128b8a8f3)",
+ "P->V[67936:67968]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 292904, Column 0: Field Element(0x672f277070369bc0f08b1635470385ce941ca37f635e402926ee63e82759dbb)",
+ "P->V[67968:68000]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 292904, Column 1: Field Element(0x42bab8f60f0876c38a229545e040af89574c8bfd95777a19885b36811e398c5)",
+ "P->V[68000:68032]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 295598, Column 0: Field Element(0x2c27074f2a4fcc98af9853bffe31a116d8cfaa677f53e84a88bdb9bde7189dd)",
+ "P->V[68032:68064]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 295598, Column 1: Field Element(0x327c27d1a418c0a97b481e4d5e43df04333beed2ef08fb38985d9d8aaf87989)",
+ "P->V[68064:68096]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 303856, Column 0: Field Element(0x44cf37e060502d48dc0cadfd89c45ef1d50cfc8d00cc603d00a026f414a28a9)",
+ "P->V[68096:68128]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 303856, Column 1: Field Element(0x63b77db5360468955e958f14d02c258fc5f09afeb65b721a9b9b023ca3f6e6e)",
+ "P->V[68128:68160]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 319248, Column 0: Field Element(0x6521c542d868ccb0814aaa68d263f42b4b1d15bd4bf6b7b295c1f9013dfd613)",
+ "P->V[68160:68192]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 319248, Column 1: Field Element(0xba015933b1ef3dc5399139490832dc2cd5ef4ded31576ea73c75fbf2da1f8c)",
+ "P->V[68192:68224]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 327009, Column 0: Field Element(0x5b4c548f45917a1cab93e76221f26f35cd9c368aaa08b86532821f044a80bb6)",
+ "P->V[68224:68256]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 327009, Column 1: Field Element(0x48dfbd513a8b5dbed08b58eedfac39f08fbec4000c7f5f3c793154f1cb6b8c3)",
+ "P->V[68256:68288]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 337022, Column 0: Field Element(0x56c0acd9e06124796bf5c56d1995c1ae0b0060ae0f56f4c251168f68fa4618a)",
+ "P->V[68288:68320]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 337022, Column 1: Field Element(0x235cb0ae99fa81d15c0c73929b13cd0329e6ceea213db6c3ccbb331ba59a19c)",
+ "P->V[68320:68352]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 341468, Column 0: Field Element(0x347c827a8a2e3505bc6c05c84f46e5f69525027fae6daa10fea3e0850ac8bda)",
+ "P->V[68352:68384]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 341468, Column 1: Field Element(0x46e6c09ba49ef2de8b7ddee2ba549acf09be08286f1664849870affd2bc42f1)",
+ "P->V[68384:68416]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 358972, Column 0: Field Element(0x93a451d256695c3f882323a334485f642ef4a343996a6f2cccce5763264836)",
+ "P->V[68416:68448]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 358972, Column 1: Field Element(0x42d8d4e91a82b5a9d92152f37edf2a8a7470f0d435790c36c39a4704fcf157e)",
+ "P->V[68448:68480]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 414746, Column 0: Field Element(0x5fc2a65866e2d6d3316f115be4798b5a25d1c90a4888b609eeb7fecde8630ab)",
+ "P->V[68480:68512]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 414746, Column 1: Field Element(0x3ecce39df4740de390de0aa085334b6f45008cc22a7f788f14b84fe88417292)",
+ "P->V[68512:68544]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 416469, Column 0: Field Element(0x1430bc73eee23670dcbc70cb8289cee1b823f95a2f098e2747111e5f691c11f)",
+ "P->V[68544:68576]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 416469, Column 1: Field Element(0x72d20468a24262387b404820c20b5432ceb49119ced5b9e00f437d34bb2e259)",
+ "P->V[68576:68608]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 420315, Column 0: Field Element(0x5a0cea3c59ac52a60f30aa5e2d5efc51243bdf7b534b58c6ba3ec8fb56c5cc4)",
+ "P->V[68608:68640]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 420315, Column 1: Field Element(0x4051148c3508a29f06bd1cf5a4a41e9f45b1de7b9151ff2819c58fb95d961e)",
+ "P->V[68640:68672]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 424138, Column 0: Field Element(0x246a1ae1a6cd4aadac6a1d77e88385063a5bbe17e40a83a948260f11ccba544)",
+ "P->V[68672:68704]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 424138, Column 1: Field Element(0x9e3e2a809e7421d9c267102b20098fe8b47276066a24a8dee4eab13e03faca)",
+ "P->V[68704:68736]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 433154, Column 0: Field Element(0x4724171020d43426aa629db9d4265a6a0fcb71e669696d146a0cae7658e6259)",
+ "P->V[68736:68768]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 433154, Column 1: Field Element(0x232ffbfa0c30f69db757aa7dc1eedebcbf1f24c0fb9542b5cdda5b078a6642b)",
+ "P->V[68768:68800]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 443663, Column 0: Field Element(0x62c31ed99e796e380442c2c390ddf4e0bdee7e17771d0050b9eeb70583465d6)",
+ "P->V[68800:68832]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 443663, Column 1: Field Element(0x7cc79c2d4349a17e2ba5fa40c7ac82f7fd12284b6cd8ca45ee48d7e00a180b1)",
+ "P->V[68832:68864]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 446875, Column 0: Field Element(0x5429ca42ad8eacd12e53dffd633d1d5e7ddd176adcbe4905118667262808925)",
+ "P->V[68864:68896]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 446875, Column 1: Field Element(0x3255cd1fcc6851447f19aeea9086168b4c9f921ed7bf002eefeec34af989150)",
+ "P->V[68896:68928]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 458224, Column 0: Field Element(0x6c52ea48a625eeb5d7e487ba0e276235cc0b13ad432aad97018d368354b59ce)",
+ "P->V[68928:68960]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 458224, Column 1: Field Element(0x597fa5e839c592bb11d7f42b016ae4ab493e74aaba98902024d6aab06500b4d)",
+ "P->V[68960:68992]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 486108, Column 0: Field Element(0x44bfb4261874d9762f852f8f2ecc6e3bc0a0da15df8fcf5f9d698a2afff1ba)",
+ "P->V[68992:69024]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 486108, Column 1: Field Element(0x584b622984e4834af88e5d7270acd5ca6fc1b9a87076cf7a808616bc43751e8)",
+ "P->V[69024:69056]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 492471, Column 0: Field Element(0x52186aab87388e5376884ffa080113da08cd3782f6edfa7a4e98a3b9b6bebfd)",
+ "P->V[69056:69088]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 492471, Column 1: Field Element(0x3faecf8d70ef7543ef51f3000a0edb188e694027889ddad82804868bb3872ed)",
+ "P->V[69088:69120]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 498960, Column 0: Field Element(0x47986b247b1d0f2acef8efd989cb57948808d774c9ebe88c50c84a653a958bb)",
+ "P->V[69120:69152]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 498960, Column 1: Field Element(0x1be2b51361358d303a86244e8aa5d0d95f85a9fab715e4141b24e1e974ce627)",
+ "P->V[69152:69184]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 520375, Column 0: Field Element(0xea2f3fdaf799ab725d2e9c22c971279571fb10c096ef1d464642401e181827)",
+ "P->V[69184:69216]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 520375, Column 1: Field Element(0x715c3f49fafb7e11337a7e43f8e2c85bc09c2a7c6d6afd1135b024fc037958f)",
+ "P->V[69216:69248]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 534275: Hash(0x5c4f09f42abf46c20b709c7ccdeacc0b915d268748e6c4266f8d9cd96a20b60)",
+ "P->V[69248:69280]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 537983: Hash(0x588db8f8ce5d60f66b38828cdd1f1665252d9c59f3d8c3180f8fadb7be84d81)",
+ "P->V[69280:69312]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 572077: Hash(0x24600f3d20e052e56fabecb8c42c74d657a71aa2d96df07ba487cbeaf4ac56f)",
+ "P->V[69312:69344]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 635351: Hash(0x6c609548693d0d6fc21d213ba361cb6a9853a1d7f3a84be79317e5583feb5bf)",
+ "P->V[69344:69376]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 635574: Hash(0x6967f0134aa636a436d37b8596022682656df44cb805609dd2cc150a4c4c3c3)",
+ "P->V[69376:69408]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 720906: Hash(0x78026c98af64d7d1e4c11f50a9150a95005bf51b8bcd531c1ae8d63b0ca8e23)",
+ "P->V[69408:69440]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 732034: Hash(0x68edd29ece0e2bdc8f50a9d15b8e6f2759aa727d8ebd6db2bfc59785c336a24)",
+ "P->V[69440:69472]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 737903: Hash(0x2dcf1dbeceae3524e38acad0b764012241ec67e9a235f85d950a6d46daf928b)",
+ "P->V[69472:69504]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 773384: Hash(0x1669037aee85c52c851c3e16816fe6e7a219a44973b423bc8dcadacafe4c14d)",
+ "P->V[69504:69536]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 807024: Hash(0x1b5e60c969c666da2deb1ea583aa649d50cd68d08f4a9ba804e66b150a7d89c)",
+ "P->V[69536:69568]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 814252: Hash(0x2c66f19841679cbfd94bf4dede6d088c1a2cc2a34713e4c898e80b98ea8481d)",
+ "P->V[69568:69600]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 815492: Hash(0x2a67bc74835ec8b41c45c39ebc12db21b42e1d12b10596ebffb2690010257a9)",
+ "P->V[69600:69632]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 817193: Hash(0x4d3b0cd78f0f74fab4eb5dab99fa72b21a8a0cbf412939ef416278a522c3e47)",
+ "P->V[69632:69664]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 819887: Hash(0x40deaf8f53b86519ad0b02c7638eb6aa619205fcc875a93a589c42fe1a54450)",
+ "P->V[69664:69696]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 828145: Hash(0x49c6cf995c437f7fea8344de095542aab432379a10afa9be422df2f8e9bbc4)",
+ "P->V[69696:69728]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 843537: Hash(0x140794804f6b13b1aee8fd914511da8cf205343209741a31fc734027495f4bd)",
+ "P->V[69728:69760]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 851296: Hash(0x7aee70cf402c2a62db620b9f8fe2a10443848b11927723c51c5a8a68debd1e5)",
+ "P->V[69760:69792]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 861311: Hash(0x65836575dfd01c39b988888778862b1cb4fdadb556a1914a1cd10071969fa56)",
+ "P->V[69792:69824]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 865757: Hash(0x24b103bb76b7dc4d7a02c5398e963663e286949cdeb79c487b9ca015a9eab0)",
+ "P->V[69824:69856]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 883261: Hash(0x667e7914c022ea14c96ce919cfd0482121320bd53e6f851f2cb98385c9d6768)",
+ "P->V[69856:69888]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 939035: Hash(0x6c3f6b62db43b02da76b4901d61f4e4faa5873319b9d1b63d04d30e48ebdd5e)",
+ "P->V[69888:69920]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 940756: Hash(0x7b3a3a7a62ae8a584702a1d5ed8dcfe019ee3320c32ee9702cc8107dc384607)",
+ "P->V[69920:69952]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 944602: Hash(0x5cac2a4de1fa0101adfe4ded13565b637c3ee0cccc65656f3f9662a913e0cf7)",
+ "P->V[69952:69984]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 948427: Hash(0x6fdd1793a86efb21610e56232448d0b7b36ab790c3d7478058f56f9f3d1d2c1)",
+ "P->V[69984:70016]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 957443: Hash(0x492ffee50e8bbf6c8a8cb0c4b4e46185f3ff78cd6575bdf44b117cd4d42f536)",
+ "P->V[70016:70048]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 967950: Hash(0xe7378e0503550df19e241708c501e60673edf89e393a912ee47d113db08e5e)",
+ "P->V[70048:70080]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 971162: Hash(0x64249a5ee4b29cc74e6177342b8721e67383590488cdf2d6d10512801d3f07f)",
+ "P->V[70080:70112]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 982513: Hash(0x2703b960bfe69fd37d4a6bcde6b3d9bf19ce984823fcc5faa7de4c5f7123720)",
+ "P->V[70112:70144]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1010397: Hash(0xf1c61b7daa73b2fcb320bcfb3cd8ab0249122907761c00074254c5cbc4d5da)",
+ "P->V[70144:70176]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1016758: Hash(0x629b412ffd4956790862a37261ad766e571a6a3fa4f3dc59bbccbea702dcb9d)",
+ "P->V[70176:70208]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1023249: Hash(0x684614f047e384739962d533bc8ffc341511aa1d36a09af289de63d7f040af0)",
+ "P->V[70208:70240]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1044662: Hash(0x1da90817a003f8f1d5e8fc3b8c68951d3a69067e49ebe2ee2ca7b05b62357f7)",
+ "P->V[70240:70272]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 267136: Hash(0x65cccfff96cdc9fdf583f8cc25044bc8b91695663341e302bcfc602f395c6fa)",
+ "P->V[70272:70304]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 268990: Hash(0x17e28d0a29ab2d46508d46cc9531335e896ba0dcddba735e0fa951864c0a29a)",
+ "P->V[70304:70336]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 286039: Hash(0xf65bc371b85168b4d9381c6f2f859ad3537b2311ff354ce16978f19cab9cb3)",
+ "P->V[70336:70368]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 317674: Hash(0x855ff27ec5aa3107e781f66b620b9fcdc3758aaee3c0e316752daf8820a275)",
+ "P->V[70368:70400]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 317786: Hash(0x7ee95ade53ca85286d0c9f6ee64dba7684cdfef56625cdb992ca42fe0b21406)",
+ "P->V[70400:70432]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 360452: Hash(0x5abb51010e80fe6bfe6dd01f7da1dcd82764055d1d9fbf319856bf7becae4b3)",
+ "P->V[70432:70464]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 366016: Hash(0x788bcfc6633a60c7206678638a0c932170cff5fc02b6b01334c18b6dfeb49e7)",
+ "P->V[70464:70496]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 368950: Hash(0x3c66faa5c4296268ca224556b96547497f3b4ad6d189829457758b329b283e3)",
+ "P->V[70496:70528]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 386693: Hash(0x70cb3138eecc313ecab3b67001ac771426bc21075eccfdd4ccacadfad7f9ce6)",
+ "P->V[70528:70560]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 403513: Hash(0xd46a6f353573f1c009161a7ee8419623f146751cf1162b4767b56023dcbee3)",
+ "P->V[70560:70592]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 407127: Hash(0x36546bd6c75708a44468f83a1965d33b2054a1dd0f032515a284161528c0fb9)",
+ "P->V[70592:70624]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 407747: Hash(0x19c106b88ce0f959accab5369cc8c3a99cdabdd7b508c07e307caaaabb37a71)",
+ "P->V[70624:70656]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 408597: Hash(0x4b504cd9028b7c70f9993b7b5318d938d1713ec825907ead8943b658e13ba54)",
+ "P->V[70656:70688]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 409942: Hash(0x5edcbe5c6d444093f0809719d25f25dc65287464d1fa3ad56325f075bbf1af1)",
+ "P->V[70688:70720]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 414073: Hash(0x14df7c2f18486f9a9b87efbc78e71b81a84e1d6dee8c68414a6a07fe1cfd2a)",
+ "P->V[70720:70752]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 421769: Hash(0x19363e565ce1a83b8897a88b464de13cef8cd91da2b69ab4e01d59731d1038b)",
+ "P->V[70752:70784]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 425649: Hash(0x3e987b8d5bc0e47295fb349ee58cf0209083700493af9fd41799f36404a8901)",
+ "P->V[70784:70816]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 430654: Hash(0x46af32116653f9ff1b01e34a1a27dac6b070207353c71a4c8502a946ced5c88)",
+ "P->V[70816:70848]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 432879: Hash(0x38e0d3c73c118d776af330c3303aa39c27af84a9e8f27d4992610a313e84128)",
+ "P->V[70848:70880]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 441631: Hash(0x33f8f720da5512e6b5950c8db84953fbde4b5b0141ff8b753acb98ef7d1096b)",
+ "P->V[70880:70912]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 469516: Hash(0x1ff02e1e80d1b6339489fd9170e330f06d76e2abd176d104a82480af55d209b)",
+ "P->V[70912:70944]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 470379: Hash(0x326f21d407349d0ba6dcdf16fc069f2d2c9b908500c3791661ca429756d49b2)",
+ "P->V[70944:70976]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 472300: Hash(0x516eaaa149e3bbc1165ed596984a99d7bbec90800c0730941da1e6199e2a608)",
+ "P->V[70976:71008]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 474212: Hash(0x35a12c6a9bfd036a2d02ebcffc12071329c02342ebf172af34941c3f076fb18)",
+ "P->V[71008:71040]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 478720: Hash(0x69801321a8298ebe106dd51406418871af477fd6d60e8759bb6023ad7ac3ab7)",
+ "P->V[71040:71072]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 483974: Hash(0x6941f5e6027766cfd046bcc086e39581d8d9502c207f5b3f38131469a813739)",
+ "P->V[71072:71104]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 485580: Hash(0x4b59f6d20936aa973a555a939257f1df0e6f6f32bef16890bbd4c9f36325696)",
+ "P->V[71104:71136]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 491257: Hash(0x3a276fc24c158ccfb4c826d1407d7b32706c3bc84f4693967dfc33bb35fdd60)",
+ "P->V[71136:71168]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 505199: Hash(0xfac7dc214bc9f51db2ecd7ce46f360b28ac7dd2c38dead2fc21fc6127cf617)",
+ "P->V[71168:71200]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 508378: Hash(0x251644b6960823ac499d709991e25c556449d37befa7dca749a20c8fb3fc74b)",
+ "P->V[71200:71232]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 511625: Hash(0x3353637d8838eea12601c5d37d883b4f9e09e4fd76d591dc918390996932ff9)",
+ "P->V[71232:71264]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 522330: Hash(0x54dc0a503611ee728ff42405a7ba9f05dd20fde26ebfecd900cb584a94a7433)",
+ "P->V[71264:71296]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 133569: Hash(0x29742f3d82cdd5420bb0d1b5c8ce6d9fb46a18e0dbb7fcb591e06c5fe1efecc)",
+ "P->V[71296:71328]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 134494: Hash(0x668113a556dce9fb4357cd617451c45dadf63654b91c76e6882a019984fc096)",
+ "P->V[71328:71360]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 143018: Hash(0x3feebc8d781254e5c0f56278c2038195d6fa270214cd230d07cb2c910a1385c)",
+ "P->V[71360:71392]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 158836: Hash(0x7eeaff17b765013008624bf3605335862f402fd1c98b40228157554ccae79ec)",
+ "P->V[71392:71424]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 158892: Hash(0x46c68dd646458d9044e699eb4f4ae50de0c77424e87805b2f614a04fbd144e0)",
+ "P->V[71424:71456]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 180227: Hash(0x153a5aa3362037962e692241d4ac7e5b3d567ee8f4346e13eb6a000ba1efade)",
+ "P->V[71456:71488]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 183009: Hash(0x5c59a33ff1396daa40a64e0292e249ee31db4973a64605593f8874daf8017d4)",
+ "P->V[71488:71520]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 184474: Hash(0x74780358afad480a694538c7dfb60ae948f65815660cf5e0443cecaed9a915b)",
+ "P->V[71520:71552]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 193347: Hash(0x6f13ca4916556482a1d3115acff986305e292f2b932c8c5f09aa7732d6e6c23)",
+ "P->V[71552:71584]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 201757: Hash(0x90fcea9369886304a89fbdcb4727dfc2adcd4a29606b2a81196a95dbed6b97)",
+ "P->V[71584:71616]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 203562: Hash(0x73867129a37d09e940cdcbcfc03a4fa8de90a0cb85f0611f1e92f8a564b1205)",
+ "P->V[71616:71648]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 203872: Hash(0x5edaf9b17e837faf85e84d1a38cfd30d2a0d9cc6a80a7844b7a0181da3e1085)",
+ "P->V[71648:71680]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 204299: Hash(0x5d09ef8393ed9f7d6237ebf2a08f5afa9569bf036e8a3459aee38f1de05f85d)",
+ "P->V[71680:71712]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 204970: Hash(0x114e123a4ee18bf7a64d2597d44bfdccc6be553bab447168986e0d72eb8635e)",
+ "P->V[71712:71744]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 207037: Hash(0x3f330a06258bc7eae48828b3489fd32aa5f0a6a0621c582750994c7d0057c8a)",
+ "P->V[71744:71776]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 210885: Hash(0x8c0a66333c77bf0dae3b2b7f6bf15ae4d3b2053fdb0973a74b5a1052b3ee80)",
+ "P->V[71776:71808]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 212825: Hash(0x1867d71e0ca4de13a386d7a4e8269789abe8ae8c3540a464b0f9c3b88a3eee1)",
+ "P->V[71808:71840]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 215326: Hash(0x29709ab230de44c618e3354245aafbc122bf7dc5cb4d91052befee91682c700)",
+ "P->V[71840:71872]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 216438: Hash(0xfd9cf154f8605da6522505b03013f28d9ba3ec325f9bc45711f2a5dbdd9fac)",
+ "P->V[71872:71904]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 220814: Hash(0x1176bde234cc80085d05876ee683bd36f8b60459ff4a3baf4b566ba45fde6a0)",
+ "P->V[71904:71936]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 234759: Hash(0x49fe4cc812b660dc32f511e1a4d532be24d6644544b88fec48d5352f3a615bc)",
+ "P->V[71936:71968]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 235188: Hash(0x58149a0ad7527603ae8e3ebc61e7856c6b1ab8c7755761f58ed0edf3fd881af)",
+ "P->V[71968:72000]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 236151: Hash(0x101c3e91e0b9ec7f021681aa1dcca9f6e6f1a53125f42d7bf45197946a3eb00)",
+ "P->V[72000:72032]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 237107: Hash(0x1ad4d181e3fb085f4d3bc307834827197f303f89c46137046608622219f3f63)",
+ "P->V[72032:72064]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 239361: Hash(0x6d065dce881b5e749c4e19b542a2659ab32828625ec1d17e0f774102e38df92)",
+ "P->V[72064:72096]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 241986: Hash(0x7035ce9cb37426e8e48ceb1aef19d4b8e419956c6a7208d513aa2a47ac381e2)",
+ "P->V[72096:72128]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 242791: Hash(0x5391897cb27fc2d81ce2423094d9f45ea43df7af1dc0a707448aa398ebdeecc)",
+ "P->V[72128:72160]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 245629: Hash(0x321284e80afc00a6d864bdfe4bf1e6f16e745deece6a83c00893ee84042be1c)",
+ "P->V[72160:72192]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 252598: Hash(0x5dcc7474bd0179bce041b223dc98ddab4f044d9065c524dbfeba3c74afd3761)",
+ "P->V[72192:72224]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 254188: Hash(0x33c43063f1c5f0ef318b8832719eafad356a7f433c0855472e47cabde462142)",
+ "P->V[72224:72256]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 255813: Hash(0x76125d2dbab8e52439900f6a310c5cf68e05193eaf62083b569ca7ad1823ec0)",
+ "P->V[72256:72288]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 261164: Hash(0x37fa86ffc4af2c4f021dd26acfb1b12de40e215621485ffb7321a9112c01e75)",
+ "P->V[72288:72320]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 66785: Hash(0x7f7c110f4f0c019c5204a31944ea527b91d51975fb9573d3fb6be14f6304655)",
+ "P->V[72320:72352]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 67246: Hash(0x5fd308fc26fd8684aa33e903ec16b19a4d83cccfecd570a855bd041d12c4e56)",
+ "P->V[72352:72384]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 71508: Hash(0x7d745d46d763bda56823b9a3e51505a3a9c608bf3a4dd64570c2586107563d8)",
+ "P->V[72384:72416]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 79419: Hash(0x60b243c3dfd8440ef56119d4fc40b8fd7556ecdd295c5af10253250adf5059c)",
+ "P->V[72416:72448]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 79447: Hash(0x454d290acf96912ba3e1b00ebe3fd096383f8af0973127a7fd6bc4c72ddc3d3)",
+ "P->V[72448:72480]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 90112: Hash(0x97dd3e10d8d0d6ca2eb60664f3ebf5b84ff33333edfd991754a22b9a113f5b)",
+ "P->V[72480:72512]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 91505: Hash(0x387ef97b3829df2db8f95985f71e79b9942a42351a0b3a8e89ad886e2ae45dc)",
+ "P->V[72512:72544]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 92236: Hash(0x1f19b1b1288f1ac49a0d4244cda18988cd59ea7e851c808d1583a0bcfb96715)",
+ "P->V[72544:72576]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 96672: Hash(0x64e1b77ee7305179934a9089b0e43cf682b3800d91e44dd14b92003e0c1a7de)",
+ "P->V[72576:72608]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 100879: Hash(0x43a908b1b6842ba50534c51429ec560c153ecb93c387e469cb53bc99db6d997)",
+ "P->V[72608:72640]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 101780: Hash(0x1c9e964a61a38e881d3181cc21f24feb824d03808a4913c6be1a8e0cf4001f4)",
+ "P->V[72640:72672]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 101937: Hash(0xf0e5e1ae935c33ddbb27c32cf1e0673a763e35ae2da47210da59a1b4c7f768)",
+ "P->V[72672:72704]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 102148: Hash(0x2642e0335c333593980bbcafe38a579485c809c68c7aae9082bddabec665c7f)",
+ "P->V[72704:72736]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 102484: Hash(0x2591c0a13f0905c011ec877f5539928c6322c2d0d5a81284a1e993f966fe3ea)",
+ "P->V[72736:72768]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 103519: Hash(0x69437d3988be7f4fa7c9c6293644c5bc89f63d5e8c2b0a29fa2ec6b1cfc8a60)",
+ "P->V[72768:72800]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 105443: Hash(0x2641946dee7ef240af51b00a4a1c005c7b51dd1bd02752fb64ce99cbc0a509)",
+ "P->V[72800:72832]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 106413: Hash(0x4ac1f2523736738bc5e22247d8184eb12ca2272bfc92e45a7748936a6fc997)",
+ "P->V[72832:72864]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 107662: Hash(0x74c4dc7f730706eac0a98fb829a1bf87a1b552a6db23a5a90c55d7c56d074a)",
+ "P->V[72864:72896]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 108218: Hash(0xd006c20b379b0040947e1731fcf29d5f3722e4098ed9f34b4563d66168c225)",
+ "P->V[72896:72928]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 110406: Hash(0x2765cedd0e14d746c7cd22b2be7990c7a6b4ca912dbc74d35936553776030d5)",
+ "P->V[72928:72960]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 117378: Hash(0x197131aaad8b8428fea9c99479b39f9f665e5121c851a270d453bce5dd760e1)",
+ "P->V[72960:72992]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 117595: Hash(0x5e27945e0d4044c243cd446872c3620000321c018aa9f277b8d79dd95ced3e1)",
+ "P->V[72992:73024]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 118074: Hash(0x5fc23759816730b7e45f06dcac010d0db72c1c87a7dbbc02a94aa340dd6dc89)",
+ "P->V[73024:73056]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 118552: Hash(0x17b943eafb8d199e6a092e60a320019053a05e1b2ca4e6f7ece237e55ce5a77)",
+ "P->V[73056:73088]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 119681: Hash(0x70f3039ae4dcbbcc68e97f54072ea3dc907feb83d7004e030e15d01b4cc22e1)",
+ "P->V[73088:73120]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 120992: Hash(0x48eae52ad928ea3c2eb32cc228d545602b9412f34df9cbd1e2548ad63b2e75)",
+ "P->V[73120:73152]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 121394: Hash(0x7599686759432df4e5faffa662bfe837fcba7d1976cc8a62bf33ded0db46329)",
+ "P->V[73152:73184]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 122815: Hash(0x3953eb43c1b2786235a0544f08b8150143c879c936eaa1e2aaf0bc9385785da)",
+ "P->V[73184:73216]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 126298: Hash(0x3e9c9e8f4dce9a20188fcc32d5870b1c63a28dc4d78e36b3d037defdfe73fb4)",
+ "P->V[73216:73248]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 127095: Hash(0x40ee3805086a44afb863f2d057ae13ce4367274f3da9acbcc4d044dc1d291a6)",
+ "P->V[73248:73280]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 127907: Hash(0x71185948383992f76d28da94801e98f8087537b3e7314ce7a12cf06f5ca15c1)",
+ "P->V[73280:73312]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 130583: Hash(0x700f32cfa5f6ba552c49d7bc67acd2360a9e723cb2fe25a76303815c7d2b431)",
+ "P->V[73312:73344]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 33393: Hash(0x36d5ba30419f6c4e262749b05e0a719edc4ba4716916e2ed983e3a94644dc2d)",
+ "P->V[73344:73376]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 33622: Hash(0x36c21d16880b12e3b117ddf0455bf97a57906eecf317dbc90e104c3687132ac)",
+ "P->V[73376:73408]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 35755: Hash(0x3349304367845c680d0a6a6bbd821c5701711c8753f29bc705929e87875735d)",
+ "P->V[73408:73440]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 39708: Hash(0x2fccdd3f90d659809461cc02c1b9e3b3144d3978b06a8208dca692e5272a468)",
+ "P->V[73440:73472]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 39722: Hash(0x8f4d1574e599ec937040c172695e7c5a798873adae14bc9d4a142eefda45b2)",
+ "P->V[73472:73504]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 45057: Hash(0x5b4b86581a4cb32d1e0e0d39effe78edf22e64229677df915b87a5fc38e61bf)",
+ "P->V[73504:73536]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 45753: Hash(0x40eca774cbce94db42c6e0b9a9320b6663fb033d46ebe080a60478fc965f938)",
+ "P->V[73536:73568]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 46119: Hash(0x675e64db3379512c46ccc9aacea0ca985229c8c10637f784dc25916974747ea)",
+ "P->V[73568:73600]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 48337: Hash(0x1d2f8fa131f890c881f4dca71577eff75f88ec0e59498879d9d5991f2794120)",
+ "P->V[73600:73632]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 50438: Hash(0x7a4ce8c76e14f079bbc674ccec3c28d4f76d2c6e2a27a7d04ce6444763c75d6)",
+ "P->V[73632:73664]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 50891: Hash(0x604752428eec7a2c3821ce9e008032a6e7175ac13f96df9c92a638c803b6e4b)",
+ "P->V[73664:73696]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 50969: Hash(0x20fe7834ff97d8cb4f287653d210d232f1eac8fb2b59d80be48bc144b7bd952)",
+ "P->V[73696:73728]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 51075: Hash(0x34b89d2b369ee6d567d07ef2b89f3ae7a28884a5c6b33ec8f5730f6bcc1eaaa)",
+ "P->V[73728:73760]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 51243: Hash(0x5a6555c04bd4e391368003d8a8977b5b1d10a9c88577c0b3aa605c6177d12f4)",
+ "P->V[73760:73792]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 51758: Hash(0x2d3de1b96758d05f42c34c8d07b0634544f17a091ec979fb2b57dc8357db549)",
+ "P->V[73792:73824]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 52720: Hash(0xa200d5898883da063984905f82656510ba0454dab3c20526e34b074e87b7fe)",
+ "P->V[73824:73856]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 53207: Hash(0x622655db5bbecd20472edad2d9ca31f231de53106ff36e3a794cf0def5d1ed)",
+ "P->V[73856:73888]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 53830: Hash(0x4ecb1e20f9b6c844a7bfb963e7b44879139471f7ca05d58fe65af3b6bee9c00)",
+ "P->V[73888:73920]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 54108: Hash(0x114f185bcb5b4cd58bc53c79e0ecd67dc7c0a6500db0eafe9951c095c28ee01)",
+ "P->V[73920:73952]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 55202: Hash(0x311ba9eacb84ad1cab40081b6c4ff4d28b19ae80c90d9ac3fa27841a06c6ba3)",
+ "P->V[73952:73984]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 58688: Hash(0x50fe632f6b1aa295ce3833c388e963dcc6bd2ea90533b429d3afd1f07e5655d)",
+ "P->V[73984:74016]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 58796: Hash(0x532c2a113c81444041e3dcd205df7457f5d5723a4dcd8d900230fa0e63f2e75)",
+ "P->V[74016:74048]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 59036: Hash(0x35e12b2d0461db5ec2917b3c09ad5fdfe15e2b2f2017af4d9d17e68bc928af0)",
+ "P->V[74048:74080]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 59277: Hash(0x536c4d006107c3e4e2b30875805e2fc29cfe9fd3faaef62e5c081b89d7fff3c)",
+ "P->V[74080:74112]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 59841: Hash(0x7a332b8494fb0a8415b4127a05d960d8c4becd1167fcd2b415e4e3222bc492)",
+ "P->V[74112:74144]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 60497: Hash(0x6e17b874cc07d1176026db60040aa1faaad67e7a4ecd38fbd94cd8ac8b58b7b)",
+ "P->V[74144:74176]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 60696: Hash(0x4080f77306f0c9ccdce2f1a4ee25284101bc0177e8b7b9780575448399d368e)",
+ "P->V[74176:74208]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 61406: Hash(0x1bdc8ec3d87295c8edec0e4f9e67aeab69f69312dbca6431e43b7553c0adf40)",
+ "P->V[74208:74240]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 63148: Hash(0x6682f5b6e5719923b99d55a1992cfd44813eceba114d1da77f11d1428094a5e)",
+ "P->V[74240:74272]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 63546: Hash(0x5b24cdbe6e8e5d353e3b2c5d8cead21401784cc1f5768047d0e691cca616635)",
+ "P->V[74272:74304]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 63952: Hash(0xdd91e5090be268ac06816665f51c06b993260d7e623d7ad497a48b9cfcb385)",
+ "P->V[74304:74336]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 65290: Hash(0x5b94d6743954efe3331c3e5bde85660224707480d25fe9172f138641f08e43f)",
+ "P->V[74336:74368]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 16697: Hash(0x39d75507d028a5724d3db26eb3815b0daa0ad87887aa11139ddbbb5bfb9e582)",
+ "P->V[74368:74400]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 16810: Hash(0x2df707312ece457af10cfa9171f121987db9306101984c4138db6ab328c1691)",
+ "P->V[74400:74432]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 17876: Hash(0x1bc91cca677eb8624d233ffec534c417ca5fd273114ebf91cb553a5a4586512)",
+ "P->V[74432:74464]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 19855: Hash(0x677d387664979a48b56fc5a3c86f88ff5e29fa0c1bddf2f26cc6b84676bc69f)",
+ "P->V[74464:74496]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 19860: Hash(0x270d932daac8eecce9954952693ba345d769363ab24d96ce2920773364ced52)",
+ "P->V[74496:74528]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 22529: Hash(0x6a3a712f32ae5d907c3ad650e6ec7a8df3e8024b1a9326ae60d2f0dc94f05b6)",
+ "P->V[74528:74560]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 22877: Hash(0x70823830bdcbec081252cc8e91cc6e04bced0c3c7dc2352c3f5c1c76a780bd5)",
+ "P->V[74560:74592]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 23058: Hash(0x202972245e29d06a32b16f542d2e14d9164e7d637542bec4e6e933a8f477463)",
+ "P->V[74592:74624]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 24169: Hash(0x2f387c0327ceab67b99f3567afbfd42f41d6da0e35647cd89353af9f46ac648)",
+ "P->V[74624:74656]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 25218: Hash(0x569a371b2e1ad4bc98322bb46e471581abbc6b497bc7a766660cb6c0a73d0dc)",
+ "P->V[74656:74688]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 25444: Hash(0x3f59ee07adc9d2482f86c58627caea27b2c40b1d7864d54b209eee465654090)",
+ "P->V[74688:74720]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 25485: Hash(0x508d08af9a7df610027b2a13abfe894fd2a1e660daac2d7e700b0a2e6c5334c)",
+ "P->V[74720:74752]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 25536: Hash(0x6142ba1019852c6338dfe0c5fb941c34ef8487952a38713fdb8c9f5d4096300)",
+ "P->V[74752:74784]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 25620: Hash(0x52f6ecaf666e5825dfd6cb667a6204705b15d0b3ef15b8d0c9eaae16366f0d5)",
+ "P->V[74784:74816]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 25878: Hash(0xfa4f010398d4bdcae90ba3bb8281874688c3f879c363a62563723cdae7d46f)",
+ "P->V[74816:74848]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 26361: Hash(0x2c3671b8a3441974e75057027795bfd86d167dfb6ad6d97bca64f3d3435bdc8)",
+ "P->V[74848:74880]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 26602: Hash(0x354f28e6f0c37e3714e2bd01b30b7fd3921243fb84055c5459ab6162fa2758)",
+ "P->V[74880:74912]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 26914: Hash(0x620b1a46d4be6d29dd19df746ade3ad3dd51e091baccd52ebda29e2ad375162)",
+ "P->V[74912:74944]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 27055: Hash(0x401b1ebffc3f55ba1b911ddddb7eaf2c4df8887943bc4c2464598ea2c0cdcb0)",
+ "P->V[74944:74976]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 27600: Hash(0x1d5fa43b6247a3c3a096a8d6949ca78c953fc655cff32b3b3e62423d6432d39)",
+ "P->V[74976:75008]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 29345: Hash(0x33172f1709221df105dfa4fcd5cd4342fe397e6341efbef205b7a08290b3ffd)",
+ "P->V[75008:75040]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 29399: Hash(0x46fbe0f9ee9b9e3abcde688a23ba2663ad7ed3a97e12f50489bf856c970901d)",
+ "P->V[75040:75072]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 29519: Hash(0x44cf1daedbdfbae73b5b3952bf37b735fe38d26f00f4c8a8edaa32bc450e45a)",
+ "P->V[75072:75104]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 29639: Hash(0xb8662e2e2bc955fd425215d4c8e38d6e0d89a94f9a7e159405a3ee58677397)",
+ "P->V[75104:75136]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 29921: Hash(0x3a2021c6b712e6ff76f59e4e553091ee2bbe181b85cf3147bdf5333dc1f6e8b)",
+ "P->V[75136:75168]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 30249: Hash(0x67750f3c13d09be3578932c4fb4798ff4418d285d5de31ecc1e38d7cf298dbd)",
+ "P->V[75168:75200]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 30349: Hash(0x47b487be7b44a0526d87fd2714ebd4b959835fac8e2dfacc7f9f4f796d8f996)",
+ "P->V[75200:75232]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 30702: Hash(0x783d64f5b1ceb65710008b126ad9ac2ab9f8940892a9f6238fbf226b187fddf)",
+ "P->V[75232:75264]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 31575: Hash(0x27e5afe6e23fe5401d1708b0a95684b3f6a84b12b629a2c4380a47659423508)",
+ "P->V[75264:75296]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 31772: Hash(0x72484922e8cd5ca49020aa00bbcc2c452c244843e2578c6489941b0dba9f6f3)",
+ "P->V[75296:75328]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 31977: Hash(0x4c7f8c52ac091a3baf76b76e92096a8d0b057fbe20c6136297631ce140942ab)",
+ "P->V[75328:75360]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 32644: Hash(0x35f452bc4f6526f277a6c80cdaefeb50ea8a8c3226e57b762009787258c65a6)",
+ "P->V[75360:75392]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 8349: Hash(0x297957a5d4898976f9bf7fa3a0c2805ce86427b344013ed9a1c7f708933def6)",
+ "P->V[75392:75424]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 8404: Hash(0x3ff92941dfb8971cda377e2059c4cd4876ec9c9b0d3f0aba0be7e8a8cb5c047)",
+ "P->V[75424:75456]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 8939: Hash(0x3562dff87a33571f0fcb382733e6d87fd408efaf614f1706c32f0b35e59fcc8)",
+ "P->V[75456:75488]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 9926: Hash(0x4012c5e0b9c6f43155fc299e3afcde2b2a8191263a2f89ee88b7812be049cb3)",
+ "P->V[75488:75520]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 9931: Hash(0x1b23f36cd470f9387b6bb1138787687849eccda912f1aba9e1db4d3a2a83d3d)",
+ "P->V[75520:75552]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 11265: Hash(0x6da589cefd9b7173992a726c568d0affd9946cd10244bda15ff1b47ce5a5ca4)",
+ "P->V[75552:75584]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 11439: Hash(0x12fdddfa26d369aaea2c050c456e770540e814a6d3f836f2d3779d0130dba0e)",
+ "P->V[75584:75616]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 11528: Hash(0x7f36d9ca04fe4fbaed900102854507cc89f88dafdf1e7648debc69310149a87)",
+ "P->V[75616:75648]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 12085: Hash(0x16fa1241d8bb4238dff6cb87d0a083e16997bcdf9fbcb7909b4e43b214e1b5c)",
+ "P->V[75648:75680]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 12608: Hash(0x45f370b4071e2b8e9121c560133c29a520be3e63cdf2ca5f97130d7c883f48e)",
+ "P->V[75680:75712]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 12723: Hash(0x3467755c1d9ae66587ff60db7bb998cfc5ba8c35e40a8ce86303504c8edec17)",
+ "P->V[75712:75744]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 12743: Hash(0x23a4f3e4b571f886e89882261e6cf702b613fb483afe15e0fe0120f15d6f330)",
+ "P->V[75744:75776]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 12769: Hash(0x1a7da3ffc11e5eb599d8120af4aa4d984670b44f7f0179b23635db51c6f96f8)",
+ "P->V[75776:75808]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 12811: Hash(0x424c07806c24f78c5ff3a044cffee50a493908b77527ace106320576a5b5fb1)",
+ "P->V[75808:75840]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 12938: Hash(0x42628628e217a0cc280cd91813331f9b76451fb5910577bf8e7825a638eb02e)",
+ "P->V[75840:75872]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 13181: Hash(0x48046b2c06d202a823604a6fe7d238d1fe53cb2ed7a2ee706d74306bdadba27)",
+ "P->V[75872:75904]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 13300: Hash(0x55329772d55b13cdfb0d9f91d8a7ad8b4106de8b0418cf3d85b13775ad304a2)",
+ "P->V[75904:75936]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 13456: Hash(0x59eebbb55e57e1f4ac524edf03a1a5762fc900bbd4aa0e5d60052cc52870a58)",
+ "P->V[75936:75968]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 13526: Hash(0x67f4be973e2d76ae2d8d3abd745aeceb46c4e44182e5fe30eebf63422157309)",
+ "P->V[75968:76000]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 13801: Hash(0x14d0657115f8349e7f794171c9b5b931e9e310e14ebbcb5f40156deb0e224b0)",
+ "P->V[76000:76032]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 14673: Hash(0x27aa2bc133be4bc3497ea3a648a2ae366c06e725344a5eccc6cefe9f91b5c37)",
+ "P->V[76032:76064]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 14698: Hash(0x68f1bd9d22608dab1e2918295941e7edf076b68b6210321843747cca8743071)",
+ "P->V[76064:76096]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 14758: Hash(0x1ac1d71fc2708777d4cdf36ecc7f75a3a7ae173f7980d5f3e02e54bf31489bf)",
+ "P->V[76096:76128]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 14818: Hash(0x26b3af57a5741cd67117bc1be1f6c5d009991db5fcaaa52950197ac9af18526)",
+ "P->V[76128:76160]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 14961: Hash(0x7c971f53d7e4a3bad24695e309af1ad98906f3b71b16300d700d9f42dcd5661)",
+ "P->V[76160:76192]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 15125: Hash(0x4feb271257f77486bd6c54ea9b36ec72d4fb078bfb970c37e39c9c0b764b6f8)",
+ "P->V[76192:76224]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 15175: Hash(0x4d9689837a4f51517ca80417122bf047d6dc415f88ed69fd87a5d0ccfd636eb)",
+ "P->V[76224:76256]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 15350: Hash(0x27537795eb58ab5049dde19ebb48c9e52a966de1bd3a98b086b95a46d5f7459)",
+ "P->V[76256:76288]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 15786: Hash(0x6b133b5f290becdb11a386d170ec49babb6cab40eaf07c92b4ccf1b83fcf1a0)",
+ "P->V[76288:76320]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 15887: Hash(0x18ea21a456087257027ba1625456bec3c35739b3584fca651f3c848579fd57a)",
+ "P->V[76320:76352]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 15989: Hash(0x15a40278225112d15728ed9444cdbaab9fce8c9d98eb584ce91f6626d5c8a85)",
+ "P->V[76352:76384]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 16323: Hash(0x5c49573301a3a48460af47a39006bc11327910215f7c09d2675370368c2907f)",
+ "P->V[76384:76416]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 4175: Hash(0x452710fd2120df9dabe5d7b26263d68fc0dc4a1062b9f3be8da9f969f31364b)",
+ "P->V[76416:76448]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 4203: Hash(0xf57cca483d8c20825a58740a1287a4afcb9bd499531545987bad346e2f96e0)",
+ "P->V[76448:76480]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 4468: Hash(0x8d3cf44ab6c91364ce75d71c377f558423795238f6d66cc91049aa5c1a54b4)",
+ "P->V[76480:76512]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 4962: Hash(0x10f856db76068efd192841a630b87ef4dceddf6c76b031ad759bb97955543a7)",
+ "P->V[76512:76544]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 4964: Hash(0x5ebca5bc86e86ae345a839a76003169ac437484a97baacdb14616af98100f7d)",
+ "P->V[76544:76576]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 5633: Hash(0x4454a7696187d3db2b55feda0f18fdbb9cc7a6f76a01b5025c20876eaea00b4)",
+ "P->V[76576:76608]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 5718: Hash(0x1a55e64173a424292ddf3b2a35e7c6b418b66aa9025da0297481619d026b701)",
+ "P->V[76608:76640]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 5765: Hash(0x78c1972c7c115c90c1c32fb0b4705c5f06c5f2e86efa6e678a08ad67e35c361)",
+ "P->V[76640:76672]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 6043: Hash(0x1dfc1ab1be31719b7c6b71b6164428fa568ae0379b97e6f9def08066ea57148)",
+ "P->V[76672:76704]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 6305: Hash(0x60c123d91e38a9e943af55cf257b17fa0e56b14f24d71bb98e9dfd9abc6071f)",
+ "P->V[76704:76736]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 6360: Hash(0x3399250ef4a5eff96e2495f29d97afe35112a91db0835cdb71c4cc95d97bcda)",
+ "P->V[76736:76768]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 6370: Hash(0x7b5d3faa2f7e5548397622e4c1ecc3770277969f1e4ea0244cafacac8ec1969)",
+ "P->V[76768:76800]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 6385: Hash(0x615f76899199c41782e9e3a63d511ef75f9782a292b0107979b190ffd7f3600)",
+ "P->V[76800:76832]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 6404: Hash(0x16ff765aee5e3e2ba92cb8693e300329a7b0fa67534f5f364182b9027ae3509)",
+ "P->V[76832:76864]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 6468: Hash(0x348dc554cc7d4f94543d2824ea18d153d4daaa0dfe509c291067f71b87e4e3c)",
+ "P->V[76864:76896]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 6591: Hash(0x6e86097cac2631bbe251e418f6f2d3125de343011995e57cbbf5a441b7123aa)",
+ "P->V[76896:76928]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 6651: Hash(0x3355b885782ede68d8a5ea10972b45613a4a6f08f9e9ea0b6a2c581dc020573)",
+ "P->V[76928:76960]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 6729: Hash(0x17fb1b924e87d3515f86aa842dcd6f7964e52a585dcab55bbfa0e244490eb7b)",
+ "P->V[76960:76992]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 6762: Hash(0x35e941a30e0f3ef24b2c99b4c7db43922b4ff5dc6ebddf73d1ce4c29819d046)",
+ "P->V[76992:77024]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 6901: Hash(0x12f3fb8db7bac98a4dff798a0664ac65a8f6c20e1ece4bcde43be9078fdb52)",
+ "P->V[77024:77056]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 7337: Hash(0x6aeaedf985571085e28d94421090b049358249136b38fb002cadb28b9cd815f)",
+ "P->V[77056:77088]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 7348: Hash(0x25df8c2b7d3d6fc467d5f9d9ffc797eb00a99ca48e2177cc324453817d8781)",
+ "P->V[77088:77120]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 7378: Hash(0x2526480a5ec7634ff1edfe628b14dee639d3435888a586a67a8e7499e234725)",
+ "P->V[77120:77152]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 7408: Hash(0x621e10ef8f838ddb90233183a81e2b194043f416c74a9cc6da678d4745baecd)",
+ "P->V[77152:77184]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 7481: Hash(0x7ff78fc454a976def7030d28fa37f9d18af99aef8acd16f7606cdac2cfd4368)",
+ "P->V[77184:77216]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 7563: Hash(0x24d217069ac569d313cdc50cf7e7993f2d9b021a3035266a410906b3db3849c)",
+ "P->V[77216:77248]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 7586: Hash(0x78098b9501d881ed5761e01c4c5d54beb54e681215e6f3ed6c95a5d526e5c73)",
+ "P->V[77248:77280]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 7674: Hash(0x723d64fd6e54683826aba330a9471e5332d97cdb36a9033b02b50b9377be3e9)",
+ "P->V[77280:77312]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 7892: Hash(0xb217f834615f58ce5a115d674bde932a56e70aa19c31de378bfe9e7607bcbe)",
+ "P->V[77312:77344]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 7942: Hash(0x50e114a86b7c411856accd2b71dd7a7b46dcb6dfda09758c6fb06d098e71097)",
+ "P->V[77344:77376]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 7995: Hash(0x321e90b8ede0195ed63c67901ccc33636e214774474a71d6655aab67af442f6)",
+ "P->V[77376:77408]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 8160: Hash(0x1bed977a0caf78e1b74b58358a07ee5455d7b73cc74ebebf2fa17b9cd1f6b27)",
+ "P->V[77408:77440]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 2086: Hash(0x49277941484811e4ed67aae263048f1431202f17b65a96919d138b80914098f)",
+ "P->V[77440:77472]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 2100: Hash(0x34e0685b4122374d5973b28f2fd28cc3f8b8f803aeb2401ac64ac8a447afc63)",
+ "P->V[77472:77504]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 2235: Hash(0x7adc013fcf8346cf795620b544a186ccac6bbced7e230818093370c98014583)",
+ "P->V[77504:77536]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 2480: Hash(0x3e07943a891df62f81a07e19b6d68403195025bdbd7f3a0dab2f858c60fa07d)",
+ "P->V[77536:77568]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 2483: Hash(0x582350974cf5e7b6615185fb5a5fbbcac6edf92d113f1165e420f17fca3139a)",
+ "P->V[77568:77600]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 2817: Hash(0x6f4a314f18556a9f210e282a0a027e81458ec2fcf630108ef0a43a1d800051d)",
+ "P->V[77600:77632]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 2858: Hash(0x70f8c17aa708cce0b42b34e17415cb624123a28d3c9a9db7de84773ce0c8df)",
+ "P->V[77632:77664]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 2883: Hash(0x573c907903b89265de5283310065a392905c732efa4b5ebf73fef895d7be1ed)",
+ "P->V[77664:77696]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 3020: Hash(0x10130cdc8a4010396a4bba33860bf4089b1ddfa4fe90da14cc5c1bff06fe5d0)",
+ "P->V[77696:77728]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 3153: Hash(0x412307dd4de5e058967f9c5df568fcd4ccd70c6d6e090a650df3b00f26dd8ee)",
+ "P->V[77728:77760]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 3181: Hash(0x6d8838c988007be4d2874b78f7d9ca4880dc6d936f188c9d944b48aa08a56bf)",
+ "P->V[77760:77792]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 3184: Hash(0x256d8b1e78b1dd9b338f290aa62eeac95c7f59374fb2f8535f3f9e21f82d04)",
+ "P->V[77792:77824]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 3193: Hash(0x3e285b3472d0dc4a3f340b547f6c38f8f6fe4b5a6f0584dddee9f78f21fa99e)",
+ "P->V[77824:77856]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 3203: Hash(0x2b5bfaf44b7cb436fb7e2ddb85509dcb393914b9131a155cb387eaac8b7670a)",
+ "P->V[77856:77888]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 3235: Hash(0xfd85540167f8fe76cf5ced38f609b19c6e36241d07490d2800296928376653)",
+ "P->V[77888:77920]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 3294: Hash(0x7bca67a593f31a5f5aeed28eb8ee96b605d721820b0ab23e54d5baaa1631386)",
+ "P->V[77920:77952]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 3324: Hash(0x288c334c0db314cb5de395e3703b2ad33d4f09c3523915563464b7be9c4a572)",
+ "P->V[77952:77984]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 3365: Hash(0x70cdb5184f2774854ec31e5f92c6dcfebc79d3cecb70069c524df856a3c9ea4)",
+ "P->V[77984:78016]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 3380: Hash(0x6824dd98adf6cc3ab2a384cabfdfc35213f4f05080da8fc4d50319959e89085)",
+ "P->V[78016:78048]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 3451: Hash(0x31cfb4362249f9fa881a8083d9f04455c997e0187fb78ef2acbb8e0e60a7365)",
+ "P->V[78048:78080]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 3669: Hash(0x26dd28a01514924cea5dafdbc689006d14219bf5443dba4ecb9cf4104d78d20)",
+ "P->V[78080:78112]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 3675: Hash(0x2acb2e77502b882c4194041adffbd12420df68a0fa37773adc7ca83f3c5da7e)",
+ "P->V[78112:78144]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 3688: Hash(0x3f68e38e3ef5e4371bccca916684c270c033734292ac63eac013fbf90a1ec9b)",
+ "P->V[78144:78176]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 3705: Hash(0x27ca2861f387af932aad4fc33e920e1b4648c10ffd17c330afb7e7c6e4d29aa)",
+ "P->V[78176:78208]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 3741: Hash(0xf7dd93f6669df253e44f62daa439b2557287903cda280f7bb09b55d88f530d)",
+ "P->V[78208:78240]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 3780: Hash(0x696d9754b00b0ec9bf7051349e1cbbab204fb1a9c31234a1c3bbb7f6340cd26)",
+ "P->V[78240:78272]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 3792: Hash(0x2d9723f43ee6ab45c505c725c51ed9a2476f6117905b4952d31d6edf5e4f83b)",
+ "P->V[78272:78304]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 3836: Hash(0xa295548abc98d903c27bf6c91f8a98a202faa6fee181f093f5e3ff7211a933)",
+ "P->V[78304:78336]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 3947: Hash(0x1aece85cc61583715a3a9d8c964879ea17bd9adaf0eaf21692d9bc05be8871)",
+ "P->V[78336:78368]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 3970: Hash(0x50b267758a0081b19b41373f664fd444634f821097e4d2befaab0677f7d47bb)",
+ "P->V[78368:78400]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 3996: Hash(0x16f4fa358fcae23fb0718a0dd5a6eb274f22174ec1195f29eed6d0d78e5fc21)",
+ "P->V[78400:78432]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 4081: Hash(0x492cb622180d0a6715ca028fffcaf5eac37e7cfffc2cef3862b15df6ad8cc3f)",
+ "P->V[78432:78464]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1042: Hash(0x2c7c90b360588081135d78f03fc11cea405e035d0acc5880992c42b17694532)",
+ "P->V[78464:78496]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1051: Hash(0x7d823c118fb9e9b7b39f46a1efcddf6006ec921a75a3f5431e0560163158f30)",
+ "P->V[78496:78528]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1116: Hash(0x5cd3cd89d1c1087c47881f6b92d56fbefd33797ce5c5c2729ac81352d17f121)",
+ "P->V[78528:78560]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1409: Hash(0x183068c3e5f186cfe4b499e0128968a94aa66374aca77e6b3ccdc9c8b22b836)",
+ "P->V[78560:78592]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1428: Hash(0x18f7d308c529c92ebef2cd32613dbeae27522cb3837230ac3fb217bf0229aa4)",
+ "P->V[78592:78624]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1440: Hash(0xd2a6c96f29c2158d9647c219cc9ac0fd627b14ba86cdd6a6ac0cd5e8cbab17)",
+ "P->V[78624:78656]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1511: Hash(0x1fa0017008f576e4da4038780568bd9d51b2f8a1ffaa5669037c5ee8d24e4da)",
+ "P->V[78656:78688]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1577: Hash(0x122892e142a1fe6c526ca6562d81424c0f1950c55ac1e3897bd5dcad85beaa2)",
+ "P->V[78688:78720]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1591: Hash(0x760f96dc009baab9f5bcd873ba42cd576cb96a625f388546ac8106a4871acbb)",
+ "P->V[78720:78752]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1593: Hash(0xb5e79a11646d61f6c67a080a752927891f7c99a917b891ee92c35cbd5f260)",
+ "P->V[78752:78784]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1597: Hash(0x24a2dae38fef1b2d3e88b3c76b9da4074020377fa7e77abc3ecc377514199e4)",
+ "P->V[78784:78816]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1600: Hash(0x58fcfd265c2c20d23ddc121edcae30da9307888348d10ffeb0da3b25ad84349)",
+ "P->V[78816:78848]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1616: Hash(0x1494dee922d2ef4fef80df547757b87f0d950518399a7189bb72ec41ab5c097)",
+ "P->V[78848:78880]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1646: Hash(0xa4bf291b4d7ed9c11eb9c364cf43d2cf47d50d2e344b25a8e529da06479c68)",
+ "P->V[78880:78912]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1663: Hash(0x2c31295263e9c61c5afc8db52586ed7132fafcfbd6d0cc8f1717b2d927187a7)",
+ "P->V[78912:78944]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1683: Hash(0x6c5fe422efe8c123f961e90d36514f010dcbe0a55ae2c41610b9147422b6b54)",
+ "P->V[78944:78976]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1691: Hash(0x13a674376e353a6efa65997f903917a0482946000ea433b3e897503ee5f51ab)",
+ "P->V[78976:79008]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1724: Hash(0x2ce4cb3086bd60103103969a573bccb9507fa58e7d145f2c9a8493a5c590dc1)",
+ "P->V[79008:79040]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1835: Hash(0x68d7625b6d7046bedc03eb4074b2e79ddbc2df5ee36631c0ba9dd2d083cb183)",
+ "P->V[79040:79072]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1836: Hash(0xe00556376d027bd8e3ba5ef0d1e9450e33ae6a7bad9a76bd53532ddfaea53c)",
+ "P->V[79072:79104]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1845: Hash(0x56da98bebe0bfdd4f644de60f53c9606ce3c6dd34a9ac7bf06451b7e5a02e5a)",
+ "P->V[79104:79136]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1853: Hash(0x3d487818deacdbc11a4bdab6e9ab46f2c7c9a74166dda4d9e8b38c4810a805b)",
+ "P->V[79136:79168]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1871: Hash(0x5d55c4448256128d937faa7116315c4f53946fed6afd2d6caad5f032994212f)",
+ "P->V[79168:79200]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1891: Hash(0x19b7ddc8494acaa2479c8465181d16a152f3a5ce39f5b4226ec5291edd1dc6a)",
+ "P->V[79200:79232]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1897: Hash(0x495f486f563231537acd814d7c5d22a678465eccb8c2e6d21aeeb4f3d2fa971)",
+ "P->V[79232:79264]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1919: Hash(0x1edc147843c46c15d65efb0bc048b6dfcf7b3ae55dd45ff4c024c137d0e0c03)",
+ "P->V[79264:79296]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1972: Hash(0x16de0c51accf9821e5ef2cadd9cf3ca51e8e0889d007c971fbb0176c0840b84)",
+ "P->V[79296:79328]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1984: Hash(0xa1a8e632c0a7f724de9222cf1d693ff03c3eb58e56754fdfb7b81f7386c654)",
+ "P->V[79328:79360]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1999: Hash(0x6bb7046ed10f3042c5a66a5d59a862da50fb9667b48c34b707df44f6b6ef8d7)",
+ "P->V[79360:79392]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 2041: Hash(0x797729724a17b4de66e95c7b075cc9e579629c558b8c6afbfbf2a3c42ea6e53)",
+ "P->V[79392:79424]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 520: Hash(0x86b1eddd673de75c37e754be62725a8f8e06dc84208855e93024988f80971d)",
+ "P->V[79424:79456]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 524: Hash(0x27cfb0b44b6e97d14a19919a9192c6a893ab93e44ee95304acccab7734a0503)",
+ "P->V[79456:79488]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 559: Hash(0xac4f785d8962349bfbbb8da4062689852a681693982858d48f5191596f57a6)",
+ "P->V[79488:79520]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 621: Hash(0x3976d7a94fb4885ab862eb6637d6c06fbe31a691451466fc5f83e602adc4471)",
+ "P->V[79520:79552]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 705: Hash(0x3d5ff838eade3e5e9456571bbc56b95200c5ee186e97dcc0be891eaf37b2415)",
+ "P->V[79552:79584]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 715: Hash(0x61801800636ea8c3b195d9a7e9f1b23fc7194d6c7c3c6d66540a41aad64e29e)",
+ "P->V[79584:79616]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 721: Hash(0x5634c3cebb8ece46d9d4fc982784ed092d5221ed5270a1c88de11989d72b77d)",
+ "P->V[79616:79648]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 754: Hash(0x37780e453aa7ef56db1a2966ba918df9630f1474f3ea3c8ac047eab3e04f11b)",
+ "P->V[79648:79680]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 789: Hash(0xbeea0a2fc0827d4566bfd0e83d7d33e909f54f04f489c289e3706e678973f0)",
+ "P->V[79680:79712]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 794: Hash(0x2eb8e8ca1ce1076612a62d878dd7a34f12907eb89c351338da5fd6865aa33d4)",
+ "P->V[79712:79744]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 797: Hash(0x3606fd81ff12884a8eb3f470b4f0bc85013ad50fdd56937cd0e47c9b3f82b6)",
+ "P->V[79744:79776]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 799: Hash(0x1ad25a1ab593c1ae8e5175158fa20e4cd2dd0bf23f080a16e693d553cca75f6)",
+ "P->V[79776:79808]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 801: Hash(0x392355ee77bdddae6555914cff8c31288657fe8eb8ef98099c76fc3008fa0f)",
+ "P->V[79808:79840]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 809: Hash(0x54958f68390a9872dbda9e9bc7b15a8dcc8b1e221151dfbc0c2875c55e045f4)",
+ "P->V[79840:79872]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 822: Hash(0x2699f48136209c283053f6958a50946f6504858441bfa525a8f4745509ceb7a)",
+ "P->V[79872:79904]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 830: Hash(0x4642ec33db746e1b233ffe40fafacb8e2d86cb5c2acbe119a7c72d912c1211b)",
+ "P->V[79904:79936]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 840: Hash(0x519c7cde5c516040463656d152a065fccf7ed3c8c098229d29a374164b46761)",
+ "P->V[79936:79968]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 844: Hash(0x2f4adfbddf966c401bac514372d397ab4531c37384139bdb121bb78bef3d03a)",
+ "P->V[79968:80000]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 863: Hash(0x7e7c2decc5d49b0bd4c6c4c6d649d90349fcefca1da4e948ab78355e558efb7)",
+ "P->V[80000:80032]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 916: Hash(0x7f70d0fea2a6bebd6da01e01e4c0d4a14b1398d4822cf1cba18093ea7dfc875)",
+ "P->V[80032:80064]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 919: Hash(0x1d3e425d96d9aed519a262b5b9106b121bfebc945f89b432c29c65ba279234c)",
+ "P->V[80064:80096]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 923: Hash(0xb0fdd119f47b19024a337f92465ef8815db3189cacc920a1bfae2d2e62cebe)",
+ "P->V[80096:80128]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 927: Hash(0x7230512a491a2c8d23be6cd8c31ab3a87f6c77b1432696b222c2b124548f366)",
+ "P->V[80128:80160]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 934: Hash(0x54214f46f06e29decc1b3a4060a0d9531db91ee8a9956c08eb44a36615c832f)",
+ "P->V[80160:80192]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 944: Hash(0x388071bff71c8543b4874e1792771becd82ef80520ae6dbc9f87f80b4c9443c)",
+ "P->V[80192:80224]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 949: Hash(0x3971f7f7c563e1de42e6aee492cfd76cfda7246027bfb6d3517196ca49639f3)",
+ "P->V[80224:80256]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 958: Hash(0x20c812213e2b862a44f9c490bc24bb458431e93552ddaaecd7bba296affb944)",
+ "P->V[80256:80288]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 987: Hash(0x233777faec63660fd064d1de6792db985839d522ca6a6f2a685249157fa494e)",
+ "P->V[80288:80320]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 993: Hash(0x751a630ab281092e426e93e0c90b9775c8eb7e7008e5ba476a5a71e17b1b444)",
+ "P->V[80320:80352]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 998: Hash(0xce7e52bde4db87408c50b2c5a8a4e39354567325946fc3bdc735e673430e8c)",
+ "P->V[80352:80384]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1021: Hash(0x35c402c167def89b28ad4eaba4646d58dfbbeff809c0e3110f78b3ab6fd7433)",
+ "P->V[80384:80416]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 261: Hash(0xc8fa563e90ba50c46c40a8281752de69becc8e8ae730b4b9d8407736514a56)",
+ "P->V[80416:80448]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 263: Hash(0x1db9a57e317c69cb8d931981a6ed671e4d5ab5dacf082d4564450ce4b707325)",
+ "P->V[80448:80480]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 278: Hash(0x1a2277c5218cb57735a3d9f50582a164b4fdb7d020e6139d73745217d289611)",
+ "P->V[80480:80512]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 311: Hash(0x3a0d3201084250fc10cc7904fe21780fcd7d492c5f40639b1084876909ee0bd)",
+ "P->V[80512:80544]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 353: Hash(0x6785334f4923442f1759031da4c551102a64a08dd602c6555a93fa7ae20c484)",
+ "P->V[80544:80576]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 356: Hash(0x4ac43934553349c451ea737e8b396ceb331c9f33f82cf88e00346ec3196ad)",
+ "P->V[80576:80608]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 361: Hash(0x4d7371459dfcf5c01eb65d146eae0efcc0c9b4218b22d8ca0143eb95bd6fbe9)",
+ "P->V[80608:80640]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 376: Hash(0x2a9d46d76d97a58ba77fa045864b640f151e7887af0fade1252f232fa74f4ac)",
+ "P->V[80640:80672]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 395: Hash(0x61ccaa408330798953c57334b1acd0b4578b7e2b0b79a5477041455304c7459)",
+ "P->V[80672:80704]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 396: Hash(0x7545ac13b80da2128933df4bb3781e4101388703fa81287202f388b7f058bc)",
+ "P->V[80704:80736]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 401: Hash(0x171c43983a5a373e38b0a6f71779013886e019d9efa38e8141824ccbf66c338)",
+ "P->V[80736:80768]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 405: Hash(0x36c521eb4be7309ec0d7558462fab9d8784e8839a2ddd1dff88fd0cc36a972e)",
+ "P->V[80768:80800]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 410: Hash(0x324099efc04ea0d4bbcecb132824fc0ab9f010653eeef60919179452cd110c7)",
+ "P->V[80800:80832]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 414: Hash(0x1627577c9802e4071a551dacc736f0b682774542653551f5161bbf4553f9d27)",
+ "P->V[80832:80864]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 421: Hash(0x443eb5fc84095468aeb6c8cc07dc2eca72e8ba84699dc6e608bb1bbc3b11acf)",
+ "P->V[80864:80896]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 423: Hash(0x7f9c49329e720dee55b1b92e6f36ced3ad8921774c3bcef7b679c0f3c3cc759)",
+ "P->V[80896:80928]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 430: Hash(0x60153129a3f9daaa51e77d8518a655d8f8c17e8cd409824f5da38e054227fe6)",
+ "P->V[80928:80960]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 460: Hash(0x3e95743a389d8d3b6986c15370c7892a93422ce050d74f511b8a5ea0e00a15b)",
+ "P->V[80960:80992]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 462: Hash(0x5ac8e9425c5e57ab8dd255ea9f43da150ad6d0022be77f30025feca500327fe)",
+ "P->V[80992:81024]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 466: Hash(0x228d37da222c9a91a9d54158a2166affb208bd5b945600023b35ed41c911578)",
+ "P->V[81024:81056]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 473: Hash(0x2bcb8a695b44bb6e747c9eb863f7ac7e7a1fedce342a720ac1ec01710514c4c)",
+ "P->V[81056:81088]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 475: Hash(0x9f1c91686bcb0d7fef769fa8d51035ab0765595f4f0b9e0258334bd773089f)",
+ "P->V[81088:81120]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 478: Hash(0x74b8f2bed9f871a65cde0d9bd7c815da838555c2404f96fd6ad874386868a78)",
+ "P->V[81120:81152]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 492: Hash(0x2c0afb010a2d9b89589f7d9dcedf133856b299e04ca9b2f206b77daa366a5a8)",
+ "P->V[81152:81184]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 497: Hash(0x1849989bbd2e32dfdf84e98a026764fb4e9305e577c4c5461b1ec08718ecc7f)",
+ "P->V[81184:81216]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 498: Hash(0x809989746311014afc12af049152bac77b9d2c40b9c4f3abf8c4e02d08df1)",
+ "P->V[81216:81248]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 511: Hash(0x48c0ce3e8c79798f76e34d45cb477df1f30b4cd932c106e20e1b6b8f5d1a1d0)",
+ "P->V[81248:81280]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 138: Hash(0x4b8be6608a73546002709fa13d3d5a97d8c97a01a2472b0506d195df8da5e8c)",
+ "P->V[81280:81312]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 154: Hash(0x320c9a49d9059efc35fc3334b6c628dcd24dc9bcb88042f22db2d6bb7b2bc6d)",
+ "P->V[81312:81344]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 177: Hash(0x10f5c1a030180b614116483afb985ad7558602b5c2b626d0d2abd746b70bac4)",
+ "P->V[81344:81376]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 179: Hash(0x6b6473523cb85b8e718aae1a7f9131e0a2408a5f7d30cc98e3700f6ca6067d2)",
+ "P->V[81376:81408]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 181: Hash(0x5ea38446f2815240ef1a82153216ef6aae608ced4219d7797911d998156be03)",
+ "P->V[81408:81440]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 189: Hash(0x444134c61d074fa40cc1f760f1f112e0b7c7a5fdd19bc0815e41ede6f7a7c20)",
+ "P->V[81440:81472]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 196: Hash(0x2d13656be82279a93d32d84c07f8196ecb702b257fe9211d77aac6c1b6196c0)",
+ "P->V[81472:81504]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 201: Hash(0x4b0c1e47d0eb6d8698acfe6976b1092197360214db7af45d5f6d25e64aa9dad)",
+ "P->V[81504:81536]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 203: Hash(0x3aa04bf104634168dd23f9687a8bd0581b30b4e38ea35cd51c8f3de44a4c7)",
+ "P->V[81536:81568]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 204: Hash(0x5c04f333ff40fafaddd4cefa040d7246d169717ede5682c119624b474e1c190)",
+ "P->V[81568:81600]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 206: Hash(0x5721954601df844d834f913ab1d05c572234f4e02103f8fef4930260f2dc05)",
+ "P->V[81600:81632]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 214: Hash(0x374039ee09312111e27618e542d378de7b1a0a637fbd7c66195120bd0cf1a1e)",
+ "P->V[81632:81664]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 228: Hash(0x1758b930b565679f23b78833bf2cbceac80b740a4a2cbac5f1bc42ab1cee72c)",
+ "P->V[81664:81696]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 232: Hash(0x5c7c8abd3ab52906eb9a5dcecede2b295bb864920113f704b067c572d41805d)",
+ "P->V[81696:81728]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 238: Hash(0x3c137b4ac18f6b5241fb538d2444a2cc77f1c4759f1fdc50ee61043e2665e36)",
+ "P->V[81728:81760]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 247: Hash(0x7df57d0f05b0c887dcda2781c3980a8ed1aa9b525e95a69b6af9d4b7675a781)",
+ "P->V[81760:81792]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 254: Hash(0x60ed7f3fa44fbb4455ab727733d68e27570ad3a1d04134ad56c3adcd04c7fde)",
+ "P->V[81792:81824]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 64: Hash(0x62bbb38f29d28df7b2278ddac46178f54e812c1102a6c340eec2cf9a7ec07b)",
+ "P->V[81824:81856]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 68: Hash(0x6bb9f5594505128532ffcb08cae2686e0ddbf03f7ad398007f8b7342240e8f4)",
+ "P->V[81856:81888]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 76: Hash(0x6cee1606b00f6ca427badd3669ea31074b592b7648613b8dd419b9f9f31894)",
+ "P->V[81888:81920]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 91: Hash(0x7258db15799cd9ee250dea8dfb79fdf83c9293793a911519db7e256816e1b81)",
+ "P->V[81920:81952]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 95: Hash(0x62ad84d3dfd8fcf31f7c1e6f0f26468e3295e0dd877568c7a8e48cdb8d30f6e)",
+ "P->V[81952:81984]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 104: Hash(0x3c528d067c6cda6b29a3fd436be03c6e2bae15524c47669ae7a5e89f3b2632d)",
+ "P->V[81984:82016]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 106: Hash(0x4dfeb1f5021718c8ccc95fe747e47f8e7abf3451fd915cee0995ae2ee9f4968)",
+ "P->V[82016:82048]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 117: Hash(0x1803cac43f80d2656ced69485c7b27d67d3ca93a61f7fed2a1527a967c54f49)",
+ "P->V[82048:82080]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 122: Hash(0x159199038a4d4bec9c2bd8b245298f61ea3f50ac3ea007b3e057a4ec05d37f3)",
+ "P->V[82080:82112]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 125: Hash(0x46decda17bebf2cede4668ad15a643e6b59d613b121155688856eea0280582a)",
+ "P->V[82112:82144]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 126: Hash(0x70dea2cfadfc2d43e47755a4f2436364eca451e76d94797bfe44531153a3dec)",
+ "P->V[82144:82176]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 33: Hash(0x4b04d4101f32a8d8775bcf83e4938141cd0705f7c540ca4f6876690317cf307)",
+ "P->V[82176:82208]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 35: Hash(0x566b0b28da5f3fd01564355d1a1a916c69dfd8ef277b5e02adfed5abb7900de)",
+ "P->V[82208:82240]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 39: Hash(0x9f11382da520d7dc62f231e50ebf1d6ffb99a22745d448394472598d83b3f4)",
+ "P->V[82240:82272]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 46: Hash(0x20871cade7ced35edf09264bdcd73608b866f51052d3941dd44d69fcb45a76)",
+ "P->V[82272:82304]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 48: Hash(0x9480ca1d55b88103d83647f60fdf234b7ea7327690c45f4564faffb33331a2)",
+ "P->V[82304:82336]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 56: Hash(0x75c3d18c18a75d421e6641ce5a4605100012fca83a78ee531bb6654308b970)",
+ "P->V[82336:82368]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 60: Hash(0x8284f7205ee7d81ecaa5cf4a48b1b9be4c6b670fa3507f10f405beffad415e)",
+ "P->V[82368:82400]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 18: Hash(0x3104387fb215dcb12fe430465a738120a6fe5d2ba9c1fff8aa9ce2c111c4a5)",
+ "P->V[82400:82432]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 27: Hash(0x4af3464e5246ca26bd289648df3fb89688b2026b87735faf3d7af549ae3a411)",
+ "P->V[82432:82464]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 10: Hash(0x7a1d2131f4c1b8169d9f4d7fb571542bdc583954ce673f1a86e9b0d2037d953)",
+ "P->V[82464:82496]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 1248, Column 0: Field Element(0x1a3814a33630a916336d18297c000abf9d4f3fcf914f8ebb4791cb02b5ab7bb)",
+ "P->V[82496:82528]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 1248, Column 1: Field Element(0x1f1a5c845172eaa543dcfecf598eacbfc9eb5ccbc21181bd3b59827ec223097)",
+ "P->V[82528:82560]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 1248, Column 3: Field Element(0x638ebad104d4da9179857086021c3d3ccf036938e771e71f628d8b8fa96c503)",
+ "P->V[82560:82592]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 1248, Column 4: Field Element(0x4429aa56cfff8623d9bcf8acd1bf98c9c06c3167f3a51e8d1ac2a1147fecb14)",
+ "P->V[82592:82624]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 1248, Column 5: Field Element(0x6d2329c6c4b77ca8f80236522da108da53f708d8cbf2c338f555360889455be)",
+ "P->V[82624:82656]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 1248, Column 6: Field Element(0x38a397ba2aa579ebd307c0404f8f728bad81b39f70bfc45bce8a3da118ea4de)",
+ "P->V[82656:82688]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 1248, Column 7: Field Element(0x3603f3834ef6712a9b56ebdf7a975ab3fb8a67953d0c05063505a3510b3e3cb)",
+ "P->V[82688:82720]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 1711, Column 0: Field Element(0x16efb4c8a6d08916f3a306efe701cd3a7e7931e2c6873bd0a0922d64b5e0b28)",
+ "P->V[82720:82752]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 1711, Column 1: Field Element(0x54acb09c50157513871da2235c2fe9161496588602b6f8f1ca90a6fe36d5f37)",
+ "P->V[82752:82784]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 1711, Column 2: Field Element(0x1df543e3f291b6e010e563bfc6677a5797eec5d02ff3201efb2586d57de554f)",
+ "P->V[82784:82816]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 1711, Column 3: Field Element(0x3985dd23c3aceeb0175c72fad5f19bfce966a74c94b4476a944be95b23e983)",
+ "P->V[82816:82848]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 1711, Column 4: Field Element(0x652ffc06cc770fc4610dc562c1a8f4f3b8359df7efbac4ffb3324770e7bb1ca)",
+ "P->V[82848:82880]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 1711, Column 5: Field Element(0x5527bb583cd4d2cc885a2c03c6f9b16d2e256c53e7e46a8c0fec4c0ce44ecb1)",
+ "P->V[82880:82912]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 1711, Column 7: Field Element(0x662249b8981bcf4a21b0d41509a61d3adcda031c1a09d7a0695d9aacfbcbda)",
+ "P->V[82912:82944]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 5973, Column 0: Field Element(0x79f9b8f6460facf6fa74f953c4799698d17ed93b8831e4860641fc3dee6ae6d)",
+ "P->V[82944:82976]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 5973, Column 1: Field Element(0x55dcec8118cece4d377e6b5dc64e439b151f023fa2b663cb9f7379e9f84d1f9)",
+ "P->V[82976:83008]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 5973, Column 2: Field Element(0x6abd1134c1fee929debeecfe341b624fa2c43bfe915c2ce1e5ac55f86839a4)",
+ "P->V[83008:83040]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 5973, Column 3: Field Element(0x717c346c98a2598ecc8854287e20859113a26df2261ca48df8d39cf705caded)",
+ "P->V[83040:83072]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 5973, Column 5: Field Element(0x3275ff69c29a438e49d58e96a8f36c875899f2b4c2f09a366d3606732128dea)",
+ "P->V[83072:83104]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 5973, Column 6: Field Element(0x2ae9c8fd72aa8eeb0f8415231ed9f65f2a16072ad6ccf82aa8d4352dd0b1d14)",
+ "P->V[83104:83136]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 5973, Column 7: Field Element(0x5197b970c21a999e087a342bfab4db39b90b62bb1adae81144135629fead5e)",
+ "P->V[83136:83168]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 13882, Column 0: Field Element(0x349f07c5dd403fc29c87410835aa04dd872b54fd0e82f07486a1f2f2365fc50)",
+ "P->V[83168:83200]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 13882, Column 1: Field Element(0x22357d6d681b09a27e79d05f3e4bea4fa8c2322e56121d517d2b3109c9c5f2e)",
+ "P->V[83200:83232]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 13882, Column 2: Field Element(0x502f4a4f2956417132e474911755c2d0b8d291086f11d8570e5cdf2fa1dafa7)",
+ "P->V[83232:83264]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 13882, Column 3: Field Element(0x3243e60d316adc792a18a3061eeb785f860efa065116536361c83e70a6b7dcd)",
+ "P->V[83264:83296]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 13882, Column 4: Field Element(0x258ee91d45c9e5ea4d5bd1d07275d7fdb6ecfcf9885eff43691d44f62ddf906)",
+ "P->V[83296:83328]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 13882, Column 5: Field Element(0x4e9efd08e7809bd7ce30d5a066bc7068dc2df70a285827454f5f8dec4e0bc23)",
+ "P->V[83328:83360]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 13882, Column 7: Field Element(0x3a9efebaef377abc302bbc6eda7137ae4be6c0451bf56d04ff40beb8c238e95)",
+ "P->V[83360:83392]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 13910, Column 0: Field Element(0x5b81961abf2e2a813fbfcc0cd8ccdaf556c0ba877b1820b076c8b0ae6b0881c)",
+ "P->V[83392:83424]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 13910, Column 1: Field Element(0x438d756f3683d3798bf1a8030fd9bf3dc8511eb3547da4bc673cc72b823f076)",
+ "P->V[83424:83456]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 13910, Column 2: Field Element(0x642ebed25e5bd7a85b3022bdd811a43d26191a321f3397c13e81a96fdc22504)",
+ "P->V[83456:83488]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 13910, Column 3: Field Element(0xd22a832da4e908476bfc1f59b43f811856d57904387aaacf266160e690a79)",
+ "P->V[83488:83520]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 13910, Column 4: Field Element(0x5612efcbd985ab34de221fb442f20cee6e89c583fef4d75af7d89c14099163e)",
+ "P->V[83520:83552]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 13910, Column 5: Field Element(0x30facb0f9bb84578abdf828b0e53fb3dca56064cf89a58729d89750c91bb93)",
+ "P->V[83552:83584]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 13910, Column 6: Field Element(0x65248ddb1339886e9caa5c703adf763fbfd320da5d8bc8614c03cd7c6fbbce5)",
+ "P->V[83584:83616]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 24577, Column 0: Field Element(0x5a47c5e9f48831359796096ec78ccb53c298a8243df7815152d4a37b4f9bf6d)",
+ "P->V[83616:83648]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 24577, Column 1: Field Element(0x2e7f913668e3b01f2b728067e096edc1e923ae76cd5ad37bbd62d69e11cdaac)",
+ "P->V[83648:83680]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 24577, Column 2: Field Element(0x56cd06ff9236bcab41eed09e310353cdb2e7785b8b64d65c5fb80fba58afa42)",
+ "P->V[83680:83712]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 24577, Column 4: Field Element(0x5ec619f52eee4937d695d9b392df7b23eada1a3c96582832ef6c88fa1aac60b)",
+ "P->V[83712:83744]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 24577, Column 5: Field Element(0x29add262ca20631ef0711b438381efb977f9ae418d4235001c31e92775ddd6d)",
+ "P->V[83744:83776]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 24577, Column 6: Field Element(0x1fa55c26f5786fb1ef28355ed53011cd2a714b94a8ccae73c7d17c4e4875f10)",
+ "P->V[83776:83808]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 24577, Column 7: Field Element(0x7f1353c79b0c28bbe53ecc9659d094ae83f3bd5e355770cb4ba5888f95c205f)",
+ "P->V[83808:83840]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 25968, Column 0: Field Element(0x326e3f210037e4a917c921b849fe5135b57eb3d21f4077b8e347893da09e096)",
+ "P->V[83840:83872]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 25968, Column 1: Field Element(0x4924280b7a16493678f60d941436b77daa5f7536d641d90681d21b471972439)",
+ "P->V[83872:83904]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 25968, Column 2: Field Element(0x4d912600d06d5955e4fe98129089bebad589cce11d10a52877b71f5484cbf80)",
+ "P->V[83904:83936]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 25968, Column 4: Field Element(0x74ab4f0cb1a3c5f512751fdbe7f86d2160eb48875be51e306083134dc628cf5)",
+ "P->V[83936:83968]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 25968, Column 5: Field Element(0x62589b1d7848bc1e28574c64ba4a56dfa3abdd13f1f0adb7c96bc9b7eb431b2)",
+ "P->V[83968:84000]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 25968, Column 6: Field Element(0x4d7619bd4e10c5ffb9dc46fa8c220dd61299c45b415bcf8c6f8789d734e7622)",
+ "P->V[84000:84032]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 25968, Column 7: Field Element(0x65c8b65d6dff5ba7e13c3668bae92173c15ecc218e8bd671775f9207436b512)",
+ "P->V[84032:84064]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 26701, Column 0: Field Element(0x605dd679238409f5d901081f5963171bdf12a1154a3023c4c37f79ccb7b4411)",
+ "P->V[84064:84096]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 26701, Column 1: Field Element(0x79c819f9bb7b39e3cddbf3ba1d3a42d1d10f2aa4aab3af6d6705161ad51f247)",
+ "P->V[84096:84128]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 26701, Column 2: Field Element(0x66e589878d3e4285a61f35683a589b392a7a04434713b0613b5b4817f497943)",
+ "P->V[84128:84160]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 26701, Column 3: Field Element(0x798d953bab18dc4f47b93b6170a7c3f821f64dc4f14dba32ea67962501e16a0)",
+ "P->V[84160:84192]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 26701, Column 4: Field Element(0x73428df9cec39d5444be90f1bd4a885f84d0d4817b1f11374f5ce8f5f54eb8a)",
+ "P->V[84192:84224]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 26701, Column 5: Field Element(0x3195839f401da34d9b3c3622b277d84c30d39d6f01b3d00459e556757915c21)",
+ "P->V[84224:84256]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 26701, Column 7: Field Element(0x1790c8b9a40d93d500171666c3317f467a2a7d86ee44cb0cb7192b42d63ab8)",
+ "P->V[84256:84288]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 31137, Column 0: Field Element(0x478855341e44fff79f2371ba4299a729ecbcb88e90cb449b14e489ab352f138)",
+ "P->V[84288:84320]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 31137, Column 2: Field Element(0x41bbfa625426fd6419cf0e4c5081a08a973c828ee70a94720324b14b4f6d52a)",
+ "P->V[84320:84352]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 31137, Column 3: Field Element(0xf11ac0f10cdda577fee5713df36ed21e34681fea5c49960fda2fec2ea5948)",
+ "P->V[84352:84384]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 31137, Column 4: Field Element(0x1862d3cd79ab52e7d510a8f2b4bf4b00586cd4fe9d232380bcec3c10963991c)",
+ "P->V[84384:84416]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 31137, Column 5: Field Element(0x1d3ecd69dc267e33ef07eec03188369d8a4db2892c698ff0ea458031df5aecc)",
+ "P->V[84416:84448]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 31137, Column 6: Field Element(0x6cce5a0e90460f86e6f4a6d5909315c374819f61b501170b92da9d8c573c80)",
+ "P->V[84448:84480]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 31137, Column 7: Field Element(0x1f24a9081a0369f5e22cdd6d180c3461830f4ecff2183eea05ac3cba7836f55)",
+ "P->V[84480:84512]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 35342, Column 0: Field Element(0x63baf262c13327a6f20aa745de7d4ae0eb2ef0b1f46e1d396883ab5b12649e)",
+ "P->V[84512:84544]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 35342, Column 2: Field Element(0x6788a4f522d7430ac54bfe33f071b13d12727f9fe44f026558f7cff2b93cfc5)",
+ "P->V[84544:84576]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 35342, Column 3: Field Element(0x79eeb7e9bac6b3896ec4bc16c855db872e5cfdd3e50319eb3c04b2a57e94a6b)",
+ "P->V[84576:84608]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 35342, Column 4: Field Element(0x58c02368a7772a3af3735eac1d3b57507108be03d281fcfc11b8d2f827bbc9)",
+ "P->V[84608:84640]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 35342, Column 5: Field Element(0x6775ca2a5b443f979477565a832dda83502fa99cf558c4ab86cacbe2d89508f)",
+ "P->V[84640:84672]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 35342, Column 6: Field Element(0x1e078f05c662aa80bcc2f327f7ce2d3ae12ed8feec3e9d7cf1f7011d45c54c3)",
+ "P->V[84672:84704]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 35342, Column 7: Field Element(0x6e7c9464f000260134383d873886aa6621646b819763fcad595c0f0b8101310)",
+ "P->V[84704:84736]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 36245, Column 0: Field Element(0x6504a9833b7ae59dc4f8d10d198514549c83feaded982dbbe1091240ccc0fe5)",
+ "P->V[84736:84768]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 36245, Column 1: Field Element(0x22f787270c1369262400f7ad1f7aa47b331859dd208d3862f3d53257b162070)",
+ "P->V[84768:84800]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 36245, Column 2: Field Element(0x5d97e02dd4ee7843732dcfd3695504c92c60822fcb0558dbb8820faee2f9020)",
+ "P->V[84800:84832]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 36245, Column 3: Field Element(0x7b0d52d417454cb57e17661eae279b075ef939878e9c98bc7ec780f3e4ce46)",
+ "P->V[84832:84864]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 36245, Column 4: Field Element(0x994ca8b8d85b484489133d5e8feb3fa4e4ee1d89fd48f2d01366050b6c7f)",
+ "P->V[84864:84896]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 36245, Column 6: Field Element(0x2eb4d78bb2bdbf7afd9f26ebeb5495f43438e76559eef51b5ffc568b1148d66)",
+ "P->V[84896:84928]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 36245, Column 7: Field Element(0x7b2aac2ce7ecbb57d75b9ae1ea2521f2d7812f42e3ff79ca1b787efc36b7035)",
+ "P->V[84928:84960]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 36400, Column 0: Field Element(0x1c8404ab5f5ecb4e64c024bfa1d254d978fe7713f8d139e61ce0ed4369518ed)",
+ "P->V[84960:84992]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 36400, Column 1: Field Element(0x14ff8714122db1764a161030055fda7ce6403d2d65f551287c5afaf0bdea83d)",
+ "P->V[84992:85024]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 36400, Column 2: Field Element(0x3eea624be16caa52b9db1087259980083110bd09a8b81b9445dd6285008aa81)",
+ "P->V[85024:85056]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 36400, Column 3: Field Element(0x808975538ed752d4200525ea2d524c07f7a66d55dff2a501aee26b84f6764f)",
+ "P->V[85056:85088]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 36400, Column 4: Field Element(0x48fabe1e5ba17546e67b8599f08655c446b11c9fbb2bce3cd57988d7d43bc74)",
+ "P->V[85088:85120]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 36400, Column 6: Field Element(0x688262798db0874d8980f1cc5d0c003abf211f91b342686a9c2f803f21d4e95)",
+ "P->V[85120:85152]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 36400, Column 7: Field Element(0x62a7d00ebab7a1a61d0f8c944bdbd81e8dbe9672d6baef9bc30cf53497d0199)",
+ "P->V[85152:85184]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 36613, Column 1: Field Element(0x47a6adcdbabc04b42048a715677c16a8aaf0c3dfcda275903bf0609bff5c17c)",
+ "P->V[85184:85216]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 36613, Column 2: Field Element(0x55b0af751ef9bd439e05768116bebe54c17601d9ab1bb34a4b66d93f04db44f)",
+ "P->V[85216:85248]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 36613, Column 3: Field Element(0x308eb6d80dcc49a44f3081159c7537aac011ecd2146741e487db5606fb2a3b1)",
+ "P->V[85248:85280]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 36613, Column 4: Field Element(0x11b111f7c814e96bf394a10fb8f869ce5a8dc85b2c7568f2482e5ef33ce666b)",
+ "P->V[85280:85312]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 36613, Column 5: Field Element(0x37022fc71c3fa0b7424b8adaad623f0f527f5cc6fea47754a90a7978a0651d4)",
+ "P->V[85312:85344]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 36613, Column 6: Field Element(0x1f0ac2172838d76c6b1118b83d848d7396bb3e16bb772c99848d56768a2af57)",
+ "P->V[85344:85376]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 36613, Column 7: Field Element(0xa7938c6377e55c3bc9c6497c77e8ab8a819bd3618c7d80021974c65e33da70)",
+ "P->V[85376:85408]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 36949, Column 0: Field Element(0x7aa2c63a52e4354c7fb6183ccd57d04aab2044a20986a40bd44b5c33a71eceb)",
+ "P->V[85408:85440]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 36949, Column 1: Field Element(0x980b2e96f68414a54302f810414106d59ecd34470d3041dbd482498849879e)",
+ "P->V[85440:85472]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 36949, Column 2: Field Element(0x359af56e903019846b071dca12bb1896f88b001fb24014488604f8f5411751)",
+ "P->V[85472:85504]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 36949, Column 3: Field Element(0x59fa2a5f653ed0aac255278075132a54884e2d5179deb646e24cffe08bb741c)",
+ "P->V[85504:85536]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 36949, Column 4: Field Element(0x69e8cf26d718ccecf366dd64256bf53584569ceaf862a4739072f970ce3f949)",
+ "P->V[85536:85568]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 36949, Column 5: Field Element(0x4cbaf769b782010d2754d143b1dc69946daef21ae6a79725773279fb41999d2)",
+ "P->V[85568:85600]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 36949, Column 7: Field Element(0x548770af9829c9242fc5231a5a369e2a550c5c8d021c8d13535f7a3a65fcd34)",
+ "P->V[85600:85632]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 37982, Column 1: Field Element(0x3f2ca9005b6d365a6fae41490f035f87920259533056a567532f37f434ff39b)",
+ "P->V[85632:85664]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 37982, Column 2: Field Element(0x3f440574d6fc62cce159f9f989ede10a636d9640ed4f73f1151afe96fbcea8f)",
+ "P->V[85664:85696]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 37982, Column 3: Field Element(0x55e66c007a8c5fd98fce21bce65a0db3c1243ae549395eefebe3c8ed6a5dcfb)",
+ "P->V[85696:85728]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 37982, Column 4: Field Element(0xb8c6a98c466f6ae931efa7747d19a6153741dd405c0fa94e680ce4cb7d63c)",
+ "P->V[85728:85760]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 37982, Column 5: Field Element(0x4e6b837a58bce338a34a6b61460d05c0270a14e801ad70bbffa6eed269ffc44)",
+ "P->V[85760:85792]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 37982, Column 6: Field Element(0x4e88d26f9f731f7b24db71d2abee891b1c805ccae09e827cc59e873587960e7)",
+ "P->V[85792:85824]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 37982, Column 7: Field Element(0x269b1faa8c0dacf0a6c4d6eb991c3825c788d83cec25dd72f4d47a38133a98d)",
+ "P->V[85824:85856]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 39906, Column 1: Field Element(0x1ffbea5f7abff5f8256e4f0fa5975759870d6809ea5cad06643f7df42e43f75)",
+ "P->V[85856:85888]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 39906, Column 2: Field Element(0x65fde4246320cd566a9a4ca9411ace0e0841873c509ee4bcba32aa329bbefe0)",
+ "P->V[85888:85920]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 39906, Column 3: Field Element(0x78e5a6fa10c56e6e9f6c3089d09a3c12b74604c17202a15196a9c04b63f931)",
+ "P->V[85920:85952]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 39906, Column 4: Field Element(0x38a44e1cd79f488f16bf44d406e8a723e180a52414f2dfa7bcfab79eaf0fabb)",
+ "P->V[85952:85984]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 39906, Column 5: Field Element(0x2b8361ee2954bc530be56b851034b0732e2546b36724578cb9d1f66254e8186)",
+ "P->V[85984:86016]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 39906, Column 6: Field Element(0x6cdec392c5216780689f8a28a5293d9eb791ddb521c1c5b2af29e7275961dff)",
+ "P->V[86016:86048]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 39906, Column 7: Field Element(0x6ab5d8e592cb5a58cba28cc381f16f6723124e42b7c152670480013b75034b4)",
+ "P->V[86048:86080]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 40876, Column 0: Field Element(0x1acebb4a770e972bbe149554fe7668f1c0610eae0e86574736afb0dc8a349f9)",
+ "P->V[86080:86112]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 40876, Column 2: Field Element(0x7f899dc75ee8fdddd9707564351fc49da6c20440e18ed7a2226cbdfd2120388)",
+ "P->V[86112:86144]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 40876, Column 3: Field Element(0x49249a9e41802f8a4d81bffab987b00eef54de150f3ac35a9a77f5e20c374ce)",
+ "P->V[86144:86176]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 40876, Column 4: Field Element(0x4e27313edb16d8ce8e2530484c720f3829b41400eddbbf0ea7d2a5b69780e2a)",
+ "P->V[86176:86208]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 40876, Column 5: Field Element(0x2daf7ee3ca57e9bfab67a70a8a42abfb9eadc48bc4d63421f4af8e0022ff014)",
+ "P->V[86208:86240]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 40876, Column 6: Field Element(0x1b98634e48ac893491681fc6b6965f5982dc8f3b3677c0b92e58fc32db9a271)",
+ "P->V[86240:86272]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 40876, Column 7: Field Element(0x6020ac3eb0fa14f851c818b8e5796991526ae4c3a86f3a4e2583c4cd631f84b)",
+ "P->V[86272:86304]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 42127, Column 0: Field Element(0x52ac92dfeb41cee11c3b30728a2882f7a87e863ca1168d075e9f62f65a0e62c)",
+ "P->V[86304:86336]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 42127, Column 1: Field Element(0x7d7474a28a8f3d3a27a38e73382112494ca9cc60a997df98a7700f6f91bd5a7)",
+ "P->V[86336:86368]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 42127, Column 2: Field Element(0x7c3ead98ef1ce17d5cbd5eed3070d2aadf1e2918721938268bc8f37b52665f)",
+ "P->V[86368:86400]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 42127, Column 3: Field Element(0x48a6703d8290518301f5552269c63cfb7494e9c8a9d9c70d09a46bcfe4abd09)",
+ "P->V[86400:86432]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 42127, Column 4: Field Element(0x5e1ea0afd7ec75f44e6000379d053053e7a51fd139a254cbfb41d87eb237919)",
+ "P->V[86432:86464]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 42127, Column 5: Field Element(0xe02a7d8c00a122506e7ab8c8e18eaa1a4cc7424d9fd3cf41699e996dc58b8a)",
+ "P->V[86464:86496]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 42127, Column 7: Field Element(0x2ecf6edaa8644dc6461b42ddef4320dc5e0c04ac0839dc2c182385278e461ca)",
+ "P->V[86496:86528]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 42683, Column 0: Field Element(0xe245f622d8af74c08ac8392b1df1c2a722fb90e2901f853f50a7635f488da4)",
+ "P->V[86528:86560]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 42683, Column 1: Field Element(0x72c3ec150c30efd417e5d5ee4c30834fa491c779cb9639bce5d6bb9e572df0e)",
+ "P->V[86560:86592]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 42683, Column 2: Field Element(0x21951b9341be85f4e1a70e6cb88026890a8242dbb6274b7efbdcee2b9b5bb9f)",
+ "P->V[86592:86624]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 42683, Column 3: Field Element(0x447fc07e0667d354d65b8d733639d41f45d504e22b3238d1711dfafd83322d1)",
+ "P->V[86624:86656]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 42683, Column 5: Field Element(0x748205d10299789c73bdca5dd6ab12b0af13deabac5c1369fac6a6594a0d196)",
+ "P->V[86656:86688]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 42683, Column 6: Field Element(0x2b5a6fa3e38eaa1ece2345b0393fdf7c49c18f6ba0005fe4eefe6f1a5c05608)",
+ "P->V[86688:86720]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 42683, Column 7: Field Element(0x14f46e7e800224827f385bada4025ac9211751b91d33b5abe45e12f1d84da39)",
+ "P->V[86720:86752]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 44871, Column 0: Field Element(0x2185291577b4ca188f2440be9c00202a274897ee09f2650a8991a503a26c3a8)",
+ "P->V[86752:86784]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 44871, Column 1: Field Element(0xd0bf987842823400d50dabc70bd8bc71a5f9d98ae9b7826e0624800db27979)",
+ "P->V[86784:86816]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 44871, Column 2: Field Element(0x165c020ad3977ac01ef3cdc4a597adb763d4142075ae7c87603f3aa4071ffba)",
+ "P->V[86816:86848]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 44871, Column 3: Field Element(0x3e26a295c684ad22b0ed03b8299028c7797033a0b157e571a1af6b5726a967a)",
+ "P->V[86848:86880]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 44871, Column 5: Field Element(0x62dec880fd02624f14bccdcce86f1700a50d23bf76a2b1cf2b8f87bf85e225e)",
+ "P->V[86880:86912]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 44871, Column 6: Field Element(0x2f9174e36fc08f3975db3f0cf9b5b49c19f7ee53bf6e871590f73d478f70634)",
+ "P->V[86912:86944]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 44871, Column 7: Field Element(0x127937f6c0f4149087b25d7b41dd328d1e34068de6469f60a679d8cfb6ce0d8)",
+ "P->V[86944:86976]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 51843, Column 0: Field Element(0x6c3b39c7b797dea6bde369e69a62cd76aa4cbc14deeffcb1782cc3eba10c9c5)",
+ "P->V[86976:87008]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 51843, Column 1: Field Element(0x52614e1d4843914766ccc89a2901a94d7aabadb99ae63d344cb36a160f5a787)",
+ "P->V[87008:87040]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 51843, Column 3: Field Element(0x1f3fc36eb77fb34fa93159638b94625bab612cd05c13581582be06970f8e704)",
+ "P->V[87040:87072]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 51843, Column 4: Field Element(0x5fe5b07ab4ac9cc45b6efdd06966ce6f93ffe5cb5eb67c46b53a9cd0e666d48)",
+ "P->V[87072:87104]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 51843, Column 5: Field Element(0x15fc2acb1bfa9ff3762ef9a0003365846b9e4e207c19d50738de1b7cac1a3b6)",
+ "P->V[87104:87136]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 51843, Column 6: Field Element(0x2e564537abbe727a185dc789d9f9d41587e886012f4af69611c6080bcdc3bf6)",
+ "P->V[87136:87168]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 51843, Column 7: Field Element(0x7d8deae7a2db3bed803608ac42c8841f2f9ffc71ab5b0525c6b948f8ff3ffc)",
+ "P->V[87168:87200]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 52058, Column 0: Field Element(0x76a8c68ce1ce91ba8a9e8c2b01b2e4b037ebf75e5d5a567845b68f13232c03d)",
+ "P->V[87200:87232]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 52058, Column 1: Field Element(0x100b22ede80fc0b043e57be8cf37f0bf077ba583d990e0539b1da309300bc64)",
+ "P->V[87232:87264]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 52058, Column 2: Field Element(0x7cd68618a7bcd18af4f018119fdc582043ff99cc092dafe5521e166ffbb56ef)",
+ "P->V[87264:87296]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 52058, Column 3: Field Element(0x757e16ed3073190889111c8c266a59214668d97ad4438a7a835b30b8f860ded)",
+ "P->V[87296:87328]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 52058, Column 4: Field Element(0x2590a2193d657eb83006b31964077d7a072512108a81fdab71280c8bb9c8613)",
+ "P->V[87328:87360]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 52058, Column 6: Field Element(0x30dc2ed7d60a32e084ffeb7c3178abc6489a50806a834359c4049fe1d355e58)",
+ "P->V[87360:87392]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 52058, Column 7: Field Element(0x5da8b365359aaee5f48c589e2357dc39b5ceb95096589230a5ecf2df7493f03)",
+ "P->V[87392:87424]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 52539, Column 0: Field Element(0x531e4942fc6b20dfaac4dbef27199c61a18309c0b9c934460984bef8873fd43)",
+ "P->V[87424:87456]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 52539, Column 1: Field Element(0x789b75437737f30aef5e18574efa3b08da852b6238029d117ea2045740be5fe)",
+ "P->V[87456:87488]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 52539, Column 2: Field Element(0x41c4114361f401f356dcc38f0aafa1624b65218ac87175e230a8523311c55a2)",
+ "P->V[87488:87520]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 52539, Column 4: Field Element(0x3eeb690c8890492d3bec0b867384975f1dc183a5ec74714280a3ba8688ec048)",
+ "P->V[87520:87552]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 52539, Column 5: Field Element(0x109b55606c5d532bccc13518df60db0b95c1e1e75438c742ebdbf9879cee05a)",
+ "P->V[87552:87584]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 52539, Column 6: Field Element(0xd837d0f2bb0edd999a101e427c86ebc1c19432b86702481641ebced4f809d7)",
+ "P->V[87584:87616]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 52539, Column 7: Field Element(0x5443748448dd09f9b728300c1a1d34f07ffed879f1af9479ca0493333817970)",
+ "P->V[87616:87648]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 53017, Column 0: Field Element(0x7b874bb8e0da2742f3749ba4ff1f3ea9ff29c25bef26a3c4c078c6c2164bcb2)",
+ "P->V[87648:87680]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 53017, Column 1: Field Element(0x58bfc220804715754f7684afbf7c98e883e630fd474d23f9b43dbf0d880e104)",
+ "P->V[87680:87712]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 53017, Column 3: Field Element(0x3cde8dbc9b6374e9f05d2ffc9bdf2d40bf937324554427b8919700f44e07f9e)",
+ "P->V[87712:87744]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 53017, Column 4: Field Element(0x32545818a003ef126339ae5c66b11b4756c79e02ce6858664a2e7f4f4accb25)",
+ "P->V[87744:87776]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 53017, Column 5: Field Element(0x432947a37739f29396c40fd127cfccaee9af35e1d85f2aabb0a3103fe7a6dd1)",
+ "P->V[87776:87808]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 53017, Column 6: Field Element(0x4b3e20a183b21a0a95f8e7cd71cfaa07b6fe6a0cce1a0b5f667f9e95fd1c267)",
+ "P->V[87808:87840]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 53017, Column 7: Field Element(0x1ae3b76b606b9a3af6dddcc0db4d6254a77ee6dd72607135d0f2ce9be6c847c)",
+ "P->V[87840:87872]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 54144, Column 0: Field Element(0x29320cad4aaec0e2e8ac18b0285205600ce0c80a197dc06816b7b156947b29e)",
+ "P->V[87872:87904]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 54144, Column 1: Field Element(0x16f9f2da8be7855bc057da0bd7c41477e7064bca9f7ce501374f1da119bfef3)",
+ "P->V[87904:87936]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 54144, Column 3: Field Element(0x56e1e299e54b601f4d01d25042c1d1920966a2ebd1bbe2ab49f615dc04aa868)",
+ "P->V[87936:87968]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 54144, Column 4: Field Element(0x2bc3347baeba71048b46fd919360216e899d2b9b7da406abd14fd93360c59eb)",
+ "P->V[87968:88000]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 54144, Column 5: Field Element(0x4b24c394ae8514e47c3302224401ac95b0ab50b3f0be10bfca27afcdbe06d06)",
+ "P->V[88000:88032]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 54144, Column 6: Field Element(0x6c713cbed7561a30bb96e628bef97769427a99d9bd755e8fbc07a303a83ee97)",
+ "P->V[88032:88064]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 54144, Column 7: Field Element(0x3dfd425f5a86949aa13b162a7a7f9a39cb2f7c14b43de4c2ec18627f52be172)",
+ "P->V[88064:88096]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 55457, Column 0: Field Element(0x5be9744e62b3d37adfa9c89863bd5e7788effce7d6ab7caa660ebe6a5cff5f1)",
+ "P->V[88096:88128]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 55457, Column 1: Field Element(0x543a5ac88e607751ab6bb69076832d6c02ffd3c4bef8829c86cb4ce5018139)",
+ "P->V[88128:88160]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 55457, Column 2: Field Element(0x48b863cee34aa408a8c603bb836b6883d46b304cc81381c450f8ce7a014e264)",
+ "P->V[88160:88192]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 55457, Column 3: Field Element(0x4b2c8c5c946c443d5b5228354ee55ae62a2b16bd58a8cde8ddad06fb44bd868)",
+ "P->V[88192:88224]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 55457, Column 4: Field Element(0x7cae181516f0a648977468eca99487fd08cfa5873ad3cc63d11cb3fcaf48dca)",
+ "P->V[88224:88256]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 55457, Column 5: Field Element(0x6fb33045408e755242aed075a7e86a175eed34ecee0e5e94ae8fd9eee49fd98)",
+ "P->V[88256:88288]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 55457, Column 6: Field Element(0x3a568a8f6c83f42e15db0e5b27d619d2616df62ae2879e0b8222590d00c4913)",
+ "P->V[88288:88320]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 55859, Column 0: Field Element(0x7b286301f4fa94b4be428695e1381b472070610f4729474bbc1a29efda4a84a)",
+ "P->V[88320:88352]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 55859, Column 1: Field Element(0x194bca2172eeb92334480e429872a0dbbdcbfc205b2c61300c7593564efea7f)",
+ "P->V[88352:88384]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 55859, Column 2: Field Element(0x429a6101c9f75ba92ed2f45ea431c5fcc365bc39f18b2a02254c8f4625b88b1)",
+ "P->V[88384:88416]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 55859, Column 4: Field Element(0x6a9ef5a207c23107781e492204aec4e980cf7fb5b1762d297c6c9d77754f6f6)",
+ "P->V[88416:88448]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 55859, Column 5: Field Element(0x674cdf4c57e30db7e20541926a79bb8059f2ba8dbe70b7a7ed1794c3aa6c4f3)",
+ "P->V[88448:88480]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 55859, Column 6: Field Element(0x44c241bc856823da79231d037f0b4a99d86f27d285776076899493a94a8ed6e)",
+ "P->V[88480:88512]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 55859, Column 7: Field Element(0x5b46007ed0f522438d83dfd46bc4bcdd4e8b0d65cd43b27b27c0bfbfd2af1cd)",
+ "P->V[88512:88544]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 57278, Column 1: Field Element(0x570a15ddeef2692fa3ad78045bf7924e9c440658719343999278b63889a2610)",
+ "P->V[88544:88576]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 57278, Column 2: Field Element(0x7f92bccd696057f117c120db214e8472cfd766ec93d31a64b0c45c798d1f15)",
+ "P->V[88576:88608]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 57278, Column 3: Field Element(0x739b8a55b1fd4a30ecbf267a216038c0189417c29dce5bb22ebf517a08e5d07)",
+ "P->V[88608:88640]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 57278, Column 4: Field Element(0x3b771e9217f64b6c96b8cefed764dc5237d62fe916b57be2d43daff89b14623)",
+ "P->V[88640:88672]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 57278, Column 5: Field Element(0x40a11e710d6c1f10ab060d686b27ba032d7ffcd5126562367a5ca7d35123103)",
+ "P->V[88672:88704]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 57278, Column 6: Field Element(0x26b7520ec79dbb749718571a55fa4143cbd4bc56b88040e72f5c1475bdd2ef8)",
+ "P->V[88704:88736]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 57278, Column 7: Field Element(0x6e6ffcbf8a9431789bfca1b7b9c009f5008e2f25712616c735b18e9d8788aa8)",
+ "P->V[88736:88768]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60763, Column 0: Field Element(0x527610a42e00d0b2accedb4ba7fcb8a73e96b869969f31814911e6f5577d120)",
+ "P->V[88768:88800]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60763, Column 1: Field Element(0x310593b42094a07b1272f7f9d7eaa90b04cfaa538de2b702367142b0c5c3c4a)",
+ "P->V[88800:88832]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60763, Column 2: Field Element(0x143ac754fd183009caa66d259470baa72db9e4b7c601f095c27c8cba4bbc6)",
+ "P->V[88832:88864]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60763, Column 3: Field Element(0x753bdb9c4c1a6c38c88df6d53f33be36d90f7b2e460742c0384c47303a93439)",
+ "P->V[88864:88896]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60763, Column 5: Field Element(0x503b54538a2ea78d7dcd2913af7d693f37f5814fd80a19cb166d5f018706f65)",
+ "P->V[88896:88928]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60763, Column 6: Field Element(0x7df0c1c339e3d328e5026bbdaebf78a8e7f248f5465d65d325f09304a5a6c20)",
+ "P->V[88928:88960]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60763, Column 7: Field Element(0x2cb7754e50942d1fa1544c9131bdcf2a2d731a353db14d3de6327dce129a884)",
+ "P->V[88960:88992]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 61558, Column 0: Field Element(0x67afa6344a6226891df3143fe6ba484fa7713bff37ce27cf06d58f036bd571)",
+ "P->V[88992:89024]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 61558, Column 1: Field Element(0x66bbf20d30610dd035cfaf9c406c49ed77ce9881d09336850c41b2b79e8966b)",
+ "P->V[89024:89056]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 61558, Column 2: Field Element(0x4b9fbca731d9b8b57c6e1e630f7828e271fa26a3560d6c9aabdd57b6940544b)",
+ "P->V[89056:89088]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 61558, Column 3: Field Element(0x4a31156325508c25af49a517c009de93d76ff92fec2f2b4ea98365558b44ca6)",
+ "P->V[89088:89120]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 61558, Column 4: Field Element(0x751c94c9492418957cc3afe53f572995d173432b710122e503eae330706cd86)",
+ "P->V[89120:89152]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 61558, Column 5: Field Element(0x753fdcd6f4c3995613e95188a5ccb1fe3dce7739ae533e2fab8a1ef7a6d02af)",
+ "P->V[89152:89184]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 61558, Column 6: Field Element(0x7875bb73fc891364d52a31f3a7d9d5a3958921c91d1667aef7325f1f7e77f41)",
+ "P->V[89184:89216]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 62370, Column 1: Field Element(0x748fa50470727ea9934ec4081366d4020ebdc888673e44c42d25b349daba9f9)",
+ "P->V[89216:89248]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 62370, Column 2: Field Element(0x1794dfe736f93e06ea62ff0607db45106a56ca288eab3bde0d8bb6d3b1f0405)",
+ "P->V[89248:89280]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 62370, Column 3: Field Element(0x5811fe2f737902f5505bd3f596f0a166ccbd2db4b87ec1a48fa605bc4044f8f)",
+ "P->V[89280:89312]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 62370, Column 4: Field Element(0x580a14f02b453ffcc9acb3b50f625a2e2ed6ef4eb39a3418744d1ba5114e03)",
+ "P->V[89312:89344]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 62370, Column 5: Field Element(0x473c53123d2adccb97dea9a9c20de5df9e83c749008d1192d54fb8c8fcecd8d)",
+ "P->V[89344:89376]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 62370, Column 6: Field Element(0x3bc331a4f8d62ab4218c1160a483f2ccd0e78096a76cd66dce6a6ce135394f2)",
+ "P->V[89376:89408]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 62370, Column 7: Field Element(0x6c7b453b41805a96c511fdd8cbcf3795c5ef7cc6743eda154114194f88cac3c)",
+ "P->V[89408:89440]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 65046, Column 0: Field Element(0x4abdac5e21b89ee6a927d69b43dcd1a40d21c80cac1851ff1e5f77902e1abe)",
+ "P->V[89440:89472]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 65046, Column 1: Field Element(0x223bf881422cee7f259f213a129bbdf5bec8c97a0c4d91d281f2256a29b755b)",
+ "P->V[89472:89504]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 65046, Column 2: Field Element(0x3146a112a4ae34b57ff0485596377084cc5c587192b30ff3fc01aa992fa3fd7)",
+ "P->V[89504:89536]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 65046, Column 3: Field Element(0x5597ef0dd6a77dcd5de1d73bf5435d125235921a6403a1e2118dfe5948dec2d)",
+ "P->V[89536:89568]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 65046, Column 4: Field Element(0x4c2f843ae3edba833a52fe6531e265e4e2a2c4b9b2303517f0d205afcf09993)",
+ "P->V[89568:89600]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 65046, Column 5: Field Element(0x35662240c9c1fb3fc4124770c7016d3f9a513640cce44b7e908d06729753912)",
+ "P->V[89600:89632]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 65046, Column 6: Field Element(0x3d4c1bf3fb510256111f45d202c4cfadab6ea48331047fe362035dee2c3765c)",
+ "P->V[89632:89664]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 66785: Hash(0x35b6d43291b398136097c150d91cf758f5106bf524b54daef30b3935952719c)",
+ "P->V[89664:89696]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 67246: Hash(0x7902b081835032ccf51bb02bda575cf4dba433d3d551cd86a0f5884e59fb1e4)",
+ "P->V[89696:89728]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 71508: Hash(0x2c3120033c166efbebc06516a67f31fc369a4f2b403c3c68e7db0d1173db43f)",
+ "P->V[89728:89760]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 79419: Hash(0x3d2d9900878e303c6e5c4bb9eecd5ded3190496f4d3db10433211a94dce5a66)",
+ "P->V[89760:89792]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 79447: Hash(0x337e2b8496d79b42c60506b8105c3b0c892470ed8f7c7b002da3062ba64eb9d)",
+ "P->V[89792:89824]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 90112: Hash(0x576b54b26afcc0607e7fde4dcb13340ce08d4cc95ac62ec369c460d5fa1525b)",
+ "P->V[89824:89856]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 91505: Hash(0x6b95bddec74f7f42f49e542e34c1ebda85431bce8ca826347f81afb10a8adac)",
+ "P->V[89856:89888]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 92236: Hash(0xf645f2bdb84461b95cabd81b1eec54eabd1f7db88840269c8ecdbb1c5f4559)",
+ "P->V[89888:89920]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 96672: Hash(0x3d58d8db9960f7545c70f44032ca6049e9f1acc33d7e7be9db7803f7f544a33)",
+ "P->V[89920:89952]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 100879: Hash(0x24335e57620ba398232bd28124df7c08edd13e284e5517d7238f4239e4ccc5a)",
+ "P->V[89952:89984]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 101780: Hash(0x6df09f5d363a1d930756006bbe9d710302061441de81019405eef4c16fd8a18)",
+ "P->V[89984:90016]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 101937: Hash(0x33e6d9e99c9b52ac3990844aa78dbb03cca82e4483c7143252843b7a572fcd9)",
+ "P->V[90016:90048]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 102148: Hash(0x7066537556f0a88351c12adc387d7a4bdf3f9314a3646133316e438bef410ed)",
+ "P->V[90048:90080]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 102484: Hash(0x7ade82fe42eeef290d3bcb6771409e532abfee2e6b951bb6a7c4e86090752b5)",
+ "P->V[90080:90112]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 103519: Hash(0x78fb0b136911f1ed6d66a5f03f32c94b0ba2c876149473e0e4a71ba5b502712)",
+ "P->V[90112:90144]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 105443: Hash(0x20df2a152d99cc5fda99ee80a260c98a95d5c4f5c707476f36d91fa297de780)",
+ "P->V[90144:90176]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 106413: Hash(0x5f319de7bcdbf42f8ecb914fc415f926e7f00f3427fb7c9b385bf7a6f8925f2)",
+ "P->V[90176:90208]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 107662: Hash(0x63149e7f3896fdf78419185025ce159ae10669a48226b6e749844317a755031)",
+ "P->V[90208:90240]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 108218: Hash(0x6314149f9a240f8bfa846db9a3cc005bfd993bef52553d692cfe7b0c4d787c5)",
+ "P->V[90240:90272]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 110406: Hash(0x3cf1268ecce1fe7bc56d0ea762e3906d1d3dc9d6cdc4bd7ed4c5910b84abec4)",
+ "P->V[90272:90304]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 117378: Hash(0x29cd6d05faf5ff2c610fc3ca4c763ba52d4858942de40259d3b517bdada81df)",
+ "P->V[90304:90336]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 117595: Hash(0x5fcc7c6f043bc1a9b9df29da02fccade08bb20f3bcca88dce622460675c456)",
+ "P->V[90336:90368]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 118074: Hash(0x54ebd6f80ddd42ecade7bb1f3dbcb4faf01d8c39f23426eb3d5760368f6d638)",
+ "P->V[90368:90400]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 118552: Hash(0x3d42e03250c02aae4902e7966d6abffa6fcdde0e9720ad81466baf490d1e205)",
+ "P->V[90400:90432]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 119681: Hash(0x57c68f5d1446f724a6674f3099e11445aef85880fdefb35920a000a22df3f0)",
+ "P->V[90432:90464]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 120992: Hash(0x3f9ad578f3b99666c48b46531e017927572c7d7899e0dc308d64dbaf7082bbb)",
+ "P->V[90464:90496]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 121394: Hash(0x4729c2933d8318565fa5b6ddebd53e647f8d8703a81e0973af8ad42a8f3b77f)",
+ "P->V[90496:90528]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 122815: Hash(0x5f74cdae3ba1b066c33834d79c9a8ef27dfc743eb8c0ca4c8aa77129609fddf)",
+ "P->V[90528:90560]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 126298: Hash(0x491a0e49865c030cf8daad83dc693995bc4bed5660497c30700206b469fbbfc)",
+ "P->V[90560:90592]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 127095: Hash(0x6a2cde9e1848e3971b54ae1e262fa75835d359c5ddb3ca4f20e15662e324816)",
+ "P->V[90592:90624]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 127907: Hash(0x270228d93003b33f1167f59e9163bef768c763384bc74ba04163422735b0714)",
+ "P->V[90624:90656]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 130583: Hash(0x49ec1f11ce7f8f2acbf91b8211ce90a8d0408106df5b449e96486116b2eac75)",
+ "P->V[90656:90688]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 33393: Hash(0x6eabb38e75303aa99f2cc70a4ca4d294d4411dd43f1c2fc2221c67bd74f28cd)",
+ "P->V[90688:90720]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 33622: Hash(0x1828128c3e745443588eb0d52e92187f6beee1ef2f9333ea0d4ec17afc862aa)",
+ "P->V[90720:90752]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 35755: Hash(0x7ed0816c55643ba0828f9f436da72aca5b5de9f198dd0034747d472edbf2e91)",
+ "P->V[90752:90784]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 39708: Hash(0x295d329bc527dd402cc089d69a67fdd9788d30aac4885f4417bba1247b6d354)",
+ "P->V[90784:90816]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 39722: Hash(0x5dd80729887b6e4d67d6bbe700b2145c64bbd1e410b46d175171235095e79a4)",
+ "P->V[90816:90848]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 45057: Hash(0x53d1328f019d58bb72f28dfb6dc33d4faa41345dd3f8166be50a86d8a1f7989)",
+ "P->V[90848:90880]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 45753: Hash(0x272d4557469955dc533690b57c24883c261d5aa117e22fc72a586f7bfe9db05)",
+ "P->V[90880:90912]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 46119: Hash(0x5fb1b6943bc8f1c21947923c07812bb12145ed57e9dcff76859a42db6df443e)",
+ "P->V[90912:90944]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 48337: Hash(0x425d0bf378a7fc197db47a4ea3234433e4ed16a97eceb28d0d1cd33c534de0)",
+ "P->V[90944:90976]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 50438: Hash(0x4a83fce21d8b7b4a1be74dda4c88692dbf059e9ad84e4c8b6dd6562e3bcf727)",
+ "P->V[90976:91008]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 50891: Hash(0x2008b2e741f4ff98cdc3cdd450f8ef2ca5ed62831b3640ced480345b67fce63)",
+ "P->V[91008:91040]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 50969: Hash(0x40742f857153c4de775242045af03baa8e87724edef34f39e1ea014afcc0927)",
+ "P->V[91040:91072]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 51075: Hash(0x69e09f433c247c58f21fdcf89072dcf96ff1f181fb0a72f64936f5621eb25c0)",
+ "P->V[91072:91104]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 51243: Hash(0x68bd768f62f820e53d23651c85a95012f180bae86fe1942217eeddf64a2527f)",
+ "P->V[91104:91136]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 51758: Hash(0x6e6c09b7e618d2b8f3b25d7866d7db81a3c95b18c0f2961a7a251bea81b45c9)",
+ "P->V[91136:91168]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 52720: Hash(0x1e576e2b3deea87eb459e63f246b09899f3ec8fbe1595ae72e4cbca33af9f6b)",
+ "P->V[91168:91200]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 53207: Hash(0x6b8232dd91112d49c6af847890631dd198ef9fe1d231b385cb9de42707e9301)",
+ "P->V[91200:91232]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 53830: Hash(0x45db8101f6718941ce67f84ae64260751220e2120df37db8d6a092fd23bce22)",
+ "P->V[91232:91264]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 54108: Hash(0x4e6382f28da63d8c5ee649811e7daf698819cb25f93f0bec0ce13ecf2b49931)",
+ "P->V[91264:91296]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 55202: Hash(0x33c8e3dd18af81647e73c0098914ad8ea0297dea988f6b5ba570f9216f6f3a4)",
+ "P->V[91296:91328]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 58688: Hash(0x67d00491eb3012ae1a09d2509489f73233d2cd73797687edfacb3add08a5f49)",
+ "P->V[91328:91360]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 58796: Hash(0x36e1617512a8748758b039a9ff460be158db8c1daff8ce895d35031de23c06a)",
+ "P->V[91360:91392]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 59036: Hash(0x316d2ca83d56c8ee2b4ede33ec6746dfcb7e021f945535e3ea0f6ad45843519)",
+ "P->V[91392:91424]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 59277: Hash(0x55dabf06c0d9fd3ddca44fa53607e16e0a13c83ddbb47d4988a18cf3eca84d4)",
+ "P->V[91424:91456]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 59841: Hash(0x144f334c2de47c9fd7e29c3943f154bd7463730298fb0d7a1f64987fe7e0c67)",
+ "P->V[91456:91488]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 60497: Hash(0x4514ba850c01eaa74f98aca654c28dc58c55b27de749f160cf3e0feb902be05)",
+ "P->V[91488:91520]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 60696: Hash(0x66c3c39b27bd2b4590ba3f71bab1593a607bb7b6310f4b6a01787916e25ba9e)",
+ "P->V[91520:91552]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 61406: Hash(0x4bf962886f57d0ac986a619ce7349dae7459dbf620da04dbeaba52723e1bc65)",
+ "P->V[91552:91584]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 63148: Hash(0xaab6822364e407942c8a05be5f2445a5dfff306220d1ea1054ad39b48b47ab)",
+ "P->V[91584:91616]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 63546: Hash(0x19734c3212f2032b025052bbffc0229f675006fdecd8f9d46ed8cc2c56bcd7c)",
+ "P->V[91616:91648]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 63952: Hash(0x1cee0769eaeaf0bafb0543fb2b8486c8d001da52e5095f7d5726d81562fc35)",
+ "P->V[91648:91680]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 65290: Hash(0x182ada99af6e09391fabc86b5495687c307aa30baf7fab0bf8b230a551f9834)",
+ "P->V[91680:91712]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 16697: Hash(0x78f7be6b3181fa8e5d785d0fe2cb9645dc12780d3915a10810aafe7aa49cbd6)",
+ "P->V[91712:91744]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 16810: Hash(0x18e3fd27b807c791f1e537875395aaeafc6edea6717441805ab287ce39b10cf)",
+ "P->V[91744:91776]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 17876: Hash(0x9363029ecefe665065fc4af820183cef0f1b14516be4d1b5ea6afa9767d4d4)",
+ "P->V[91776:91808]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 19855: Hash(0x44bc894496df186b7eb571f44ccd30ebe6993a8af070e43fe6eb346c24d76e2)",
+ "P->V[91808:91840]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 19860: Hash(0x4d96b260ebd15160b32ba0e8ce127fc910b3e69e2fa4bce64548a09a89663ba)",
+ "P->V[91840:91872]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 22529: Hash(0x32caf20ee82ddcd5b2c9c2a71aa985fb9fadceaa78893fcb95a2b23c28fad02)",
+ "P->V[91872:91904]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 22877: Hash(0x4762321cae4bdf01e6652be9cfad39f88d12aa7227cd61108cacc084353b256)",
+ "P->V[91904:91936]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 23058: Hash(0x12d2b5350dddf98adee1caf0454f2abc0e501ab92ef05050cd7df2b33707ce)",
+ "P->V[91936:91968]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 24169: Hash(0x38cbe3f4fa0be53e8d2914152882da351139059aa1335bdaf669c10df870724)",
+ "P->V[91968:92000]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 25218: Hash(0x2d69b7be0b6cc0912042ddc96fc85e44593316b20ee0889bd2604b8cc7b7161)",
+ "P->V[92000:92032]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 25444: Hash(0x4e510be34cfa1d8b643301fe4d4397abd82c4fc74845b134d449e89b44275ec)",
+ "P->V[92032:92064]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 25485: Hash(0x45b7d902f42dd309ddb095d4e39c86bd34a1c780435887e8a59f9f926705771)",
+ "P->V[92064:92096]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 25536: Hash(0x120959e2f8bc31136af23e93f86bf61b413fef682ef13eef1cf69eeb9182796)",
+ "P->V[92096:92128]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 25620: Hash(0x23480308b9c44dd470b251a69b2ee0a087629aea5fcae343539d8af1e5045c9)",
+ "P->V[92128:92160]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 25878: Hash(0xead30d217c7c8f3d65cefb2d9d214888484c62bba4ebf81358b13b95169c7b)",
+ "P->V[92160:92192]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 26361: Hash(0x7f14e08e6ec2d74b20f0fbbfacd268bb3d4bbfaea615be92e69470f86791769)",
+ "P->V[92192:92224]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 26602: Hash(0x3eb017692fa3203ba9a7ea8c192a6199e8fcd3813f0366e5cc34096f4b1d5af)",
+ "P->V[92224:92256]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 26914: Hash(0x7eacbc79ee1ada3cdfd322a169cb706246fe19746fab4173ca46ac669f4ea11)",
+ "P->V[92256:92288]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 27055: Hash(0x15587d3bf4b652f2b6d7af49ac76fb88c14ba41940340d86f66a2b480f9a9fe)",
+ "P->V[92288:92320]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 27600: Hash(0x3d7e86eab8991db6233f7912804f432a3212c8db00a1be362442bfe83a46fbc)",
+ "P->V[92320:92352]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 29345: Hash(0x1be91abcb6f2b8733328fa0459c640c0b96563362ac80d7d38ed4a3ebbff98c)",
+ "P->V[92352:92384]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 29399: Hash(0x2716302c6bf5e182869bcf31c66f970f1ca9ec5e5cfae156e6f9e02b441a373)",
+ "P->V[92384:92416]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 29519: Hash(0x3776750e1e020e5e08e9b449db963d0ca1cfa5f36c5c77fa0172bac5c4c1c98)",
+ "P->V[92416:92448]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 29639: Hash(0x3bdd943ba19bec2b72f699303a5ab2f8bac5203a1dccae6819e0c7e21a753f5)",
+ "P->V[92448:92480]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 29921: Hash(0x1bcaed3c6e55f48f015f455bb6741c8bb6b09d2de431cf3c054c3b21ab5b38a)",
+ "P->V[92480:92512]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 30249: Hash(0x1940a4459de017050f1035470eb4f8698ed5de4c6f9863b80b24db4beef1ea0)",
+ "P->V[92512:92544]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 30349: Hash(0x3e0d84920053ce90047493ce90539e3aaf0d1783c3d3f93c7608f038a7d5779)",
+ "P->V[92544:92576]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 30702: Hash(0x6034ca64ffdaefc1ccaa2660bc16353a76345d568ad467766e0bbca413051be)",
+ "P->V[92576:92608]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 31575: Hash(0x6c4da9af4df05c2cc56c36ff1281c843e50df8168e1c2cb2f67617d12f2215d)",
+ "P->V[92608:92640]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 31772: Hash(0x26ec4cc55b5f85a704824b59a1315f6b1787f50a3bc55461797779e6b995486)",
+ "P->V[92640:92672]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 31977: Hash(0xa69e1fa6b92489a2843492b62896643a31769e95cfeb88ac76e9dec231c9ae)",
+ "P->V[92672:92704]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 32644: Hash(0x52d00e685fca33ffa827412411534aa52dc12d7de898bb0af2b64fac9716670)",
+ "P->V[92704:92736]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 8349: Hash(0x6c74841d394aad21f308b606c705947705eae40f36694302a07d81e770e1893)",
+ "P->V[92736:92768]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 8404: Hash(0x2c8ea6e6852b0926b643e3a0105a15bfcdeeb1cdc90ccfe8373008d481debcc)",
+ "P->V[92768:92800]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 8939: Hash(0x7d3a5c00de7a81ba6f2da4cc3e6aa477f41359089b27736eb550de2ce6055fa)",
+ "P->V[92800:92832]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 9926: Hash(0x665cc1f79015434020ffb79b3463ff372fb2a3cb40d2eaf1f59dc9c00e7375f)",
+ "P->V[92832:92864]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 9931: Hash(0x4deca7a1ed68738c96a171c4e8490e6e4770db60cb8d33a0abe736c6d11f8b9)",
+ "P->V[92864:92896]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 11265: Hash(0x6754e068c6fc9a598f6115b131d7c2d2ae604fe33e341e58f8c55db22be1db4)",
+ "P->V[92896:92928]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 11439: Hash(0x394006700e17ed9749d7673f6c95be4a7a0426214e8b6ad29f9f36e53a2e7b6)",
+ "P->V[92928:92960]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 11528: Hash(0x3554c75bb05ec11e493be0e6910e9ad880f49b0338c643cb87e801bf2151a57)",
+ "P->V[92960:92992]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 12085: Hash(0x9433e504e755d5b7ccb3362545e3d3d8aca6420638a4f32b754bf8847e27f1)",
+ "P->V[92992:93024]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 12608: Hash(0x2fef6832a350b6cc105127ac755c089ac7fec4256ae1e2858e1958ff2b2515)",
+ "P->V[93024:93056]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 12723: Hash(0x6077fc582293c28565bc569a54ecf43113d893ccdef659464cd1aec170bd25f)",
+ "P->V[93056:93088]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 12743: Hash(0x4d52eefb0a7ccbc0a7e2a988d3120fd96e2d09a2f8b6c6060d8df86daea62c0)",
+ "P->V[93088:93120]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 12769: Hash(0x779608d87848676735245f603a06c5c143fb6f3c5cfa2df8bf8affcd36eb0ab)",
+ "P->V[93120:93152]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 12811: Hash(0x381aa736e8e06bc148e7923ca7f16a0b1fc1f44b90d3c17d8a2166127d34e66)",
+ "P->V[93152:93184]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 12938: Hash(0x35b0b8d67e613ea97477baccdfa2233819848063a5c4dfeeec1b0c6e9d07b2f)",
+ "P->V[93184:93216]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 13181: Hash(0x7d1645d393a403276defb4fc6e469ca534e1ce43d52a62c4ab8e6fd07b9997)",
+ "P->V[93216:93248]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 13300: Hash(0x32262bf593e69b86ecbcb6f13a99994a8c3725ea807d84e9adc390d49f6f9eb)",
+ "P->V[93248:93280]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 13456: Hash(0x38f51d4b1d6e1d014c6d7054b028f6b2868c096579504ce6db309798fa4b0f2)",
+ "P->V[93280:93312]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 13526: Hash(0x3782ddf3e7c15bd7c63e244ff4682605b400118e929109bd7c04af94b242b2f)",
+ "P->V[93312:93344]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 13801: Hash(0x14591332287b21c238a702f948f9650aff22d791bd745b90c9b201cc4319eb3)",
+ "P->V[93344:93376]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 14673: Hash(0xe8eaf0bf02e6e628ca0d87bb6169fc565425f8009f6597885f3b4971f54034)",
+ "P->V[93376:93408]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 14698: Hash(0x1f9514baa0fdd74a123eeefedc0746d8e6af2f29f44492627cda219753c4c1b)",
+ "P->V[93408:93440]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 14758: Hash(0x18c16895dac9fa6403a7a385b1d27a1ee2f77b14d95dffb3def40a57bfde882)",
+ "P->V[93440:93472]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 14818: Hash(0x719dc48a05cc16a7f8534a09bf31d890d161a80c91daddbb0b6952a9bef347d)",
+ "P->V[93472:93504]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 14961: Hash(0x3d16d83ffee015dc8959a1567b8b299ad057dcba679f805462b25a8fe1c26a9)",
+ "P->V[93504:93536]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 15125: Hash(0x321100f6c03cb94458704d47f251e944650c2ab07406bffbe2ef3fdb5f9102e)",
+ "P->V[93536:93568]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 15175: Hash(0x4f3961108372638f521401fa7ab508d1428057bd3f5f268efa5c6e806c23cc9)",
+ "P->V[93568:93600]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 15350: Hash(0x392e99aa80ad091a28adf6ea4cb2e6ce8e87b902234a2ce663092ad4b395ed7)",
+ "P->V[93600:93632]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 15786: Hash(0x470790f019aa1b87da6819e509abf50f4dc0e1a7a4e38c17d2778573ea45fd7)",
+ "P->V[93632:93664]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 15887: Hash(0x41baa88608a1276701771ed4fec7c024f5433dda74af56780a9737c57e4dc16)",
+ "P->V[93664:93696]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 15989: Hash(0x5e323297bc8e4bf3f56b4520813ad103fec94de94107609542385b4209316a5)",
+ "P->V[93696:93728]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 16323: Hash(0x3f4f53497bbc8fcfa210545a56815b4f5a0ad6f7219c3f9463f324cebada20f)",
+ "P->V[93728:93760]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 4175: Hash(0x3cd1b98ded657fd88b59d7e3feb99798ae5e7080681b1ac7d7f821c41993015)",
+ "P->V[93760:93792]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 4203: Hash(0x432db208612325bf0e2358fb77e306f0185f0a7e9f76f1e1d951cbcd81fe6)",
+ "P->V[93792:93824]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 4468: Hash(0x84482a3800fcb4a06e8819e14bbce7c1bb0b36869d7a2cf5ae9291ef5da257)",
+ "P->V[93824:93856]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 4962: Hash(0x69e63ee02c1443ed990eaaf363565e49587774f3740675b7f333f0c2a28b1f8)",
+ "P->V[93856:93888]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 4964: Hash(0x77de2244db3cc4ee227feb57dc601ceeb61c7f1afa52e8946df4d14454b7b15)",
+ "P->V[93888:93920]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 5633: Hash(0x22030ca8de3a931fbb00c775001293391572652daa13616964cf554bd10d8c0)",
+ "P->V[93920:93952]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 5718: Hash(0x67ea5c4e822beb2fc85d2fff4a7b2e5191fc182030c2b7a83f0c417ab198bbb)",
+ "P->V[93952:93984]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 5765: Hash(0x68643a31bcf62fa20e703b1b6fc5f2d07a20f12fcc7346746cc9bb7468413bb)",
+ "P->V[93984:94016]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 6043: Hash(0x2c6d86bdf81627863c3ac68a047eeaaa1e6d0fe36f8931007b9714f5c6a4e5c)",
+ "P->V[94016:94048]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 6305: Hash(0x526534d3824698446fbe1a74fdb0b8bef97b2481e9eda6bf9fe3085174c2b32)",
+ "P->V[94048:94080]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 6360: Hash(0x647bd0d1fa41ee9cde468e1b2035d2e4e43eccdab6c253ef276ace4a84f8e12)",
+ "P->V[94080:94112]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 6370: Hash(0x300d4175ff27e904b623f8e19ab8a720f0edfec8b994141a9e446d7d1805ce8)",
+ "P->V[94112:94144]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 6385: Hash(0x7cb36a2675a1716cae69151c655b84c5e16f076c9cca7896811005038bc6999)",
+ "P->V[94144:94176]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 6404: Hash(0x46fb1f573dca99d0bd8cb167ecf8b68e77585d0fa13071a5dddb9bef393ba9)",
+ "P->V[94176:94208]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 6468: Hash(0x3e25b13f482779d79b1415d4503c81339f9743c01e682340f08224176a5e445)",
+ "P->V[94208:94240]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 6591: Hash(0x7e8c8aaee798150b53c912c877e16b31fcd9f97f499952a2c76ad375729e126)",
+ "P->V[94240:94272]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 6651: Hash(0x56c9470e9f78dc88b33ef09f81bb43e954f222fdb24f6176fd552930a2220c0)",
+ "P->V[94272:94304]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 6729: Hash(0x2d6821889d3db8e238a6566a4ef93ff01643cad770078e654b6364b17f6a2f4)",
+ "P->V[94304:94336]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 6762: Hash(0x711e683536c0a3f3bf27fc6a682b52d44a4a72e98e339ce52d3cd3050447c6f)",
+ "P->V[94336:94368]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 6901: Hash(0x117132498285245606d44b48e2e925ba684f31c2e0173bb37debf0f08505a2b)",
+ "P->V[94368:94400]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 7337: Hash(0x3a8d105d8fbec84b06d72ac9672c457bfa5df0d838a201e5918f378e8f9a89)",
+ "P->V[94400:94432]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 7348: Hash(0x89ece3d58e0e72a844757946da9d29352162a248cb1b065e004165aaceadec)",
+ "P->V[94432:94464]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 7378: Hash(0x6aef5d6ee0a810057ac54e32e856e64c62734ec7d64bf342d172385b9acd725)",
+ "P->V[94464:94496]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 7408: Hash(0x287d98ba429a779cda99102cc1a2ce9fac436414633a9fa311c4a99e784d21d)",
+ "P->V[94496:94528]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 7481: Hash(0x6b63fb82d13d73e0225eb217c705456292a1737d0dbaefe2222d0db689c7dd2)",
+ "P->V[94528:94560]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 7563: Hash(0x451479c27694631c27d965dd48627b30eb57db286316b06c8d361c7d8d39966)",
+ "P->V[94560:94592]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 7586: Hash(0x741c3da21e0e8537aa696f56445e64d09b473881cc2458eadd603f34bbe7931)",
+ "P->V[94592:94624]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 7674: Hash(0x2fe9d572f183d9b17c96f2b3bb58d443d8eb5bdf10817bfff095d5f9f318d41)",
+ "P->V[94624:94656]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 7892: Hash(0x15ae406149617feff12d431995a769f235e2bf42242ce70ce1a785caa7e1370)",
+ "P->V[94656:94688]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 7942: Hash(0x71b3640ef09f576d1d986e3d67b61c2f5571bf5bede705aa9f2871e599d2396)",
+ "P->V[94688:94720]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 7995: Hash(0x3ed6da20d8db2e31a6aea0ec6f621bff0d2eb03e1c158b30518a3b1be0d56dc)",
+ "P->V[94720:94752]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 8160: Hash(0x3de4a9b180c72dd89c31146af1d54827943ca82a14475a15e35e5d0121ac3cf)",
+ "P->V[94752:94784]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 2086: Hash(0x1c1a8ddce0c87ffc23b563f81491c9de1b9170ae6a0817d80b409e0b02482d3)",
+ "P->V[94784:94816]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 2100: Hash(0x1796ddac14c56d1269b2f8e2cd860bffc28c1ab468db7057f602b351bc700d3)",
+ "P->V[94816:94848]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 2235: Hash(0x52b05ca37363eb01da8300c36894e5dd682cb5a65e2a19f15f4be9ca85baf7c)",
+ "P->V[94848:94880]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 2480: Hash(0x63e5de5f9ce5cf22e2a3af1cb7bdab0d4f447bc452049353d94e9fe2f5d7431)",
+ "P->V[94880:94912]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 2483: Hash(0x2d91cab74825216e584e84d46282c4157982bf53cc0eaa9191320b51f227e9)",
+ "P->V[94912:94944]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 2817: Hash(0x3dea3a29ed523e039c94b9cab6cf7bfe790150c10e32bda113f0a45ef2a3fb4)",
+ "P->V[94944:94976]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 2858: Hash(0x47941ad2924895cffb5713d7ecc625dc5c87add899979f82619ce54f5675efe)",
+ "P->V[94976:95008]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 2883: Hash(0x4b45848f3a5a6008ec72dc070169af8e5647cfaea23a388304c9b853d9fb6c6)",
+ "P->V[95008:95040]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 3020: Hash(0x1f9ab6cae0508f37c68b80fb2109ac2d3a5378a516886dbc215d5894fcf3544)",
+ "P->V[95040:95072]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 3153: Hash(0x1abc0612e98a6fc65bbe73da62b1a3fc5b6a151111b8cd580177c46232aad23)",
+ "P->V[95072:95104]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 3181: Hash(0x77377d00b4dec01df426b7a3679279edad4ac242314d37f39c9cb7f85e6b3fe)",
+ "P->V[95104:95136]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 3184: Hash(0x4f68efc88d061b5aa05db8b3237ade4eb013897fddcab3ae7ff24743fd185b8)",
+ "P->V[95136:95168]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 3193: Hash(0x570e3c840411ce0ff0c04abc6f3a6bd5d8cde70f2cb9816570e0369a04017f4)",
+ "P->V[95168:95200]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 3203: Hash(0x1c4db7f06812bcb6a2609efe23ed2b928f4d602b276041b9a09d6b0c3837f11)",
+ "P->V[95200:95232]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 3235: Hash(0x5c82b30fb213f58c047a2c84623cf7ee95998f2b3462570b3338430ac12e768)",
+ "P->V[95232:95264]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 3294: Hash(0x298b4790a6c2fd49a5a91d2d39ec8d07ac0ab6ba26c6a519f4801871a725613)",
+ "P->V[95264:95296]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 3324: Hash(0x2cc5d706ed3a9f0aa9e1e5c6c6a9042315a5cfa060639ca563b6dac50632671)",
+ "P->V[95296:95328]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 3365: Hash(0x520068831f52746d1f578411ef89eeadfea0619a464e51a2c9c9a0b00b77fa8)",
+ "P->V[95328:95360]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 3380: Hash(0x43d00889eb75e2330b4283c3c88589dc79ee175123e6cf5d00f5b7e65ca914a)",
+ "P->V[95360:95392]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 3451: Hash(0x713320e17842ad89a857b2a3502dba1757a1914a0b4a14289228cbaae1cf78b)",
+ "P->V[95392:95424]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 3669: Hash(0xb11fd3ffa128ecd0f35262fe6cb023ce42a91916335ab2eb2fe46d6074ad6b)",
+ "P->V[95424:95456]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 3675: Hash(0x127f5ce9f333ad4517cb925f52457dd4461ba53323c9788a92e181eb20ee54e)",
+ "P->V[95456:95488]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 3688: Hash(0x13ef27a228cf8cc4de4dd7ce459458156464cbb09ffde3f25edb0803d35c0c0)",
+ "P->V[95488:95520]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 3705: Hash(0x5d3315175f10f19aa5e19b83cc22404c523ed51b13bc320d4ffdf8b75b22a85)",
+ "P->V[95520:95552]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 3741: Hash(0x44b1a63e63885c6b25676635b0254d1a2f355980b0588ef53f1992c5400da4b)",
+ "P->V[95552:95584]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 3780: Hash(0x2354054675c72dc10c1adc9bd95a5ad6689d7062788a231514051ce9065f57e)",
+ "P->V[95584:95616]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 3792: Hash(0x404632f211ebd317b3ab191697399323c880461aaa92fd79e77efc81c006c51)",
+ "P->V[95616:95648]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 3836: Hash(0xe15d51d16926663094014c1610a02892fc79b6c17281d7351376b41e6bac2f)",
+ "P->V[95648:95680]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 3947: Hash(0x15fed0208bf3694f8db6014175271773b2f063900c9d15ff36dc808e820377)",
+ "P->V[95680:95712]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 3970: Hash(0x57c72bd2be05d3138d849489026462be5709a74d7875980f80b7c5c27b0ed71)",
+ "P->V[95712:95744]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 3996: Hash(0x5fe54432198a408fd4c04735341b8554edfc2178ebd0090265d725b675574e1)",
+ "P->V[95744:95776]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 4081: Hash(0x16d08f076f768f854465fc0231190d18764eb58c78440893f5ce1a5f65d9b6b)",
+ "P->V[95776:95808]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1042: Hash(0x3a02ff8af7237aca1517100698f517313ad86a5c3dd78ad6d8336a70c8c816f)",
+ "P->V[95808:95840]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1051: Hash(0x43245d82c6da092904287707f86cc5ed0f94f692842b5d0478f1cac5da7cf33)",
+ "P->V[95840:95872]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1116: Hash(0x724e7426c3c32ab4fe996efb84c8eff98604b1225bf2fcbc1e22b7d812e7e6e)",
+ "P->V[95872:95904]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1409: Hash(0x48de85960f4437a63550d0e9010b3fdb80a517e90d2011ea1b6d9ddd780f56f)",
+ "P->V[95904:95936]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1428: Hash(0x17e16a166a61d8bedefaa0381551b1c1de0b5d119ec3bc4898cbc58061795fb)",
+ "P->V[95936:95968]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1440: Hash(0x77d79097911281bf447e49ba2e5a3be281021b9b1dbcc24469357fd5e0381ae)",
+ "P->V[95968:96000]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1511: Hash(0x2c41dcb6b84949ac175742d8079d4f371a3505d36564051845f6f2b76082549)",
+ "P->V[96000:96032]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1577: Hash(0x3dedcfc89cfa56dab5a77699d7d1cb50f078ff1606313e61a850b9ccc1d22dc)",
+ "P->V[96032:96064]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1591: Hash(0x94101a3990e9cdb8446c6db99bf006cabd0ae8fd7ec2672750a8860b4ff6a4)",
+ "P->V[96064:96096]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1593: Hash(0x15b403dbec2714d48bc2f6b3b969e8d5346e68cee36b5b057c9f5efe2f723de)",
+ "P->V[96096:96128]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1597: Hash(0x212ea0343e4c1811a3330c49cbd6b178bea430d5eb3ecbd2c19b1102c8d39ed)",
+ "P->V[96128:96160]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1600: Hash(0x6c54b37318eb4269813b17593d806df3c3ed5501d5ef6cbfef60dab702fd638)",
+ "P->V[96160:96192]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1616: Hash(0x3d04639c7bd0bb31f8de7841e4ea75aeb52fac79c26e81d0fd735a81910c53f)",
+ "P->V[96192:96224]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1646: Hash(0x442adb8ecbf51edc004510d43a42eff27340fe5327ac1f36d7122fb692e8d52)",
+ "P->V[96224:96256]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1663: Hash(0x55dea1adb1116b2ef0ca397131abac9c0961631821ff2ad2bdc557b6782ff6e)",
+ "P->V[96256:96288]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1683: Hash(0x70b4cb7801948506ef34b898be6b00312e092ffd5e8aba0208bf5bd54ae4601)",
+ "P->V[96288:96320]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1691: Hash(0x76db27691ccd5f75829a60a8bba685e99dee542b77d39fd4312eb1fd9df388d)",
+ "P->V[96320:96352]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1724: Hash(0x2220e408189bac1c5ed4565fe5b65a5b0a142009a28cd3154c45c7ac1881992)",
+ "P->V[96352:96384]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1835: Hash(0x39473ba7d3d7c150fd893178379c554ca1e677983f8449a4db6400cfb5dd909)",
+ "P->V[96384:96416]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1836: Hash(0x1c1afc270035ee28a81af3965be0cb8b0c7ca5d4608f2ce341cf77b3de5028c)",
+ "P->V[96416:96448]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1845: Hash(0x29cc2849b524ee227e364763d974b06a7b7f7c6afba8381e486f93823a5d60e)",
+ "P->V[96448:96480]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1853: Hash(0x22ebde30aff0acc8a56eb80b3fc0a92e99de611bbb83190cc1425950b067e4)",
+ "P->V[96480:96512]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1871: Hash(0x1995a62c7ec6abd14ac00e98ec1b0487e8576721c4dd40d338a8782580404aa)",
+ "P->V[96512:96544]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1891: Hash(0x5aab9dbb4b4f0d2264a343278e31438f4ef55c91f67fa93a47f2ab7b33adb42)",
+ "P->V[96544:96576]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1897: Hash(0x737e6b1dede6c29d31ab6dceec9589e824e1551f33885e794dcb0e6e9c7a79a)",
+ "P->V[96576:96608]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1919: Hash(0x1f94e73590a8225a02de00e66fdad0d702ecbad31b076cb506ddebc8d7fdeb7)",
+ "P->V[96608:96640]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1972: Hash(0x527e023e3541bd2a4b82580f6658d8434242e87f8c2332352ebf9ba84bede11)",
+ "P->V[96640:96672]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1984: Hash(0x1046277965a5159bb6e1628d723ad23f4613ed30af58bb2a9287946fdafeab1)",
+ "P->V[96672:96704]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1999: Hash(0x3ed80b7b5e1f0771b3307ccb9620e361d96d42863d3ca00b5e8b6150132a4ee)",
+ "P->V[96704:96736]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 2041: Hash(0x96506817c29c2fcbb81f3b6cbbfa2c8e967bd11ec0297646dff1ab00b85f12)",
+ "P->V[96736:96768]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 520: Hash(0x3a43afbfb659fc95de3cdaae26aaa595de4adf3a490820aae21f32a17b0c102)",
+ "P->V[96768:96800]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 524: Hash(0x6a8ee2a9212502c7ec274ff8e5eb892f6fcdc25ac7d79b00e784e834fc4774)",
+ "P->V[96800:96832]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 559: Hash(0x867391db9fc1b18a0932350aa67b596bc5d0fe59f48e2b12911a0bb436c631)",
+ "P->V[96832:96864]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 621: Hash(0x58a94b0c4bf34a0fa7caac1b82f72b0dc1ab429b7b4a7cf020ab65f7e44f399)",
+ "P->V[96864:96896]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 705: Hash(0x283d55264282fcaaa73e54a5d82e21cfa596697098bfdb05a532d3df17fe280)",
+ "P->V[96896:96928]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 715: Hash(0x4fef442ba144f5a63261d330c3b2a13bb76d76aa4424c46fb132a203c90a2d6)",
+ "P->V[96928:96960]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 721: Hash(0x630574ad556fcfcceda3f8a467901136aa6f56fd1db4f3ba955eb14629cf0f7)",
+ "P->V[96960:96992]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 754: Hash(0x3bd707f80621ac5921671488584414c3d1ea0ec06fc6304149e0c17088b6c59)",
+ "P->V[96992:97024]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 789: Hash(0x11a6b7881660f8f20628688d444d0cb8d40101b3c3c2d5ee5fb0a894469051d)",
+ "P->V[97024:97056]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 794: Hash(0x61b9dc3f643eaf8cb1456d2049404b72009a8e0f2ea8f12f657fb102ceed41e)",
+ "P->V[97056:97088]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 797: Hash(0xb4a5bc41dd411f5d0d883575073b6bf2d3683785b6a14816b59ea8f03c3ce3)",
+ "P->V[97088:97120]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 799: Hash(0x3b12f8f5a6eefc1a4430506fd65e4f5e37268267e9f0e1f2ac21123bd4a8511)",
+ "P->V[97120:97152]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 801: Hash(0x25dbb32027ed37102d32ac15c7245175e695f863bcc904e88014514984f0d90)",
+ "P->V[97152:97184]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 809: Hash(0x6d191fe6ccbb200ca359d87eda993766276723bbab59c279668b66eda9dec8a)",
+ "P->V[97184:97216]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 822: Hash(0x760df4db8267c69f72b9c131dfeaceb488d4df02e6b13dd3b5a3acb58f26ffd)",
+ "P->V[97216:97248]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 830: Hash(0x330c99614d4402395f04be283d6dfd9d8468e76e3db6ff3051bf81843274638)",
+ "P->V[97248:97280]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 840: Hash(0x4ac563f3b29e4be1a13050e734a700ee74d5432c0af9726a60c2643b9d38581)",
+ "P->V[97280:97312]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 844: Hash(0x12102378b09a179afa985e3e827e5535c23636471d28c462d5d273ace34d58a)",
+ "P->V[97312:97344]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 863: Hash(0x320446efb6bf357d3d668fcbd910756c3fc586a2ddc78c5fe3e9a73e16983ed)",
+ "P->V[97344:97376]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 916: Hash(0x37a353c9557a8e65917d377101afd1af3888454d1ddf13f3f58efff454e6198)",
+ "P->V[97376:97408]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 919: Hash(0x37d2c9d200a343cf2fe477382e391a148b2712412141d761d0b380bb288ca9b)",
+ "P->V[97408:97440]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 923: Hash(0x26160d3f15046a23beeb6b45be76c11de7df9f7b416908bfce93f729d1e5150)",
+ "P->V[97440:97472]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 927: Hash(0x671d90b65d3e7397fc7e8568529bba049231b3269b0ad7cffc6de0887152487)",
+ "P->V[97472:97504]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 934: Hash(0x697c2c64906be56c295da6d6dce7ca3da398497f879916a41855b5de4164773)",
+ "P->V[97504:97536]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 944: Hash(0x416cbbbfd67421620bf6759ddb20618d79e87dc6d753ef5c0922f474164ca19)",
+ "P->V[97536:97568]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 949: Hash(0x55eaa3f133c281aa4245eaaf2161ce0df5b95a8e3e8aee5fafa41fefdda544b)",
+ "P->V[97568:97600]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 958: Hash(0x773ad34c05eb590a4acbd54fcee8f5899f00c80ec48d692be3032b9742c10f2)",
+ "P->V[97600:97632]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 987: Hash(0x642361c0d86eff581402674993d74dab809e3dfedaa8c0b17520ac47a7f084f)",
+ "P->V[97632:97664]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 993: Hash(0x16c93cdd2136a603e2a9f8cf66bcf0c2e8d0e896362382f8ff33ee0d091983b)",
+ "P->V[97664:97696]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 998: Hash(0x12d61ad2625e87876cc40f2b433c8d6ee41981faacf826a88c8f5360763b0a5)",
+ "P->V[97696:97728]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1021: Hash(0x518fdcd882496702a0bcc9070c54491826e1488763a5526165b43101f100716)",
+ "P->V[97728:97760]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 261: Hash(0x14d7c91bff959993c8ee88b7d47adccb79b4e5e60426f9f99e406508cfdd61e)",
+ "P->V[97760:97792]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 263: Hash(0x7a51f3f5ca0ed9d7ac77556ef04f6c84ea7578a7097fb62e7610f33fd01fff4)",
+ "P->V[97792:97824]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 278: Hash(0x449cac119b4b776b7e2a9cc6e98be439a4d5cfda633aa10eb90b4ae27094d34)",
+ "P->V[97824:97856]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 311: Hash(0x298a862a2c4c6baac0006d96dadde4f715bdd530c15a5136b2ac3c934f39094)",
+ "P->V[97856:97888]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 353: Hash(0x4e8fc9752b2e7b6c982f1e10c9485bd695f1ebfde8cb3a6b73066774e61ed5c)",
+ "P->V[97888:97920]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 356: Hash(0x252fff7a145574a03b92a94346d97829b0039efa5739abfa420d0164d291b5)",
+ "P->V[97920:97952]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 361: Hash(0x598f15dcc94f225b8100e828f0cbbb7b829911cfbfd4c2f806a53f067bb4e)",
+ "P->V[97952:97984]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 376: Hash(0x28121ae51d30145ee57f314fc786f092208f957e91d5288b9cac24b6d5022b4)",
+ "P->V[97984:98016]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 395: Hash(0x4a3460b3f98be41f1b42e256b9b046fc9f7337193f23866ef660634f220784)",
+ "P->V[98016:98048]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 396: Hash(0x267491ac7080a0f9ef7de35087da14e9a62bc446221bae2253fa19c4a09f74e)",
+ "P->V[98048:98080]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 401: Hash(0x5b0231a1973d079217e6f0bc072133be1a051222d9d6479ca4e42717b12c8ef)",
+ "P->V[98080:98112]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 405: Hash(0x22f41a02fdccf9dbc8a3427b63fe3f424f051200f625e9ef4ca8e462871de8f)",
+ "P->V[98112:98144]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 410: Hash(0x1ae0d74e86f975f9e6cc56401e6ceaaac970ad188ae03f86eaedb5c31ee3aff)",
+ "P->V[98144:98176]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 414: Hash(0x4008fea03e9e1397672080d4a911ef7c1080f892f6f3f9b8b173a6e6d864925)",
+ "P->V[98176:98208]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 421: Hash(0x29284f5213b71fbe798fb55dede7558ab79c01c6d1cba9c914dbf7722d3d555)",
+ "P->V[98208:98240]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 423: Hash(0x3d7e36f78d4de5bb00792c72a2ef9ee214188f198d898589fb6f59c08bea92f)",
+ "P->V[98240:98272]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 430: Hash(0x4020c9e1e1f7249c84b3d4f5b23cad008c1d83328785882eb396a872e4475e6)",
+ "P->V[98272:98304]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 460: Hash(0x2457b152cc164d2a928f9ec2085761749486386df507a9fee292eafd354eb2)",
+ "P->V[98304:98336]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 462: Hash(0x1a27062c984349f1755d71ff8cc57f316fb0865a6bdde0620dfdcea51e851ab)",
+ "P->V[98336:98368]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 466: Hash(0x216c32614bb409335594a4a6f4d0fb8ad0abe2318cbbb8547c5b1cbdcfbc3d2)",
+ "P->V[98368:98400]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 473: Hash(0x3550974dd064112b5649a939b786a393acd9c1210ac0396904d03fa6807f11a)",
+ "P->V[98400:98432]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 475: Hash(0x69e4c60fe714ec3633ae24c60ac0cdaaaeba3066c64af19c0ec16364b6e03f2)",
+ "P->V[98432:98464]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 478: Hash(0x42eae59b480e9efa517cf65c52c0709b25566cf543d65f3cb1330c1c4f75334)",
+ "P->V[98464:98496]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 492: Hash(0xb15653ec3794441fd61005aee6b035bf5f117865716c6aa4d1674699fea3ac)",
+ "P->V[98496:98528]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 497: Hash(0x6518b26449d42114a79c22e750cfa898dc512e17d2b5d3bfea01a3ba40fb02f)",
+ "P->V[98528:98560]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 498: Hash(0x76d499c08360a26fdf4dd55480c26f5d20e6cf25661c52e7e9fc205a4eb4419)",
+ "P->V[98560:98592]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 511: Hash(0x70c21a8b40e0f3e65f3634aff13f2c4f911ac9f3517e237fdd06e86643d2b70)",
+ "P->V[98592:98624]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 138: Hash(0x420130ba3a7258dfc55784f3b79e2c61bed95088b4d64a9c587aa6d119619a3)",
+ "P->V[98624:98656]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 154: Hash(0x589437b59eb69c67b57480f584912b3b3f65c69a3d5f136f61320b4e1e02b2b)",
+ "P->V[98656:98688]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 177: Hash(0x292b62efa77b4c7e6dc30c92b122233347627ecc3a10caf0b0cc04bcec0f0c)",
+ "P->V[98688:98720]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 179: Hash(0x1f8e71999907d976555fa55a8e07f733368d69f7dd78da891a410ed33557d19)",
+ "P->V[98720:98752]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 181: Hash(0x384851e8efd85a0197671786388ba7c02c9c79051e96d3f6e36b00399b12ff5)",
+ "P->V[98752:98784]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 189: Hash(0x36859df2acc4c6479309860b77a8ec479799cc69fbda055aea1341d07684ead)",
+ "P->V[98784:98816]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 196: Hash(0x5c6484198a57f037abcb148003e43443ccf4869162ee8044df97ce0cd94805)",
+ "P->V[98816:98848]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 201: Hash(0x29fbf03a1134c357a1be8ee6a43e9d6b8d09b71e190cd55f7da4cb389b7aeb7)",
+ "P->V[98848:98880]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 203: Hash(0x502895e3c8c98ee77d2d3c6361ecd8a064f38ca599551cace0b26f8e0ea375b)",
+ "P->V[98880:98912]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 204: Hash(0x48d50aacd91c9b156ef33edca6ab6ed56b84ed7451784c002ae216924b9e5a4)",
+ "P->V[98912:98944]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 206: Hash(0x3cd6ba22077933a730d66ae59357addbd0b00a3ab745d5eea07d21f0d322851)",
+ "P->V[98944:98976]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 214: Hash(0x61cbca70fdbe5401d4d3df74a93388c7c96b3c27d9986cd7b631f516b0bbebe)",
+ "P->V[98976:99008]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 228: Hash(0x53b195d088321c672056b6fd0022a6d17d1dc5dcd41e0c6f3514e20f7f3b3ae)",
+ "P->V[99008:99040]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 232: Hash(0x74598b2351ef89104b46e26e3ccae1396dbecd2b60035f8d2becc307c512b12)",
+ "P->V[99040:99072]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 238: Hash(0x27d7b54db5cee767364590956395c4e9cc5d4a95ad548e3e9f9c6fb86fbbb5d)",
+ "P->V[99072:99104]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 247: Hash(0x7721581f7be0d2b8d6a901814cffbd93cc4ee4156bb270d49c6b0ac80dd33b6)",
+ "P->V[99104:99136]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 254: Hash(0x2c94c8828c9c56d7c906c1f728374da44aecb3d05f40294eddb735a56fea47f)",
+ "P->V[99136:99168]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 64: Hash(0x7baffef449382d6c15b344952d60bb4b710474524a7e8ba47392b782e3687c6)",
+ "P->V[99168:99200]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 68: Hash(0x75cb000bb1150b0da493fcfc20c3f8143bb89e56e13dd84a429d304ce08ccf)",
+ "P->V[99200:99232]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 76: Hash(0x4f3deaa5d3505383dbf128325b03a7a0d4ce63d8eb61e1a0c0ec573b11178d7)",
+ "P->V[99232:99264]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 91: Hash(0x40c670f78cda2a48ccadb6c2c57f90a67c29b0eb8510c2f8b01e5518f528eca)",
+ "P->V[99264:99296]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 95: Hash(0x7d5ba616c43bb29fd818df0685cf534c285d7c4ff40b869d6e15538ce5ef830)",
+ "P->V[99296:99328]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 104: Hash(0x2e0cc132ed727ec028107508202213da61708ad7b73763c63e396f171e5df20)",
+ "P->V[99328:99360]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 106: Hash(0x1694092ed0e7883b1d3426efa35b702d9571da80ae4b21b300b4429c6a0eb4f)",
+ "P->V[99360:99392]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 117: Hash(0xd9c7bec32ba5d08bd357602bb1841ccfe10e0bed24f164e603f951269f02c5)",
+ "P->V[99392:99424]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 122: Hash(0x6a30245a28d7fda047068de89265b4d0a750ea2b8caca7e4e1a6ba6b88162d2)",
+ "P->V[99424:99456]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 125: Hash(0x221b66acc077c7ca23e02d2d6ce99eb529e56e9fae0db1215c60bf38417d949)",
+ "P->V[99456:99488]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 126: Hash(0x7cdf4ed0206047353da359d30c29448d2ef04325f6c30897244b45a00a1bbbc)",
+ "P->V[99488:99520]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 33: Hash(0x627e198baeea7d3d4314614a33c71dead0d65554d3b51809136c67eff4c4879)",
+ "P->V[99520:99552]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 35: Hash(0x1b582ee5f5fa7e4aaafdef605b7f9fc5d7ba1dbb5a96306a0bfc6ef4699c144)",
+ "P->V[99552:99584]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 39: Hash(0x193bb36161901994bf7af5769979f67721bf1c27e47950fed21e2c3009fd45a)",
+ "P->V[99584:99616]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 46: Hash(0x6ac21ad29c79fed7d363e22651cbf0fd909a10e2d7b2ba0f4143272ffab22e0)",
+ "P->V[99616:99648]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 48: Hash(0x487dd00589bfb07be2affcefe8a8d2e20337367d98870010ef7a56d17045b05)",
+ "P->V[99648:99680]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 56: Hash(0x4c616cc49b28eb07446755c11447331704e075d241b7bc4950dabac771bde2a)",
+ "P->V[99680:99712]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 60: Hash(0x265530530f30a955dcb40993e118c33eb04aedabe4dd970eb6cbf326fb9d8d5)",
+ "P->V[99712:99744]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 18: Hash(0x519ee7ae52b657c156dde1f829af39ade6e08157ad3a208b250904a2d1f53d4)",
+ "P->V[99744:99776]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 27: Hash(0xe03e340810561bb6f1983300cd61fdf34afc1828e64093e3b90d6be79770d0)",
+ "P->V[99776:99808]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 10: Hash(0x15d27b0080d654f20d9c25173f7f584d4dd1d6b65474d3cebdcfd1b132d765c)",
+ "P->V[99808:99840]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 156, Column 1: Field Element(0x1d5bfbf083f4c5d58b2bb3bd26c9eb82bf6d4fdad7caa33eede7eff2baa502c)",
+ "P->V[99840:99872]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 156, Column 2: Field Element(0x6fb8944484d9e3b0615da6cfc5339d228a35d8a746962e442a6df81d8c83aab)",
+ "P->V[99872:99904]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 156, Column 3: Field Element(0x6a76bdb1cec6f1d7740a63b72045171892c463192e701b7b8e2623a9191abd4)",
+ "P->V[99904:99936]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 156, Column 4: Field Element(0x74c00b64ab8531b4cd3b83b0d5519021f5a0f74cfec683b3d7739a6caf51ba5)",
+ "P->V[99936:99968]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 156, Column 5: Field Element(0x5fe15a3cbf691113b61635be4614b3e8415ec807d689f03c46aee994d6ef5da)",
+ "P->V[99968:100000]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 156, Column 6: Field Element(0x67cc0eb49f07f7b0a1c8c2928ff265ebe07fec9b40d9f7d2206cb9516785036)",
+ "P->V[100000:100032]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 156, Column 7: Field Element(0x7cf8a4201ecf7520cdef2670f055d11936c7769ff7a7cdfdb21a449e882124)",
+ "P->V[100032:100064]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 213, Column 0: Field Element(0xb240fa97d985f5eb9b5d8219526fc32d1ba4e23d4006cffc5c511949e71e1e)",
+ "P->V[100064:100096]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 213, Column 1: Field Element(0x66f561edc4c403da23fabfed3664133649d2700b493db80dc455d060709e4ef)",
+ "P->V[100096:100128]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 213, Column 2: Field Element(0x63e95b1a1002826d10c3de79e7ce6f35427f0832c4f16ba73c66cc86d928eff)",
+ "P->V[100128:100160]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 213, Column 3: Field Element(0x615aab35480ea461ee0bcb9d083da945d57e3e286cb67f49a848c0af6ab69b8)",
+ "P->V[100160:100192]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 213, Column 4: Field Element(0x1275b4eccaeb9d9ce62ea378f92f36885c364d9fe93227d67657b78a4ffe7d2)",
+ "P->V[100192:100224]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 213, Column 5: Field Element(0x270e400a6f5f6cdda18e301fccdc3051c4d8679d407378fc076012fbc686239)",
+ "P->V[100224:100256]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 213, Column 6: Field Element(0x2ab1907d723c704fcf24e0dd9072411935a888a8ff7ea80e03cee490b72dff5)",
+ "P->V[100256:100288]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 746, Column 0: Field Element(0x8d6695c12f4d3b09c1b89bdab3e64c92eb2e8cc8d5802111e81345e6743192)",
+ "P->V[100288:100320]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 746, Column 1: Field Element(0x60e1d4d4eac081f0028bc728d3e36a7085f6e1771a1b300a6a3756c9e3adbb7)",
+ "P->V[100320:100352]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 746, Column 2: Field Element(0x4fe888e2d66ad8ad5ea90c9bb6251cfcbb9d14ae0f61a900ac829542267e5)",
+ "P->V[100352:100384]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 746, Column 3: Field Element(0x6a0ee8caaba57a2e23abada0e7e6b736cf2913dff965eb15229b2e50c315b35)",
+ "P->V[100384:100416]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 746, Column 4: Field Element(0xefbdb6ae440268e6aeb58d0169243db93890b39a77ab0133a7cb453037fca4)",
+ "P->V[100416:100448]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 746, Column 6: Field Element(0x62be9c5a4d3bcd8a813f6717baac5de814ec53fc02544af22465e69894974d0)",
+ "P->V[100448:100480]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 746, Column 7: Field Element(0x3420d53a8a8fc2342ae5b8633ee6032b39872bec5e755474122c2f1f888c0d9)",
+ "P->V[100480:100512]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 1735, Column 0: Field Element(0x7090fbbc0d1b4cfc248027f4a4cd9e53a1f2bd83d051d839fef2f0836ad0c1b)",
+ "P->V[100512:100544]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 1735, Column 1: Field Element(0x3e4bcf0ccee97e44274a8411baefb7bb2ebccb98ec58097698c529a987d6f5)",
+ "P->V[100544:100576]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 1735, Column 3: Field Element(0x7becd2797a974b3d44d80566a5d8c53219d1be8b9da631c10ccaf332537f40a)",
+ "P->V[100576:100608]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 1735, Column 4: Field Element(0x724ec83ed2a31bfb1230e4fda5ec90d9df2bdca77d958018d4852d91a17eacc)",
+ "P->V[100608:100640]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 1735, Column 5: Field Element(0x625372609eb7db9ed2511939ca0e07744c0913a35f339832ad284bf5d29fa72)",
+ "P->V[100640:100672]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 1735, Column 6: Field Element(0x7057b88640081ee23618930afe2bf45fc50f6cfeb3daf7a066ebb024b1fe9a2)",
+ "P->V[100672:100704]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 1735, Column 7: Field Element(0xf68a1ffd92131b37bc0fe4983d6ecda96c96df419299741c8a8f71ae25c3e6)",
+ "P->V[100704:100736]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 1738, Column 0: Field Element(0x2be965f5c14a6a59372b07d65f5778cc4786fc0bd47cedc101235952501a089)",
+ "P->V[100736:100768]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 1738, Column 1: Field Element(0x2c1d09f42e0c76148a7a1b47933e56bf2b9e7334d5524d3828c140c9d41b21f)",
+ "P->V[100768:100800]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 1738, Column 2: Field Element(0x206dfdb414898dd59ece5749179a4c02ca97dbf767e1998ccf58c00b8614763)",
+ "P->V[100800:100832]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 1738, Column 3: Field Element(0x984c36edc99a82132764eb2e318c45e838fb013dbbf9c92c28e38aa5c74035)",
+ "P->V[100832:100864]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 1738, Column 4: Field Element(0x4778da8deb54a674c8b45b6f72cb1aafd2f47cbda01bd15ee63d397f7b2a70c)",
+ "P->V[100864:100896]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 1738, Column 5: Field Element(0x3390cfb89aafbbf9e3c4a87d32558fdc4e9255621902bb8a08d008d36f796fa)",
+ "P->V[100896:100928]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 1738, Column 7: Field Element(0x2b0d34467396ab3fa05dac5adbe3aead74987e8cf03f56f8a0987ff9076eb9f)",
+ "P->V[100928:100960]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3072, Column 0: Field Element(0x59694eb53f419bdabf08b24af995709b35bb7e7aa673f25f4368deeb50142c7)",
+ "P->V[100960:100992]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3072, Column 2: Field Element(0x5b074c4d98e75a04aee9ed530f62a02c3ae70c54490613343ace02d412496c)",
+ "P->V[100992:101024]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3072, Column 3: Field Element(0x312221144bc5c7837901df90358d7d2a058d60b31d89adb0603f2722792584b)",
+ "P->V[101024:101056]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3072, Column 4: Field Element(0x2a7523e7d6601c8a849911ca486abef967002abc1f4bae715e7d708d3773009)",
+ "P->V[101056:101088]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3072, Column 5: Field Element(0x29e3054aa53ca4b6e5ed25837cd6c25dc8ed22b3825565f7fe6086284d94907)",
+ "P->V[101088:101120]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3072, Column 6: Field Element(0x313815a183b67c024681bf0ef3757faf8d4d802939d454f5b76cd5b765e37ba)",
+ "P->V[101120:101152]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3072, Column 7: Field Element(0x7ea712dea9f3926d4386e7cbcb8e2b3f72f3813f5a6e63a13616b38321e721d)",
+ "P->V[101152:101184]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3246, Column 1: Field Element(0x736f36451d87023bdac79362bced912a1bb6167f427515a46fad8e6574a8269)",
+ "P->V[101184:101216]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3246, Column 2: Field Element(0x540877a3d5230ed8cc4c642e66dc9c26cc73acee591a4e9ffbfd86815868d20)",
+ "P->V[101216:101248]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3246, Column 3: Field Element(0x30dd48076b05cb2d8662c9b47d6e8f3a92528e08f6e918c31df7e7ca1b79931)",
+ "P->V[101248:101280]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3246, Column 4: Field Element(0xdc241cf967aedcd09f3975c4686776a20fd4820b2a61518106a82a8bc6f6af)",
+ "P->V[101280:101312]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3246, Column 5: Field Element(0xcefdc28044a4483e2a256ba215aab88589e74c60f912ee692d1d7a37a843ad)",
+ "P->V[101312:101344]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3246, Column 6: Field Element(0x1c07217c637cb34c8782540d4365d93395f6935d811f44e0078d642812cf588)",
+ "P->V[101344:101376]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3246, Column 7: Field Element(0x536e941793053ac11d3dd185dba9787a0b904aa66d9db5594749558415f3316)",
+ "P->V[101376:101408]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3337, Column 0: Field Element(0x69de0f35d4cfd3ae93c710a036a70d8f553b1ccf879ed1226ed710689eb71f0)",
+ "P->V[101408:101440]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3337, Column 1: Field Element(0x38470e842fbe73e26191a05c842eec897012de17dc869a0a657835f9ef1b443)",
+ "P->V[101440:101472]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3337, Column 2: Field Element(0x2d1a55e7e7f66b8b6f523353f0e74bf9fae8beea7f72dec1ed78f263cbfcf89)",
+ "P->V[101472:101504]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3337, Column 3: Field Element(0x58e2b90a4c763f5532c9a5f156e937d9b826f4453612a47e2e294ac02db8a8a)",
+ "P->V[101504:101536]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3337, Column 4: Field Element(0x3ac98ce61f0e7f03507516b9340590ac7c244299e50028fea0d49b52e32db2a)",
+ "P->V[101536:101568]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3337, Column 6: Field Element(0x5c356cb2c4b7b10087f272e2b3ac582609106935fb9a1155698e868e8b82a44)",
+ "P->V[101568:101600]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3337, Column 7: Field Element(0x766e71bfa92df06f0e0978e4ad2105e6eeffd4528ecab35b1cc4e7e17d43af0)",
+ "P->V[101600:101632]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3892, Column 0: Field Element(0x14113086c5367a8868d692149262916444a74c6ea9884f06c7a4e4f45a99acf)",
+ "P->V[101632:101664]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3892, Column 2: Field Element(0x2c987448255880a5d3597b048c705d78e5e18db4706d0e14f223de4dfe8c413)",
+ "P->V[101664:101696]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3892, Column 3: Field Element(0x7924ddb3cf97d1bab610057443623f0176a28244702dc39b87f1bc7adb5dd9a)",
+ "P->V[101696:101728]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3892, Column 4: Field Element(0x145bc1ac1972a03f2c88f39d6ec725f0669bf5063be568c9ae7b961e8a202b2)",
+ "P->V[101728:101760]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3892, Column 5: Field Element(0x320efdc9872bb9cffd4d8d96c40e3270ffc07fa9f584db2681d050791113782)",
+ "P->V[101760:101792]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3892, Column 6: Field Element(0x5570049518aae91c799bf97c8f3ed38806fbdbbbcef328e4dd329af65b9b5fc)",
+ "P->V[101792:101824]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3892, Column 7: Field Element(0x25264d0e8d47b8975149dfe15c4cb9a141e64fba40882b5bcd9b12d33c485b8)",
+ "P->V[101824:101856]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4417, Column 0: Field Element(0x17efc49c3c9f6556f9b9f9d980eefbc99f0fc49ef292bdf7b3f1bf2e81e3d00)",
+ "P->V[101856:101888]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4417, Column 1: Field Element(0xa7713448b7b188924fdf8e4825be1a33becb6a22b7334753d10b5badc6090a)",
+ "P->V[101888:101920]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4417, Column 2: Field Element(0x2509b8f41427bad335c1b680bc69ffb30414441f7e4985b20d7257f65d90dad)",
+ "P->V[101920:101952]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4417, Column 3: Field Element(0x17a18f81952fd4d4ae2ab9007537f3be310327d8efad87813a9a9b17a504c17)",
+ "P->V[101952:101984]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4417, Column 4: Field Element(0x379b488967c2e96693b15b3cf883e5aa271cec8ab79048e6823d8a040ded81b)",
+ "P->V[101984:102016]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4417, Column 5: Field Element(0x3cbb6a92d39044ed72d56d43fecc8d16944d8857fcbb3d9cc6381c3f7709329)",
+ "P->V[102016:102048]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4417, Column 7: Field Element(0xda268fa6fc18e245a7daf36b2dba858af8dafdb990eb4e1678aa5392adf17)",
+ "P->V[102048:102080]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4530, Column 0: Field Element(0x39695738b7925d2238f10523b18b1b786c0a892920dfc5227e1c70331e3c345)",
+ "P->V[102080:102112]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4530, Column 1: Field Element(0x63fadb818a3874e634850dc569621b418c9942ce424f457664c22b2ac23036b)",
+ "P->V[102112:102144]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4530, Column 2: Field Element(0x4ccfc485a4c673e13108fb0153c6cdfa6cfa9597b45ced1ee86a966cb7ee002)",
+ "P->V[102144:102176]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4530, Column 3: Field Element(0x301e93295c213b5e0f36f1cd35833961e2d1ce54653ea52ff040780a9459a00)",
+ "P->V[102176:102208]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4530, Column 4: Field Element(0x532d255d51f8ac9a27d57d8ef678ddc3a772088583e8f0c493ac30749248441)",
+ "P->V[102208:102240]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4530, Column 6: Field Element(0x9b87936b9c6fb063b697a791b03e668e0926aa396af33047a097956ed1574e)",
+ "P->V[102240:102272]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4530, Column 7: Field Element(0x267518a73747179c6aaa9341d73d02d6fb8c81873a191e213ca95f05c6abfc1)",
+ "P->V[102272:102304]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4550, Column 1: Field Element(0x4a7b15a3b7dae204b94d7e02fae5b1c8e76352176010ce9b63153d395baa8e4)",
+ "P->V[102304:102336]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4550, Column 2: Field Element(0xc234572e6354947914379f07fc4f72726dff77b21c49326add7223c5df1f00)",
+ "P->V[102336:102368]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4550, Column 3: Field Element(0x5d9da563cad29d4bb44f327bd7ce31da91d534d31bf251025c91538eb7d83a4)",
+ "P->V[102368:102400]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4550, Column 4: Field Element(0x28fabf5ac1b5b6956716e745e948c24f674ae4f46d66c6d524260c27ccf2071)",
+ "P->V[102400:102432]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4550, Column 5: Field Element(0x70b850a64dd28ba8164d4252c91ccc857bddbc451ec0d7cf214d174297c6c33)",
+ "P->V[102432:102464]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4550, Column 6: Field Element(0x3b6b14c2658c31b256a39816f1140bf1bd27b7fdc629bafc4165738a693b73)",
+ "P->V[102464:102496]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4550, Column 7: Field Element(0x5de774674f2b57a3745a201f0cfeb2084f82d6403a97bb5fa547ae8f3ce33bb)",
+ "P->V[102496:102528]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4576, Column 0: Field Element(0x36448aa0c949e35d086f2d4c445659284dc0c47ae2346ad6f27758430cc9d2a)",
+ "P->V[102528:102560]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4576, Column 1: Field Element(0xef4c9637c0b9782501143a0ad4a4eb32d2bb3069bb55a533a38f45527dc5a2)",
+ "P->V[102560:102592]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4576, Column 2: Field Element(0x1110467d69f5032b9a7c8d6c8fef72b2050d0e28b3ddb8fd486e4fc72dbb419)",
+ "P->V[102592:102624]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4576, Column 3: Field Element(0x74ebda7111f63ce6112d58129c652d695c291658a4c688ffb6d878f0c163623)",
+ "P->V[102624:102656]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4576, Column 4: Field Element(0x7f98f17eba12c6d9fe6423caa1b13aa66d2bf6133c6f0598e7d3eca6b3f72ed)",
+ "P->V[102656:102688]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4576, Column 6: Field Element(0x4b06651eb0db96a708482c996cd02f5bf797c88a712e6cbfbebcaf094a76a36)",
+ "P->V[102688:102720]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4576, Column 7: Field Element(0x3b6c9ed280968f9aa06837b6acdbb67d4277a7d185645a6f1af065461fdf1e2)",
+ "P->V[102720:102752]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4618, Column 0: Field Element(0x149a5b31707044965123d522f97d57f14acf68b151b9c4f2c30b4e87c682ef7)",
+ "P->V[102752:102784]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4618, Column 1: Field Element(0x6ba7fb1f06fae93b12d2b96853685e3ba502111628d16e6efecbeed91454b7d)",
+ "P->V[102784:102816]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4618, Column 2: Field Element(0xfe7cd497660a85ba9a03b7ddafb1369b6627c7cb8f432c66431ae60dcbec37)",
+ "P->V[102816:102848]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4618, Column 3: Field Element(0x420f29e8a86d309c6fcb18158871e1868a4806526eb82acfec29db65fa4cf7)",
+ "P->V[102848:102880]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4618, Column 4: Field Element(0x34f9c7646a7d1b36b5a9bcfb99426eeac0afad3b8a985bc21888208bf57effe)",
+ "P->V[102880:102912]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4618, Column 6: Field Element(0x7dd7f3fb52cb0313a4f866e0c32293b888f0365a9f6a38661b44407581adb2f)",
+ "P->V[102912:102944]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4618, Column 7: Field Element(0x39ee345e7de635b0e8328a9d1aa6edb44ac634aadd657a765a2fb8259bae9d)",
+ "P->V[102944:102976]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4747, Column 0: Field Element(0x265e5eba1e819395c437820b68bc40af7987645323353b248fca51e1ace4b8e)",
+ "P->V[102976:103008]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4747, Column 1: Field Element(0x47bba7b24b48868cf29df80bddb9e98147a67fa35a80560c2613279445cf732)",
+ "P->V[103008:103040]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4747, Column 2: Field Element(0x47eee63a9aa1a241fa9162849c1a7a545d2eec0199a87f9f1ee9b7361762d7)",
+ "P->V[103040:103072]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4747, Column 3: Field Element(0x38170568741086f0e7c8772777c7386870323d252cae1588033f789dc3b998a)",
+ "P->V[103072:103104]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4747, Column 4: Field Element(0x3a71770d275319c4e0ce1c75d2e970cd1fe8cfc1eeae6498d6c3370c2598c1c)",
+ "P->V[103104:103136]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4747, Column 5: Field Element(0xb35f38a1c7c21169e66d71b6a70eb83beae253547fdcd316d101ffc39fd03)",
+ "P->V[103136:103168]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4747, Column 7: Field Element(0x1e740e61e6f2c5cb4c4cb0af6d69782ee9f3df5f2f126580104ca85c029b414)",
+ "P->V[103168:103200]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4988, Column 0: Field Element(0x77107cf7ba1a6f153580348d1898832ee8c33ca08ba15bb0b8e77fd93717117)",
+ "P->V[103200:103232]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4988, Column 1: Field Element(0x23dbe30c75e054aefe4599a3de12cb033d2fea72bd6f930c5858942f496cd2d)",
+ "P->V[103232:103264]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4988, Column 3: Field Element(0xe4d49117cdbb50f133b4c630bbd929dba7a4d4811e063558e8c43326267306)",
+ "P->V[103264:103296]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4988, Column 4: Field Element(0x66e6e456506750b152cdd3b47161347d4035b61fda9aae56797bfae1b8636aa)",
+ "P->V[103296:103328]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4988, Column 5: Field Element(0x4cd538eabd7f1174fef9388a0115579971a197d6c75f6b8a74828b7c27f41df)",
+ "P->V[103328:103360]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4988, Column 6: Field Element(0x579229fce1f37e87e6458dfafc5283c1afd83908c39eac116bb9646afb279aa)",
+ "P->V[103360:103392]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 4988, Column 7: Field Element(0x731b6727ae0bdef9d5c4f1f38f6ae2e0be4f9a3f90953a5e7b93250cafa0b2f)",
+ "P->V[103392:103424]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 5109, Column 0: Field Element(0x1db457c25d3f40f62d2a2980169d16aa540c9b0157120caf50dce357feb541d)",
+ "P->V[103424:103456]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 5109, Column 1: Field Element(0x188b75b692c7f90aeb3d3ae64d2e37a792894f9308096b9dbb01d118194d5fa)",
+ "P->V[103456:103488]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 5109, Column 2: Field Element(0x4b8db5e04c432ecdbf1fd0cffea172186cba544536082f49748688c19875508)",
+ "P->V[103488:103520]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 5109, Column 3: Field Element(0x267c49ac720daec5cfd27081ef65035a0da559c6a84098cfa99a6e8b7e4d141)",
+ "P->V[103520:103552]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 5109, Column 5: Field Element(0x5d8df3ef952e6da269e327bea2cd46cbc22645c5e34a87b4063e9efc0883230)",
+ "P->V[103552:103584]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 5109, Column 6: Field Element(0x6a5942f076645fada2efcb45c00245e93812ab370cc67bee41b6342304ce5e4)",
+ "P->V[103584:103616]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 5109, Column 7: Field Element(0x69d24c5bc85edb8304d904b16759e32b72303d926b62ed5971041282b76c6d3)",
+ "P->V[103616:103648]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 5265, Column 0: Field Element(0x7053a04c3051ab38663ae411b9733aba984f1a582638bfcab1c5f226eb57b16)",
+ "P->V[103648:103680]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 5265, Column 1: Field Element(0x10d904e13081334e0cb2e2a071e7b9225a86d914ec1ee9337828665ad594787)",
+ "P->V[103680:103712]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 5265, Column 2: Field Element(0x287bc22e39ca87e91fdc81aa08a1e8b04b123d88acca2e3b78d1a04608f01dc)",
+ "P->V[103712:103744]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 5265, Column 3: Field Element(0x3bc8c9f2eb36dd385c5d581c2174c179d6f5647fe7b4e5f1dc2e4b4279ebcef)",
+ "P->V[103744:103776]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 5265, Column 4: Field Element(0x3b1491b4497eb673b615337a61ab53a67f147952b88b7f949ab9d18432e3747)",
+ "P->V[103776:103808]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 5265, Column 5: Field Element(0x488a3b0fd220e421f606b297f44c83ac8cb9fd03321eee07a699f451d6ea772)",
+ "P->V[103808:103840]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 5265, Column 6: Field Element(0x2fdea0c6fb9719867ac1a2e39fb1f4dde5e4d2f3193750f989655c09e192ca6)",
+ "P->V[103840:103872]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 5335, Column 0: Field Element(0x4eae7fcb8b801e48cd3d41e37b391cf6ff7ef410cba3071f9b47dd1ede7c5a3)",
+ "P->V[103872:103904]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 5335, Column 1: Field Element(0x12254aa8b0e26d05a8bb06791fdee77edff724c59753f58ecbccfe055214854)",
+ "P->V[103904:103936]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 5335, Column 2: Field Element(0x60c05b52b9ca6d9b64f5c24d1ff3995812a4ed7c33e637ffed3333920f49b70)",
+ "P->V[103936:103968]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 5335, Column 4: Field Element(0x5ebabaa0e539070a828742b2873d601f01006f287011a0fcd1f3f49df081976)",
+ "P->V[103968:104000]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 5335, Column 5: Field Element(0x13de7c0eee5e8d6ec7429a0d778c16d908361818d0c975d8066dd727b6a283a)",
+ "P->V[104000:104032]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 5335, Column 6: Field Element(0x6c64e1d81f289bf1aa699b00ce13e15c0172b214c2d4fe0a804ee3f5df89908)",
+ "P->V[104032:104064]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 5335, Column 7: Field Element(0x111e4abcd5a9f38c36ab58fd73c4e27bcf3e005590187470d1d288d7354c5a4)",
+ "P->V[104064:104096]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 5608, Column 0: Field Element(0x6c5b776bca41edc6db70a9d379c7e727a9110e44c8dc4d5537b88f0d436fe7f)",
+ "P->V[104096:104128]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 5608, Column 1: Field Element(0x3a61fb0e7e3684f6a2ad0ff6402229f165cd311f91a3a957e979e66bca77621)",
+ "P->V[104128:104160]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 5608, Column 2: Field Element(0x57349eaff91f7bf48026cb1975ff034b571ffad24f306c956c9066120ab9bbc)",
+ "P->V[104160:104192]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 5608, Column 3: Field Element(0x7da1277fb35c21fc8573a3c0b4e3bc2ff8d1867bb08cb1aa8255ca92c704776)",
+ "P->V[104192:104224]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 5608, Column 4: Field Element(0x44c0dde1ff8975c7d535d2d85b183c0509e5fd12fa513cb8cfc49779a9db582)",
+ "P->V[104224:104256]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 5608, Column 5: Field Element(0x66cefeb7fc6b8f9bb87a3b34457b4e726d7361b8c6e63a586f8a433b6afc532)",
+ "P->V[104256:104288]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 5608, Column 6: Field Element(0x21a28d658d94b1645c302908f173211a0947ac24fa2cf62b0b292cfa9ecec2c)",
+ "P->V[104288:104320]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6480, Column 0: Field Element(0x65b97697be6923de308447aa5088dec81163e1f980e9510edcb9937003a050c)",
+ "P->V[104320:104352]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6480, Column 1: Field Element(0x7b40e2cbc7aef6305cd496ac8a1a8022ca2fd9a60ae21918a0ee775f75929c)",
+ "P->V[104352:104384]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6480, Column 2: Field Element(0x7061f5c1a32038c4d054159e1da1050757518a9a84ffd4eede1b2b7c8d209ed)",
+ "P->V[104384:104416]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6480, Column 4: Field Element(0x5e50d191fc357f6f4ef0962f8b87055de829e126a824adfae122a0c080f1517)",
+ "P->V[104416:104448]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6480, Column 5: Field Element(0x301b1d00568fb5cd304e808755e31e66abbb45fec10d392b1c3984912416086)",
+ "P->V[104448:104480]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6480, Column 6: Field Element(0x6868de2c884cd14bbfa632b757922350b1abbcc384772968f8677356af484bc)",
+ "P->V[104480:104512]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6480, Column 7: Field Element(0x1c2fe523b8fcd462b7ee88215e35005904889fec3f548bf3923164f8a9cb5e9)",
+ "P->V[104512:104544]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6507, Column 0: Field Element(0x11768387eff925c8b7671f821986c17ecfa9b694a9a18dcd408554144be3fa4)",
+ "P->V[104544:104576]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6507, Column 1: Field Element(0x2a9fec3c387368f2f6bcd4435235a1241ab1ec982767c1614759005e87c0d5)",
+ "P->V[104576:104608]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6507, Column 3: Field Element(0x7650a3f9e71b93fc426e05c2eae8dbf9f7456a1f216ccf6a3c3ba096fc2ae1c)",
+ "P->V[104608:104640]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6507, Column 4: Field Element(0x22734fbbfb1a5a5736a8b4791bc203ed4f00d89406d40b3d213c501022fe7c)",
+ "P->V[104640:104672]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6507, Column 5: Field Element(0x47054a8689b9943a6cd33d9461bc76efea0e0d2f0be369cce6d70fdcc2b4d8)",
+ "P->V[104672:104704]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6507, Column 6: Field Element(0x41bfcfaaf8062e39865b902009753e4356a72a93f7741397743d689c74a0c0d)",
+ "P->V[104704:104736]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6507, Column 7: Field Element(0x307e660308fdd430fe544c8eb893df622c10ad2e8e05458d2f19508c9ec91c8)",
+ "P->V[104736:104768]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6567, Column 0: Field Element(0x306936fbb6ad4f6eecfbde94d6bcf916b51d9d4268ed49fe5d6dea8e263794b)",
+ "P->V[104768:104800]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6567, Column 1: Field Element(0x549f3dd1b44844eb17f93f3b82dcf463453cb7803a2499c21aa79f3f77b6729)",
+ "P->V[104800:104832]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6567, Column 2: Field Element(0x7c0df125124dadb13ab5a1a0f27e45876444afb409a1af8d9bb418b6434b4b9)",
+ "P->V[104832:104864]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6567, Column 4: Field Element(0x3a56d2b6af0cf6746189cf11cf089df207fe5a4e1be9872f70cb0e0882b938a)",
+ "P->V[104864:104896]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6567, Column 5: Field Element(0x12184f0ddfbd7eb6b3e73da0ca47b7381afc169317a82d7e26e6481186f7a0c)",
+ "P->V[104896:104928]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6567, Column 6: Field Element(0x263b278575f85e4ed718154fe42e79903262feb94b4f6a36b3111dd48989683)",
+ "P->V[104928:104960]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6567, Column 7: Field Element(0x4706e7a3db3c237aa00c7dba10dbad8bbc510140f77780743215b1f6f719d81)",
+ "P->V[104960:104992]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6627, Column 0: Field Element(0x362eddee317cc4c6be8955cf8db19829acc640dd92c1731e7890e4892aa64c7)",
+ "P->V[104992:105024]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6627, Column 2: Field Element(0x6b10b5bfd0c96be156b3c8ea2fec6842a8ec8f4ecc8e766895988296a9ced7d)",
+ "P->V[105024:105056]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6627, Column 3: Field Element(0x6d6bdc4d7b177d47e49fbb0c94ce209e5985d46565c567e5480c137998222e9)",
+ "P->V[105056:105088]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6627, Column 4: Field Element(0x73a90467fb90f8e1b54f5e72275aa77ec216c905893b51957af3b9351e09b9a)",
+ "P->V[105088:105120]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6627, Column 5: Field Element(0x705b3e60c23859d97df412150fef231c35cb7479e1a2501ba0c736423e18018)",
+ "P->V[105120:105152]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6627, Column 6: Field Element(0x2be64ba3e81d42e55c4a378f7a24e5753bacb50e4cc08e1bd49b82b1568ae30)",
+ "P->V[105152:105184]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6627, Column 7: Field Element(0x5908c30dff3e3b2beb6b99e0c18e97fcd884168f4bf7eb7b5e6bd5051da5934)",
+ "P->V[105184:105216]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6768, Column 1: Field Element(0x609aa1bbb2ccf02f2fd18231b8fa1b82ab195e691b42a2205983a8151c9e06d)",
+ "P->V[105216:105248]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6768, Column 2: Field Element(0x66495c3be0136172c512ba7f35ab7fa3d34ec07cd3a8da58062170af060a5f6)",
+ "P->V[105248:105280]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6768, Column 3: Field Element(0x22c4c2da9fae7d04c11d683aefd9569c2cfe26bdf40a431d3f48ba6f82a0cf5)",
+ "P->V[105280:105312]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6768, Column 4: Field Element(0x3ad5f4eed18805d33f24776bda2e5e339ee82ab4da19226c9466ff2f0a30746)",
+ "P->V[105312:105344]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6768, Column 5: Field Element(0x5657010b8c3667fbe55757297c292562d90d08da2feb2743a53d1b11458d185)",
+ "P->V[105344:105376]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6768, Column 6: Field Element(0x64212c682a578f2cd408a063587deb9e33e4d714c7150f22e241caf124fab2)",
+ "P->V[105376:105408]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6768, Column 7: Field Element(0x2c99b50394fd08fd0bc67b94d8e1d1f7b58fc99606096e757e9133d8d33a7bd)",
+ "P->V[105408:105440]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6932, Column 0: Field Element(0x1bba42d74ce25fae0bc9660367fecbbd37d2230b7f8237f89170b00c30bdc29)",
+ "P->V[105440:105472]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6932, Column 2: Field Element(0x6e1935dcf2f9b5e9895316cd1e6ac6f49595f7b90ca291f05c4bacb591cb077)",
+ "P->V[105472:105504]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6932, Column 3: Field Element(0x1d9bd8ec670bc86564db050120c4fe549c32c0e4c085da8af259c59ec903a48)",
+ "P->V[105504:105536]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6932, Column 4: Field Element(0x5c72c7631128ce5ce84c7eeb75776b6caa2df995479723fe4215fd9bc851aa6)",
+ "P->V[105536:105568]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6932, Column 5: Field Element(0x7541959c521284dd8bbe16327f9252db74461475bda8c7c450308e8281b719a)",
+ "P->V[105568:105600]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6932, Column 6: Field Element(0x66ed61036f6117d9a16d340f97179b18bc5a66892318376e7e32f208a450cc7)",
+ "P->V[105600:105632]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6932, Column 7: Field Element(0x51ea0da8c3a9a5e45907779803fc28dfd6648042a4f304419a3a294f7b2bc7e)",
+ "P->V[105632:105664]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6982, Column 0: Field Element(0xbfbad03100c4161f24b4d316b6e0b2567536af3862a575f03cd80a8985ac28)",
+ "P->V[105664:105696]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6982, Column 1: Field Element(0x3da0ee39e80adb8ebb649202f90b829ceadda7ce8d925bd64f82b5f7e411038)",
+ "P->V[105696:105728]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6982, Column 2: Field Element(0x294adec6c9f4267999779658f12529076913be187df1c2d8b73646acdc637d5)",
+ "P->V[105728:105760]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6982, Column 4: Field Element(0x71ef2d64b590fd8bf40667dc6d9036250c8c5efbd8d9c280e0038df2c941466)",
+ "P->V[105760:105792]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6982, Column 5: Field Element(0x650c19f8cc2fe910f42e14d2cdc7f5755ae75d7bb81380664480b94d7e5ced1)",
+ "P->V[105792:105824]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6982, Column 6: Field Element(0x62a0e33f63aeb5556e34b8126e0e5735620131b4f5e9b9d2912a7427583dcb7)",
+ "P->V[105824:105856]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 6982, Column 7: Field Element(0x37567e50aafed7e48c2cc9f72a16a17f5b4295369fb4ecbff608e6235ef63e2)",
+ "P->V[105856:105888]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 7159, Column 0: Field Element(0x47b464a41f9a6b3c0352c410285330f7518f537508568caa237b096d86e32b6)",
+ "P->V[105888:105920]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 7159, Column 1: Field Element(0x4f91d92d5f2f2cec761fbc790c4d33db290215d40583c2a61f3d52b97b91bf6)",
+ "P->V[105920:105952]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 7159, Column 2: Field Element(0x6eb3b433befa47423dd4d760025982e4af38691d64ab8f73c0905e2107c381d)",
+ "P->V[105952:105984]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 7159, Column 3: Field Element(0x70dc6d1c1ff8a24924745739b1249454651c9499593fbc35699d80ea52b7c81)",
+ "P->V[105984:106016]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 7159, Column 4: Field Element(0x65d5329358e26d6455bdd3492482902cb2df2da99bbde70f6e54a856885845b)",
+ "P->V[106016:106048]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 7159, Column 5: Field Element(0x7f8abf4b9e8374b67ebdd3b078c0478e9a019a89101c475e62fd969199a4376)",
+ "P->V[106048:106080]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 7159, Column 7: Field Element(0x389906b1de92263dd46800ffdc67cc1979154179b7a6ff332c325a35192ede1)",
+ "P->V[106080:106112]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 7595, Column 0: Field Element(0x3242f4ab9ec233c3ad1f03d4a9d2ea924fe907914c6dfdcd470df29afabe6eb)",
+ "P->V[106112:106144]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 7595, Column 1: Field Element(0x14e2ead45942450baefab03b500f7a52acd8fbb0cfc6534ea10917096fa00c3)",
+ "P->V[106144:106176]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 7595, Column 2: Field Element(0x44012598f5458e4841b6c6295dfc1ebb398652bc28d59e608913305f27be152)",
+ "P->V[106176:106208]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 7595, Column 4: Field Element(0x211ced2d7d157227704d12927b29ee5398247b8ab4027e796740b4e1f14d37e)",
+ "P->V[106208:106240]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 7595, Column 5: Field Element(0x4b6dc44133824d75313ed4b659beaddd36909039f706f713f85d04efde9a5d4)",
+ "P->V[106240:106272]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 7595, Column 6: Field Element(0x33d93729291c318657207e034b234b5e425257365de2286280894e4e9e16456)",
+ "P->V[106272:106304]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 7595, Column 7: Field Element(0x352ebceae975ec9355e1d6dbbd42207ceb25b0772610010f996d4d5796925c6)",
+ "P->V[106304:106336]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 7694, Column 0: Field Element(0x14e0ef2b515cef70045315383a0ce2e8f911edf2a341a37655527ab8a59e98f)",
+ "P->V[106336:106368]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 7694, Column 1: Field Element(0x71167555c59c1169dcc05187b26353feed008656b615c148ae713064f1aa370)",
+ "P->V[106368:106400]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 7694, Column 2: Field Element(0x1bf5d4b930099805b24dc43cb7302302c4a16b94eba726a0dd81fc07971cf65)",
+ "P->V[106400:106432]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 7694, Column 3: Field Element(0x307ded0b3f3c9beecd3c35bb6851ad1a179680c9e87852a47ce6d83e26cfb76)",
+ "P->V[106432:106464]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 7694, Column 4: Field Element(0x58c943f8932312c660100aa315d8bd6a5f0f04ce86213a026d98eb062ce48cc)",
+ "P->V[106464:106496]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 7694, Column 5: Field Element(0x6c6f19a0aea93d31999cd7b7c281d2e3bdee240cabcae7c8ef16605d4b5b119)",
+ "P->V[106496:106528]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 7694, Column 7: Field Element(0xdcc38ad137aa50c96e575b54e416f14666777f9ef80b2438d8585336ffbfc3)",
+ "P->V[106528:106560]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 7796, Column 0: Field Element(0x606ea737ac2513eba4ebf0eac10085ffb4cb3c39e9a953580541e21f07b7268)",
+ "P->V[106560:106592]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 7796, Column 1: Field Element(0x64c67b3d9c9722ee403de5e9ab951bd59ba6a2642c02d010367f9ea6deb455d)",
+ "P->V[106592:106624]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 7796, Column 3: Field Element(0x5d6f8e5b5a69f0312231a7c0a4b4cc7b3648e03893ba9b9eb1b263751c284c2)",
+ "P->V[106624:106656]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 7796, Column 4: Field Element(0x634993b97e01f9ed2a1773d616a2194a1016e16c3cde6517a2eecfe466a4719)",
+ "P->V[106656:106688]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 7796, Column 5: Field Element(0x64aa4a621d4de2dd8553c90ad8d0d4e14ceb3cbb12c7fd578be697dd293b6de)",
+ "P->V[106688:106720]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 7796, Column 6: Field Element(0x45f5de54b56335ed273b53232af795bbcbc1a17abb053667c55bd6e9c18591f)",
+ "P->V[106720:106752]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 7796, Column 7: Field Element(0x6a9a88ad3a0f5b278abff074c6404b8f5b3cc4aa6e2765df2d066525c5cabe7)",
+ "P->V[106752:106784]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 8130, Column 0: Field Element(0x1010b669d8ca5ddbbd21c3dfac38ce5be8e4d878e41a667a59f14b30fec9547)",
+ "P->V[106784:106816]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 8130, Column 1: Field Element(0x2b1b312bd89294388ba8b13c5e0d2d2b5ff96fde5cf4efec88c5c8a552f3d)",
+ "P->V[106816:106848]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 8130, Column 2: Field Element(0x491d1b50ee17e0a533a088beb18eea2e76a5e5fb6afacaaed46ba4afd483200)",
+ "P->V[106848:106880]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 8130, Column 3: Field Element(0x5f6509da385f5a7ce725c690d59f5faa48a77ef0b31bdb4f7effe52b2d2e354)",
+ "P->V[106880:106912]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 8130, Column 4: Field Element(0x6933301aba1d9910675f26a5e6122d0514500a2b3aed3c5dd665d89667f637d)",
+ "P->V[106912:106944]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 8130, Column 5: Field Element(0xebf143025c4f8a13b914a6928de955e10e97023ee72f54d1b45e9f82edc178)",
+ "P->V[106944:106976]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 8130, Column 7: Field Element(0x688d05a22eb334ba9b18ca4efdb766a61ff3e0264f929f8e62494a5697b0a5e)",
+ "P->V[106976:107008]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 8349: Hash(0x77c083773333e1abc3eac0d2c7a00e09edea0dbe40da0502647fbf759db0aca)",
+ "P->V[107008:107040]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 8404: Hash(0x7217af1ce27ace1e6ad4ce12a9b2be4f1e03fb948ed58e62ed62dafe3b0beb)",
+ "P->V[107040:107072]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 8939: Hash(0x23d1b9b4431198b810d545dea204f03181be69b6a38e9e2abe50e03217bb950)",
+ "P->V[107072:107104]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 9926: Hash(0x969a8f667aa9730527e84dbf13aa322a6d08e45652f9e39fbb13c1a156bb4c)",
+ "P->V[107104:107136]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 9931: Hash(0x36216b487aa3aad17f79d7a5fdbc06a25f2d828934bfb9c75ce3992f520fc14)",
+ "P->V[107136:107168]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 11265: Hash(0x21d1d25d2c08d0914b2b16379e2327277f510ca6d468120bbed3afc92890243)",
+ "P->V[107168:107200]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 11439: Hash(0x28389066bb2b578a806926cf8644bbfd179800d9feb4898c44218d30c351537)",
+ "P->V[107200:107232]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 11528: Hash(0x7da84ca904d1f8a0abf58c5fe2aaefe508266965e42353ea37bbf7dc7349b14)",
+ "P->V[107232:107264]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 12085: Hash(0x11201a9805d106426483539979857801354460d978b4297bae3185b746a9a2e)",
+ "P->V[107264:107296]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 12608: Hash(0x770eafaa517daef1c23041721f43045b22c237a7c25c824d8db80c5a7304da7)",
+ "P->V[107296:107328]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 12723: Hash(0x642dbf9179ee26d0c512a9e94b3b3f08181e399c7f220b96e699aaad0ff20a6)",
+ "P->V[107328:107360]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 12743: Hash(0x3ff28390885fa5437fe21aa0530e58401c8a798926262632aeb57e6afb5d701)",
+ "P->V[107360:107392]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 12769: Hash(0x6428e542928e3b89325c7260d96c7739150d35a81ccd996267341231517102)",
+ "P->V[107392:107424]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 12811: Hash(0x74925cadd771eaafec1389a5712ef60fa0b7c59e2dfcca11bf10bc9727ef2a5)",
+ "P->V[107424:107456]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 12938: Hash(0x16e10ca0342f7efd269bc12025f8129fe0eab4dfe3be1d25b4882af3df48070)",
+ "P->V[107456:107488]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 13181: Hash(0x259ed82e5647e6df5b4c7901b372a7c495a059067f3fd2c63ec812d107cf1df)",
+ "P->V[107488:107520]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 13300: Hash(0x46ec81ed139eb254d3bb5779a89bd42aca3e0cf87ecb1722e88c271fc432a95)",
+ "P->V[107520:107552]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 13456: Hash(0x22ccce44d59c77850697b0bc20a87264d19e89246a7e36bb010f1c9a6951b8)",
+ "P->V[107552:107584]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 13526: Hash(0x5d656662a2835053e945e01b2187d1bd8ebb40d2236f0ea4dfffd940efac7e9)",
+ "P->V[107584:107616]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 13801: Hash(0x488ec9cd4135c1a8caa89d38270dad848dd946e636bc501e3b02902777c3557)",
+ "P->V[107616:107648]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 14673: Hash(0x32541e34038a8bbd1baf084ff40f9ba8f75becd99021dedd61de45960e6fdee)",
+ "P->V[107648:107680]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 14698: Hash(0x1976a3e7df8da44e4ca75820f17f000069aa753037d5c9fbb814925ab740cee)",
+ "P->V[107680:107712]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 14758: Hash(0x1458993a7c44e4a3d5eb6d150ea3dc9f28f492a2e474d4f1b9d0a63b5b654e0)",
+ "P->V[107712:107744]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 14818: Hash(0x75826757a4ee4810b1486be7a40c0498ef8e18a26a080d61a95a7affb80f153)",
+ "P->V[107744:107776]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 14961: Hash(0x24123102236d5ae335c7bea448d8b8293a4f8acc0c43c43b8ea3c015b5c6c0)",
+ "P->V[107776:107808]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 15125: Hash(0x769fb97d0812f25457e9a16859bd88a0c65e0230f8af7abc2d251535bee5539)",
+ "P->V[107808:107840]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 15175: Hash(0x6fe8f134b5ffcee18450d255f59d852286339d28df5615f53c6fa5ebf5e51ad)",
+ "P->V[107840:107872]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 15350: Hash(0x2cfc0bfa0f7f270a4d383d35ad38141d9c027fc339c75f5cd49dd9368ffd7e7)",
+ "P->V[107872:107904]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 15786: Hash(0x5bdb7e30c91402fcf53409152ebc3f810b0a11adbd33c1c6556318cc4b616f4)",
+ "P->V[107904:107936]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 15887: Hash(0x65cec369a8fe03aba01923526a7bf7c843e7ded749a0cf1fdd43dc63ccf1a73)",
+ "P->V[107936:107968]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 15989: Hash(0x3fbba1e8a7f3b954752da3da9e948df40945a936fd47b0757ec53983dd69cf3)",
+ "P->V[107968:108000]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 16323: Hash(0x40ae4c15ba99d0a51dd6b5d0e3f58ba6cd7ecac10ca714926a2f5cc14fb4c7d)",
+ "P->V[108000:108032]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 4175: Hash(0x496a1ac66e710ff3e25f6dc21dd6343d30a16e0e526e9c42e93370abd544b43)",
+ "P->V[108032:108064]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 4203: Hash(0x546e7826b7ce0a8fe76d8981d30049a873ed82232a1790618836f50744c4b47)",
+ "P->V[108064:108096]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 4468: Hash(0x4dd5100e071e6ce7a890077e96aea016196a14ea75984540b4f351285b52423)",
+ "P->V[108096:108128]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 4962: Hash(0xf40dc8910e069e7df51ad8fc11ec680a7866d38fe0c15075047d456426e1f7)",
+ "P->V[108128:108160]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 4964: Hash(0x2cf473196f6b5cfdce16a78d82f6b3aca8d1514f123cf294284768c1d1ea401)",
+ "P->V[108160:108192]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 5633: Hash(0x4aa13ba3f3fe084fe34a7aafbd15dcd6991fc9591c692be29a2a8614eb6bc54)",
+ "P->V[108192:108224]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 5718: Hash(0xa61efd00d775409cb3a6e5278711ec7649780f0d5dd29504090d25f6b08a61)",
+ "P->V[108224:108256]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 5765: Hash(0xd59c8c046e0804c24d8258ffc73db387aa5736fc55f6f2b7c6f963518c616)",
+ "P->V[108256:108288]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 6043: Hash(0xf718d797db55e0493feda210cb415e4e7684bb291f8ff6946c6a069841d6c7)",
+ "P->V[108288:108320]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 6305: Hash(0x4049d2330f40e5686fc3da651a64a02ebdfa7b025ea53f696f763a498ddb5d3)",
+ "P->V[108320:108352]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 6360: Hash(0x294c2793dab2153ac04d68260092a2cd03cf79ff00f135776e07d5b1096fc5d)",
+ "P->V[108352:108384]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 6370: Hash(0x48acdba58a854fe23cfc70c2293abe644ffcbf9fae53dcd1565f473e00a2fd4)",
+ "P->V[108384:108416]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 6385: Hash(0x40c8e412f8aee2fed19fbc88bcf05165bd6f7e192149a7dc1e9df0945c377c4)",
+ "P->V[108416:108448]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 6404: Hash(0x6b843f30ebb55dbb69fce338d25429208856b77871e6a30641aea299a4e14)",
+ "P->V[108448:108480]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 6468: Hash(0x68bd6674c2575eafbc20ffcd6b5cecd3bb63be593e5d8c99e01754271502ab3)",
+ "P->V[108480:108512]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 6591: Hash(0x26eae9159308a9f3ea32f44420efd29eeec2e2018aeadebe52a4c538595dc2b)",
+ "P->V[108512:108544]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 6651: Hash(0x14ff6f8041be821710b7b890ead6e6051aa1f71056e90d66cc0f2de9b844892)",
+ "P->V[108544:108576]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 6729: Hash(0x742c64f554454210cb6fe9d510e8750c8e67d5727fd1ce1c23f9a2e1efacd85)",
+ "P->V[108576:108608]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 6762: Hash(0x2399b5a98bfad716654ed024a518897a6dd361293ff05fceefa64a9639bf432)",
+ "P->V[108608:108640]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 6901: Hash(0x6f3b60ca5e212e403427bc5c3a690c5b281f72f8ae9b1e612f531ce686dd806)",
+ "P->V[108640:108672]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 7337: Hash(0x11330016c640654ea1958e91c5fb62d1b071d233fe2426eaf4b013eca313832)",
+ "P->V[108672:108704]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 7348: Hash(0x388f4e94d803adfcddaf6fe69cce6f14f393f2f7f8d2fc2fbcfca5aac0418db)",
+ "P->V[108704:108736]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 7378: Hash(0x53b652b41aa9003e1cb358a0afae93b062e76c2dac7ed7301fe70eb2afa74d4)",
+ "P->V[108736:108768]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 7408: Hash(0x458fa17d3614855f8c8676d935506db39b7ff421c247a973d0714ae32c5ab9d)",
+ "P->V[108768:108800]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 7481: Hash(0x49cf701daea8409de7f8c0371211ce03d04b727115a6e75365fa01767b84eea)",
+ "P->V[108800:108832]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 7563: Hash(0x65f1285551f3e5a0adfca0b90ac083d10e76c1fcb5a674b93298827b47d1c71)",
+ "P->V[108832:108864]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 7586: Hash(0x2e18806e3b6608a90074dbb2669206062586bb684c0d926c10947840e51507a)",
+ "P->V[108864:108896]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 7674: Hash(0x38b7b9a862121b75073a2b0a7ad4d8ebda03dd0d1fc2adf2b8b7c8c70192808)",
+ "P->V[108896:108928]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 7892: Hash(0x191473afeb8edf66a6f30b00a07efd6cdb4a8c8bb92f356fd3566d5fbf88320)",
+ "P->V[108928:108960]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 7942: Hash(0x52d4cc3e61e6cbdb19b18d7ed134b3f00c2785d45361f3dd9ff349dc0a95fdd)",
+ "P->V[108960:108992]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 7995: Hash(0x20567ccb55f4261fe4a9d89378eb8e4e872919570fa66806d22456f42398496)",
+ "P->V[108992:109024]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 8160: Hash(0x708d3ef1e6dc64af7c0474d3cfc7a4bdc2cb1dc8872c97639d156405e4dd126)",
+ "P->V[109024:109056]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 2086: Hash(0x3d66868fc898b32b4561843ed772ea925aec7f66d4d05c796f8d3193d5ed503)",
+ "P->V[109056:109088]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 2100: Hash(0x65f0b0c4fb50f709d10ae3606da2a34340e24791255e7140357e90959fd9520)",
+ "P->V[109088:109120]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 2235: Hash(0x9b4419d3638bd0da1c0d01918507e4d367e07ebd7d948ec0660bd1b6a85139)",
+ "P->V[109120:109152]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 2480: Hash(0x3f8135f4a088dcde5357cc0550206713a4457bf631a86e82e2b124c2d0468cc)",
+ "P->V[109152:109184]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 2483: Hash(0xfe49d894efaecc880982c7b0a8f00270d4fe672c2c8e110860bd7a91b8ebc3)",
+ "P->V[109184:109216]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 2817: Hash(0x6b88834fc77a453f547302d3b3161aa0878fb708903fd22461505b485ebc111)",
+ "P->V[109216:109248]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 2858: Hash(0x799d27c3b80a91a0437a7661d06db8f2f669f8f70e58f696beeb0893853b885)",
+ "P->V[109248:109280]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 2883: Hash(0x651f1700d5f7e8990786e0cab1dd069d4211f44f8e42bb5244386f103f5f31b)",
+ "P->V[109280:109312]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 3020: Hash(0x4dab1c66d8a11d971570ae0a021eb77343182d26aa3ff4819d266a9dd231ec)",
+ "P->V[109312:109344]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 3153: Hash(0x4a7474995dfcbcc59f61fcb60a07475dc5b3caceabc675a57746035c175ade5)",
+ "P->V[109344:109376]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 3181: Hash(0x2195a459c87bd01931b81d232ecb655fa6a63b5f8b9b2485912894618301404)",
+ "P->V[109376:109408]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 3184: Hash(0x71d16c1a9a32a7ede25c5d83e46915b94aaed6df80514ffd333952df41e2dc5)",
+ "P->V[109408:109440]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 3193: Hash(0x8202f5cfd7afcb93efd3637a8d9065d73251bb822ad520f0ec97fef5f51643)",
+ "P->V[109440:109472]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 3203: Hash(0x5fb5cf6ee55a37465acb1d85ecb09d38ba864398b9e7dfeeca550c8d33f7954)",
+ "P->V[109472:109504]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 3235: Hash(0x7bfce4ec2602a8dfb4e32467d2faa4ef210a03bf7a9ac90e3c2063a2d448e40)",
+ "P->V[109504:109536]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 3294: Hash(0x3dabb3916666d6e5793066bcabbff106a6f11d2f1c66e0de6856763381bf7eb)",
+ "P->V[109536:109568]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 3324: Hash(0x34160639c2dc4965040ed90207587703f4d80cdfa9fc8aeee66818bab784999)",
+ "P->V[109568:109600]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 3365: Hash(0x7ee4ac08c27c6ee78e2db2408be3b541f6a9acd7aa9476285470dfc9dc421d7)",
+ "P->V[109600:109632]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 3380: Hash(0x62694ace597cac35401fa28ac88ff93faa5aa91ae61cdfe45f462030afae9ef)",
+ "P->V[109632:109664]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 3451: Hash(0x23da8f187bded995c77ba9be6d9b8098e8b5a21ed1312347d6189e384fc7ba7)",
+ "P->V[109664:109696]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 3669: Hash(0x1bff85c4b1ef808143b79c38cc524e327a221e0b154b68b387dfbcf216b6a96)",
+ "P->V[109696:109728]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 3675: Hash(0x354551a712876d473184aaa08306085faad56a449a7cebb697a901a2696c6ac)",
+ "P->V[109728:109760]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 3688: Hash(0x6d42006a10777ff57e17c67f85e08829770740522ad455a4ac075dddb6b80d4)",
+ "P->V[109760:109792]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 3705: Hash(0x28c1881572b155e3b06d0c53fe7871ee910ef2e8e1404356233c7b9d8b105ba)",
+ "P->V[109792:109824]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 3741: Hash(0x52b562fe67fbb5e052445ce7a06dda46ca9aa2a27107bee201204a77bb8fd51)",
+ "P->V[109824:109856]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 3780: Hash(0x7604c5bb47865b4dbb2e674ee9d9721757c8b4e973a0defff11941ef2733e49)",
+ "P->V[109856:109888]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 3792: Hash(0x8d7d600b920c9d0920d41edcbc8f345df6bcfa32c8a8d36718ce633f0c7989)",
+ "P->V[109888:109920]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 3836: Hash(0x1252e7ebe7f23e508829a8227579524a236790635f104e6bbe5e44248273ec9)",
+ "P->V[109920:109952]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 3947: Hash(0x7dece183d560951c7f34304d25e1bd924662b5c74a3e362c21a04144ff5ec49)",
+ "P->V[109952:109984]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 3970: Hash(0x3973ac02323e7f9cd08ecb1413e351b1cde1869167e5b3b296c7182c456ba90)",
+ "P->V[109984:110016]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 3996: Hash(0x77d9fae67f8e1719d0cd23552a170fa198a4726ae16bacf5fb5e12bb0cd2e34)",
+ "P->V[110016:110048]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 4081: Hash(0x538ce5bf40ec6956425b651158cca5b9793f485123d1a514a5760ceef155cb6)",
+ "P->V[110048:110080]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1042: Hash(0x3d3e631e4678fc4e2dd9e1de392785c0c414d5de0ff5a1a9b6474e95b3a33e9)",
+ "P->V[110080:110112]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1051: Hash(0x7169a08f049ef95d1a1854df7e1d4117adfced654bc7562271f55c65a045a7c)",
+ "P->V[110112:110144]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1116: Hash(0x4799099110be25d5a838baa2f935b4fd6238c87b46fa660ba6c5530fe57099b)",
+ "P->V[110144:110176]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1409: Hash(0x150068b790d6cfb25b190f4419cbdb790909e3a61a0e87eb0d5c9f2a5eccd77)",
+ "P->V[110176:110208]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1428: Hash(0x77665311c52144679f3bfbd91301e12b9a3e486196dc67753473afbaacbc343)",
+ "P->V[110208:110240]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1440: Hash(0x4477311dd2420ecd992ed679aff7464358a8cd2c282b070adc39b0d5d64731c)",
+ "P->V[110240:110272]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1511: Hash(0x748a9bf573bcedc8bee9a318bbb5e43bb20d161e98995b4a3b73d89727f4ecb)",
+ "P->V[110272:110304]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1577: Hash(0x25fb8ddcb87b843a4502937339428c189687ac7b27b145efeffd29b2e69250b)",
+ "P->V[110304:110336]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1591: Hash(0x517946e4a5253322fafa8cae854fe9320ebf04fde52d241fd96372b54bf31b7)",
+ "P->V[110336:110368]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1593: Hash(0x7efc4c84bb3d15b794bfb4564048cec56b13c8c805f249d882903d5307cc45c)",
+ "P->V[110368:110400]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1597: Hash(0x16b01e9fe3d12f3f9cc912cd0b21b96e84adbd63641f7bd75ee4b0fcbebb8bf)",
+ "P->V[110400:110432]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1600: Hash(0x50beb1e5fc9d77cadfb48bfebea11f3ae744696bccac624f585603dd056a243)",
+ "P->V[110432:110464]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1616: Hash(0x68155df5b6dfac30f2d54c1f84741b1c353e8b7d50fb8cbe02930cdc5136c45)",
+ "P->V[110464:110496]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1646: Hash(0x5059f986954ebf06d806a590017a332e93da4b94ee232e647e3fd633aedc082)",
+ "P->V[110496:110528]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1663: Hash(0x4e717fb894b6934705df8a09d8ec86cf14c815e6449bd05d50eb65509601488)",
+ "P->V[110528:110560]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1683: Hash(0x2943d8ef471794d97c72086df04f2a00c8f394330cdb0ccd754914478418f8d)",
+ "P->V[110560:110592]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1691: Hash(0x4cecbde38773ad538eefe23d1f1ab72c915035cfa6026feeae717cba87aef77)",
+ "P->V[110592:110624]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1724: Hash(0x50f7028ff70edfe57febd9ae6637c524b7cde53e684e941b8efb674c3b88f91)",
+ "P->V[110624:110656]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1835: Hash(0x503df56554b0533404ab5baad28841d67e1cc39cf6348196840263fbddbb1d3)",
+ "P->V[110656:110688]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1836: Hash(0x4ee94403ced91095c829cb4b4ccf81638fe8db27f9b7d878abab521a26613d3)",
+ "P->V[110688:110720]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1845: Hash(0x2ecfde2d163ec6b189b40cbb2108fa0fc304bbb5457d59c3fc3597e10ebe325)",
+ "P->V[110720:110752]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1853: Hash(0x3abb5840399e6e6502716e40951251c93fc0fecf3acf2060d8038d8d08604da)",
+ "P->V[110752:110784]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1871: Hash(0x498cee234e8ebaeb811ab857660203eef590d07e79e7ffb0b8c852bae78fbbb)",
+ "P->V[110784:110816]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1891: Hash(0x49d75de29e3c1d0694e61968830faf5b6e7be2d65ee4e96f9dea1f0e45f35e9)",
+ "P->V[110816:110848]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1897: Hash(0x4ad448003d541ba94ce860215fe5d5c8c78e6089390e64bd71107990d6a7353)",
+ "P->V[110848:110880]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1919: Hash(0x558bfed518ef52e331fd2f3377bffe332dfd6c41614a09b2f97256fa469a00b)",
+ "P->V[110880:110912]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1972: Hash(0x6cf41ef9131b6c211349a8847608bb2b0cea0ad72ecc1c0306b7a9ab754c072)",
+ "P->V[110912:110944]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1984: Hash(0x5568296c6c0f0954647cae68306e13b8f0fe29c1503842ebca4f5da999c3cdc)",
+ "P->V[110944:110976]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1999: Hash(0x42f950af7a141d020dd2f10a91c9ea3a401f448913a52bcaf0c0758ea0273f7)",
+ "P->V[110976:111008]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 2041: Hash(0x229d320986757f5f63c64eccf0cc21829d77254452877cced18e70da538830c)",
+ "P->V[111008:111040]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 520: Hash(0x5d0e676ff59df91e7b8318c8d309e2ffc7cc18d4c9be247bf765ef10db4e483)",
+ "P->V[111040:111072]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 524: Hash(0x3ee134a02edf34acf0ef502f034c768ce1b9a9e1e3495a69aaef34724ea8359)",
+ "P->V[111072:111104]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 559: Hash(0xf2a20bdaf690852d508598060821f6a5a7414eea1d7f1299ca240a748bd113)",
+ "P->V[111104:111136]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 621: Hash(0x7da8c73ff645e4b24a639709ce27e5b4385abc7d09599a514cd7c8d8a98dfb8)",
+ "P->V[111136:111168]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 705: Hash(0x4f06bcee6719589537ff8a5007dd327d5cf558b1cc64051a0532d94c4fd8737)",
+ "P->V[111168:111200]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 715: Hash(0x5df3591b2204abeffabcdbd01e9faeda31f279b3e412b2948a336309a85dbb4)",
+ "P->V[111200:111232]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 721: Hash(0x5ed9a248eeeeaca6f45738e6d4bbc9e4ccd5b90277348f0aee24b65418d9f48)",
+ "P->V[111232:111264]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 754: Hash(0x583040d395a3a952da6b1f8bbd8b435b1898c8ecc48a228a83a7437c8c5601)",
+ "P->V[111264:111296]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 789: Hash(0x320be35cb977a2ea4c2c71ad5e0c90945b4056aea39d988ca0b6d5e3103b3f6)",
+ "P->V[111296:111328]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 794: Hash(0x2886a7199143b6e980afba294eef1ea2e97d6ee140d8e4b7d23c80232ec16bb)",
+ "P->V[111328:111360]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 797: Hash(0x790199731e5035df1764e31a168b212c1920a30d7299252b899363a99e2d0f5)",
+ "P->V[111360:111392]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 799: Hash(0x7be708b0300649e599cdf484e972c725aa8758db0f1744a5f4e9760fe5d7b93)",
+ "P->V[111392:111424]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 801: Hash(0x4a4e68d1f6e0093b5a37e73afc99760eff06654e535108695ae1b755d6be370)",
+ "P->V[111424:111456]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 809: Hash(0x1044830c13559bd951c993a474d6930418b2d2a51bc440c4b30acfdaadb68ff)",
+ "P->V[111456:111488]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 822: Hash(0x46b99aebfaad1d5ea8d8e997f46b6736e9fb938e08745163ef73e171157b003)",
+ "P->V[111488:111520]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 830: Hash(0x134c819415d3dff2fef019b2aa5f085a03e593564029200a8f38450c01ae3bd)",
+ "P->V[111520:111552]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 840: Hash(0x521075f0521bf550552422942554baf9995c534c3a1dcdc2080de07ea0aa80f)",
+ "P->V[111552:111584]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 844: Hash(0x79b57d1b413796102d8495b58f32960b617006e2122310e7a67fda01e852931)",
+ "P->V[111584:111616]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 863: Hash(0xc4324ed84099073d09fae7071a21fff6856937802fec0718778d08b7d20bea)",
+ "P->V[111616:111648]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 916: Hash(0x6f7f1bb8bef064de277758b23f858e94cb62be7d08030247e80ae4bd8bc12a3)",
+ "P->V[111648:111680]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 919: Hash(0x7a9f3fbee6460f922fe6d24c4d3eb37ceaf9cc9e0f9470108dd787565b88151)",
+ "P->V[111680:111712]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 923: Hash(0x3660a073e2834fc891750c7e68488bd6f5798fa345f3b401c01b70b7597ca7b)",
+ "P->V[111712:111744]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 927: Hash(0x78922baf1fcf4552817b577691b54a3807c9a2157630fe9cc9967d2b4d9481)",
+ "P->V[111744:111776]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 934: Hash(0x2ebf6e4e4138d916e94a8396ca32d2cdbe5c6f65c4bf0a8a6925f6a1ebe8ef7)",
+ "P->V[111776:111808]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 944: Hash(0x3cb7feb8ab2e3a95dbcb5eba2e52ebcc423aef4be12015983d2edd10d442ec4)",
+ "P->V[111808:111840]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 949: Hash(0x73be5346922ef9365978ab1112eee00e66884758bbcb4ca256e30d11553abf5)",
+ "P->V[111840:111872]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 958: Hash(0x415a9438bb1eba182e8ff9f3a906c44fc12b99d03f5f71b81fbd54c9dd6d07)",
+ "P->V[111872:111904]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 987: Hash(0x37d1e95d107627a260c9eb6ab01fabeaacce6e1678a94cf9f48f617aea9d05)",
+ "P->V[111904:111936]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 993: Hash(0x12a46c523acfa74b12b6492a02d27c4c918ed65d9f18ac36d26444027a31c8d)",
+ "P->V[111936:111968]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 998: Hash(0x2672bf787b3891a1d8cf310579ba6f450fdb212c51858b282828c050ca69477)",
+ "P->V[111968:112000]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1021: Hash(0x5b733aad7b65c1ffbdd8b3491a28fe70d03693e413bc5267a3837a4629ee267)",
+ "P->V[112000:112032]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 261: Hash(0x5394fd64111f35c33e5d5fae8dec640bb4e8b5db82fbcbc02d7dff2356148dd)",
+ "P->V[112032:112064]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 263: Hash(0x32b4adff006c728c5ec160d7f2228aa4b24bf35422aae1317b0270c829ead17)",
+ "P->V[112064:112096]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 278: Hash(0x2214860290e757affc023d0ba18bb3f703e152cbb3abf7d791f012a5660bc5e)",
+ "P->V[112096:112128]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 311: Hash(0x464dc0bd2b08a712919a3f5c9f46418f7eeb5f63b9113e8708c721b820c7872)",
+ "P->V[112128:112160]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 353: Hash(0x3fe2ee9e166c008609ae2926e6dc5c28c05d97c1b8ad759e33f6c85bf98ff04)",
+ "P->V[112160:112192]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 356: Hash(0x3b26c02a555f04deebf757a69aec928263d511df331a72308dbe5df435823e8)",
+ "P->V[112192:112224]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 361: Hash(0x1215a472cabc7d9b61113e949b764821dc2ec7370fa6d72470169f841714cc)",
+ "P->V[112224:112256]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 376: Hash(0x6967c6170c98194203bb791ffe90906507107564d4d0106935dc821c02dcf02)",
+ "P->V[112256:112288]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 395: Hash(0x667d22e0f7cf0de21092cf19c00d0fdd4f9cc2bb48c4e2298e8c3934ce23809)",
+ "P->V[112288:112320]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 396: Hash(0x750a00d11720fe8b595cf56ed35c4c4915d683fcd06e16a44bc8d1248676777)",
+ "P->V[112320:112352]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 401: Hash(0x5847cd3c09bdc596c6f175c2c80dedd29474c1f61f243569c37029f5f634e44)",
+ "P->V[112352:112384]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 405: Hash(0x84d5a96240d3ad974c1467132f14522c4beab53a152c6e073aef143aa8b36e)",
+ "P->V[112384:112416]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 410: Hash(0x3d451082f4b22cd0f27416d43920ebe8abe6697251b3c690992f3e4486f48f3)",
+ "P->V[112416:112448]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 414: Hash(0x8e92158316bb5521afab5e976423199368339003d58151d880af76a2110545)",
+ "P->V[112448:112480]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 421: Hash(0x7cee5757ae37a1e94fec8eff4f01b9ee3770932e371b8987a0ec5f484f20449)",
+ "P->V[112480:112512]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 423: Hash(0x6ef8d5a5278769a20164eb74564d5a99bde03601d5ddf8bc7020e2ef7ae9b14)",
+ "P->V[112512:112544]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 430: Hash(0xf6e653ec96efd4b45ecd321a009a3b334d51200d354af9f70801058b88f6a3)",
+ "P->V[112544:112576]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 460: Hash(0x2fe2d04c7c57b312f5c6057f2ebcff3ba4ec987f9c02b3b6268d1ab2e9104)",
+ "P->V[112576:112608]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 462: Hash(0x610a949e5fc0130766541c0140d4303c5227c4b79da877d460e673ec45ee486)",
+ "P->V[112608:112640]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 466: Hash(0x38e9813ac2c5b2013caf2e33d2e5f6175cd6513ac75ec09e7cd32bafa5448d6)",
+ "P->V[112640:112672]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 473: Hash(0x4f02c79e06716e30c81f4e9699efd922562f70db87be2d5bc28299fb505662d)",
+ "P->V[112672:112704]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 475: Hash(0x7259843b1f0a92d3444489979ad6b81c2c54d720b29b8e9c165938e4ff8e64a)",
+ "P->V[112704:112736]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 478: Hash(0x757c6f369ddfcd8ace3ad7c1897cfbeb20591154f97125417d2c184d94b03dd)",
+ "P->V[112736:112768]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 492: Hash(0x4a3918ff0b079be52818a2008dd5e2b88cc4e23c6e98764e1a86df542dca0be)",
+ "P->V[112768:112800]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 497: Hash(0x33d44771c70255301df28f3c6dc289c394a3d43235a05263e30ee34ac9201e2)",
+ "P->V[112800:112832]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 498: Hash(0x37b9cb10172c6c36e80cde84a4fce09a5c716091934240ec8fdf7d00d801222)",
+ "P->V[112832:112864]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 511: Hash(0x35ea3f529727478b8489e0cb2fdc54416d66842e9ad858ff35c86a4a9f8599a)",
+ "P->V[112864:112896]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 138: Hash(0x715fc65f386daf43eb09e85d8a1628f70b1c0eca53e672f3665cdf4bec112db)",
+ "P->V[112896:112928]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 154: Hash(0x228362304dd98ef40f52ab847a1d4b78f8a5b55d43e7de4277975cc6def55fc)",
+ "P->V[112928:112960]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 177: Hash(0xa8cf7e0777ffbf3e3ff1f7a7b87f43d6497d56f5c3acc83b9e9bc0b83957e4)",
+ "P->V[112960:112992]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 179: Hash(0x3bec23487fa36a4bee01ad51b094b5de13a89a4fd7453717a154d5d3d1fe0c0)",
+ "P->V[112992:113024]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 181: Hash(0x27989a5b55af19dfdae32052648e65688d3e3cbb514d922357756d4fb35e583)",
+ "P->V[113024:113056]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 189: Hash(0x6bc014e0508c9d31b0e5969a598db516f515efd12b8109170cff35e8b6fff0a)",
+ "P->V[113056:113088]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 196: Hash(0x48294119b159df9e3aabef9f4f429564e9214e10c3f0934fcc7440b2354b03c)",
+ "P->V[113088:113120]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 201: Hash(0x78ff6dd00f9e908e372f1419c4f121e562d678f0c44004b3a13329ce535ad4b)",
+ "P->V[113120:113152]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 203: Hash(0x67602d1ff05d915967f76b87395e7d3789e1947832dfebd5a03ce7c4845fb20)",
+ "P->V[113152:113184]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 204: Hash(0x1ba74a7d9f42de7d43b916f3f45546dc48bb15d88207e6eceb3c0d07e884583)",
+ "P->V[113184:113216]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 206: Hash(0x3219e2fa3cbfdbfafe44d17c56cd4d5f8862596df9894a403c75d7fffd4609e)",
+ "P->V[113216:113248]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 214: Hash(0x43f63ff8cdd087d9ecad00b2e809c55c1df78ae2eb047cd22384cf24ae447fa)",
+ "P->V[113248:113280]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 228: Hash(0x64e247d62ffb43d35265d64c32477e2218f77792b0b20e9e9cc4853cfde6fd5)",
+ "P->V[113280:113312]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 232: Hash(0x7f95e3c320524ac6a6fe8968ccd97c990d5061ac29e60dea322934ac4a5dc05)",
+ "P->V[113312:113344]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 238: Hash(0x592f7573fef02ec6f9566e8d7b6d858bd724c8b0f6f85f9347e76b0fa88b78f)",
+ "P->V[113344:113376]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 247: Hash(0x6ba764119239a517eae410427c1cfa3d00d33fc6388a2366dbe8961ef38ad52)",
+ "P->V[113376:113408]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 254: Hash(0x667a20a040853cc7756e0f1d4716ca059fec069485834eae7f04afe8c95b2b6)",
+ "P->V[113408:113440]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 64: Hash(0x74c2ff8607361370806413e2c36a6d9befdbd9b29e06abc68c42f009405cc56)",
+ "P->V[113440:113472]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 68: Hash(0x2822b7021703c13169624e3b1a79b493e41dc40844617ce867ac72ce0256d2b)",
+ "P->V[113472:113504]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 76: Hash(0x58511965e5d4ffeaa67d995cb1c8db88f14349b1fef65f387436b9b9dd3cdcc)",
+ "P->V[113504:113536]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 91: Hash(0x14acc61da89a4381926398e855355007d48092a68cd94ed9a5bf53cfbe2fa0f)",
+ "P->V[113536:113568]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 95: Hash(0x7ff51cbbe7a2f1b443659747431b49de704758807f054831df7f0e5cc7093fe)",
+ "P->V[113568:113600]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 104: Hash(0xb72ba5a4b028d579270c2b611b7f83b79ba1fe08fbfa5ddcb884aa272d9696)",
+ "P->V[113600:113632]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 106: Hash(0x3ec9cab43693ffefdbd240cd8a9005763f5d9d2d35d113e3c994bdc3ad4a489)",
+ "P->V[113632:113664]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 117: Hash(0x4099f30919feabf4cc7516ae7c729fe29c3f76aaca074380a887f4ad9b6504b)",
+ "P->V[113664:113696]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 122: Hash(0x1ecaeae75baeb73b0199d20b43f9faa7710b6cf7f921a10f122b325a05a1489)",
+ "P->V[113696:113728]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 125: Hash(0x4c4cfa5d09dc4d2c747576dffb0dd5a7430030ed7a2aaad0915339e32ef8db7)",
+ "P->V[113728:113760]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 126: Hash(0x2b7aca3e7ac9b56849c5d29a27b45f569c85bbb671e5174471e4cc794bfc8cd)",
+ "P->V[113760:113792]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 33: Hash(0x875e011078ced1589a2ddd64cf8fa860cef304250bf0d38125e8ca6bc01f77)",
+ "P->V[113792:113824]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 35: Hash(0x34198111489fecb72946ac875252d73399e74753b6f6f753d0ca31963144cba)",
+ "P->V[113824:113856]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 39: Hash(0x4527bb326b3ce6a114c005e422350ad7688f406df7f7154e7848ac12fb69358)",
+ "P->V[113856:113888]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 46: Hash(0x51e1cff3ba8afca698afdedf8205a2a81782cc4f8d4eca0085819373c5f476a)",
+ "P->V[113888:113920]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 48: Hash(0x1f3165f820964f7ade7a29f6245138baeee49543191e9c7b3960bcc544e20ef)",
+ "P->V[113920:113952]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 56: Hash(0x5fad1a0cb970deb5be6fc02f5ebd1014d52cd238192fcd3be3da080c8965479)",
+ "P->V[113952:113984]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 60: Hash(0x4ac8f3cd6d07570324b6f08bd09e82c05fe2d9f94a800f7b3272ff831c6a8ad)",
+ "P->V[113984:114016]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 18: Hash(0x24b985c990198c0e78acbe3fd571bd9157c45e8a93cf58a51e0521b3742840)",
+ "P->V[114016:114048]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 27: Hash(0x1bb641bbc641f2d500dcd88d3654c0774afa76627488b41991fc43e1b2a1dd0)",
+ "P->V[114048:114080]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 10: Hash(0x624c9041f583d61fa92d36aab40027a03408a51ee058d8fd3ae3fdd228f817c)",
+ "P->V[114080:114112]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 19, Column 0: Field Element(0x7450e3800759e9f1d31da3206c03ca4ff9fd28e4e2a8bbab36afd2e57121e53)",
+ "P->V[114112:114144]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 19, Column 1: Field Element(0x79fd86a602c396fbeeb438c15c211c9308e0018a68c3f580643f67c6e416494)",
+ "P->V[114144:114176]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 19, Column 2: Field Element(0x1bef1bf730ade6d8cd0d796c3ae833dee8878d9f8a4f55217c0f0a575674112)",
+ "P->V[114176:114208]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 19, Column 3: Field Element(0x742f7b610610ec16241f3e5a1a3a21c1d5e1f2797abf595a9c6d4950f6e96b5)",
+ "P->V[114208:114240]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 19, Column 5: Field Element(0xfc6612b306892053e6ae4f83e62209467c88c7edde9fe02e89e1d7ffb6c971)",
+ "P->V[114240:114272]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 19, Column 6: Field Element(0x10b1de0a7bc090e234e456bcb01f08dce5762c92a9ec9a3a18f338759785e85)",
+ "P->V[114272:114304]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 19, Column 7: Field Element(0x2d301872657bac8055438dcf7e96cfc3a135daf738a92e1665245fbac12ce90)",
+ "P->V[114304:114336]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 26, Column 0: Field Element(0x319c527bb98377a0bbd7c2cd6e1d74dc2ec21806fb13ee522364082e0076011)",
+ "P->V[114336:114368]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 26, Column 1: Field Element(0x45eb95d50986bf945f137b44f4bf6cc5ad69fca8ace69acf9f23eb1819e8e34)",
+ "P->V[114368:114400]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 26, Column 2: Field Element(0x1357c773517256bf4b57644db7808f434c484fc3377626b5e7042a2c0b28873)",
+ "P->V[114400:114432]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 26, Column 3: Field Element(0x3971c4ec2d532bf274fefa86c91213af1172708914fc742fbac332357b16899)",
+ "P->V[114432:114464]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 26, Column 4: Field Element(0x55cd868b604f6886d62bdb47015e991f9bac1d0d1ad8d082d506e2eb4407a0b)",
+ "P->V[114464:114496]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 26, Column 6: Field Element(0x5d95590366ca485067159c5871461d586c58badca9a38f03cf950f9ca196e46)",
+ "P->V[114496:114528]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 26, Column 7: Field Element(0x82c7f01ccd30fb97d0e1afb67655ae1a2e4b7880246baffa730c5c8e6b885e)",
+ "P->V[114528:114560]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 93, Column 0: Field Element(0x367e46052481d727b7d4044b6a4b7f25c9dc3d7e81c269c67ff701384a60330)",
+ "P->V[114560:114592]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 93, Column 1: Field Element(0x6fe2ae2f82b62fafc79e0c760fa7ad3a75d89cb8b8d7ca2146fbcc698651c9)",
+ "P->V[114592:114624]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 93, Column 3: Field Element(0x33a8e74d5eb251a37393b399d98af93db137e8ea75b8dc229a07eab67bd7ffd)",
+ "P->V[114624:114656]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 93, Column 4: Field Element(0x6423a8fe5cf86b71cdae6f90c5196b0d18aa89be419dd9cbcd8cf52e6171486)",
+ "P->V[114656:114688]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 93, Column 5: Field Element(0x224ec155fbf0cf9206f96b81a6cde5d84ec6a161fb3290a64d571403f4eb11a)",
+ "P->V[114688:114720]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 93, Column 6: Field Element(0x6ed598964984885dc490b7283bcac86ad86ade0e3baae2db17f3e9553725db3)",
+ "P->V[114720:114752]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 93, Column 7: Field Element(0x6673dab44a0bdfd7287d63721f4fd2b365baa5c2a1c9dbd5d3c246134b6d942)",
+ "P->V[114752:114784]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 216, Column 0: Field Element(0x248bb3ba44042088ccdc55b501ee2d0c35848a614e369f8a5d5b785af80cf7f)",
+ "P->V[114784:114816]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 216, Column 1: Field Element(0x282faa4123866fa58a3e9bf761eaf9a66a287d7909a8e6ada2851b0b2843531)",
+ "P->V[114816:114848]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 216, Column 2: Field Element(0x43915b6d193fac0f1654eac6620d0f20ea9ce6c2cc4986dc967564f736f90a5)",
+ "P->V[114848:114880]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 216, Column 3: Field Element(0x60f177c492924d84c7645092d0ce558919a906475cefc86864b74a0aec0c229)",
+ "P->V[114880:114912]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 216, Column 4: Field Element(0xb9e71b1e826458c335d76a797758423ae612040b193500ea497954ab9bf5c5)",
+ "P->V[114912:114944]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 216, Column 5: Field Element(0x6fd086a8fb00b63d07e574a175903cc320ab4b9e2a24066f664764ffcfa2c59)",
+ "P->V[114944:114976]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 216, Column 6: Field Element(0x2f5ae85de27a4a3567c6fb8f2ba85eb2e84d94827620d5de4c259c06c91aae4)",
+ "P->V[114976:115008]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 217, Column 0: Field Element(0x65ad4bb417160aaf98203e63c882c4f5f6dc6b7ec3dad266ee68ef44a6eab66)",
+ "P->V[115008:115040]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 217, Column 1: Field Element(0x1a7646a4f0d36324ac5002965c8c9e90c73e9d27902c54f601213e869f00c20)",
+ "P->V[115040:115072]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 217, Column 3: Field Element(0x26eaaf97757684be845a98ddfce547d5c7bd9d2efdf5301d28feb5040bb9fdb)",
+ "P->V[115072:115104]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 217, Column 4: Field Element(0x11ce2230858fa97ce0e74dbeda4606a3290348e4b88c4eba7a4b8aba9b5ff42)",
+ "P->V[115104:115136]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 217, Column 5: Field Element(0x74155b00a4918349a7528a59270da3ed5b539d21d6e8f8d8a3f5a9878983987)",
+ "P->V[115136:115168]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 217, Column 6: Field Element(0x65d20b0d4c9ca3318152969b2d2a6ea99edf929c4b898f0f09501117c5dc7bf)",
+ "P->V[115168:115200]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 217, Column 7: Field Element(0xfe4e15b924d02a7828c95a236c75df1d3d70b626792c85c591780b04ec3152)",
+ "P->V[115200:115232]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 384, Column 1: Field Element(0x492bf7a277163c0a20bcf823528c341c07923ac1aa86dbbd5a54d4768955d7e)",
+ "P->V[115232:115264]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 384, Column 2: Field Element(0x470b760b235b37b7f0c7c8b67053eb7b7a93a5da4588a0bc9e4ee482b16836c)",
+ "P->V[115264:115296]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 384, Column 3: Field Element(0x1543f8b9b1b29ffbce774d37979618fbb9dac0f86b7e97804fb4d4a8ecd0c04)",
+ "P->V[115296:115328]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 384, Column 4: Field Element(0x523b6abba9095667e8488e9928da9def870497e6f0d8f1289ac3c2fc8629556)",
+ "P->V[115328:115360]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 384, Column 5: Field Element(0x45fe0204480bfe54f499453ae2154d9626690f0c19271420495e212e0180ed9)",
+ "P->V[115360:115392]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 384, Column 6: Field Element(0x323d82c098835bdd0503ee535e3ef312ad4e721ab84c97ebbc4f7d28d178f0c)",
+ "P->V[115392:115424]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 384, Column 7: Field Element(0x6b6956e27390b2e2aefc8d0b2d57bef6febffb10960770ef98f214d31fe3e3f)",
+ "P->V[115424:115456]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 405, Column 0: Field Element(0x8e6d8aa9b6d59861f0c54106f0cdc52fe3a228c5142685f45c86d4d178711b)",
+ "P->V[115456:115488]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 405, Column 1: Field Element(0x3ec6b7a5f87de1d0ecd67caa4902602bb1591a9b85ba8de553c306f4f4c83c3)",
+ "P->V[115488:115520]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 405, Column 2: Field Element(0x7a3ebfc8aa1817707f5ce457870e6077b294edfd829937bbc5d2014af1861c)",
+ "P->V[115520:115552]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 405, Column 3: Field Element(0x4f5b9ebb0010c35544a1d9ef3cf3831d24e6ff56825035f4aad96a9422f8745)",
+ "P->V[115552:115584]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 405, Column 4: Field Element(0x1bf66d808a593fe05d15302350b6227a0b199b00d5951a71d6cf66f0c0cfba9)",
+ "P->V[115584:115616]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 405, Column 5: Field Element(0x3ce808432e2023172f6082259e7374aec3c65f5df1f47329b3beca2fdbe48a1)",
+ "P->V[115616:115648]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 405, Column 7: Field Element(0x621270be49c939f75d383ca3b13536318b2bdcff81d980299af596d84d99353)",
+ "P->V[115648:115680]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 417, Column 0: Field Element(0x6d07f208ea6e9c2c379726b90c2e38206741e868dc612b98139790e8bd4af40)",
+ "P->V[115680:115712]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 417, Column 2: Field Element(0x68581251145b3894ad546437cdc4c9118be05a79ca8f175cf4fbb32d0559a05)",
+ "P->V[115712:115744]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 417, Column 3: Field Element(0xe3f9956d4af00ad8464d9527f8d7c76dfbad52711979e72fb85766752fb152)",
+ "P->V[115744:115776]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 417, Column 4: Field Element(0x21c0f91fcf72ffe43688cedc6fbe6d9b54402770fefe357f89f19316c4a2d17)",
+ "P->V[115776:115808]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 417, Column 5: Field Element(0x5cf9096fb7ebb1ea19acf922c9609c3a87baf96725e00fdb2efa4d761c74903)",
+ "P->V[115808:115840]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 417, Column 6: Field Element(0x6e599ea4711fa346adb1af6a2f883f514fd8975c7a933bbd5959dce2040cd6e)",
+ "P->V[115840:115872]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 417, Column 7: Field Element(0x248340caf1c09951debd518e7382febca3b3b082d2aa3b29c8277e1ca54eb18)",
+ "P->V[115872:115904]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 486, Column 0: Field Element(0x3a89ca8f52e3030b436413239a82f06dd4eec26f6e80bbb68e1b2e9e747ec67)",
+ "P->V[115904:115936]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 486, Column 1: Field Element(0x4ec556845aac2408ec8b666bfeda3a626ba66d0b01191f55f9f1befd6589162)",
+ "P->V[115936:115968]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 486, Column 2: Field Element(0x6c537b78ee2bfec1f964a11dbf53b87ff74d6afb80c11fd7893faebfe476776)",
+ "P->V[115968:116000]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 486, Column 3: Field Element(0x6dc63990943078e1d5745f9d7f3c145faa52c47513be0465adb8e8f81413c6a)",
+ "P->V[116000:116032]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 486, Column 5: Field Element(0x16e5bf7c912d80b5185ae09c818d7e14b27037f039e101681a2303af882f914)",
+ "P->V[116032:116064]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 486, Column 6: Field Element(0x5548480c07792eca06f2ece704c1c870ac5456b38f85cffa0b9b3d2ddf07f89)",
+ "P->V[116064:116096]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 486, Column 7: Field Element(0x1e671174561e3f2e162b8a1aed3f9d8e19b2213f437fdd9276fa297f0b8a21)",
+ "P->V[116096:116128]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 552, Column 0: Field Element(0xa20e0716cace1307901a6a1567784818d3a8877a87474869c4ef32fe9c2ea0)",
+ "P->V[116128:116160]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 552, Column 2: Field Element(0xcb27734014e94ffa2a6b7d7e8f2dbbd468c15ba90a91f520538e0351fa3fe9)",
+ "P->V[116160:116192]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 552, Column 3: Field Element(0x50fd284e3fc6ea16c923d69dc2d2077bdab200eb6badf251b65a9a280da4b34)",
+ "P->V[116192:116224]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 552, Column 4: Field Element(0x11ea0e1789df58ed328c21e16f8f2a18f340cd90b3c14691fe61f03aa207b70)",
+ "P->V[116224:116256]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 552, Column 5: Field Element(0x15789cd16f0fd11190172be55dc7fa761bf3eeb054c2bd6d9a217cede1e879e)",
+ "P->V[116256:116288]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 552, Column 6: Field Element(0x5ca8353bf8b98c1987d4114a4060ac33f7691b7a3684e2228950082b0e88255)",
+ "P->V[116288:116320]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 552, Column 7: Field Element(0x102718688de1174b52fd389a146df6901f8c896d928038932848f427b363245)",
+ "P->V[116320:116352]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 566, Column 0: Field Element(0x5f283ab808a75515887f0ae50c9ba29f2f7877189ad49c481ccfdfcbf4db0e3)",
+ "P->V[116352:116384]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 566, Column 1: Field Element(0x74519c3235cf1c285c58e1993869f672d3a6e7d6355414e602b4aa7b7a639ce)",
+ "P->V[116384:116416]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 566, Column 3: Field Element(0x8564db9291e8ca58bb8c6848784885aba4658b16fc814e20b5e2909443cfd5)",
+ "P->V[116416:116448]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 566, Column 4: Field Element(0x453c4e3224885ccb31dd1f172f832d14e50e4a6d4f38b9e9e176cdfe99c35ba)",
+ "P->V[116448:116480]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 566, Column 5: Field Element(0x1b7260fa89a9245ea5278165eb6cdbca70e5e2263f76b75fd31309a4439138c)",
+ "P->V[116480:116512]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 566, Column 6: Field Element(0x77682f50a9c1751fda5e3086d4ce990d452f56470d2ee1fdea9422a3660dfa0)",
+ "P->V[116512:116544]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 566, Column 7: Field Element(0xd27db02023e01aebd96179ca89efa22ef268775acb72ea49744e5732f6738b)",
+ "P->V[116544:116576]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 568, Column 0: Field Element(0x62ec2913ee008b73f687ef1887614a9e928517aba775f9aca3584997e08b810)",
+ "P->V[116576:116608]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 568, Column 1: Field Element(0x56995e1f74091a1b756491983c2f97ac4e585feabe227528ac824ee0a49ad78)",
+ "P->V[116608:116640]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 568, Column 2: Field Element(0x6c7009e043e55bc03bb87c6cd0b426662365695a8d47b6930cb581bb1948bd5)",
+ "P->V[116640:116672]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 568, Column 3: Field Element(0x4817949c0ee1b2182e5dde93c70fa6caf58750c071500a7f249db5abb1d9c19)",
+ "P->V[116672:116704]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 568, Column 4: Field Element(0x1dc97a335ea4a124d409e20566dc93df61d54d23c1ca189b2d5edae754ed05b)",
+ "P->V[116704:116736]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 568, Column 5: Field Element(0x4155e4d414cf4c06ab77642cf8db844f45837877ad98c3aa60597427378aa5d)",
+ "P->V[116736:116768]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 568, Column 7: Field Element(0x46284e20798cdbb486c1e3c02071649dedee3fcb9569515577fd4953db3fb7b)",
+ "P->V[116768:116800]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 572, Column 1: Field Element(0x38ff448c20003cffd9cf2ccd7aeeaf1293e496fa20e9df8b5c0269023761de5)",
+ "P->V[116800:116832]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 572, Column 2: Field Element(0x4ae58fff1aeb0130d76f18e6896acce7f1c21ec7a50d6513f9163be661025f9)",
+ "P->V[116832:116864]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 572, Column 3: Field Element(0xdea2767ba7abb8e526a4829c89666d9f1cd3847ac4659a3a7832859bde8199)",
+ "P->V[116864:116896]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 572, Column 4: Field Element(0x1dce05158068028e6486c918d0f0a2dcc23622eefffabe21e730aa07cbdc944)",
+ "P->V[116896:116928]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 572, Column 5: Field Element(0x75542007d1649cc28ce8d743e01daf9dbbee836898d57a5329561821e8e559a)",
+ "P->V[116928:116960]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 572, Column 6: Field Element(0x6b9aa52667de2db7bd5a96a2c8472832dbf683aef25ba882c6b22898dc0dfaa)",
+ "P->V[116960:116992]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 572, Column 7: Field Element(0x470b2f4a9a2cf11b5eaa81be8194c8fdec4f3729a15d2e86276e2f51ec2605a)",
+ "P->V[116992:117024]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 577, Column 0: Field Element(0x6daf74c12097e4f7d9b04ab6184270cc4cb852e40658269aefd4ff5a6bb2129)",
+ "P->V[117024:117056]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 577, Column 1: Field Element(0x40990840716a54c25ec2a51f54ff193b41d5b8bdb98e80cab6e88fc63b1b415)",
+ "P->V[117056:117088]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 577, Column 3: Field Element(0x636b562742869e229db012f3862174520915d7360d3f2f58e15407052f41811)",
+ "P->V[117088:117120]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 577, Column 4: Field Element(0x6f8043dba588a99b2d0209a55a2f2df81e35087aa4129d68279c23bdb1e5382)",
+ "P->V[117120:117152]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 577, Column 5: Field Element(0x51ebb1af8a4de2b7031fcf613bd71467ab4cf01b1987c69ba9b9fbd833a2eb4)",
+ "P->V[117152:117184]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 577, Column 6: Field Element(0x56e525e88ef7576f6ccc49b261c9987381436f551f2f6c6e97ab36bb4fec74a)",
+ "P->V[117184:117216]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 577, Column 7: Field Element(0x7a342db6ca4a7f65ffb89a5b60a92f32e1af84a999ce76c205eac5bc245af16)",
+ "P->V[117216:117248]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 593, Column 0: Field Element(0x43f4c73ec6f7c2ff68aacf6e93a2867cd8875a9b4828e169a5a5157113b3495)",
+ "P->V[117248:117280]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 593, Column 1: Field Element(0x1d93acd39e8360940988ef7a7f09412041dffa13d597b958e3a07b96b5d6a04)",
+ "P->V[117280:117312]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 593, Column 2: Field Element(0x27e5538383514b6f369a8ede2774135ae83c68629f5fc3bc7a2232401345745)",
+ "P->V[117312:117344]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 593, Column 4: Field Element(0x6de35bb2b4a1132c787dc2860fa9cdea8564220a6e4c325342d4b9e86418828)",
+ "P->V[117344:117376]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 593, Column 5: Field Element(0x4b7ef432b7cb11588bd885b1349dad092d20fc780f6f4df02dfbea88f33a957)",
+ "P->V[117376:117408]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 593, Column 6: Field Element(0x5a0ca41fd46d8807196e846c7c49329896c98f79851aacdffc0203971fd6ed2)",
+ "P->V[117408:117440]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 593, Column 7: Field Element(0x4339f5d2acebedda8611aaf5a3e79e5d7c5fcad8ed475c43a9cf8f416ff9d81)",
+ "P->V[117440:117472]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 623, Column 0: Field Element(0x40ec9e7071a86063d92e263412137ba6a1f2b0a27d83f5226e1805dc0901a0)",
+ "P->V[117472:117504]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 623, Column 1: Field Element(0x27ab0ec3f9a2b933c1618d916ff20650c337797b4d6adb722a4bfdbdb1091e9)",
+ "P->V[117504:117536]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 623, Column 2: Field Element(0x4112ab5fb88b779a6595551dfb688b00f21fb01936d38e68eb78b52a9958752)",
+ "P->V[117536:117568]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 623, Column 3: Field Element(0x31f3cd8cce6f5de1df8c6dadb73d7232587b00ebb368a87c5212d47b701711f)",
+ "P->V[117568:117600]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 623, Column 5: Field Element(0x1c0c1965d6a069b0217d43fe07b445b6e5299371b0cbfdcc8a01c109c10a951)",
+ "P->V[117600:117632]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 623, Column 6: Field Element(0x2bce0873d655f8dfbd4efcde3f4bee610bde7f02c8e1fe0c286a7e76bc17a8f)",
+ "P->V[117632:117664]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 623, Column 7: Field Element(0x3e8d02a477709e7990f08d71403d77df4dd15a968fe32ff182cf37587823b7c)",
+ "P->V[117664:117696]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 638, Column 0: Field Element(0x684be6676e812de05b93bec7280a16177ca1dc14c981734c1bd5ade1b529c68)",
+ "P->V[117696:117728]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 638, Column 1: Field Element(0x37b000a482202a9e2ce58a9e01ef8de584881ce805edc548ceb1937fe082bb4)",
+ "P->V[117728:117760]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 638, Column 2: Field Element(0x23f32eca422adf305fd16ca1b6c85ec4385060cca991e14805c24b284db2f82)",
+ "P->V[117760:117792]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 638, Column 3: Field Element(0x2b6b730783d8f4b0d915f6169e8a48c5558be5b4efdfa7e77c5e5ea7e726f0)",
+ "P->V[117792:117824]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 638, Column 4: Field Element(0x7e8219514ab8e9abecbf14ab87361138edab58e4033704fdc9b8709721b56d)",
+ "P->V[117824:117856]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 638, Column 6: Field Element(0x365446d141cd3372684c65ec3af5d5514714fa86acd5adc5f238fa2b9181fbe)",
+ "P->V[117856:117888]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 638, Column 7: Field Element(0x2a79b403a96cca0e6df1daeedb1839308884a0f2b6f9531ef8bc74cff2d8f49)",
+ "P->V[117888:117920]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 658, Column 0: Field Element(0x68133edbd2f6b2e1d3cd4e5cbbb3318c1358ec8fe390591ca9d994b342a513f)",
+ "P->V[117920:117952]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 658, Column 2: Field Element(0x748c72a9eb7ad99c20df21907dcf4a8a34f3f12e7db31289e6df10aeeaa860b)",
+ "P->V[117952:117984]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 658, Column 3: Field Element(0x3549a47e1afeba963d8f9fcfb6a55dd7ad47a1c00caada9861a339ae6b183c7)",
+ "P->V[117984:118016]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 658, Column 4: Field Element(0x34537b50e77f6858ddaf57e3d272c1dcec4217d444ccc8defca4916a0043b36)",
+ "P->V[118016:118048]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 658, Column 5: Field Element(0x68f5913eb99ca00323918e6d4c0a8026b503407380717071fb77ffd3d7336a6)",
+ "P->V[118048:118080]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 658, Column 6: Field Element(0x3fca16a3ab9dac74101418c03cf15f3e0faa6c65059c5f2ab641abc4500a4c0)",
+ "P->V[118080:118112]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 658, Column 7: Field Element(0x318b041d22df75476c0314fc7b3ba4fe75877f4b8607585b214eccfe9f024ec)",
+ "P->V[118112:118144]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 666, Column 0: Field Element(0x58fb0b51cc0630e115179c2afd9856601fc8d7b242476679027264d8a3026f3)",
+ "P->V[118144:118176]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 666, Column 1: Field Element(0x2c02d5c1e659cfb15a92bb5f7dd1748a6fd0d28c731fa8bd32f874273ba7c4b)",
+ "P->V[118176:118208]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 666, Column 2: Field Element(0x5285c526e7ec4457a0caf37477a6ec52e0ac33e3dc3260527698699247b3a59)",
+ "P->V[118208:118240]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 666, Column 3: Field Element(0x48ddb24f6af88776b482d1ce5643b11c3e295ecd6972d755d6bf61bc9abec5e)",
+ "P->V[118240:118272]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 666, Column 4: Field Element(0x5c54139f6f80e0feeaf2f428c92d46553678a473cc41c07497960095a6baae4)",
+ "P->V[118272:118304]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 666, Column 5: Field Element(0x13eb27fa8a093e546831f1c5133009b7ca5598bbf23d0e990991f8c794a858c)",
+ "P->V[118304:118336]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 666, Column 6: Field Element(0x4a15073809022522038d1cf38edf65b0e1b50cf0d6c7ec99bfcf347ffbf468e)",
+ "P->V[118336:118368]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 701, Column 1: Field Element(0x1615ee8fb7fdd2fdb7681afd71d1a624a1e0547452499c0241d4fcee8f1c8d4)",
+ "P->V[118368:118400]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 701, Column 2: Field Element(0x3b681212a0c664c80c561f3c4f967da326262b183dd2d6121fb9b77b3d1bad5)",
+ "P->V[118400:118432]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 701, Column 3: Field Element(0x4980a23344022f6b55d60f07b124ec7b540e39054b3174419e2d8eef48b5da1)",
+ "P->V[118432:118464]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 701, Column 4: Field Element(0x45369b14718319453d89583ee6975b672cffb29f0f051a2f146d8505ea08e6a)",
+ "P->V[118464:118496]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 701, Column 5: Field Element(0x7f2ff255f6855becbd5b1c026fca1263e1a602d7956f070ae3bbba96c335b72)",
+ "P->V[118496:118528]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 701, Column 6: Field Element(0x2011876417511ef5c40e36317734cc44ac9e3d7cac0c8e587120153af5ec3d3)",
+ "P->V[118528:118560]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 701, Column 7: Field Element(0x42cb3478b821b85e4b2cb679d26fa65289a1357dc6d86b2c3f9ce86418aa9fd)",
+ "P->V[118560:118592]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 810, Column 1: Field Element(0x1dc8d4e24a21033a76a45eeb5c01abc8b4f460ab8d3f5892cc4b09e1ff8eaf0)",
+ "P->V[118592:118624]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 810, Column 2: Field Element(0x39745d781f87230acf8e78a5289e5c8fa758dfa1ab2121f53988eab90e1077a)",
+ "P->V[118624:118656]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 810, Column 3: Field Element(0x34aefe27edb17e8af121016b6be3277bc387606850804129831dc8bf77dcf96)",
+ "P->V[118656:118688]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 810, Column 4: Field Element(0x7a458247f80f0c34b38e74279ffc1af02ed1d9c53d898d4c455c6ef6f99f0c9)",
+ "P->V[118688:118720]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 810, Column 5: Field Element(0x5c3277a8720ceab2a3114d7d84f91343999754ae3059844ed71cce1efd84739)",
+ "P->V[118720:118752]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 810, Column 6: Field Element(0x2e79008aade999428d536252b64bdedd3565b11846ab1db8407fa5075e7ae4)",
+ "P->V[118752:118784]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 810, Column 7: Field Element(0x9df86b86a5f7e6cd7f737952236193e2bb6a9870e5a3ba70fa0af7dfed1c81)",
+ "P->V[118784:118816]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 813, Column 0: Field Element(0x6347edd841a9169799e4bec2b8f06580862d654561903308526ff7151cef71c)",
+ "P->V[118816:118848]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 813, Column 1: Field Element(0x129f2ad4b0f6ed888d4db6b2a08f6d21d9d5841e3057237c4fe1a7fc0cad7e5)",
+ "P->V[118848:118880]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 813, Column 2: Field Element(0x1ebe815d5ed4f1eb508d284814641db29dbdbdc266f68d1fd4897b06cde88c1)",
+ "P->V[118880:118912]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 813, Column 4: Field Element(0x230227af8369081ceb780c45b360d55f88e22891e64ef5c2c03ff244e5087bf)",
+ "P->V[118912:118944]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 813, Column 5: Field Element(0x122f064c697a729196cf76f0f307be19645f3c00b9fd0e4cf1f6d9ef8d3502a)",
+ "P->V[118944:118976]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 813, Column 6: Field Element(0x42e5db0305c06f6d27670c728a90debb2ab17511ee8f8242b966ff6f56d61e6)",
+ "P->V[118976:119008]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 813, Column 7: Field Element(0x7a194c08005a340cbc221c3dd2fee940252623ef996ff1096b1ef2c0b61e9a2)",
+ "P->V[119008:119040]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 820, Column 0: Field Element(0x1ee046663dcc656aa337be57d21e1908ee628065e78fb0a8838e6d2b7081a3a)",
+ "P->V[119040:119072]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 820, Column 1: Field Element(0x4f2e3f198811a4c81b46c63daf286801f2859b443e35424621193ede163b2f6)",
+ "P->V[119072:119104]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 820, Column 2: Field Element(0x183df32dad259369f932f6363fae15dee5450b87854a14f9621d3b5b10d2f57)",
+ "P->V[119104:119136]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 820, Column 3: Field Element(0x5288dfd48975747b2366b2c49fcdbd8ea3291489b1c4e098ec409b558b4fc0)",
+ "P->V[119136:119168]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 820, Column 4: Field Element(0x5a483e277672842d64d820ca6551f1cdde724f77343709e398c880c59287fcd)",
+ "P->V[119168:119200]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 820, Column 5: Field Element(0x30dac4a6191e3af920cb358d9a5a533dc96d8cc70ed99fafc2e6670dae7ba0a)",
+ "P->V[119200:119232]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 820, Column 6: Field Element(0x22ea0f83004a82a5364c609b644caa98079eed7f273d431635993a25916c8e)",
+ "P->V[119232:119264]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 828, Column 0: Field Element(0x7004927460453ae1dcf3c0959edb2848a4bb821334ff702a3b5c226f950545c)",
+ "P->V[119264:119296]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 828, Column 1: Field Element(0x6918a6ae3e3f239a2238d66d1dbf3651e4cab6aa51d3ac43ae8f39c78937836)",
+ "P->V[119296:119328]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 828, Column 2: Field Element(0x7252cc92574d15c1a2c9ffa5d605b37bc571585f1acb2e654210a738317b69a)",
+ "P->V[119328:119360]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 828, Column 4: Field Element(0x1e39621f2559eff5b1ed70637f2d41d5c428197027a1576a49947bde0ef651f)",
+ "P->V[119360:119392]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 828, Column 5: Field Element(0x6676df889af5d2cdb9f1a295297f773810acef47439297265389921f8590475)",
+ "P->V[119392:119424]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 828, Column 6: Field Element(0xbb5e729b28fa1865cdeddc5b03640119452446f4a7900aa35d08c92854661)",
+ "P->V[119424:119456]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 828, Column 7: Field Element(0x694cd8972246171844846e82ce4a526466bae6de8cb1177641f9a9016d9216d)",
+ "P->V[119456:119488]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 846, Column 1: Field Element(0x3cd7c10f036746c93fab17d4494024061b149f7289954a1ec92b86fecbdf522)",
+ "P->V[119488:119520]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 846, Column 2: Field Element(0x3329f67232e20999bdc1cad28de4ee5531db331631377ac3c6c23a7be6866a3)",
+ "P->V[119520:119552]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 846, Column 3: Field Element(0x1fb4be0fe7d787287e6efc4145670cfd74dfae8d9b5bd9d562134547b900d51)",
+ "P->V[119552:119584]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 846, Column 4: Field Element(0x5c416b9a6e7d0a737d6d9358496c9494ec8f7d6fe739fefe60e8178aa3539a8)",
+ "P->V[119584:119616]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 846, Column 5: Field Element(0x3045d9671e5017cce81865b64749730d002e4f6fbb4fae3b82973f5775ba9ae)",
+ "P->V[119616:119648]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 846, Column 6: Field Element(0x274f0ecedaa05525c50ea45f1386a6a74a1a388538ce449991b84ff5290ff34)",
+ "P->V[119648:119680]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 846, Column 7: Field Element(0x780911914afb107a6609b41077392a41f10bb9281c2768d59ce5d8edda1a404)",
+ "P->V[119680:119712]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 866, Column 0: Field Element(0x7d8bba930cffd6f6916ea0a4552921a2d5271e9076b1108adedd992dec8082e)",
+ "P->V[119712:119744]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 866, Column 1: Field Element(0x5ecb384889fe03d2ee393ba8c4a6bb91c551ee4f2c84796b966c7a8faa2610c)",
+ "P->V[119744:119776]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 866, Column 2: Field Element(0x79b9e5d20002ae5f9bbeacf9825dda88959a953e74a5ca7f9a1dd06b7ec9844)",
+ "P->V[119776:119808]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 866, Column 3: Field Element(0x7abee4e4fc73c0c93d7536467a03ba22b4386167e8370d56b3a58de39764934)",
+ "P->V[119808:119840]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 866, Column 5: Field Element(0x26596c665ddb6521c79c1dffd58ed2ba21c6cb42ecba09e4880ee622aef3cea)",
+ "P->V[119840:119872]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 866, Column 6: Field Element(0x541a65722b961d1504f2f094bc61ef181eba3ea26547af85e9e7438ac5ddded)",
+ "P->V[119872:119904]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 866, Column 7: Field Element(0x500f5e06149e2666c16c35a4046add2f20be20bbd79c6d10b9eaf541795e742)",
+ "P->V[119904:119936]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 872, Column 0: Field Element(0x32a371c265879858ee87b0ede18b8e77f4ce9a65561f38098f9ff9d9639b411)",
+ "P->V[119936:119968]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 872, Column 1: Field Element(0x6b3598079be4a22c3685b39282ad6cbadd8d329e9fb1c736fced7799b5b972d)",
+ "P->V[119968:120000]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 872, Column 2: Field Element(0x40e560c08f49c05723c69bdea092460a91094cf5cde9dbc0038ae3b6db6849a)",
+ "P->V[120000:120032]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 872, Column 3: Field Element(0x1fe824d159e5b98bda92907437bf6c88ca584390bea9b98f94563c4367f79aa)",
+ "P->V[120032:120064]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 872, Column 4: Field Element(0x29b5221f68539e5bb51ee2846b9ce68075b09bd974b88e7e8af17f53c544603)",
+ "P->V[120064:120096]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 872, Column 5: Field Element(0x7089f84a12e5d2463fdccefda8cbe5ebf6d42fd7e681f66ba332b3db905ce1b)",
+ "P->V[120096:120128]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 872, Column 7: Field Element(0x550d6511b42dfbdba6f62231322bd08179f6f01335352ed545609d6ac2e7dc)",
+ "P->V[120128:120160]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 894, Column 0: Field Element(0x30b20cf3ea98c1b269d04bc25f3930e81729e9f36aba807af84c83abf9adaf6)",
+ "P->V[120160:120192]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 894, Column 1: Field Element(0x1ac0637b5fec0a47dc4c7f2710da8a16d50df83ab9deddfb09dba36bcd49d5f)",
+ "P->V[120192:120224]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 894, Column 2: Field Element(0x3aaa33e02beb490a2698f459022631dd382019d36c92aa0903205c913a43393)",
+ "P->V[120224:120256]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 894, Column 3: Field Element(0x25aaebbe712f38493b69ad3ad38ea81ea53e1a79f04a1b7b345183b96d32256)",
+ "P->V[120256:120288]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 894, Column 4: Field Element(0x5aa3dc281058f83e7ededd2205614b76ccf03380ec903ee7252e4fd59951f2)",
+ "P->V[120288:120320]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 894, Column 5: Field Element(0x20dc516fd2d8a8bf347a31434ad868e5bda619811058bbda7907e9692e96495)",
+ "P->V[120320:120352]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 894, Column 6: Field Element(0x1f390c7925510803f94289ec4f2b11191b0529740d7a36b49e1dcd8209fbb3a)",
+ "P->V[120352:120384]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 949, Column 0: Field Element(0x48a39ea06b331023247589e1a34672cf66b9227ed26154d08bafbf5f10885e1)",
+ "P->V[120384:120416]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 949, Column 1: Field Element(0x17214528627bcb4bf7cf2a76895cacda49a1dfcf9c157aa3f407d2a41b71b8c)",
+ "P->V[120416:120448]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 949, Column 2: Field Element(0x158bbe2ed6c1942ef98d312a4751b4a8edf8cc6f50a4c69c27c45ddf92159ca)",
+ "P->V[120448:120480]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 949, Column 4: Field Element(0xc890d0c4ab74824ecac3dac9af32a6a407b81b9b75ffb95bdcbd47a666635a)",
+ "P->V[120480:120512]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 949, Column 5: Field Element(0x1d93a9e24cb837e899494bbf289aa595b5809bd090665d7842a0196be2e7dd8)",
+ "P->V[120512:120544]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 949, Column 6: Field Element(0x1cf49e6f5c1b36e7d85389a6fc9c869b7c4c67a207eeb74ffee49bca948eb2f)",
+ "P->V[120544:120576]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 949, Column 7: Field Element(0x7eb045360f2887e732c903e19c23d85ee0abde66d040f0ce5e0dcff0125fe2d)",
+ "P->V[120576:120608]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 961, Column 0: Field Element(0x18a0264bbfa0cd0605f464bd5a302018419e77212b2b52fdaa9e27e0ccb6338)",
+ "P->V[120608:120640]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 961, Column 1: Field Element(0x4a9d988c7510fb90128321f67352e23ddfe24bb7bcbdcec9d493f3acada0eb6)",
+ "P->V[120640:120672]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 961, Column 2: Field Element(0x7320ba6dfb0c797ba26e8587932b815ab9c1bf6cfe7c2e18546e2e19bd38b69)",
+ "P->V[120672:120704]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 961, Column 3: Field Element(0x7309e7cd5e1f1709053fb040c434b3c57cce6ea1b5bcceab111958724460a5e)",
+ "P->V[120704:120736]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 961, Column 4: Field Element(0x1f190edb89a6051ca20a8343970fe59a818831264f39a55808c2b069bce12d)",
+ "P->V[120736:120768]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 961, Column 5: Field Element(0x24094bf0aac4dcd9d01740e3c3d32c38ab759ab73e78fbfe380f5dca12d8ed1)",
+ "P->V[120768:120800]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 961, Column 7: Field Element(0x672bf340118c554370e07a022dc0de24233f878af966c4b12aad1d3e634dc25)",
+ "P->V[120800:120832]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 974, Column 0: Field Element(0x1ebd632ea0a7745675ab68fd7a164326022c3d9cf8cfc02d147b13fecf3e965)",
+ "P->V[120832:120864]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 974, Column 1: Field Element(0x2438b18fddf2fa4df2886c31a42511bc1af9cf4cf00b85bacbc1850b71d23b3)",
+ "P->V[120864:120896]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 974, Column 2: Field Element(0x5049d61c00665496174d611183bfa5f029ad949e402e225c84265dd035807ec)",
+ "P->V[120896:120928]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 974, Column 3: Field Element(0x3863101b191b3e3835cce4417d3684cc163e40d7a7445bfb7c70c7e02825740)",
+ "P->V[120928:120960]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 974, Column 5: Field Element(0x1fd741951804a19962da68029acc1ff392a9f62093f0c5f52ee7f55ec11dd81)",
+ "P->V[120960:120992]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 974, Column 6: Field Element(0x104658568810f52f152235616a653feb304be9bb727de332b8e100795b23f52)",
+ "P->V[120992:121024]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 974, Column 7: Field Element(0x39d3fadd4920848ef555ed910c618a83f4ae535d29a88d51aff73c1e68d9582)",
+ "P->V[121024:121056]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 1016, Column 0: Field Element(0x31cfb638601fdd0ce3a3514dfdd0f99b9d7315a0ed1607a1f66a2f9c8bb5f1b)",
+ "P->V[121056:121088]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 1016, Column 1: Field Element(0x37c339ceded721bc6e80c5c65162343d1621d2a7654f1fa399ed0dd1d491d4d)",
+ "P->V[121088:121120]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 1016, Column 3: Field Element(0x77ed7468d2d41c184e7665ae86bca06e9aeaa32bf9e5d5c346c40d5bde3c811)",
+ "P->V[121120:121152]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 1016, Column 4: Field Element(0x6035e0adf39921eebba92767fa7a7a663bbaed1e7dff40523201eaa5bde4309)",
+ "P->V[121152:121184]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 1016, Column 5: Field Element(0x51faea2da2212d21324fb9115669a8ca1021b80a87fa1d555364a2394f05bb7)",
+ "P->V[121184:121216]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 1016, Column 6: Field Element(0x492e86d8026fd8a3ad3f1223ce17fb25b25a7cce41062e5a5155c94b9e730b2)",
+ "P->V[121216:121248]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 1016, Column 7: Field Element(0x43952f31069c18cf63c8d0e65531ac377af2bf014ec53916ac149a773945541)",
+ "P->V[121248:121280]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 1042: Hash(0x6c38c2a1f2f7f8ba60b14e95e4e9b5a925fe33123a40c1fd9d573fde143eca5)",
+ "P->V[121280:121312]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 1051: Hash(0x380bf81c27deb172f67cfaff2bae612239a37b6595ac6daf582e4de0485c5eb)",
+ "P->V[121312:121344]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 1116: Hash(0x55837777f3a79fb13ccdd23124df396a88f6667bf749b9d2c4d6478f94b2bc0)",
+ "P->V[121344:121376]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 1409: Hash(0x123d61aec97e8e0cb3e8f757b65e35f81d3a0af64550e047f53e066dded5696)",
+ "P->V[121376:121408]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 1428: Hash(0x23f9f3210a89ad21c0adff773515b48e543c0c5447bb23d152d248513be6928)",
+ "P->V[121408:121440]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 1440: Hash(0x21afe4ac83a64f29a29c187eb1d63d9aae9b730ecacfdd8266a4ce4ccff16d7)",
+ "P->V[121440:121472]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 1511: Hash(0x14ce0edf4aa65195006e2cd05c486a702aef4dd7df1d7f41e430904f74702e0)",
+ "P->V[121472:121504]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 1577: Hash(0x5138190ea5062808c0cad3a935580e7cf5d388b820237034862429a101dd89d)",
+ "P->V[121504:121536]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 1591: Hash(0x4d47bcaf141ada772d84910d81477212ffe0a9f4cea88532cadc3f4158de1e4)",
+ "P->V[121536:121568]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 1593: Hash(0x38be6ecdff3f3cccb14fbd8d20726b5523ea3339e75228fc8574d6e5296adfa)",
+ "P->V[121568:121600]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 1597: Hash(0x1ce69e1a5fd4dc77337ca7154b2c00d625ceaa018524ffaf4d81055cc8f4edc)",
+ "P->V[121600:121632]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 1600: Hash(0x5cf93fb28963986cc463c4b262df77cb969244806ac00177179496408a4a98a)",
+ "P->V[121632:121664]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 1616: Hash(0x2b342877acb55681191260a8b1162e75ec923572573261f1007f7442d990072)",
+ "P->V[121664:121696]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 1646: Hash(0x2b328e5f072de64f41fe2e60eb7ae50235300588c281b6f55e396caae2f9cd2)",
+ "P->V[121696:121728]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 1663: Hash(0x1db95ce83a6b4fbf697b306c7fbf5fedbbd9b10c4d16ef457c57c0c136d382d)",
+ "P->V[121728:121760]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 1683: Hash(0x7876fe2631ca9442e708f11d5f6490e3ba0ea796c6329e260e5d6daae3d1ea5)",
+ "P->V[121760:121792]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 1691: Hash(0x3a06022497fdb40ea1de8019032c48b4018b79e58e76fa0fa9b41ab7efa1613)",
+ "P->V[121792:121824]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 1724: Hash(0x5f1bccb353f0a52a8642f8f44abedd1f817ea6622c38dba1c0be7334743d085)",
+ "P->V[121824:121856]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 1835: Hash(0x2b423a34d13786463cdb4a17d4ff3e070e1ad4660b9916e6f64a6f1e900168f)",
+ "P->V[121856:121888]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 1836: Hash(0x60d90587a6119a6f9faece348a707ffecaa9eb89dfae463e0d6716786d7dd83)",
+ "P->V[121888:121920]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 1845: Hash(0x5511d0bdc3e856da21b982b8a25eed151941194954152d79ff7e944a0f476ec)",
+ "P->V[121920:121952]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 1853: Hash(0x5ae3f30208a0d86a8c8a5584f4aab6da88eced4bb9ec24175cb84d56aaf6d1d)",
+ "P->V[121952:121984]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 1871: Hash(0x370ae64f67cf9491c17e3ca49bcf71c75a1ca73c3bb15f7472ab8321027f2e4)",
+ "P->V[121984:122016]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 1891: Hash(0x7b8353625293cdd63fbc6d66db7e8ad5c1450f118ad057ef34c163cd2291d3b)",
+ "P->V[122016:122048]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 1897: Hash(0x149c7a4c358562b807c3169ffdd1ca1a9483c4d64b50eea1864a95a4c2691c7)",
+ "P->V[122048:122080]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 1919: Hash(0x39dbf376da595fa014b60267d1c02711d4ffc0124c4b07c9d16bd02a7e15ea5)",
+ "P->V[122080:122112]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 1972: Hash(0x3537a6dc2984250df1e2e70eab5adb3ad668df552abc28efa5a76c379daec33)",
+ "P->V[122112:122144]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 1984: Hash(0x14effb1966e3801e32d45823b010223db5d7860b580207344b30e70e8a2eae2)",
+ "P->V[122144:122176]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 1999: Hash(0x6a1eed7d725adc65cf42d3702beb13aaffa2f5245d33237489e1d2c17a3956d)",
+ "P->V[122176:122208]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 2041: Hash(0x2e772fc5db520c2b5396abfde71fda981566db760b01dbde9244f0f6cf091e0)",
+ "P->V[122208:122240]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 520: Hash(0x8898f6550b16a79f08fa38f9ecd1cd8cacfcb584d03c0a46e1770d2ae6c774)",
+ "P->V[122240:122272]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 524: Hash(0x3f07de66744e5fb9b163883a1010fdf237bb7acdf448a2a883fbab632514738)",
+ "P->V[122272:122304]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 559: Hash(0x65682770961f963312cb0f2822ebcf7ef515d37bf13f320b376f4c2018b8602)",
+ "P->V[122304:122336]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 621: Hash(0x56b1693c7966f4ede1ba1057a68d5e81753f6e33f7148a683251aeb95ffb19b)",
+ "P->V[122336:122368]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 705: Hash(0x13fb685ef4bb9b57fe3beb04e255945f1370b10f02f50ced1c643fac968678b)",
+ "P->V[122368:122400]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 715: Hash(0xf44d194fcafcac74b30fd96a37ca8348b2d3646077cf11019c66652f123a38)",
+ "P->V[122400:122432]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 721: Hash(0x3bb9a7630dd12e2c54ade5fe1d951dc7297827d42a711fa9d2a5976b0cd127b)",
+ "P->V[122432:122464]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 754: Hash(0x5a896ba69795ea9d7f691581b056b7a152d6dea7eb416aa358aa9bff838af35)",
+ "P->V[122464:122496]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 789: Hash(0x6a49a28b56d918733b4089743f06149a7e1b264e46eff60bcdbd9ab32ccac84)",
+ "P->V[122496:122528]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 794: Hash(0x5b293e318755f0cc8c371a948af54305ceda57fb7228a9f02adbe13028d360c)",
+ "P->V[122528:122560]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 797: Hash(0x7a640638272a52265d493be304b34039c614e779d2dc475344b68154d120de4)",
+ "P->V[122560:122592]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 799: Hash(0x55cf25bbda35222de0956cbb1ad5baa2022d7be2b0986297e7779263c65bb28)",
+ "P->V[122592:122624]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 801: Hash(0x3a25a2857a75d1084872f6a026118186770c9d0c753bfc5a70c99b375d349eb)",
+ "P->V[122624:122656]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 809: Hash(0x17904616ed3c95d34b37ab36c11c8dedb631c13f75a85dea3c957a07910913)",
+ "P->V[122656:122688]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 822: Hash(0x36b5de6dda484512f096f12573a611f20fc9d77dcfab40d13fd8796e87f593)",
+ "P->V[122688:122720]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 830: Hash(0x25c435e8f29b49904aa943b585c00811cfa790ef691667e6b0fa43405e2aa85)",
+ "P->V[122720:122752]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 840: Hash(0x11f07b0d2eb7c32e5499022f73f90ea5ee2ec2cb48b8e0b9f18ed7b9e3dc48e)",
+ "P->V[122752:122784]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 844: Hash(0x27137e065ed60e2c68ff395b7da1756f002330372a303451b9b9401cce3b122)",
+ "P->V[122784:122816]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 863: Hash(0x27947e48b77f6bb3cd510df24aae1f2b42b6ad2207b7295b8fdc5d17fb7f7cd)",
+ "P->V[122816:122848]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 916: Hash(0x4eb91f27d9689bdf502368675045e774436bbd2a45a9aed83ca974da857b5c9)",
+ "P->V[122848:122880]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 919: Hash(0x66d99ee85f4df6ebdc5c724b43697bac37ce5375395d530313e66798a36ee2c)",
+ "P->V[122880:122912]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 923: Hash(0x56a9d72ceb4d349caac5ed903d66ac579bf1b709971d2540723032eeb3b5fbe)",
+ "P->V[122912:122944]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 927: Hash(0x6f8207eb7d6f14ea378b28dcb32cf531bde01b174e4c5050a105966b40e59e9)",
+ "P->V[122944:122976]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 934: Hash(0x3de0f4ae250588f10a765edfd52efb0dc553a19c9ba40eaa208cb705a4f3cbd)",
+ "P->V[122976:123008]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 944: Hash(0x34287282c3450a1112cb8bf0b45596a013978747d384dab425319cf9102e0c6)",
+ "P->V[123008:123040]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 949: Hash(0x9e7321c1c70a9e8db331b7ed93f54fa7bb2a657f3b63f5a3abc2791ca2b5ba)",
+ "P->V[123040:123072]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 958: Hash(0x6d9d3f9d43ec642cfe9dc5a768f6329d6ccd87e221d9593383623733e0adfea)",
+ "P->V[123072:123104]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 987: Hash(0x4145b7bca539e760840081b87586f35ffcb8715f02a174035541d88383eec3d)",
+ "P->V[123104:123136]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 993: Hash(0x2d7c2fbb37e129f9b27d0968fa55c54511e9411603270a9ddb16f178d82c4ea)",
+ "P->V[123136:123168]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 998: Hash(0x1a09fdb5b428528d515caa1fceb008ddd8b7381f5304e670b2cabd3b7f550e2)",
+ "P->V[123168:123200]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 1021: Hash(0x6a43106d5ab26e89ed7274296c6b991d97256cd22aa2f58114eb0e6ad9a790f)",
+ "P->V[123200:123232]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 261: Hash(0x485a4bf9a8b4bfc42c7d1c266629aab859419faa46f37ef06fd72dccc684ee1)",
+ "P->V[123232:123264]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 263: Hash(0xc343f2c22ba7e6b8987191e2605a2378ccc2aba80a1e4eaa5c37044bd9c723)",
+ "P->V[123264:123296]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 278: Hash(0x35aeaf1cabbfcbd5aa9bb7c5aabadb715e76a301ce74318576235a6d33186d3)",
+ "P->V[123296:123328]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 311: Hash(0x173a34159a203786a8636f0cc7b9ed72440ea5b862cd6cf49fcb109417a38a5)",
+ "P->V[123328:123360]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 353: Hash(0x7aa2371ad954007a35c92872e5c0bfb1e73bc69499fa4faac9fb897ace247bd)",
+ "P->V[123360:123392]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 356: Hash(0x53672326b6ce14a290daf8f54ccdddaf60e11611631d8f24617d917f954fc21)",
+ "P->V[123392:123424]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 361: Hash(0x467abfabcd1a8321db118c5c97ce9eef2bb225e4249921f3642b4bab758c664)",
+ "P->V[123424:123456]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 376: Hash(0x650709a2a8fe2f371579a9983a593bfdce4193fa71ebb82cddd84007a024bdb)",
+ "P->V[123456:123488]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 395: Hash(0x1cb90ffee555e340d369b05a4414b39cbd2cfd4109b46d7a868a117b5b0b035)",
+ "P->V[123488:123520]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 396: Hash(0x1db2cf99fb26457418780613a13b610b6c9b6458200535723ad01f3767b4f39)",
+ "P->V[123520:123552]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 401: Hash(0x37d56fd8ea51282145747b0b0ca6a3a8345e6f851cda0ec7ffd4bc021b2f81f)",
+ "P->V[123552:123584]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 405: Hash(0x2dddd7d82812b484503c561aa348b80b2bc20fbbf3306e2eba4363b594f5f99)",
+ "P->V[123584:123616]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 410: Hash(0x2a92584d00a02dd5bdcfac8a2677fe00f5db5e1ad5baec3e5890996201ab39)",
+ "P->V[123616:123648]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 414: Hash(0x40606016e9af176773707a9587352c399b7b50f741d866ff61b1eb93bade43f)",
+ "P->V[123648:123680]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 421: Hash(0x123d40df3270b15c98bc1733e05907993210e9f0b21a9bce06e3a225531a3c2)",
+ "P->V[123680:123712]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 423: Hash(0x1a9623c53a9e6146d922ed5e3288ae1233b28f59cdce15e625eeea2c83cd4d1)",
+ "P->V[123712:123744]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 430: Hash(0x43abc9d041ef547fe7980b89d0c68ea0f6b9e57aa94fc060b1c9eeec389f559)",
+ "P->V[123744:123776]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 460: Hash(0x23e6c86e022d395b02684e01a4e6913ba9082b571ec4d57c6d3954762551410)",
+ "P->V[123776:123808]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 462: Hash(0x41ddbf42e3c6274c0783ae4788b69d3a424e0e4f4b6ac08aabdc49313ba3849)",
+ "P->V[123808:123840]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 466: Hash(0x649b9e3f78c8800824ea55cf219c9ef5e32586307feb4a4e16b1fdc1fb35e66)",
+ "P->V[123840:123872]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 473: Hash(0x44da6504078b34ab3e5fe376156a01877cbecbc61b1403c365f2b3d5d9f69b4)",
+ "P->V[123872:123904]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 475: Hash(0x3565daf01d5e6473e85c3703699c479cb083341f47484d851fa1adf9044cd4c)",
+ "P->V[123904:123936]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 478: Hash(0x216ffa871ff149ef0f9e79c0da6714cf1e742406ec4726ee86a64d10d27c0dd)",
+ "P->V[123936:123968]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 492: Hash(0x7a2789638a9e5c697f96629b0df9f6df5ba5a66313f1c8217b32f6d87052f19)",
+ "P->V[123968:124000]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 497: Hash(0x4e20972831b34478ab7e6c1cbecd41aa01f649307fd46af111d60d57fc72407)",
+ "P->V[124000:124032]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 498: Hash(0x777f0bf7b83dd5d8c84f645dc03f5ee432c3fd31ff3c929bc384d4841c911e4)",
+ "P->V[124032:124064]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 511: Hash(0x692417b44ca131f436a36f61a526d3c63c20b7d374e85fbaaaf52d3ce426c90)",
+ "P->V[124064:124096]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 138: Hash(0x64c65a1b57e3742e8ee69f8edcc7b8c84eae559bc2c39f35d3b1ef3c9eb4caa)",
+ "P->V[124096:124128]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 154: Hash(0x1a9c42cd3af9b6ccc5948fb1c9d723b773e74ebc8423c4bad8d465010f2ec12)",
+ "P->V[124128:124160]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 177: Hash(0x57d97af905a7909007ae6b62883aae5015f1fbbdbd0a7ffea23d3748bdf72e5)",
+ "P->V[124160:124192]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 179: Hash(0x6165df545fd8c6b8deb5c15444e831ba0a771225428a382dc7d94a7b8e225e7)",
+ "P->V[124192:124224]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 181: Hash(0x2e04e74bd23f69edf2947f17d8c5936d97898c37a065f741ac39b67f8bde755)",
+ "P->V[124224:124256]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 189: Hash(0xa30a3f9a17e908b21c1c1164803a71b998405669e7d76774351baec47745d2)",
+ "P->V[124256:124288]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 196: Hash(0x14dd2360e4e4998d91f03573debc0d5ee7e681a48274181d8e67267b28a9f22)",
+ "P->V[124288:124320]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 201: Hash(0x52ebe56f187ed6acec9d9e9dd0deb3d0135509b6231b70e01ba11dd11d2e940)",
+ "P->V[124320:124352]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 203: Hash(0x12166a218f825e61977b0231dc43c1e86872a2a94639d0ccb48a6cf157987af)",
+ "P->V[124352:124384]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 204: Hash(0x1e27452dd23a6779f7e209e976ffced8811498e07664f32eaa33fbc0e70d96c)",
+ "P->V[124384:124416]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 206: Hash(0x2952be82993dd0d609aacba564b759f1273ae145135ba730c3ed79aaec8831f)",
+ "P->V[124416:124448]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 214: Hash(0x9c510cff25fd0b3b83f8744c089b888a12fe13b4cb1bfee07e673513253b2d)",
+ "P->V[124448:124480]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 228: Hash(0x5cb308d2b0e7eb3fbf9df92cfa2cb08123bc2c5e55cfa0307ecd529b39e6bcd)",
+ "P->V[124480:124512]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 232: Hash(0x38db239892a0aba09ed3ab6629003e4fab44f2f09385c82cf0f3c7825913f5a)",
+ "P->V[124512:124544]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 238: Hash(0x4d92e1c576ac41728220b391114812b0ec0f35df09278215baf3db414b4ee66)",
+ "P->V[124544:124576]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 247: Hash(0x508a1a24af0b82d2f9faf11f8909e5835e015a409db148292c55f70162d4844)",
+ "P->V[124576:124608]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 254: Hash(0x7a0c80081dde78f731a108e1871120599d7dd28df45795bd0d61e47fc9e3212)",
+ "P->V[124608:124640]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 64: Hash(0x3d75ac2b024bf8c9f2735151a010827b0c6503495a2a18fdd8af00b61a59973)",
+ "P->V[124640:124672]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 68: Hash(0x1f45d964ee98afcfa56da7f613e2901e8e21bd5ddd20e3a40ced7a9b40ecaad)",
+ "P->V[124672:124704]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 76: Hash(0x4f23f5b8946860a30cb428b33ab1809dc174260758cfced86df6332719fd696)",
+ "P->V[124704:124736]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 91: Hash(0x4f18caccaa6e39a7334f6311848fc13857a47662abe0243f78e2961d3aa0009)",
+ "P->V[124736:124768]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 95: Hash(0x358073e6bab56258dfcdb25ff5866a01dd9667fe01e192a121dfe3697867dcc)",
+ "P->V[124768:124800]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 104: Hash(0x40a7725599fda53db70886010d30d85ad71d3713facc7381c1d61ca12d02cea)",
+ "P->V[124800:124832]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 106: Hash(0x71f8d3eb66f686511963b0ba930a8e417698a737b31ee0128e8ceb1d8c3111c)",
+ "P->V[124832:124864]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 117: Hash(0x789e35ff1c41b1d15215656382818307211a823462a992fa8374e218806898e)",
+ "P->V[124864:124896]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 122: Hash(0x4d891916707c5b6a714f2769461142434f15de255930efcf42ab63d2c2d1d5a)",
+ "P->V[124896:124928]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 125: Hash(0x291592e1cfca7e2d4d3f14151de80300a783092d829d7befb28000dbf471e9c)",
+ "P->V[124928:124960]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 126: Hash(0x4465f9b18408e1054308eadc473b1d1e878f31065065501440f7eea4fc4e521)",
+ "P->V[124960:124992]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 33: Hash(0x6660d72eefb081cddba56265e6dcd2e7c2a0fc0a9e4911192a4ac459bfe762)",
+ "P->V[124992:125024]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 35: Hash(0x1b0a6b9f4c33b887852cc511cd575bf714029a9a9969433fe8ff0feeb169d6c)",
+ "P->V[125024:125056]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 39: Hash(0x784da54cb12a15cfca6ddd8158af38dfbc20e0a091143b5b1cb5125ed402da1)",
+ "P->V[125056:125088]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 46: Hash(0x7462fa52e919356e19605bccc180720130b56063251be5eec06967a48edc926)",
+ "P->V[125088:125120]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 48: Hash(0x303ccbae0ef93594612557d7964798cc29cd8d19d1ba99ae1c5256719c94ec9)",
+ "P->V[125120:125152]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 56: Hash(0x1a42fafe5bc6ab8e9c982a783e88bdbb100cb850fff4dc1fef34b99f0b895f6)",
+ "P->V[125152:125184]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 60: Hash(0x7ab0d8d2d1fa6262f9ff308105dedde9187bd964e413b4c08103e5a80edbcee)",
+ "P->V[125184:125216]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 18: Hash(0x7602c6ede543bbd3e8177b3efc6d837df27f3aa33f2e64169e9db1748fa0c9)",
+ "P->V[125216:125248]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 27: Hash(0x4cef0fc96d1dd3a56a91b43a532476898a7c2a94faa4e29b026923e746f58a1)",
+ "P->V[125248:125280]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 10: Hash(0x736885e306f30783e014d58a50c09fc10f4daca8c02728624dfae6866939a6f)",
+ "P->V[125280:125312]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 4, Column 0: Field Element(0x5690ff34e1f547b339c8ad06a7308cb03d179ccb1f2276fec97c4cdbed35c3a)",
+ "P->V[125312:125344]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 4, Column 1: Field Element(0x7f2aa63c5052968cd1889d9a6cafd528b12926dd10ee72ca080fac1154025a3)",
+ "P->V[125344:125376]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 4, Column 2: Field Element(0x56a325039f9605e979b197cd962ee369dd732da4259ae926a05e99b0fcc9c67)",
+ "P->V[125376:125408]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 6, Column 0: Field Element(0x5670e796b34fa1140bc24067dc064653a03953f8c8c5300c9fde283f255f6ce)",
+ "P->V[125408:125440]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 6, Column 1: Field Element(0x5b3daf632a052cd0eb1997b5a697a6d4b7e363cd5c6bbb5e83468e7848696e4)",
+ "P->V[125440:125472]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 6, Column 3: Field Element(0x2c24b71f3d190ee3eb15bd7f88d525824ba68bb54616d6aa2e67db37cd7dfe4)",
+ "P->V[125472:125504]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 23, Column 0: Field Element(0x6bfa60466112493cbdde376dd2bdf860ca3d4a903c6f06b71c328002bac9ea3)",
+ "P->V[125504:125536]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 23, Column 2: Field Element(0x7497ac334554e90cb14390cf6a7d11bd3a079d7974a28aa31dff086641484ce)",
+ "P->V[125536:125568]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 23, Column 3: Field Element(0x71422bad0d7986e601873a2caa2836df4c2d40647b8c9ac305ad67309f744f3)",
+ "P->V[125568:125600]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 54, Column 2: Field Element(0x296b54d5d49d528a6f9fe183b78b3dff3bc061f0bf8501e708ed640720e3db)",
+ "P->V[125600:125632]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 54, Column 3: Field Element(0x19d74d09840eae22a4006b8e8850654d27bddc1632fb2a6c8a388dce529db10)",
+ "P->V[125632:125664]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 96, Column 1: Field Element(0x15766bef2f95bc1df14383a21a8cbb75444660d80649e25040485859b58614b)",
+ "P->V[125664:125696]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 96, Column 2: Field Element(0x6369464bd4e44e65c4da30c564844f81fd78cf9a43e7ac1cddb0e77cdd50d56)",
+ "P->V[125696:125728]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 96, Column 3: Field Element(0x17c8e01703737a3edb4dd547c99295ef942aa061a392bf8513935c618f0e09d)",
+ "P->V[125728:125760]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 101, Column 0: Field Element(0x631ec4b742e63825665d5fde79c2f788b75be350bd3bd66278b7b1d4133e217)",
+ "P->V[125760:125792]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 101, Column 2: Field Element(0x3f8a06c8a8b11be1ceb611eaafa9d4cfd7ca97538539b32b64ec0002dbeddf7)",
+ "P->V[125792:125824]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 101, Column 3: Field Element(0x23fa00d5d76d48cf2b8658248f58a967e4b9759fbc3354ffa2af206c89e91d8)",
+ "P->V[125824:125856]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 104, Column 0: Field Element(0x3bcf50cee90176c103d1b9b1ac0324e97e4ec3a5b61b6d3db80094a05d0674a)",
+ "P->V[125856:125888]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 104, Column 2: Field Element(0x27034dec50a371711bc9b9499047bc6e49016ebe0d67282fcd9083bcc333985)",
+ "P->V[125888:125920]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 104, Column 3: Field Element(0x75efe464e69314919e6031f943ee3745067c51c58ca919664ad1c470f2fa230)",
+ "P->V[125920:125952]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 121, Column 0: Field Element(0x9f3b6026cdcb81f5bdbb6829f6c00ee90bcd187882f5455c7d8b23b124daf9)",
+ "P->V[125952:125984]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 121, Column 1: Field Element(0x454efee17abac57a5f6e8dbf87040778e14859217938ba9550682fa20157766)",
+ "P->V[125984:126016]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 121, Column 3: Field Element(0x4686bcaee597556419257763769380cb5204c069a6a6c2e9750ad556d1e2caa)",
+ "P->V[126016:126048]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 138, Column 1: Field Element(0x330e2adf6f3449ffb61b152b2627edd28f999db9a8f240cb9e3a2013a04221)",
+ "P->V[126048:126080]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 138, Column 2: Field Element(0x1d288272d2eb9c4ad7f5153d57ab3bf2dc98427bac390e1d9e1d0cac94496a3)",
+ "P->V[126080:126112]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 138, Column 3: Field Element(0x391298291d53c73f22b4c9e9243f6162b4a22dcd6137fe2014b3a5db3640693)",
+ "P->V[126112:126144]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 141, Column 0: Field Element(0x471c5eba8c6d14aabbb19ff3dc395ff1675837865b1be5b07daa2d06024b93a)",
+ "P->V[126144:126176]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 141, Column 1: Field Element(0x29fd8fb71467eaaabdfaa032361fc27ccc2bde7c8ad84d563f2de47b899b5a1)",
+ "P->V[126176:126208]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 141, Column 3: Field Element(0x6b0527e16c38bd3cb0f20d7d75b2935eb130d647bb0ba88d00a9ab6b3b6b33f)",
+ "P->V[126208:126240]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 142, Column 1: Field Element(0x9d81f12e759d21d1ea67e1af2fab68c9fa32cba14c3fc8650c4c6c53ef69)",
+ "P->V[126240:126272]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 142, Column 2: Field Element(0x3173b46c9faab270a57060fdb6a91965a19fcd73338e1bf939301639df52faf)",
+ "P->V[126272:126304]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 142, Column 3: Field Element(0x24741bf2996ecbcee0757002e991a25a7d03abeb97bb6d0e003a0547281c4f7)",
+ "P->V[126304:126336]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 143, Column 1: Field Element(0x64a4e327a1552641f6c83f04f7c1abcc21f392eb6d65880b1f3297f448c27b5)",
+ "P->V[126336:126368]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 143, Column 2: Field Element(0x3e6af2aebd76ccd642a83fecb2b08de9b124b0e328b82bee797c33f2522b0d2)",
+ "P->V[126368:126400]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 143, Column 3: Field Element(0x596310215f8c0b455ac456a537c8dcdce6ef15271384a5a510425d7a9e8da4)",
+ "P->V[126400:126432]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 144, Column 0: Field Element(0x5f1814ca4601120346fc7e62cd5caaaf3272ae43ccb17613e5ade569fc34cf)",
+ "P->V[126432:126464]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 144, Column 2: Field Element(0x67f02c335e962a741f286e31ecf82d87b44a5ad0f3be10adff004e3298d9549)",
+ "P->V[126464:126496]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 144, Column 3: Field Element(0x509f9e04a1d862025d9fab1843dde27f446d81d7de16785d13b933b3ab572e7)",
+ "P->V[126496:126528]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 148, Column 0: Field Element(0x52c26757b7a754153d5b1b7f57147d2d906b3326ab0dc640a4caf74f0ab4851)",
+ "P->V[126528:126560]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 148, Column 2: Field Element(0x5159a11ab1adff02dc90e328d2979169e12e988530fc3e06ebb410fd7747148)",
+ "P->V[126560:126592]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 148, Column 3: Field Element(0x1c61c5b769bf88062f38fea5fcbd67abcd3a088984181982e819ea22d52ba15)",
+ "P->V[126592:126624]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 155, Column 0: Field Element(0x45c5695c7bceaa0ff55edcb712f7b37cc3236c381748a54f2bfec7c1067a327)",
+ "P->V[126624:126656]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 155, Column 1: Field Element(0x3519e3e1e160d799f21d6a359394da8239916f36e5bd36fdd0f3de423002b0d)",
+ "P->V[126656:126688]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 155, Column 2: Field Element(0x1e86d418f849f33e5874864d4fc08562cd67fa1846c7d21985db0ee33ab4722)",
+ "P->V[126688:126720]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 159, Column 0: Field Element(0xfb89b2b4b4890c8f4b6d0f651f8857f9b76f9d4c6ffccb7fe8681ceee19731)",
+ "P->V[126720:126752]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 159, Column 1: Field Element(0x509b45ea33b306c021c8a964fbb03502d0a13f6e30aaf98905997cf40aeba33)",
+ "P->V[126752:126784]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 159, Column 3: Field Element(0x680d1ec5ea282188e9924364163e0f2721d1f5377cb7f5c4834b2190aa8a63d)",
+ "P->V[126784:126816]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 164, Column 0: Field Element(0xa5441001f8b1118cd9bf095dc82cdc74f461f0f2a34d9161485355b80bfe83)",
+ "P->V[126816:126848]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 164, Column 1: Field Element(0x5346eb10fadc031ae8856e08cfbd714398661f2e6ee44255f61e667d5f5b75a)",
+ "P->V[126848:126880]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 164, Column 3: Field Element(0x29c785cc2241d8ac5a95d3836c3204f6386748291449e32426f7e85934bb4c5)",
+ "P->V[126880:126912]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 166, Column 0: Field Element(0x59f11558098096996fde1856df333b49d2cf0c40777567b8a93d31532accb19)",
+ "P->V[126912:126944]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 166, Column 1: Field Element(0x90526aa9e9674090e3d94894acf90fb74a9f000b240114bde83dd47f7d8ad)",
+ "P->V[126944:126976]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 166, Column 3: Field Element(0x1611b72328165d845514abe3b97efbd444f8436b1633c4ba4f7970cbf230f1f)",
+ "P->V[126976:127008]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 175, Column 0: Field Element(0x3aacfac6cc6d289f9546d532a312bed235f255a3b23c7ced86b45a094bfdfa4)",
+ "P->V[127008:127040]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 175, Column 2: Field Element(0xa9739344d0401825671d1d9f3607c16a4c76037248e7e75564a8f0a3141049)",
+ "P->V[127040:127072]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 175, Column 3: Field Element(0x361eed818c536b13b124085d34945d417c8a4658ecd36a88bbfbf88aa6458ea)",
+ "P->V[127072:127104]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 202, Column 0: Field Element(0x28da47687cab468a0289954f02ae180167453dc625d8256d1a8b2a74ab0f779)",
+ "P->V[127104:127136]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 202, Column 1: Field Element(0x5d29373ce8cf77b8e6e4327a709875a861fa50572b4fb8bed620f1a98e62a85)",
+ "P->V[127136:127168]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 202, Column 3: Field Element(0x13448372b570d6b0ec8081b695b525551b2f1f8c6c88c0a25b592a6241a46d3)",
+ "P->V[127168:127200]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 203, Column 0: Field Element(0x612c9b8662c76495d4a812b27161ae2e8fa13bf6b0bf154a63d3a404ad3072e)",
+ "P->V[127200:127232]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 203, Column 2: Field Element(0x6c7420645c85d2cdc06a3afb9f25858a5f96d09029a62a4946bc95083590d5a)",
+ "P->V[127232:127264]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 203, Column 3: Field Element(0x27088abfb60feaac25c3c0cbde2289db0f0c2026e3f6043b1de71c86048a1ae)",
+ "P->V[127264:127296]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 205, Column 1: Field Element(0x2f9b3cb27bd856a5dcfa4e17e26d75b0e51cf516bc7d385468b34a2ee7a34ea)",
+ "P->V[127296:127328]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 205, Column 2: Field Element(0xcc7c16b87cc06743c54e76e5d37f2b9cbc911ee388e0fd5b66b60d70718d6d)",
+ "P->V[127328:127360]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 205, Column 3: Field Element(0x5d9f893be73c935cca132dd625cd00380e81cfbab298cbc01a3183d7ed4d3f6)",
+ "P->V[127360:127392]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 207, Column 1: Field Element(0x745f56af21cca0a62f6a484ef33bc749af084badde88eb2c20e2e2db5e4802c)",
+ "P->V[127392:127424]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 207, Column 2: Field Element(0x6cc34b4233d92e12be09ccdf58f3f93d18e1babcaa6e2e94398cb7fc47cdc79)",
+ "P->V[127424:127456]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 207, Column 3: Field Element(0x10beb75197cfac16000a530d0c19fdeff357b98e7a3ec6e045ec4830660e7ad)",
+ "P->V[127456:127488]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 211, Column 0: Field Element(0x611e0e3da3b521b838e08b519a45bf02cf2dfbb55fbedbc93f4c324af7286cf)",
+ "P->V[127488:127520]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 211, Column 1: Field Element(0x1bd707de24c0ca4b6cd690e9645545b006d7da6d4756b0b22094b4ea0f38b22)",
+ "P->V[127520:127552]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 211, Column 3: Field Element(0x512c6610ef80fb36a5858fc19f22c247211dbb402a8e6bd8d999e2915f23182)",
+ "P->V[127552:127584]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 216, Column 0: Field Element(0x6c7cbdb53b1f547ae3335fe498e781d8489bb077e0015e67f447bb852bfce73)",
+ "P->V[127584:127616]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 216, Column 1: Field Element(0x4b8ecc3fefbda1341a7bdc8cddb24739db73f54f001dca2111f73027194de66)",
+ "P->V[127616:127648]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 216, Column 3: Field Element(0x7a81015701a731a80a255e855655facfbc90d84497cd488fde070a2691d9642)",
+ "P->V[127648:127680]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 218, Column 1: Field Element(0x53dcdc3722d8ceaeabce6860c81d45ce8167fd54cd4cd12bf19997d9ebeb46b)",
+ "P->V[127680:127712]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 218, Column 2: Field Element(0x60f00f58dd1df2f11caca98b012e0e7b0580285fd61dc65b9f6e5b3c3a0165f)",
+ "P->V[127712:127744]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 218, Column 3: Field Element(0x46e920711ef9ce5afc17c3e78bd8a6a69e380d3da815f0b6d51fd06f658ff82)",
+ "P->V[127744:127776]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 223, Column 0: Field Element(0x174b534feddd01213a24ae7c55ced5b518495924b3605b5a136278d013711b8)",
+ "P->V[127776:127808]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 223, Column 1: Field Element(0x3b8aa6a5324f5b3a2aef919756806dd9efe614ada074026a2be0fa67a05f3b8)",
+ "P->V[127808:127840]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 223, Column 3: Field Element(0x4890fdc1b382719080fb75b8c5b433dc6cfe549323d9f11e03b421b6787ce11)",
+ "P->V[127840:127872]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 237, Column 0: Field Element(0x4e1a8083c01dd3145315226b76ecf86341439d1146372891568809287ccd728)",
+ "P->V[127872:127904]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 237, Column 2: Field Element(0x57b4cb6243621c06390394dffe9086d26b9f098f466aec04f0a4d083000a12b)",
+ "P->V[127904:127936]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 237, Column 3: Field Element(0x38f5f87fac16ed3a33014cf862b768732c62bb45eed5248bf3de0ae31339b91)",
+ "P->V[127936:127968]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 240, Column 0: Field Element(0x5a93cb5aad53c2ced43850e525ac92b2109a96cfda9d8c69de42b0b282445b3)",
+ "P->V[127968:128000]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 240, Column 2: Field Element(0x4804ec62cfd5afe9e67f91d1f97eaaf047553ea1374b6777b0d309d8ee29997)",
+ "P->V[128000:128032]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 240, Column 3: Field Element(0x72a9a9a841047933f9e0c6beb61395fb2886b696a6cdc4ea8515f6fc2cc8cb5)",
+ "P->V[128032:128064]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 243, Column 0: Field Element(0x75b20fda2b1b6cd0c78517cc837b37d3bd2fff7d36c0fd279845a33120caeda)",
+ "P->V[128064:128096]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 243, Column 1: Field Element(0x632e626115c481f0e2ce9db6da2b3cdd93b31443b3504722aee5d6528ca4b0b)",
+ "P->V[128096:128128]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 243, Column 3: Field Element(0x7cc07b8cd40aea07a9d9c96fd81e698ad3e0d6818b680f0b9b99348991c5cbf)",
+ "P->V[128128:128160]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 254, Column 1: Field Element(0x71a33c51e1443cb197ad6f0a0209f25442b24744f798debb58a103a45125748)",
+ "P->V[128160:128192]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 254, Column 2: Field Element(0x318d23bded3742de016e14ef7ce678fc03faaa106b3f74c953f7af39833f3ef)",
+ "P->V[128192:128224]: /cpu air/STARK/FRI/Decommitment/Layer 4: Row 254, Column 3: Field Element(0x787bc4a25cb6463e893cdb0328b3870968e2414e9a1e0959d27b80e75424c61)",
+ "P->V[128224:128256]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 261: Hash(0xb59e7499bac4bbc7efa255be271f0a5d6e7a7604b73fd27ac7975ed56532ba)",
+ "P->V[128256:128288]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 263: Hash(0x14d3cf9638fbae114f87a06895f749de6f190dd08287c93def9af51c6884ea7)",
+ "P->V[128288:128320]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 278: Hash(0x4b60c427488e552d9b464d6e69eb90a07844b925596438f5d071d1b83c7e5a1)",
+ "P->V[128320:128352]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 311: Hash(0x3b071735c94d744b02bc3ad01df1029646473f17e2ba393fba13b0334ac694a)",
+ "P->V[128352:128384]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 353: Hash(0x3f3d74ae952a271bfb4b3d951ab4c2734363b78a93457c4cbbb79521d653fb0)",
+ "P->V[128384:128416]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 356: Hash(0x7f29864a8e29ac051ed5c15c68a0df9c1516987eaf390099a7b1660f0a15797)",
+ "P->V[128416:128448]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 361: Hash(0xd85bba74e9c4d3c1c758516a5129583522d715fc72983dbaa5829d6ed46a4d)",
+ "P->V[128448:128480]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 376: Hash(0x4cdf67f20cd30d2e9bfc496802bcd0ac6e761198c806013826f58a04e8c39d3)",
+ "P->V[128480:128512]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 395: Hash(0x60e117eeb2d9cd94e4753681810fbe4a0513a963dbee64fc080ba019fcc7738)",
+ "P->V[128512:128544]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 396: Hash(0x20dc763cffeecef022d1103dc8c91341ca08a7e78e1eb2d9e181a56f99b0237)",
+ "P->V[128544:128576]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 401: Hash(0x1321cb4d0f8ef7f1495f50d773766c72f3e17660bdaacdf13b85d953da68720)",
+ "P->V[128576:128608]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 405: Hash(0x4a262ded06bd1496d8ac4a959d70c8b2c08381c599e699b155e20346aeb37a4)",
+ "P->V[128608:128640]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 410: Hash(0x2a6c5dce5b71714c1c40436d44e459b1f3140669eab0d4e168cb5936c4a91fe)",
+ "P->V[128640:128672]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 414: Hash(0x7d6027ee0ca1bd60fe9289d9715de22528119f4459e0be4dfb8698e659e278a)",
+ "P->V[128672:128704]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 421: Hash(0xd6ee089e7a9b3bc8d57809e188d0680c48a9a01aa324afbf45049304db402a)",
+ "P->V[128704:128736]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 423: Hash(0x3a7b3280215b170bff90285f95951513d7ff5db6d8d1494d5798ae60f8631dc)",
+ "P->V[128736:128768]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 430: Hash(0x74fa5ee6a20e36cffcd27572eab22e1231bacb1df62a55380f50c0786dc999a)",
+ "P->V[128768:128800]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 460: Hash(0x14e13667c479b3fe55400c4659f11dd93321dfda99478fa5576d0d5d0b0a827)",
+ "P->V[128800:128832]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 462: Hash(0x2c5965248ff5d1529db5fed37446688a32fd6b9fbc7e39b92bd9df21f943a17)",
+ "P->V[128832:128864]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 466: Hash(0x6fac808d3517fa959c2da733fae6bc0acef2f49c467fdfe6934c8f6d791a8d5)",
+ "P->V[128864:128896]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 473: Hash(0x70346d69d6625a267d9f4c7b00fc29b7bf74bb7bee763f65f16807395f28a0f)",
+ "P->V[128896:128928]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 475: Hash(0x7eaeb82f84304ed161bff4bf3745179f4cfe0d16c23cb37b305a41fde94fff2)",
+ "P->V[128928:128960]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 478: Hash(0x3c9e469ae68156dd2adf2207c57c03457593af58bf4a49152c13786f2e2dd1)",
+ "P->V[128960:128992]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 492: Hash(0x57608300c24f370260dcf44fac3afe87fe61b5c86004d0decbe5b67f7529b8a)",
+ "P->V[128992:129024]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 497: Hash(0x4518ad5d2a2f015fc9cf06a9a4c3b2be53e5b34c27a0d857ac426a06c786dff)",
+ "P->V[129024:129056]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 498: Hash(0x1a2be5583299659fe402d321624513a36306170667b16bd92d9077b39b4ac86)",
+ "P->V[129056:129088]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 511: Hash(0x115fe9191971c4559abedf733f379e42e5728fc7c17ad9e8f49147788b883da)",
+ "P->V[129088:129120]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 138: Hash(0x4b4b05e65d74cce86112601a15856f57734835687a1d9c42e2a0b86f9ceeb71)",
+ "P->V[129120:129152]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 154: Hash(0x1a37216db1b21f997d6fb89f3d5f116972c4324bb9ba4beba03f7c40bc51cd3)",
+ "P->V[129152:129184]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 177: Hash(0x395535578f28f4a37a75adf489bfb121e9c9af5c069a08f7ad32dcab7916fc2)",
+ "P->V[129184:129216]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 179: Hash(0x13ceaece3dd72e626b08b494a172356ce7cd1d79925cb0dc68394e461fd474f)",
+ "P->V[129216:129248]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 181: Hash(0x208ee4103df450ac2fe1302afca20f2a8e5faf2b1e142f17a47b260aa7c7e6b)",
+ "P->V[129248:129280]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 189: Hash(0x75a87e263359c368dfc040559cfc29946e97590d6635e7a41c22fa1b3467adf)",
+ "P->V[129280:129312]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 196: Hash(0x12e79b744bf5e043d67d003b96bf6ad8df4c4954d1d55bc383ed1d1607f987d)",
+ "P->V[129312:129344]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 201: Hash(0x15799d699ebf4963af54f799f7a564a093b81c2ea3f410ada3fb316299a2d01)",
+ "P->V[129344:129376]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 203: Hash(0x33eafd6b37c886fc59cae1c873dc6eb1bcff2ef2ddc7176becc8d40cd78684d)",
+ "P->V[129376:129408]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 204: Hash(0xe8ccd5adc7ffb9d8d42c8b4fb524e7abe2f972c7bd42c4e98fc5e3770a400c)",
+ "P->V[129408:129440]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 206: Hash(0x5778f001bd44916a1881f0feca48892403407fb408d7a630601bf5e82f41a7c)",
+ "P->V[129440:129472]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 214: Hash(0x1bd14b874a822328b95f75467b241912ce9760d8beea0d099383d30523690a7)",
+ "P->V[129472:129504]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 228: Hash(0x143e002afde9e6c37e364510a0e5d2143183e93d9e9ff9050354cc6c91bb5e5)",
+ "P->V[129504:129536]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 232: Hash(0x6e2a922fe9c5770c04662bbf337dec6f6e89891305853a3a18e83df5b1ca7da)",
+ "P->V[129536:129568]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 238: Hash(0x2b60b7958876272e342cc11915a0d72e62aedb8b472bd79b8a92ac905da683f)",
+ "P->V[129568:129600]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 247: Hash(0x6e492e269dc640a6a2887b28c566b0678ec0b002a872407a6e51637206c6c29)",
+ "P->V[129600:129632]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 254: Hash(0x297b586bd11a611cda19a4d91b28838264788516f29c0c7d61f3557128ee681)",
+ "P->V[129632:129664]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 64: Hash(0x49a7b2b92f7809568b9513a6ecc0d7b904f48dc5f63c6d12f8e40e019fe9b33)",
+ "P->V[129664:129696]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 68: Hash(0x63c747d4f3cc0561e1928d73d1b3cad8e8471074bf9d51003bef729e3fd093a)",
+ "P->V[129696:129728]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 76: Hash(0x2e8b825b74c8cce94624344888615935dda65a1eca2c9df09df6c38056bb9a4)",
+ "P->V[129728:129760]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 91: Hash(0x3091636dbcc8ee3dd7118fad6ae2645dc8db70415bf039d5cac683a0a13ff21)",
+ "P->V[129760:129792]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 95: Hash(0x263b182bf486b7c696828f2d8ab22a3a2cbee77f9ea421f17543dcfdbcfc65b)",
+ "P->V[129792:129824]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 104: Hash(0x41f73bbd082ed7979562f2f3aa2860218a11eb05879ad452233f196d0e49231)",
+ "P->V[129824:129856]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 106: Hash(0x51ae9e74c3899563ce088ce6179ca8de1dbc0a8a0bbd7b8e106f87db5bc1d8a)",
+ "P->V[129856:129888]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 117: Hash(0x7eb62619a2f0c2ff01e17a4a7ab5fa44256d77e100b56a9633a21a9efe6c0c6)",
+ "P->V[129888:129920]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 122: Hash(0x65f2f1aaa4f68f4d4a0009014838a821df22ec0855ebe962307a21e3c2e19c5)",
+ "P->V[129920:129952]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 125: Hash(0x2c83a889d4e16414ef805b762174a96071f68aca202aeba943773f231c07bf5)",
+ "P->V[129952:129984]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 126: Hash(0x450e26f2166522dadc118335541e1efece69cc9fa033119fa2249c5eb3b1b0)",
+ "P->V[129984:130016]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 33: Hash(0x24aa1e840ed5acbeddd52a165f55bcec01dd39793816e03a25641eb18e55a5a)",
+ "P->V[130016:130048]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 35: Hash(0x7b976b10d4267b343dc5f282af97be79f68adba0fe1e719f6cccbaa8f1070b1)",
+ "P->V[130048:130080]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 39: Hash(0x7453ded774956640768ea4921d04006fb68fcbfd83024f336768b3d4ed7bdfc)",
+ "P->V[130080:130112]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 46: Hash(0x62b2a8f95318315b05c3f1c0f2c4e0f8f6f2bae4e9489605d132acfca9899d6)",
+ "P->V[130112:130144]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 48: Hash(0x762ca64ac91480bb1bd7caa6a5b2cc2403da446380d19910081e2cdc8287d27)",
+ "P->V[130144:130176]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 56: Hash(0x36779a7bac1531e14ec0ed19a088c4a21616651f885d24ec9f9e0744334575a)",
+ "P->V[130176:130208]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 60: Hash(0x60df7e4d9064b5df29549ef466c7d66844cd0b5525d7318273b0e252591f8a5)",
+ "P->V[130208:130240]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 18: Hash(0x1507e2b0b391a7810c56115170439d27e768a052d9e1a2cfcae40ea657021cf)",
+ "P->V[130240:130272]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 27: Hash(0x62bd0e4a0065b844bf345e6df265139bc7748b55d3514ff87c44f1ccafa6006)",
+ "P->V[130272:130304]: /cpu air/STARK/FRI/Decommitment/Layer 4: For node 10: Hash(0x68ddff11bf13cffe3e43c1ab175dce93d635498b3f162bbe89d43e42872f4fe)",
+ "",
+ "Proof Statistics:",
+ "",
+ "Byte count: 130304",
+ "Hash count: 1980",
+ "Commitment count: 7",
+ "Field element count: 2091",
+ "Data count: 1"
+ ],
+ "proof_hex": "0x0082b2b04e6847cc5db94ce40fe26c769cb52048218009712c682ace4816eb38066d12f94a2b10d4ef451936110ac35f62cac35e19e56ddfc82ff69ac3f886e802ee6134282a5cad040523fa65715af22deac01539ab6e9f90d2670ab2b8f5c000c3a6ba68911af16fa41bb9bc6ffa78d9c0186609f5789a718a34ffa4dc682c0106be45689117c2ed9267069d812f3de8bef4a3a9b86ef3143839d27af7ac3203e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d07c330653ccff4ca0540c4b8761474c855ff1c2b8e80c5f376403a9ecc1774ae0452dc6329b7036c268dc0165c5cf14fd577029a2dfae42df1c68689679b6909076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d200a9fd454a1132b8b5e0b4b3bb2341d32446ba3a4129182949a96a45f9c20852072ca3913e0c3a78b062efc6726b9095a8f7bc019388455e2c08dc8fa3432b18036d7fbb80de24432bd8fdd75391e75eac17e72ec7069c3c12a2c0ce3aebaa7f054e5c8afc4942da442b3cf91dfd089e0a821992c041443f5db752c0508176ca072ca3913e0c3a78b062efc6726b9095a8f7bc019388455e2c08dc8fa3432b18036d7fbb80de24432bd8fdd75391e75eac17e72ec7069c3c12a2c0ce3aebaa7f054e5c8afc4942da442b3cf91dfd089e0a821992c041443f5db752c0508176ca05aff41b717f436811dadc46b839294f9fef033ec67d0caff65f45dee01dc31e05aff41b717f436811dadc46b839294f9fef033ec67d0caff65f45dee01dc31e05d58f81d0667cc5dafcfb09fa755e865332743b43752a653a4332540c6ede9403fc0dc82bca27e3f6777647ff56d720e78ea2f93e096659196c75322afb40680271dea9dc650805863f2f154fcf3255802db1af825e29d36eb0b1a2a54133e805d58f81d0667cc5dafcfb09fa755e865332743b43752a653a4332540c6ede9401058624a923d2971a70217fb8995c20971bb58c40af744f35f3fa0fb57eae2a01058624a923d2971a70217fb8995c20971bb58c40af744f35f3fa0fb57eae2a03fc0dc82bca27e3f6777647ff56d720e78ea2f93e096659196c75322afb4068014bdbda8978bc9d552efa14b36084d9fa21176178d729f7e5a9b7e15df77b01076ab478cd550e58a548b7068d71ae7edcaa18fce68e1eef463d971b0176994f076ab478cd550e58a548b7068d71ae7edcaa18fce68e1eef463d971b0176994f020cd02ed7b9adee8109f0952cbdbc072821188fdb838400b7d51ea47d0f9f3c03e20e8c423b578c0a7b965c3af7cd5f40c58714feaff187ef3b2b44dffd5ede02683fb062c2d67e3001000e08a7d52e5281e3fae61dae38cc31d7b0ea76276100bee55f2349f3a1724a3788b91dbe437c5894a94e952510239d2e89956d3f4c0537e6c31dd447aca4e81282d2be7106557cc7c81ecde57e9e30b1ab8c25909100a9fd454a1132b8b5e0b4b3bb2341d32446ba3a4129182949a96a45f9c2085200248cbaed9e720be34bd41e619a8a2c623f94086036d7ead89f22d014b0aae9000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa71504e5f2e50ed4027034d661a86e785a8a8f42df3380cbc71cd8045ecf915aa4b803b558ffa78f22252979c0993b42873b234754dec4c64afe1888f99d1f40065603fef0f405fbe90cf04734d62db04192eb0b8ea6791df70357c8ebf74bcd14c8075c54a339b6145c3ec3234ab7bab59a9e5e50ea035ace877e718c3af9323954035ac21d190426acecc0a8e130d80717b19a548a7b2d3178085b92c4a3110d5b01897b49340eb3048bda830ec6256568dd9e9732f9b2b9695f46447a105e917801270d17c91920f6ad8d51c3f2d24aa5e06469b9b4facca4779c56cc6110aa9c005950ad7158359786ab660305ada248245163c041a19c5bc760ec0e4534e18a006e29cfe1e2945ceb59bcce56ccd67574b0da6d5c595bf8607319b3fbb1b23b0271dea9dc650805863f2f154fcf3255802db1af825e29d36eb0b1a2a54133e80153038d7427863447d08216b191e6fd1792c74820de72c15791546fce1c33e60153038d7427863447d08216b191e6fd1792c74820de72c15791546fce1c33e6014bdbda8978bc9d552efa14b36084d9fa21176178d729f7e5a9b7e15df77b0102b35b76f56b8d7a8c3e6c2204845968680c3d0e64b28525ba2d818f9ff6e10c020cd02ed7b9adee8109f0952cbdbc072821188fdb838400b7d51ea47d0f9f3c01e8b37082d155dcde64d40affe0ed980cdfd49eadc5d8f631fddd542016c6540623057ef8b4e5990fda34c8e31286e6f5ed500ba029e101531ca6e2b77d9c09051c39d6df3ec7f0916203c1ba05c56fff2b234c47ddb8d3917b8f0f477db63b000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa71503e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d043f0072eefbd56b5e3f45466322405eca185c504bcaa6c4e8080d7cca4e8670001b1da7be929c0e64bc11626e0ab9119b1183aad30d4cbd62611564cc1f4e010708d861f1ddbc0a47278afd1f192ce666f50c3af1600c1b6b49b19c00aa9694072203b2eecac125df058964c42362f8354512bd5d6c4a443b9e62b61ec2a2370708d861f1ddbc0a47278afd1f192ce666f50c3af1600c1b6b49b19c00aa9694072203b2eecac125df058964c42362f8354512bd5d6c4a443b9e62b61ec2a237004cc5cb49b5c682a678c00e2a0239867245a520b038c27463726241dca10fe5076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d202e811fbe55f59427c1e94d801d59d60f8ed9e80533047a36f445ec018882e2900b55a85155c2ee0def7b0e9f80002ac5a76512f6392b8b2e2addae210710e0901c5ca5357cb8cbee72d3df88a73a59ec25a2e055cf8c6bf60dd85d182d698c007d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94054c5f04b6b65e041dcb44689ca0dd556c03b65f5023f3d5d90f309eb42745cf00e4209589d0e4725b9e91095da7a1b5b9f0f96650a23e11c80cecf4d683b5a00723ceafe2d9fe0f924cf7f3c20970a6806691403e214b3bc8a2e5ebd87817f907ea978554dd741cfe59cc1b047565958c9ce1c146af47fde39ca17989f6725101f5152bdcb11373c0183a85670a32c5641e87daf2000a405346f8b8c55bda180146bf1b164d294b97eeca2794d0774bb77c40710a9aac9c04e099fcbc8787a204808f8df17f0ea478dc6ea425bed40a9e13a3caf19a737a52d5d2e3b05cc7d201ed8444efe0bf40a36dfef9faca38033dca1892300a009f4799a334083726b1032e279a8219f942de74072ee9751afecaf13c03960648ae68872e8b9ee18a3403b0bd97279e0c5c295f268aa89720fb604fc2fa05ad1b4621175c155b8411110478f5bdf083f6611a3ed89b963a1c37cc556072d4e6559ac6d2c92235850b7901ee5b076dc787bc97c78993baa5a905a026ce9234cfa21d34f6fd4eb3449d59051ae1f40232c0e9fc59324ebc1c13ca978ef2cb46f7e81b0f309a54ef6c58390779d9d48cbb243ef7669d8a0f9393af66318ffcb85323d628805e07e45a417601225ad0e7b45f2ee0a07c8403273d67253dbe0847bc855c3eac2a13ad8695830106792ca92cad53a99fbc9a6c74202ff39940fb8d789404fba8fe2aca3bcf7d0479c2ac3e1c92e74f3c108cee6bf813a238907a05c2c3d81d83ab131220da4b00690d8dd1b552c19c187c35715a8cbb09dab26405fe58fe2683a76226bb2357065059e9fcb4d0eb59bdd6d0ed855c82a8f6adf90854bf8a04ac98a7635467ee03164bb51c55887ab460790195353a3fdeee511785fcab117b6bcb918ffa8d9900ab0d07a1538231abee8d6c82cdeca43b1874289398fb249f42595bf8d3bdce015659a14aa84bf3eb9f1cab637ba2c96a1604d4c7556fabdec1a2e3f3a407a302a10ebbb306b69d4cb658582450e85c3756a1de6eafaac553fa1077b5e0f8660701dd4d0eae7ca3baff38f7e7422f965659570782d4f7d765003e30caca8ff204d55d813838808fe6e923f4fb03f1b219796e2a194efbae051bb79ad39a3be80258ad3c49c25a1ef5b681e6e70f09e048b171f503c95162481e3802700b994207ed729e1ec7a1daf7be09f2a782e1742785d7ff9e720ea81513a071b911cfd206d7d004b5bd9eb334a750f49df0eba48029b2208a514ef431041f61ee6f05fd024499d8d8697d86c3cee8e60c6718fc34c7c4a2172236594c8c07a659dc60c0030cdfc7831b9362b447e930f20cbc03cf48d5fc9ab16b06153d70b05bd2642b072b44729a90d221df55326fd2011fb0e34c36f939193eca6f74ed9bf7d8086c05a9c79b5aab1bc49dbdd4d0c8da27e0595c1fe44a92828ca63f2d31616940c102d8a2457f0a0ff99ca29756ee966f919148137c8c98baa1915081355e57bd6b06f244f04e7366c432cc388f12c1e8a024d2d444d91abc9f4d53eb801ea504b5033609329ce1d9f8baafd3418a753801cdda4e78e62a1abe6e45f1c8f2e85bd801a2deffaa080c18df1e3a93ce38b189af2dcac55fb30e41f2dab4f28cb18695031c24ce5468c546bdd3f9656bfa7c488b00a20d3ae47c5032c2271bc0eac805020c04d249f49d2f68d7c1f79b7293be32e3dbe52c179ccc2586d4094e20f2f3008049e0c6ef8c705fe2770e04c89539091db2ce3d58984878e9ca836337858d00d07cc3b9945903b8bf16c9b027c3cbaf8e62c6ba65b39ead846df51fea2ba10239693ccd4b125d03a731666c466fc1dfaf65abc6fdabdef3bbb5f9b7813608076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa71503e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa71503e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d07d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9403e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d07d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d203e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d203e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d203e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d203e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d203e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d203e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d203e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d203e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d203e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d203e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d203e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d203e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d203e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d203e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d203e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d203e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d203e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d203e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d203e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d207d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f9407d5f6c2b07f0b006e3cf5df3c1887eee5982bc71705cbe7a1f2159a22128f94000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d203e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d203e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d203e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d203e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa71503e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa71503e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa71503e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa71503e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d203e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa71503e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa71503e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa71503e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa71503e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa715000c751d8f0b7a3eb637c7fa17b845dae19184edd0e42d300b764c88408fa71503e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d03e8903e5a5d388b913f18a8a7df4b554f9cf64f16b09c31cbbfeded4fd2f60d076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2076ca91a9db120b3e07844d11e36400933296f69bc6fc3674a0a26aab7e322d2054bd9d773136b5ad1341fa750ec0954c0435dfcaaff115e6413338e83d3174806cc8055b2ac28fed01cf367ae821a8b2ec3d78400ba3321b8f01c9a80bb4bba02cbcd62ef35b748d5a918dcf76616c6caf36d1713d238a518e27bd447fcd7b1018090f550aaf6b525148871beb4325a0f988a2385a269e2aaedf9e990181e0007d5741dc7a70d2d7f21397bd07446f5acd72192e9e2a1a79df13811b0e1e00901c9ffd973ad1b85699acd922822b95bbad5a299ecd9c688649914d4b3906e5f04d1caa33a19efe0216aa7d8861c38ca4ef520dc0c60963a364f9d03929e4e6e05e7c34a89f2c22e0f311eb73dccd3363dfab5e79aab1e01c74c3b76977c9d26043b33097e6107fc8dfc43f36b1729735cbf6f713eef1d42d6eeafd61dbca68a0631257a67ddcaeeaff22e6f7eeb363d4662980bb5e8292ff444f0f032016c3105fa119001ce4b29869cf8f228c24525a6e79187b44786e3522dc9a3185d7b6d077926f27a26f2857e861cc872af7bb919cb727f065459b8b0ad6bf001977c6506ab60a52f628dcbd92d25b14344203be7ac2323e457b7f7733aff14ee4d811305443665de02c03cb4c9c549842a0100b2e3affa8ba9048b871a365f290fcdec03282d0a5e9addefcd2396f954fd13d732d48e8e4f3c1aeb1e72d05972cac30205e0bd4a1f3ec9a347aa100094c53a6d12a8424900f2077144549f94897a5b4f040956ca097f81d25cdc51c93b2ed6c9f1c84524cc91548348cfc24167cc03ac01558419cb6bd7845bc5317796cbbd72ed38c78a4c7ded8613bea485586dbfe0005e132bbff75f5a69f2adc75271dd4a925662e33c3f2e719348548492454f2803e7f14a0c85d85b234a789e8b225b246345c982c218ab36963a7eaef1cabf3b0331fc19804bd74da7726a8291bb6af8c596a50ff61da98600a8b20361e65a2303e959fd0793163ad0f252c8fc253664ed779010f875cb91dd57318876cd2d7b05c254a9f53601b6fd96ceed3a1db06a4139c88daeca1bcbeeb0d6124de1909e01d2834d4cda876a32092d56147ef7fcf2ec691f391989889c04579c21722e530668978071fa867ddbc360a0987e448003fc49abeac10f44e9a1a5ecf2c0d84707e486e3b23d75af9f2fe44b0039a281dc81afb2a3aae89b632c62c47cbc2fd806525661416622613b14d81b6116c58c58d27cc70f47e84a93f4daabebfb549c07fc71146a74645d4a908ecdc29f4ba0124e6f171e63a79a5402aa9fffce8e0705c4ecbfbb4e3c8af715c48e66383ab3eb50fb56696a2b2aa470c6f054be266805ebe15a05f70ccaa94f7b0f402cd794957c8f805830677a33089a9a6440686d0201eae76c13d009f90d3a9c8bb19bbfff6a9f79d766711b122e4f6065c6cb81058dddc4b16c3cc6f820bfc022006750d21e83c60659e291f6e1522d2d7ed544076877768ca3938d8156cbe9721f657b9580d5765fcf927999a915d49fc7f332025c544ca75320518d470e29d231496fab84e12fca50dad925535f2d6f8627ad05bc4ae1ede4a0e5d27c2c5d700a854ca2faa7df816004f213ccb8241db343dd0249646285a37f0a45fa7fa98755b1d414de9ffaab9ed8e3f10a4c7a87584dd504f62f43f591324d3fdc41126be1d53d026143e0e2ee5c245192a3eebdc9ffe506eb635c646274b8b7820ad3a87d6c994bbebb32a437fff43812eb3d9048888206fcbb0baae308c81f50358f2bbf8c5630677b00a5ff0f089bdddefff558809b05e5a0c2e385763de767fc06d9c69cfea3d29ad1d584e11d008a5ac22e8eb13706a7a2c5646254df514da1baf35dc943e7bed526a92519e8f70bea539136e00f03a3022e1b57d378944c17701aad1febfaed250185976eded70b92e02d34c17807429c5bd943805580fcdefc948927937019fa2efeaadcdf0874ce7ff708038901c1c5182dd7093e7e1683a8225ac2e70f5ebb8b0a984307304f382cdbcb07cc009fa533dd9125a11a3bebb961f3316f18597ea23c3dce4968978f222888a9a707f1f5dada20aebdb530e329fa34d65d15315d9bbedf25f11dbd5224ec71cd17068997799698de66d953c67924096f04c54aeea5a456be85145b556e787a5a5503e971f8a6e1a5730b619e98f016b00a70d2772c6842e3d1c46feb90b37a270c0736744f047a118562396523d6ff23a64065948317c421a80ccc20e667076a2d04ffe873b2d766dd5a45888a573d89c9858a48feb18ad98ab0e42696da53d31d0594170c682061b613893c568c09501b0a7c18c14addde30f3131ba3820436c1043658a91bbb260a5b12550392862a5637e568de1532f87cc12c0b4baf437594073b1e8a625f8cb4d2650c0224b7bd69b6eae928b243a91475aa6287998bd51907826a2cfefb331b55ad7892730214f93e517c6db65f76ec3cd555d5abf513a4079d99143c29ac1e2b276dc8f78c06297f9b2cecbbf1e025c125e12090753cf7024f988bba5ac47e3f82845ee7db60b64e16d45030e521752152b34d13f6814a07f13bef1bd2e94a2b853e9e7e5ea67af89977c8bd0aa811f172bb05fc0571c9030a16e5bf3f592642da6fe126f122ce15be839b538b090f17db91eb91a2141001d1b577beac192015243e75194146fdeb2a027d86282acd2c77d4b8c94fc68a0450006c569204d3bbe05e1eb3556958637568691d203069af8c7ba4742ac71307d1e0d50ab9348228d8f3f2296beed1e2b427b9005115b630c50e739d430eff06542393429d3a292ffca6163dd4c6d566e4a71111938ac44f8ee90de033276404f15c457c08642c567f85081389dbbafd6fa37c227124728ceaa70e102bf14607fa6f3131012c8b6a01d5a92e107d928758a242354ba34b4a951d4ed8710708007ffa38fcbf3a015eadbbef8d7cb9e34337bc3c36b4c2960b15a601534122210186dff8dd60153719bc52c203ccea94f01c1e9b53b0978a308036e5672a5cb105a0f60edd2a9451563b9368a48b128c49df7c4fa70230d468b9675aba39ed75031e9744394b3c60ae2ae058533e16944ebc6f2190f50cbbeff16cae15767d9c0646147f2e06a117cde8906f7658c8f5b7ad8b32480885a072268fb7ac9612a206f52aba561c4e805c6d93fc2fe172eaa6e01bcf71c7a8619ee8b3dc91bb697f047fc720039d576fb921f7dbbc6322a113fcceb7ecd6675f36bfb91c765c355d00239afb874780ebc139e3752380f752331c337620b4fa28628436f610a5ec3e06d4bd3c7e9ec65e3a6382ea4d81d1d181e0f2174b9b6e6c07a71a10545ddef702f2ba4511e11aa84500b63ca3a9d7228aac2c2764756a38e5094af35e335b5b027534fb89e88791488f17607e9192b321939b14fce4a8c57efbd19c168232ef027d825e3b1399aa029aadf93762f669e308699fb90411fdd8b4d60f58cf18d5039d0f46b50a2db6c2a15ad03d60dcc40a1825c6cdb74bc2c77f413d92fec232060d56a00bb016ad7c7a591d87930d39bb5070f6274c04d5730b14d71ff20964000000000000000000000000000000000000000000000000000000022ad3717e02f4db93c301f29eff7d5266fd6aa74d55b3ce56759acec0f6053a602d07ae9d06da0b4f32d2fbb8247ddccc200d2cae3179f0670981ffce5874f5a471d38e7d0034cc044e353f09284be9f647f5507a226b40b2a749bee1e661d122069afbbe01e3be3434a51fb3b33cc360c5ba44463e16e1f275595606c66fb05a7added7902a51ea6cc8543defe30925f248c2c68a0a4de4e98fe070e9ad352313c76ee7a001131152d404c32481098a5ae9680a265ed27d4c59d398047ff0ee619c84220008a089479cfbf1ca65c194e982bbab76500a4c048f7652ab7d902fc29aae50b00e302a920c4ec517c562d3b2992b222d0cef8c8916fe69fc131887ccd4288e2026b93a7ce2f6dc432573ff595914fca224cc2c82cf455b4e62e7e84897cb8c9057a40d45598c43cd8abca0ab913f0276b4c61f4c1d5cfb18a55ec5ad273f58703bcb02b16b1068ffb5f3abdaf3ed92132bb3378ee1d6a56f4b793ed604d770a026a1e118a5ea8d158b4d82f766b9596200238047e1d513cee2b224cd014b07301d9c86433ffefaafeed95e37b10952d7f001b4c8ee8f35d0339b5daa756f065076a9674b9e71d9b785f3673b46bc5e0aed7756564937e7abe5f8df43dab69d00123b3be3cebc394044d261412418a27a7012a7c3c1f90e3d249aae6704039f00373c347f979a135adf15111d12984575196e4d5d31d49a124d51ba3dd9057ea040f4af9dbff3e7f864f3c49f6048bcbaa4b459acd886855f7077dfaac7fafc207a52b3ca477f58a09caf21c5d242e03f81507ef255fec9ad0ae1a0114cecc69071ac8a430a74a534a4dee9e58271459a9eab327411685d116397c46c14ef715012803ca5299a3836568fbe5a7df7ef894b12614be2362148d13e45ae1be7eb206d0e25b48a9f93dfe0c060dcd71e70fcb1913562674674a134020532efa632701f7b5d25cc09a9638f8e7f99b1637a4f59a51d3c5bdac1552a2ba42b3f4471703034774057fe7356bd606ccaabea58a5d4e622e3eca60f937d7468f2912d5a20459876f3c91adfd729cc8f6dff888932795d2562852e6eca4327f2831793c1b02faae8038dcd7846774dcbc2d6540900452560c65caaeca73a32da2a930f4eb07acda5561f85fd12782f0e29bd522241e3555d3654d17ca1e5fae1b9107b6bc01151d6b0f83c11460adbb4f2e3fdff0913fdd5dcd45982dc5217ba4651cb7c504785e5f2a13107da49c6ea575a812b0ba0e36a7692a1c3956ba10f996c8a70c0293d4798edef002183975cf8adfc27b2bef455aa5f826583b569b08f415625a012560bfcaf0bfce53a46447bcfaabbee420a0d3e09c167e669a0de19358f42207388c689705413a9de494d05c1e76f264e73c8c950d4083c687c5c64bbb999905a31a9f72ff53d862676c102f0cd4caed539a65ae1480c78ef89860e86294390449209e8799469f79b74ea5cce6eda8057238450658036ab999370bbc92e43503a6048ac777142541255804afdd69d19613144c38424f712ec1f7b48c8068c30599ae831d9d1daee92f8e41949bf2101f7b6f8cab2963bc3d08111e16c395d90026d57ab8f5580b061ee08f18967cb0d0daec80c0901b5bd6bf3e148cf8a8fc03f110b8203dfb7af73696415075ad44f70c6a293edbbe8580b43276a3b82baa05d031d4aff7d8d1e3552cfee61fa839e6b90d4fbb27251f5c367a3a4d5e2b290333a56eeddd307a0bf80edc53422c81f81cc9cf14244486c49ad042f82d906c0405ba6a44d0c75cdecba73ac68548b347522994986029c067b14299ea896c2707107dc39cbc26d71c9c354540bafe56148e9543199f0945e2a9b9ae31b129d30381324a149d075b09fdb9e1567d10070c00aab742d075ab2454e622e1d0c0da06bfbb61207bf7aabf661965ff8a44be066edea4a51f3eacfa7f4a926e9d2cbc04ab81c94cef89f3853f8bf4a2d178eef15106505becc64f19f1015ab1ef6396033c215f1444eeec13366d610b6c94d5181cbf3787221811ca7048d2de4c2dd5036340affd6eae26dffc5a047f3248c2de40b2556256ff20e7148181a7c1a1c901ba658cc93b1b4aeecc8e2069cde9655ecd1754e9aaac60387429c3bd5fe41b0352b5979eb25ff64a1425204f919ef93e2338087c3aae6b5a554a46a6036ab0019c2c4d0ee0c6db1657ef52eb02d1e3cc2b8044ba05a4c07d2745582dda41460026ca2edb3ef4f2ef9d6528611186e9fff38cfd7ba140d919c20fabe1f027a604ffed0e48aa828967ea06591fd31bb3ebc2aee0fe22c7d2bdadae730b6a498b031a033435a8edf00e9ebc87e2aaa1d315bf93c304ea95d5ad27f714098e032302063589610993d9fafef25a28e110e9e262f889060f1ed0c35bb34ffb9b2c62040ba050c50e770b8d3b8c1fc8c67939735180d8bed70310ffa3571265c46c9e04ebd6bd48c739dcc2605e9504dadec98f1540053ea5b37f7874d2ad734b62ad01dcafb91041438192b3a30d10126bae44786c1e615b2871159cd4fa5bb701bb078bb7430034749c427aee7b5fedb021aef59238f79394f847b1cebb8f07cf4d06d7a21736529fe51525c7e82a6c8383a77beef69538bc20c2772b3a1c6fb1a1020df9e35fdd775ea0bea8e24fae81113301c6a2a50070c8253e1f1748d1b73d019675f477c5414bc799969f6d54266e4d88264dfe610ca9e2e80005e66c23c503c6ba746282b061e906a79fc3859eb93f84383f0234e99f6b036775935d227d0781324f3ceb84d72538bf310ddc1c1064ddf0d718cf96267e55a0045b0b4431047ef1dc422342eef5216388a64898af1fc25c8b0204a8929c4f51ba49ad991a066bfdca24e51adec6beaaef592a2e85766c04b3679f1c744ae737c883319170042fff878720b9b1917d0d16b430e04c7b759f2629495331a0bad35496db7e4204113997eb299016e4fa180603a1ec1c0644902f481a8ea8a86427d406eb580d006a6f4a17eb25c1ed1425ef2fb2243fa4e6a7da225a9054e581975831202ed40067c13bae62ae74638f6f5b05bbe0dc489f666a98893f3d62869061d85701210309e9656b2bb96bd5decb84a227ff83e2831d9ce7b035cdd2315501a3446e19065a5bc594702cdc533154ec467b686ff637eb11e2b452b1143158a0e9ed6354000aa79a7d381921ef9a501242de7c76f5fdb8076905108bd7d4757f1a4a06cc00ec21ba9f5a142b3169d732a1686e96579adc43a9cb6073cc9f0610dd1b4c7e0464dbe4270cdfb6a8be40e6fa20f75d14a40223fab2c50aa51083461555c3490496241be5bf5c597f5ce19467f52d1fbf55331894388e979b40ef222e2879a1038001d0f8851697ac98bb655e537bb9cad9e270a48a97acd61ca91fd2bcfb3b041d19618f19d6abc0dc0b109fdb672a6bb5ea2af35330196885096a66ece23504f1bbaecd7720366dc5c979f64dae12657b0bd8f3ffc927f63743e42aa115e9004dedca247b2b3ac25912d59ad0f58d3dc7de74129b5d7e7f44e564d63c4d99077cf6df0f8a69967da128b31c3d344d8be6c379407a69eb6e48b91585c13c3505767d2069bde3181739c81a7ff9e83a903aa023c09d6e884b89384ed875186000450f961e1b3629f51649e1e3d4559e3a4ba48c739c38d0176eb0107b2091b205793788ef3e15859a5734cf708e49f97346dd6fffc4038d6f26fdcfc5c1603e07dce76e6a34590f378f6ddd053ae89c1b2e0ff658b86df36191f7ae133286ee03fada6cfee720b570f095ea4ab60fec7d7cca29fd01931232cc367e95894ca3039ecf6319dfdbfff0fe415201e80a49c5a5411529f9b1daea29113b25673a0f01da0a3c039a2849d25c31814888d6573099d60c0cf49f6d34ae1cf242d010ac004e07ed603a136163cbe4b577445b77462f6f99b4d65b00cada5e929a0c88de02c05403c170202e9431951ea116c9b970a0d0a65c9ba167b45a6d25f4e4eb4a006ddfa5e95595491f01a7ac135c8f81e92a1955643f748514470eee20bf87cd06d198d267381ad5a9d86e9259a2e64877aaaea08a14e9cdfb76f7bee9246c8004caae4f8001cd607306c9bb5afd152c00132c7f33806b025d12bad00fb72a1605eabdaf97a42ef604f7f40d8da114968187ad4811ffcbc5daa56a27e755eec3049ab1e905aeb9118c3104f87b2476a6702810380e1b8d7a1168d935fa3ab137074baeccac432c6d789292e817faec6ac298c175b1f70cbde5cbf6642d421051047f388612f37ae35ed4f91b695d3e3f3c5c34cf35e8ee85c3d22d603d6dfaee00d66a27a6b42117ef4c0eab4dfe898eecf2bc5a849eeee393d6be4263d5c0d504faa20d4bf133e3cb753a6edf9fe9902b2f44cae9cc7b973b1829cce83b164d067579b37aa49ae31e950b068dcbb812940508007496add6ef15b1a93e751dc104520f256ae3ececc9c4e3eeb55b9cea55b856f6ba86d2f3ae0107e22f0cb2dd05433a7380109c8bc33df2f86ac0f5cda157bb821b88b09a83fa2ebca21ca65004df4b2d3e77af3e17359a84c59891f4d1c90aa30ab193e3cb0997cc966568b602f5a3abb4693901fdec59f1485d67499febca1bad5d0d8be8f13f8ac7565646054cdfe3c100af55249cb20674754d4f1e20d30f6b295620531cb43b2564162705c6842d88cc1db53c2d9e0056c0f9f70615aa41dc63da202b6163dabd11ba780731163c3129e66c0ea382980924e1f58e67304723b148d94e54d6b700fc96650084e595f938c202698929cc505bc42940328941151ac13f2c4ed5b6466276180079324632142ca8a5549846342fb5be9c942c7486c3ca9be157ad62222b3bf5027cf724293166e8efb9566441227d1ceca656ed7c92aa1a4546dd9584074ed607cdd94219574b3fb6881386b1e3d6d2867be13d1ca63efdea5825c858e73a99031712a68a2bafd6c479014ba7afdf82fa0d30d12fbe6e4bbefc8d26203d5f10077782d1ae6e79723caefd7446c6bda0b904055a4ee6f2bbc781f7217c7a89f400f83adbdd5f8d4481c6404eba31e6541e7afb5adaab8c39b2c7d36cef18fd4e001e4adfa3641c7ce02145db1eb4bce22831d2c43ef0e20d914d5a6510c7d94900a1c32e45219a511c1178a0846e6106fe60a78e87e763624b7d023027ebf4ad00b288584f762aa752200cf44d81af3d019866c13e270fb982894ee6e0e63cba06ab804809fa0eb05aa538195cd4debdc715a889f6c24d3583a527fd725fbd5f0669f4bee8f2518e060e624f55208b0264208a8d97989607d5b7210fafde95b000bd3b3c78de01b276c4d27951437e5e44f5266a19517806d4ed3fea26edb1700047561a921024c09f6b268487f40113c79ec1badadf671e9ea1ebead16450060235491a59ee406827cadf482cc31a6d0b9a9b32dfd1bf57023b7abce8e654600489374c83c1d0a8cfa6939ea85d80ce8935ff8d059afb75fa37f3bd3357ab7c055111c8aee3479d93dffcfdd6102ff8223d92a4f9cfd3aa476da0561d28489301f2a5328dadc58fe3bc02ead7d2b98d5a9a09b7906fd2a344f50edd50b840880005add6c39046ffbd6f1fb1fdcf37cd85d6867fca867a657997965c979706f80189b3cb6629a83691aec96f35f66a7951cf38f8bba83c97b6e2070fcece9d9601bcaba65e92b6a07a998670d3f42262b606390504e0e1d6b2474f3cb9b6fa1404cd70ff8d4304fb405342ee15447b5c80ec7987c608cd4b76187d0df8f662b20732652f1dd3b0d82533db0532b74ef54f8acdfe57cd2274b175abce0f7d0d6e01c5bea95f49f484b1d07614a9d8b61ca305ba03ccde11dabab3e3beecb5c16601985a7f41441de81312ce6fef99cd3d255f9b1fe8c777c272d50d4de8eceb4905d160fd9078b52e57e832a7fc4546b9f497ae7ec7e79b948693af2fb27d99d807a474bc029877a19c4c177d0bdab3ea8792773bcea9b29302f06cdf755de1e1065ace76933009c87cb5c7812500e9701a5dc3af27872db2e222a6c4ed973cbc035dfd9c4e71e7b342e3a3fd40d1efd7f7cb73e98f41b9ef548857c790785aad0526a4a21871c83fccdee3c96724ddd66eeb65d70dc46e4a405fcc0c9c1e24ad028b613f1d2f388c00a4e3b67c6d09b5f8c3a36ce0fb076e0366fe5a14e0518d078c6ce9dbdf503e21c14b3ec59aa5e78a24f36232b705e1fcfbd710d13e9d5d0506232aed9b3770b8db919330881e8d0bd33327c9821cf06c34f1fcf3a7f69b0765861bebb7932843e8fbdd7542f3bf32d7267ae9445f507c1fce94301c541007dea0dacddccc80dbfb64ae7efd2c680d22d03b20d132bd03cabcda63952d13066948bef56de1e054a4e8c3fd19419f649b262c68c561ff259da16f79312068063f33d39d91c7d52ae95189e97131ec0345a1c9e61607cc691d9652033eab7900ceb8be4736f825f9d8cd41c4f1ca6ba2fcfb3938b5d9287c5bdc539b53464407aa5c6038a57fbf34c03eec4d6463121f90911693a7a48b9e8f851686b2836c07a644c9a62df8b131219c082999391738858ec257d9d3b22a9730b34334cbf905049c0d5975928354de031adfae1483c3aa66d8739782127177f6bc7cf3729402b9b07e666e29c0ae65a83adbc2573904504f8451bd4e97b70852e08d952ac901f36926fdbf0d35288b6c094c4bee5dc7b746c8c7dd4e26ac18630f9d209bef07fc05a9c93218921ff83628b6affed2c5f59bca3536d50c3061be04881d731907c681b1e40fac97b0bc400783db6e4f4af1ba8871192c01b95ec540e005db4e07de3c7c93274ba733fb5c608b568d26ea168c8967e5c94f4e1bd9124c179fbf0264cd209865fd567cd2f0bd001dbbaa89451b701e5cd21a9e90e8b4273a020f02ddc471efb8e4d2b41e615aa86962394e093ac50ad7686faffa478dc68e6bce01a0d3137a04a3204ceb5f0c5d741177ec31b6d6818466961f8ca1502a3d498800c3244f28c102955c2d64086667a19b4e65293ccd0fc9b5b75a235206b0e4690658c1082eeaca4a1f38dad2b414e1666cdd47143a939d3e3ca877279139d89102a87c7ea1eb41d9e24aed5824063939354f5b47897095f80eeaee60ef783fa6015874e3e8bff2cfbac531dea703e18cd71f66e5c8822eff1ac64c9fc6c4ce4b06edf5a281bc71318f6d0ff1fce12d22e4db918abd81b0af42f411ccfbcb4ca902b0ee174e2bc8bd7350187e5610e2989b8ca0232aeaf3417d1076e4d995dd2c03f9b6816e98b108ae61ac76925be07b35e0dea20efc92c46b4c5a94cd85b21804ced743456bff547ce554c4a613c2b0750b6f71279ffd7469ba047d72a6629701fc82d3093dfc58bd4d9e6f46e2b3ca6f08a88a9f8f7b0191cb1491c54a74d702bf1622f184a9ea0fe0bcf794625762d0c67b1714a983d65806813708e2d7c2026b83f091c398569f03cd3104d621b73f5114bdad6e20fdf8c58de0296b1c3601c9c412bd68e4cd214e45aa25cac941dff14476a821d2382d20776153d437e801c0774ce385f5d00dc6349011ce63d30d099c126d3dced3b726c484d22af5e5058f15385fd3a5e20a0311ef51920dd51689aa7e256adf62713442f0c4d1807b00c23c307b9aa830604cd0f8703049e5767dcac5e3f94b6815c90c368edb433c05c21aee80f4d905637913793f7887e6afe0d58d2e1091b4ac85f6d5300b499300a8004a9507029b2e21c47a24eae70d1b6d4e021110a5bfb3ae435189d2db7905eaf2557651507a2ba93f707f2bd7ca1c32f640fb10cc45439efaa3b6be54dc029a23e70362422c27e6320d9325008bebd53b7f22ca2a7d1f0a6cd713d28aeb05346e3cb97e2ef95619c364d90f0c66db0bc18bb31711ade988cf9d3e3833ae0709862f2c498b12b7dd5fce7c0672511458f97aaed8cb744adab53a32ee450406afd152feffc16659456cce4ab068ff22aab7e95c4671fe96b62194ba4b99ae01556a2c37da0f0d75d2a2ccecb683ab8efc90510a76deb87e9cc026c7e8d9ea01127d29c525abfa1e036e7671471551ac25dec0c532782402ac00a0fe41f12f008ee82772743d10c62d7f6ec889438588815f7e2f59d682bdfcd847ad0b436a07b6fce7dc1ecda0bd64623f84f4459846aedb536c7d52d9540fe7a883f89ea905f55876a2da526792cd45c333f46c00961766bfcc79cb04f876d46ca3cbdae80298dedddd528314d1cd4b947d4c77266befff7e0d1d3592e00e7a41b3fc64c60251fc06596673c704f202f117b8ba812a725dc2ef1d36bd73a4f00945c43fc903e6fcfbd43f1544a071801b3ec678c66b4911e77f42239b8a3d71b39d30d08b05884da7dcc76b87df8ad6a83beb0a42de098e5c0a4f079c6de42cc0ee72af7d06081893d4bd162f97de22378c3251f1a032f643f1f403fcf2c08a0e3c5d7d8c020bbbcede27f5163d94be69033ae16be95b4e47424d1054ef88a7b11ca00d0602fff5e60edac5be284aea97cfcd17700c1a24d650cb9ecad3f295b45d861ad805f4697749099c4838ab64598ac86742957d38b310ef0640608e5dc895ee7ac2074cfac608907fb5999255d6d73b882e8c1ee9cc79a174c3c134326a49485dc803db66091ec889e374a564dbc16039c24cafe8867b7a16910a96c2d38407c1730384f3844661b1d681a637bed6cc9ecb47bb6a112ae22a3906742f960a0a0759051f9170250c627ff78fddc441718f2b74b13f4bc8f99b86c3783812b52eb7c307b933cb2f516bfdf627073eee9b3b516e9ba49e410922d89e2dce556bccf1a30417c3e723afa227db8e87c79a610ff2487f863a0f0756eaab2d89b8295fec6c013dda5c29085c0a0e893ec78f4cecf85fe992d2ee07f8a2967310a1acca8f7e01cd6e85ad133b86a4969185f05dea643dbabd899b619f97c81323046b57539c077919907d426d7cea5591846c8fbb50c90b15aef2859413bb6ed1e1d0ce4ea60286377b020bf3c50be798a08c2a1bccf50909d5618a9483a23c8ede7eb969d9046f29c901ed51191224c1b3602aaeea23e92286cf1be729b013b4ae8215d48d01770cf7af5cd484eeccb24a8aa71d5a9b536d847b829091b8d3a8f0b81de6ab049fa820c86aef56c00d45edfbfc04fa23fd862515e2950d545557cdc0d16690017960783170b22fa84f5213cf3319cdb18f5500051a5b15fb978771c83dae3c0518e91d3cbaf85f937e0b7f6833a036a9e74b609301d2b63b5cb1462901b1b905bac9014493d3e3d38e04667a4fee6f8295c3049026d69a1bf22e88330828a4062f4e32cb8fe32f40fca809806557056d522f248974da659414b1f844734d76057dcd0403a4cf0eb76d3f50ed7a9b89b186bb3b8e14af883622a32ad6430921065a0ef29673266134382b0602712ab0d8283f301e4645e2b7a38e6d08a997ad0740eab8b0051112ce07e2f00102adb1f1031dffd842e47c14b0c25533a49287061a0f7712440b5bd62191fa68836ea3a342811f379a8ae61a856933590a76510016dd0ebeba4789836bdb9162c2e7144630de917d2dd7c689bb5a6ce9049d170207ae3311227da2dd072774a43afa8ec7820e25a9c6312faf6634a88ae2093d042449434bed506513bf61d9b4273a0f71df2a9945bc3a89b7c5f6cd458e31f802c55a5cd6ebc234fdf56c900411f0e6f916d8b41c41c356506d7d12d184f5b1059202209f10a2f8984003a57f8dbabb8ab07e92d2847a09f7ca6f55b174ac64061e79d17009806b1c67e9ad0cb50436ccd44a554d1cdd75d0b0f9b965a785fa05bcfcfb7129ce10306f56c3a2768f0bb349f6a3948fafaa5e7547a538d6f35a036e969311f666c2217ace9c6f1b36f0b1afc34fa8554b1f75ee85775d53e59101aa205fbf217c6b8b368d3b7e466e6a489f5f627fc6678ed6d96196dbba6b16074c7ab44631c7a6719d2e48eb54472c81a556f9367ef9276f41abab640f09980010d18a043b0c486510035588d28e878bc996d570d2c04d2a410b51251a22b70384afa4a525c1b825bdb8ecc944f3af41fd297e2a520d5b3a7aafc9c5d34238002867566a1e5eb9bd1c8abd400804e5ddcfd305841a907948b6003efbf3c37703db2edbd517627cc53900de45d5e77a23e8d155e3240acd9a5a0175b16f271d07066ea653975bd189cbc93abe76ae94d90ad9cf0b694b0765c20704613c937b0683d79423e242fd6dcb9166e085026a953c19d5d09ae38d60a74ed712902af90403fbfce9f1a7ac56dbdae0d27b2aa255e8065096272d61435e2dda632b11890772e60cb863bfb2b0cf47a66a6308b95b989a325eb89b678b53f3a6eeb7437a05d7a0937e09a2bcd53f36044d400d119c5710974e4c87f4b9ec5ccd2501cca404e475f3ddbd3633b370a7862d1f08f8f0caa8d7f71b7b999860ef210eadf9a7045f26270397f500aaed63595cfaafbb0966a0e0dcdcee85126c7e926c00512a00a62213446796fe2aa4375179d6552bf391e9a037f3384c94d29f77e989cd8b0672629cc7be8ed8f4a760344797c3420739feab604da33402f8b84d6d2d5e240389d08f06b80f7c52e1bc55e6800615b7b7005681a4a4dcfa19a2ca842a85d704a8dac4974cb9c6dc885688ea92a7d69fa2f7ee9e2d7156f0224536e81502e707e9660feb7a5fc106de95674afc8c385d9b4679bbcabcb2ead826c0daff488d0532b3824857ab1203bfd7bee90fff826e29d558f4968758c311885d1fa824b40041f69efaba6277bf8fac8913842a61756c30802f5eca20182b42f5b2fa256702262ae9a806a7c1ce0e571c778c6b4ccc0daaf0c8430c31760e66d68218ff680003f17fabc0a9449c7004cfc00d47c890b1caaba0335d644e5a331980bf429402536e88d740f2229dd8bb12590e8de2f525ee1831ed3260502870dd1876ff4006efd1936c9cfb27366cafccdb67514eedb358a5061464fabaaf339c902ea9bf07c61e4d0ba25e452a92ca866a6c60a066901abf23eb596ed73ef52e4007d1d200902d38a6850f49e8b829da6d4ee07f5ca00243b51de77a047e3e5f9ca718530448f5a4191f0fe83ef2b0b38992c8507a26272c93281b1cdb4930a0d5d9d7d102fa230dad4bd5064b18a836e4f8bad8642a4dffc8ac9bcd60fd0a49e380266d07b036c047957b8f382be20a3fc5310ef8dcf8b3854d84ff71bb7fb2ca9b2b2602a20367e3c7db5db55a83989f63f4015db27e5f31bb3672fd18f15509714f7106415049b7c08b9090766bb9ce5c88ceeed04df39efa362cf43f1699902a0c870725e00f3b6d50618efd216791f07e4cd881c68471bb6c87ae11f925b4ef1ceb05ada39f8dced8fca75c040a01a7b595983347b842692a4bc0dffdde31d9cc7805f1199d50b28803fa2078075f694661ad5d9466705fc27523d8d40b4821372e00b2772ccf7895603237168556b3d84d04c1e9ad3847e66079d4e2a785f3198701d30b184d17816ca76ce712ec6c5df670c061de2b641e2fcad8686178bd9d4804de684b7251da6bacdbafc6a1fb4791772d47a56927117069c826f2227a382d039f0b9352525d523c57507c137e71767cf16a9eab84c662556223edf07c96500629996c7d9596e55fdb3ef6fbec60cb68b074960a5c39908ab905d7f92f7d6e0387315f70e7b83435738438346b19f06a055cb90ee5d155a6d905610faddf9b01499704ca951adf749c39662574db6d1ac6e9af20c5fad316038993943607f4035a1455c0354b9bddfa5403b0d0a6aa533d1d834f64371f3df088484f65d2340460d72889bf64de2cc4fcb0814962e8b6d2f7b0f1187f7ed9d686e26b96f0da0435057e316178f81c6c4211b715ca77e818294548338f1a33bf0e2401c36184054b670891e955d03be4fa13350337923dbacff289981ee737a9fa5e9053bf8d01b24f8b81c9cee100a57d9c67c7a9ebc64a3a6f16de8a8062946286f7edc0eb0539b6673d7f7a7bd454bdb38428bb7b49909dfc9cab4552fc89210d153d59ca068ac7f739a1a20963bee035a4470fd0146c54d96ae708d0746b1a753f85fdc8037b035dd995a50662da133910ae2cae8c1951dc94520f95c13a67470fa6344f07b60918324660e1242a3ff2329b90c9653e29bcf31e6fe09b68302ab99876b90506fe87062d9a2a842a44616b8a769bf3d13497edd587c3fd6e0c25de6bc5f8015abf623723414242a5fbe69889b014664ad2d1617b52044dc8c04885c9aa1a0725edc13ff6c31ec734e659f66e1bc6849ff3fc963eb96b6fd9d9cfb5f690ed06d6b2a930a5efd1658e8221cc954f0876da467db573925f2992023627dd383b053442c715c84900361e2f9b1fcbd8210400d3d1aaa9a59bc61d2aee455dd194004eaa7638c239cf8500bc9a8a1a0b6e7241c4784d68d30de984562a203fa88106fc1b29499502540931ff98199b86f0a48bd9d026f29a1c030a04d54cd8a11c0209dd8515508d9f8fa9c402d08f7a5f7fb8c484983c3d2c7f7da35b735635f206d8726423ae8771fccec0a159c9d587d1e3e63e3c01d22b22a6535df8ce58dd05a2519880a4c641cc47a98fb473e0e1e9afdcdf07d13af8572ec125476d6ac900514ce056c24caad7993cfa03ff82138188b32ae4c990c007c92c155d9f32180467d7d7979c58a69fe288af950464d212997018d7f29b0a0419d9c19cfd54e60284318cb674db79c0cbecd6f039bd636210c6500de27cd24e0135363cadedf300474d23be5bdd7d767f2ec3e5faeb999903bbf22d99f1cc0eb508787c2131840098455a9f172bff26d4dd2ac6e7caa3d870b28edf32d6bce96f4804baedfa30035fde680ff11b9bef5f12dbeb0478c1242b6f59f65dba0d31bd6c51ab6746e302017c1b75f57557880bc13675a104da08ed979588c5344dace70c158c40f43300a6edb0688524207378ce50f0ae33bd71b903600eef3d7fe3683460e420fad90061e55da77128823223d35e226d130815518ab784d27156ae30679adc93b60d01e880c8c1f43cac9dab43f607f992704ac4721fe8a583a9e3512b5c7edf69ab03cf3f7f3822f9ab4106023b05b7ca1b40da58f495ef9cc904e9598631eae94307304acad753a66aa91cf9c60e12c57e0de05b452fa4166fcdbe78dd484c4c2f079de989f9ff27a9ac8f658f01ce67a808d93a36f61a4f78e9e40b0ec091a24c03c8423c537b4a1da3e40a4b6de31f8661a1f290675407a0b346a2765ba1478f07ad0143d62b8588e76a0ee0086d98bf8cae6efcfdc07722ca9171e30e2899c00117c660f19287fd937712a713fa890f9dd0d66ae82d6adddc31601e13258f2c049049dc2fa8a9d5416193aae548e8274275c26938a9797f459e87d2fa5a1961069173eca87eab03b6e9d50f0686a01cfcc45a466b3389a4883f261e846f6adf0558b97c8184a823a2ddf43e8cea70f10901767e55c31f743f65469b6d2749de01789abbb1ff05e7b87254989798f6e7a676c191666b0020b39b65bda2e36613038867d99def4d3f639f3af96bfeb5826fe4005db1629ce96bd20fe845f3934c04a36bbe2098e132dabe22fcdcad4648b63fc986a082e55da916156c86412e7b04b489ad3337ba5d02187dc878c87467c37c11ab33cc1a2e24e8a79c2f7ad19f055b8c3ffc3e69dc037dc0f7f3618d44b39443013cc0347878a61b78c22f4fa0076ac6525c7cd58b9b73a4c4e11b194eb1766a35c1907b314f5d45d2b60debc3057827d3997f4d8f5f7a026211c0952c5ef15015ad53dfb75eea7551d29e54d405400358bc86dfb8252eb718285789eb7ebeb1013e4f79b693fb1d7a791c58660450b8f92ed465de6509d0fafeefb542ab6e054a15125e3d1226b1f4bf6cc0990500b9692d4973cbd357906f065817fcd3f3304e923f9fcb1e797f31fddd83fe029d25ceeab9db711f7c9e7d5b43939df39a1941627207c3253483d08c48081b015b2f9cf39bd8761ad6db3b69b47b63bc12eee6a28f88e81eed5a241b4156f00552639263bb75f793eff85e33f16c9eb1d5928282cc3f019867c7bd09f146e6062dbf515768414bf705fe6ab0656d4de7c51058cc872ee711fce12f8541e26c03baa05f64f495062b90f424c9f55e159a09aa9cb17abb6ec348788c7638478102b91054f8b07580aecab5f9198974914e9eb967258615e07c0d412eaae5fa910641fd2e1a515f73f9dbbed016352d96d747d11ccb7fa136d6f3c7a9027dfef70039a1bdf413c06a20f8639be5e177745eee954b4714aab9cc631fff59b905ea04d66a0709b285f5436fb07d923279e84a4265b0548708397eb61b54ec435c0906e1a10a043d729967135e90a8ceb019fe70d1c8db2c2b7f3a70349c88fb6f450511484b5c1c9ad5828beb0bdd765f1d42a63858712315c1d0215d39669f4f500133e74a75c343d6b269116df7c25eb0fe08d03971da6eb6c2702dbf49e481bd015c4b03e524476a34dd9750caef8bb06989af0cc8f99bd77921bf8d8769160b0250d58de9c854ced624b7249cc7bbb321953bee39905fbc0a3c16f1cb8426700453bf92442eceda8f6114472592a94f1f44e1cc3b20020ac72c735cbb425273000f42eef0a9c0a48c5d8d26ddd481c40bc2eb93cbba4a0b25bb2b9f4de1a66d0021599420d24cc4fe982965d1e29b3a1a765b64181b7b6ca42a7537c8c9feca050e763af7e82ef0497aa2eab0e7ede1645bafb9db3f675ceea33cf80e8a9a010614a812cfeae27032c271dfcec89bf1f1072a5fc193b0f5fa4bb93eb76224fa03b451c0f31843bbdb689853adf5ee26002d8198a0b0b4d92a45a6bc880c94900209d57134e40ec7d83b98d4e0b702b6bc74985df3d5000e53637f9a7e41eaf00318d4e1404556381e2c56c6a7347e1cc1993595b2e31490824ef0916298767c0460857f3c5954b664bce32511eb73174d5f37ff2367739a9518a501bd1572bc01d92c7f82e386d7c49d5c36597c42148410b417f37601f11ce566a11de3714a0727d526f84e92c10bf993e83675d0437295b035d69a8440fa120c5b8f2d48050794729dfcda61ea4cb4e31bea77f88af58695c42f8fcd37ceefb77d01614ba30309a1e69af47c7a32de69da5122b1398361109ccfa37070fa848eea09a0ad9301c4cb5dbbb4086256dd9f90779e532e3482acc61680716680bb75b94f62cfdd04949e14c5c01eeb96058fc2f08f4da94cd6c6c801ec04af6c60376e02b5b19a0056b6a1d3d0d660e9fb5c0439f76fad6f916644ca5fb7bf514957500927facf040b89fcf9dca4a31a83a30ba3c5d835f80cdf1b7353ff4f5e59dc87ed1cdfd302cf47fcc99593423f99a0e4766368b48c3ff472d09278b66c02b71773f48454053552f01c9fc50c11a83272af19c8f90a0e74af6a69e0edd7422a59533aebeb0593d5f5304985c4c0711b3af993bd6e8ed4a5fac66b390cd62d1326961943cf010e0362d513ec100f080f10f38717033c585e50f984b1418658fa19fd5d4007060ca397fd0d4ac8171aae295a250a351481bf8d7948b79cb3d875181badbaef010d61c656a13cf4474e0e43faf82dd9b7077b6ffc42283fa23db28aec1f2b1204d73f0759892e245d0263a987022f773a61c2311e51a9acd87d96fe1205562f03cf4f15be21950a20d2c4a52f1bed8b760188a61083d22c4b7c28f63b67b6e60624d4bfefecbb13ca733a1e5cf5cbcc034a381df9ff43e6e60becd2c62be8d400377ac16ec087514de2c22f8c6660e6f26ffcccbb3f06ded30dee1c1ed6eefc06d50d864db6e18ad864f6ac04e9f9742f7634b86f5921edad14c95667fb4a0101dc3b9ba3b34b15725c54f61307c5f19b99ee94daef40780aba50e56415b8970244fe25dbca37b49c488fe1725d9a8634c4bef84684f243a81b3c317035819f05459c873dab9ced31e4e5e904f4129a837b3dbb88e7626f41a1a8243ee500ab06784b0d7184805d1c859b8e4a9f94b983352721148e3729b47e7e3e2d6556bc051d3ea5ad65f3e8be661d3741030e3faece0db0b18ac4d62dc65fcbfa4f98e9039679ab73257083a028efb5713a5d71371d2880278b29f36f3af76ba520b412079102497cc3ecac1ad92560a12f26f2172ea906acd0026e337a8e4f03f9e959005052e5fd16af36b60c048eb6725e759da9e85eadb05845c154c4af2c01ec10013efe35f238e8dfc98c74ef166efeb2bb1a83e634fa05dede6c531b344adaf8012a71aea0de8a06f6fa3c3dc013ac1c99dbaa07205bd69393842a7bd0d6b0b906684d548c967f04fda25087070098fc15b9f54af87f648f4ef04d27607d837c07875b63f4d796d8f7e8444e9086ab71ade5a0c98673992ea327cffdf295a62c067a41e4cabd6504925263a243e3864c1f1bd0cc57d1e1494c356a9bc4acb0dd06de48844807aa37fe601d924e49c1cb94c727f1e55404fafc898ebbfdfdb3560120042477236bff68eb6001ac6d18a5b67f490428f4faeab2f672d94fd5f71b05400a5a602adcd464da97bf7f034d3d8ee99cd15aa4a64a2f23099b9fa5fd2405fc95fc0d91a0c31b924ebdacb03d24a1b41e56246841229f4394984b16b24b03df892e8e4a11be0aa87e80b8e4f634f7d9ff8bc20adef7a3e60e6a84ced93207eaf5ad36941340833366343190acf74cabde123c37435636caca47100c36990025280ff516ea131601e696da6dc9c5f096fd0e9f1a6ceb3f68eb94d10d2298065da328da635fa5dcd767bed2607a524285bbfe78e1a20161dc1de01291314604c8a3e2fbc102f85aa670d51af772197ef8d34a34d7462ad08f1b812a21e07e033135a64db865dca25a162b8390c3afc2ee6ab348dbad98c81ccc21ea385cea075e014fbc2558fcdcbc8dc215c177703eafeac84696ae54a4d7ba9cbbf0eb7701d21aaa3d0af972d1768605eb1c0da1b8b5b10b502fdd86c399d340674aecd90224f43bc10aa2b1bd4969b002c1bcc50636f818de0dd71797ca04ee3ad0ae4b0588b6146c6d560eb5892678a18aaa2cf0a6776531f58b963a92591da778ee79064966ac095802f6b8b61c85df8dedf549e09e733b7fc1c56c85fb761e6f959e05a70d540e9ee3cfd649140bed5a62fb866c990aaa9e396481098c63f8261a24003150a75f846087b2cf433dc56ca7db7f458348627ed3325b9fb84eb5bf007d02ce79598cc459e9b52789a29b6fff833da2e1e931c7fc1db6ca46130cf84b4905bc3ad4616fe8ff443410410076a1e3548c94c479b1be8bc7f7539d469d624303a494b76e53efa2976074615c0aa7222225c94572550b757343805c7bc82b6f01663f0f6ab857c488af52f001f11cc96a9316a1d2050230dba14a12351ea82903a598657f49316587bdeac43a70b0fdbce08a0f290821baf011e41402deea62026a8904cdae45a7b0337d71eb364a3f5e225f7237bd102c70bf14b89c97e7a400408423bfee41b48dcb93365f40985ba4e4e53340adfb5f0c41dce61961a224064f37f73430660a0026c59e15b41c597c2c079aa4acc28b91c01935356a953102ded00204a1bb4d166cce3300b2eb0069c6bae7129f0b432ed357a1164cb3a50698e0cc484b806d214ce8b98d133927e19f94dc056e20f8e3ada24894f5a0cb04ebae47fbf20d51f15b17955704549451e2aad6f05a3dea445f16dbfcb45f48046c013fa2827470ec7b98a60ff1f2bf68702f4ba2b082621f462759d44f183a037eec3dbbb143edf37c1a9d3b03fd1987d05be1160b755ea0d471739bc8331203e06806180c0e86089226c2dc2c03c4be2555a5bb64af11a498434625cfcfcd03428a4c96a205165de7365dcb4262d7bb5aa9e68e9889e3a17763063edc6c740303f90139bd5ab3a2003081a9ae9d1c2b4d772e1cfc1be426593cbf65679423002884f8ee44afa9c580ea4a5babe8603eee110d4900b362f0ec8f572e6a5e9a00e0992033202eb9ae415ba4944634bd24201499a55feccb30c770a3ae22609905757167518ccf6da810081f8264e3a6401bbfc29395eb4b28131c8cb1c1dfcd055cf15fc4fb3eb8a14bd2f4c80a7270f98956620ed480c2c9fb7face9202b2407af972a87275a5c6cdbe49953428d6b14671faae14d547c017d596a63b9d5ed0667f1a49ebc4185dcf176272d209ddac041a64ebf94d77dffc64e978432f87100c477715ccc262205f902435bac51e9d94323a9ab8f87efdc4e965775d4091802059c6348236d5926eba3b80d7740609ce3d13a03db3f1c66f425ab19906fe60440f7592370c2dcc603d062fb99623214dc501551e7b509335c05644eebecda03c3ec48d4f77095507f23e67d465b91645003e0ab8ede246b2c6e69f2a66e0607f32abc9cac39291da5b976f6f10194da13eb1d442df8598bb1c8ee250d5d07003b716a2cd556c6ca3cf1900b2a2573aa2bc2e5648849042b969c3ee23678ea012d8a1a653e02430049794d4eccbd54e9ed3d9d40bafe2cc4b771d7124b54c50021a825350206cbaa72e6bd77fe24b8afe3d8f6e0ee5366c9dc102dbdc1eb5607c312581b6e5bd1c9ca7c08b5ac951653a43ac0776a3dacaf345c5dcb9f97bd07c80d94a91c471186e515a4f613721e272193bee2503478553dfe85909cf02c07ec7665700f6fe130f28bc902f2fcfa339f077fb511022c18b6530fcb64372803309e1c571697f8691a2ac9510297816a4caafcbfb8f2fe1616ba3562834fc100ca4d4810367f3e3629ef93263f72fdb5bd740c902c134fe75edab8a09b0b2500baa468cb410a17dac782092901c6ab332a05edbaa47229006e1e0f39489aa800e1b6813c95ad4a2a8c781066052ccfd79f381d86697d5250a5cbeb85eb3ba903315f85d49deca11d119a18bc49e9f4c4fabc5a04786a304e3b0c728012ed5205b6b8d96774747f87379d5eec09f3a93a891870b4025c1d9a32008bdf8453f907ec0b3665e046c6135dbffb0f1bb7a6edd6776eee4f538f260ae6e94a3e5fb0077c13b211b51755bc2d90bcb5f86f888e33db74d40278404155bff026500b4201e3403cb950c34470ca9cc295f608354f63e76d1ef31001c328a9bf84d9fbb3039c19c20d6fb08bef2c9e2edeca7e1f50ddbc5e92141ba279d9af4dbdee687e0640e1144d151517f134fe88adc5a5aefcb50abdd83ce731d48ecb3b9e3527b700b29c3ab060b98b5c8df70d9b4c3372230d4dfe7f1dd24face9057bd612568a0485d5d3a651f8f824cf91bf272ee24b74928f0c5c180595d7ba923676d5a213011fc8661f4ec549ded648a152d36753f82fc6a1307516a9b1c5ae61af1882fb02f425915fb7f99a44f4a74d6b0d4378bd5697095ed0788ecbdd5e90b31900da06092f947009cfac31d7281320ec22c5f6ac1620bfb71d21a078bdefa36c65fa00db3401bc6243aa0636b439adbc79b5b70df16bdc3edb05cade61a2e2819996034fd67e4be2255ea40cc1659fd0da6e69f1ea3fd9077ada6ff63a2c4314bbc50381bfb0a6b3f1a9aa94ed8b34ea11516882a39173ef65cf92b8bd0d049e095b04ae2bde797d7ace7a51b9704da7032193bccd6905f3c720079cdb9c0cdc991406014c5979a9ee511a579f819848abb508d496983849a4aa8abdbb0086e668cd058346e91bd255d42ba2445364ea1d1c7d5100d8d1dd9c01bd36fe5c5e03221807b9a0e7799b9186c5fdfded7ee4198c701d794d8abcf7e13933fb42c72a7d700701788cd3b41c4404878bfa73c6caf4f11ae6c02af76cc4c93cf51c312cdfa5019a7f877d7f545cdf3bb402a790d445038bb1eb6cf9b504522f3e04e29d13e8047345851e18e159fd11a274303420444b43c9eb5337c8cb0fd4315ce981823e0096f32513fb19e6ad24004450e4b2bebfb4e559890d93973dc9307fdb530e5f0246bae0a1addbf4d3012a6bcf51c2c70831edb0bafebfab7e8b15dc48b2b93602d9ecfdb087be421cfea9498c5d27e660fdcb63f297e68abe7d4fded8963a8e04777c7896f1a4eb57f326156dd3320b3fc3052823d6961c3c701502a00d85de042f8f496358a27df826f175a410f2f50ba6e0ca023065f4432c7a8dbd850224055312109b149efb20c18ae3ce558e7b4731fbaccd2c635f2ef5af00beb65552067d29583a5cb90b2c62a2f5cb13decf59b27776e6f7d8d88f77f6ed49934881063f558e8a233d19a01487952c89ea5786329aaf5e529f19a2e17259886ed3f904cb3c62db1aee65072f0d1d0fe014c37bf12eeed979b13c518465f61471786001b18a5cf421155b9b1617c585afccc6a8278d764a8236172c2105ad488617a903cb4ea15509029f207c0c81a5095d01454df6f38805196ff3a502d63aaae88906e045b30267d5f9c788a55e687e8144519fa3382fb6a607aa98c49f2dc8aeb603e2afc17cd5cacdd03ca76343d639f189fc41fa0e5ebe0bbb5408584f9f697504c793ec86029547d7d94f304a18d2be27cd162067d04d4318287e1ed56f9850075a93cd05e6471f849db9876b4aff25ac1c0ac5620d921163db7b5d5113ddd8036dae88c687c5097048d3dd533b873c9d039c09ca7c5ade74317edfc4fd2b640256356c27cd479a789e227c5a945e6b001e9cc9160abb1869f539fd6d24b13704fcb08252d98a8a235ef9e15d68ed825aaf4f1c906d8ddeac3b88107a8df14c056372c8a6d477456b9490da576dcef45b4a9148ceaad462777476e1f109b374060baa99c9f259d83bdd7407c3e86fa1b254d1fb5ae551648e7c4dcf38e55e4e03536bd40e4b009f9dd856986c1e61307a794b9543d5ad00f335d4066db9491d07e584a8a15d2f6aeceebd4dda691264769523e42b9c35fa8371e11454c93fa406950e9ec80f683e825f7a1aa63290da9eb48a32384df5b2d8a1810c324575b2005c913c2127d288db3e99d75fb79973c8e6239f60f79b58c29e92b934c2abf8063d70f4bd0a38f89ea90ac3e3585bd69135a64dad02d3cc85186145184d4f1806c0ae43c9e3709e70dbf5affe8bf8d0310fac9edff7dc25e9a92c57d784453f01d5ab8842cac10ada9586110d0166cb13e9ab7f892ae6f80e3ef5792d8aaab9045b63981652a25058d96fabdee969923fb75b1f15e7466877d31c929720f603048f732750c3ef60e7b1c7b7eb0f3f23679b6d03a48b42c8453dc0187f6f70ff0263aeb5f48795ffe08c1c8bc69185c54d52c21c4913509b7bae2901565a6dc405dd1635b7bed7f99ff96a8e4ba2d6945ea592b2addcc29060e9645c8386cd91035dd1026059ed8563d2d81596e37ef34a640e001bbade514d03157a4083f644075f1da8da156e7210224428b8fb7a4612a8b8da69d4283ce0cf43b3106a449a043a082a710f75eb0302ccf2b2e96bc9a93858f26043491bd5e6ba96f9e32fd1068811a83bdb0df59f36bed08448890f7aed9d2c7a452adf842659e7b5d4ca06079ee3a8968c533b6bcbc43338fdb94a2bd8d433f79c3946bf73f54cf20234b800b64532ae6ed02f5f862430777f495d35ba26871648d9628bd5fa712080315b027b77a280097fc242966804a130fd5fd6e26a5c74379826a1c78ccf4a2477070687a67e759360da59a96fb0295a2dd742079263b9dbaa4aebe6e27ae907a36900320f7331e637f1c88e1a44fbe01e1e31b98f7322608f3e9c8f03a766da3aeb0310b64a7b31f5aa066916a414a54fdaf88548fb721157629b256eb94b1d28c1031bf32f0594d22757526e7cdec84a79a9a439bd59ac080041ecd0dc2d9e992a050179bc45e8379a6197c658682728e93928a1a52a07569b93771932c67869e2032629bb08940af2c8dd4f393ff4b422149fb5b3da099e7a129152fba3483ce6046fabe7a419a6dad86663e99fd149f8cb6aab76c77cc05753c2796ef904a52407c85015efbeadc0d59e40faddf2043498a36722cf5c14b2d01925d00c33edf00379e41eb85d1a69f2115853b736a40686b52129e26c606bec90c6e63ca471990550efdbe4e188ba1750b37ca5b9df999f212432b05049b891a5921dc8b8283d05b939aa87bc3eb08a03a2309a879a463e7be5e02c2ddda3b29a1a29d9d37d3804d58bf4f09694d81a183a15e0d509c3952b783874f0c880c2ce5336b543e52b07230a49aefb5ae548127eace4c1c64a66b286da625dc0d643efe36d0c895d3d045306f76a9adab0454786518fe9eaa5f1b52eef8c4edd6076d90fe028135707022bb44938bc76cce7c4fbbbd3051d5edf7dc2e2d716328b12c6a9291c5f713701bd4e847da487305a7cb0cb2884d2a166de008ece5d307ad54cad13adeda0db000af6ce0b51af33077057b7ac8cf87c1354fbc75dd8642e6d45a51141bdfe1303b984f753c7c8aa7ee4f25001338cab34daf69b319601a5deedae0fed7b84e105e6b4d037fc7841379174031a99da9b40197ac6d3311eb26bd7c2b0cf38ac1401d2b51ce745bea724415ddc7f2848980b75fbf78807427f9a15337f0a8c9f720393302efa4234562c64620bb7141a06b0efce322331ac44bcd8e44fd933d1e001f07f4a7d8758e08900f641d2ba3a301b20c949101a80a863a1a159b71ed1ec01d88867324c0ce69a0352ac99364ae025ab51f31c224f28a892e01c0b51893f049b2cafd100ff4a42bee56c0604ed39a6fb9568cb2e638f1091d8ffd49df5e70647f957c02bd0e288b4f0f77d2194331cf9b4f95c6a829bede8303f01b44faa017821ebb66195df1d85d1da9fa79246bb6f69744d89d9e27a974c55d4e45ec407ab3624c76e3bbc44e213b558fff6b98fb48bee9549e2014c23bb6371b12e8d0668611846086ee2a228f7e017b1bb76fbc6fc438368702e54f0cb7ead990ec607ea65ffb9461522a202695ae930b87ac1102d99ae4503ce2996b19bccfd53ae06c74a200007177923218b039a8d5387b7ebe8f9ceb37365d0a5b03b8ca18e64021449b863f2fb2560b9c9373fabb9157e818f055308fa236d3ccb71a4e6ef440720c66f624486747a0919ed35e44a7688dfd6aee8647bc1c65d84a723605a9c07077d89a1a9942f958e51abca2d2ef0d459535fa49f4a458529deb8c64ebdb0073fe5b865b3ea9addab2e0346514eefa7690fd27deb63ab5261e0d86ab0fe5c01ed1af6a19f996a8d1bb09e27f0b88079004d3516dd219ab4277ca46987d06b04082031b4cc96fa0afce5133ea29c218e9c0c5eb29fbfca3cffb102adfb86f907ddab34779fb47cad4b5503926b8cfd966488949d5986b9de601cf9a05c2d8601f641b3fb124321bba2a68953d7c4cc0fb4ce57be0bc7168252367d1c02de4a0276d1faf080fd94ddfc6fc438fdedf505b644308dc89ffbc94fcab0708e2c5107eb58ddde747cfc0b1de736cc46feedd0f075ed16ae1f7c902e901ef2896bf203705e5cdbee377ab8e2a9eb72b2c62513a163dc2d163d7d18292907b636967b010d9570c947517eff1cb322b607e89cd6e647e71364188ab62ab424a288721e0127612c9a8e06f3b77fead240ab6f99bbf39ae202339390045243f0cafba7f8024fffd96f6f3347ca819fd66af2b467c2775c82843938982d75e0c1d7794e3c062b41fe7f5b5391cc7076d55e3aa57391464d57b5d698868b6498e3f1e5a1fd061d29167d741b3cc4187671f9b9fd3cacfdc22d9ca23d172e1957b40a4968480750fd286196c95265550994c518e57a2f89abe32212191d883bcdb6e553865301d4d005ed8ec1a098f5232bcbb3842ba8cdf07e19f7eb52667f705f29c4b80b00ad58d78cf70f9bf3b78ce378a8c5b19d7e473a1360c47bffe809d8857748630679e3be0470a2e5d9a07121db9ec0c30f8f10f8d6ec76cf1d1807629e33cbdd031b9c3fd5901aa3dda0e55e44eb873aeffa709b672d1cdf1f173c2599a3635b00bbb95a1dd8b37c831c77500c398dd0e3e457ce068cdae12893e3b462b11a79059bf3b6718f96ef1ec03c6a485031e37ea0a4850a6df21d856ce87f1064e4090076662081460cb2f78c34c94fc70f182749c5b183833627a73f51b54c1dcb8907932e8b0d68c05ce5c90109252f42c0cf3c45ef638e2e071b239431ab7113eb04522cc7ed4ca1200e8db782d2e1a2d60a2dc3f91f3093eca522c77dd38a46d607ef020e13e727290f2323549b4756bc05883cb106cf0ef8e2f43dce975a3b3c04925cfa34f7a4a62512b992011bc9c4b465e3be585f900bc14d7d91416e8e24046f439e18424dea96acc832e9d1fc121909a461daabc499bd23e212c3391977012248fd680ebbe1a9d0b5f602aa01c9f83cc6ced7e893482ace83eaa84b619f05cf16ba629afde64b6ca866a8b113be33b624a6fa7c717b8dc1400499fbd03700ebd16bdf9357ab46ff32455813f54f1d9d3cf9cb448b9b1c437fe71088e2ba0249e87f1dd3b3e3f18b415c25833e93366aa7810ba734fb5a43a8c2ea74937601b960332153ccef897facadc988f91a45dabbd38a63375e9ee3c085073de6ab0008c85b0a6f91333933e5198d8835e54e6f6fc31bcde2b57e749cde80a60b2d032f9c13ff30a96a13c475d3d100fe06394fa3cbae58dc483693f1b2b6e5081402a6221739edaa50e2bcff73996c8f6f661e4bd3d51f73c6980d97fa633da48d033a8b0f1afd3285b99850c68ef362aaa980bcba8ef3231b5a519bfe668afdc3070be0309d7cc03e2880e6ecadfe488d97b74a52462aa51c7a102e30176af3b60503e8852f6366aa8683990a0d1353e1385e3ebfc03dc40e6f69e2751989e26506b3e3b0f82c987358f3254e78fbdb817af76f8faca9565f6284cc3243f9ff470191457d63ab62b754a09a0c554b66bc29f7aee215bd095ade18077eaa0a038d0707ec22c3651486c4c6a851e12adb55ad8502d3155be8a5ca51f096ab149e610233c8d8d40ae60c5b08d0df7106776cea1e73e09bd60e194f44765fd9eb9c65032e82bbfe7fb032306a78996f90fcafbf7ce1353d94fd36c9adf8a654e6c2b304ff148861d56b411619e7cd23da8cd2bbb1a2dcea2ec83eb053adffff30734805a7d1b8120719dadb0ce019e35c65dedf7c7d86654f5eb7dea43904ba64a95206720d0ad83f954ef03d759567cdb53aab359b2cc10965e55c37b6fb605f98a501a9c7596db165c21e472cfc2d12a96207f1aaf6027ef3f1832368e99e42e15700106a86bfa3fcd8573cd1934ae5815d4bbfc8b809a8b4631af656f95919c5b50416007f73be938d104de2583893b30dbba563064e9d59aa257ec89b5f016b820350cf74c7af89121ad07cf4051e7d65357c7f3759384b549cb9b21f19fefdea064668582e864758da12ecab8eb383d2969e6afcbc83fd93741e81338786f3a000c748cbb7d337a2ec72c1859c525cbba68a933da590b8243e7b5958342910ef04435c35b9f20eed89e1aecb424c676077ae34b8786945b9289478b4b3771e16003cdc99b0014a3a2b771eeac26d25f34ba2fae3b17f54c4906cf96305df5a6c01200918b3739fbb6bed651b2541cf252ffe7c25e72b8d99a29dd59224aa000500a0314f468a45390227d73aef77d742be063b2f53873c20c9a1cbc68b10f0a7064e4d5461432b7a1b72af26944e9b80a6c7809e29012265d7619b4a6250fdf2016ee15765d7fdc29fcd5cafc886480e871c44c14921063dc67aade80c73fa9300c42a641a18c3c3e2402804d84a426d40b3ba768b7122cf1f434479cce9f2a3034a03137abb192553a85b31d61668e3fefdd3acfec5d4b6646e075c5e67794003a96e0459831ff5cf2fa5ebed10e2139fd1ea58fc7ed86593a794239d4b863c0686730314c897db79dfdf05b50fadfb55a4a27f0a588c223586fcd79f21bd9c041d92301577d3aa797b7696b50bbb88b3a0e5565194ba2a6a623489da90a7a606ff2f7d2eb303c356e36bfc58e782ab69dfff96c988dab893d707dd6d4d40a606c11dd847dbeafd71779b6d4c7eb4bbf0546c204308e4efca1b1bcaad8f87eb02c696104d6c80bad23b0f0aecb410059e557b8730ccdb179c4e7458038c370c067d213e7da1f01a2f8eb842b64ad8e3a443da4e6aacfcd26a30bd8bba741eb307a5fd6f17ec3710c09b383eff660ec69210ad83b9727fafbad1cf85141580dd0365f65a58ea6a44e9539c94fe055224e846745bde1441d8c221880ed6ae18bc07033c2a62496fd24dab4e895c31d0c979ac6d28b97c1b184f6e2ba0225faa95063dce98f6ce84de8b2b855ee617ff9574a3ce5f5e657166cc9830c496d3356107254bc1c278b59de755dc1d15778292b33def996b8cf61905d288f501a1043001d839b8e0992905965dcc5da041c764737318aa52745fba065446ee1f9da1bb00f0c7bb12c36aa91557f68ef4e5d974053b302f660d2997fb8f5c0f3c42479700ae5bd4a0ff3728661463aa8197d6d85a577adb172c4976600b9bc19df8f066067bb18e70366e18c76b22a8c8b1d7d2808acef9678b2f9fe754eeaab5034a6402886f005fd4edf8837d91b01ff5f897394f56541f741e87c61fa3ec1d840d590405d1d982aaed5e7f983938cc684e7b2df0f3a67cf878b827d53f88fbe7ff4d06589f03ccc13e59489c2aec07d0c3af2d893b33ae9a0b619a1e1da30a4e98f2034618429c2e1e2d8f62bf95b30d742ceab825a93205fcf7457203977d22f48b0064cc5d848d927e60d3c2f80202041b128e35276bb4ad98a3d06ed54b9955b404eecee33fa52ea235915dc22630086cf0d57e3ca868f90654cfe23310dc070204a692fdbbef8eaea3308e1f5905ede3a63b9ca0f9dc4008d3b294aca1a9136907968614a762e57a5f05a03dacb71fbfa77e3bd09aefd33c82392210f262aacb060eb6bdfacdd5cffa347b9810ec9fcf672933bc5b22611c5140404c7300708002efa5577cd85c75e1aadc337dd37369a26eb937802c4073a59cdf5e39809fdf01a2b96296dd98852ac8fc22615ef94bb8e5031aca3edd83f4b360a377de283504a67c4b10024ff57356871e4e6c6a08118bf34f99c878f78b39ab263640aa0205f411f99434604589eda7f07ddd280c8ea67e8754511d3982badd7d2005afb9026fcf90f1960036edde170fca29a53b113ee2929f8b8ff91ea5553a9cab7bb8033316c2fed31f700140467a994e183ffeae0ce660b7676dbd878e9d2465ffc705b5d6f905e68883a111dc424728f1df85beba01c192aba78f7e983bd85800170654a7d4e4340ddbb5073a7e03a398183a432c48c13ef1d943e0f04cbcd937080740d7e2206f304ea1177a0cc99e873f60813341d8d8ebfdb5f807426b0e314b05b2ccab3e402640a85b4fdd6bf2f65f252e38fd80118f45eab00c801bc7d2e600793d2b6113a6433ff9f8121add9797bcb015c86f6bbb58d3d7ccf205bfb39700029141bd6888bd1dcbbbad336b4d43673cafd1f39b64bb1f2890b64051737d07b4ec2af182a11261cb01e686f32b4884d921c8b8d8bbac7166e4794df59ba504d4c1050c300d5ae0359eb9c168a514eb4b62c99d9c8fd9095f7eec0ea6d22001cbc9f5e93967781864d463920f9aab9c2196ef121ae657fa1fd27b42cc6da8051da7f0d1fe21d8b712d126a27be493e986726dfb310021dd63b37d812ba4b5050dd5d4113308c8f20670cf0654031a91a46098db36b0b7651043186d31e9a000bce52584a3b8d68754c271eebb57762927268eff98e6ecf77593bb3e9174920405660770dca953b553d4461f9707dc6015183a218915f7a30017008d7a1aa4000ea6f62c1210ab93af0211ed90b798c7896bcac2ee0253669457cb0da940b705cc681599604f4da63c06430941b6ec8a4a2d7ad19b43463bfae92f54107cc305e8c260b4aed99b626589f8dfe443a63ecac0659b7911623fedfaf652fa440a0381d9b596ffd278a73cef10522944ce731d50a374034299877952e591f53b05042d4c8f76e917ce3e901e79fc873b5691719504b20d783a16023e51ae6b568e0162f887618e928a9123084393116b520d6c965e56eab7aff2ef0afe4ab4b936025df714fd9ab4fd7ed2db962c512ed39c2cd5110df0a6d4a18feea37429047a03b35ca6f4882884758f8d56b18c6ad563485315030e6757e4ef817d7b92ffec03d3f6a50f4a7386a2dc58a4c576babe20a5fd71aff9196fe3da1e2d200244f806c88c5ece23c99461e3a892f453c448eaed7fc94c0148149b8a4f2511bbd4d603da52e9b9dee539a6c003bc7de16ca5868e14e7b2522adb3c7c375364498cc3043f9c47b9a1646eebacea73cccd2a86f5ef98beb29ee1dc678ce2d141e8846705418a04b2e496dc63941977ad44329cc5edcf81f255bc6ec31bcb6957adb946052cba232d00a2ab35e49f8f079a946ffbeb4bf4317ed19d1d8e18311176b18a0710c0aa7eb655ed6177e0d86e5363c953b066a90c50f23d4da5ebb8c35285930457a514870747bab53aa8f432f6e2027b587606e3df1957c516d32d905eead600fb83cba545cdbbd74a7e95ff2f665951f4102da44875a9e41c7009d1eded16029f5de3458077bce03199e8a1813203420d923987b9834cc3ee2382b48b4f2005cc70d33c1bb650f286d441f3a389b88177e540d6ed14391a17649507ce8562065b4e7d7de9675348801c96baa09d95f3c54a0954d4d68e70de97403ccf845b043069dcb0bbdea0cc22c976c644b74b10c91b2d0e98d7e7626c604b232785de0006ef95e5fb469f931a86b9b05d0733727177e9cf0773b915281b64e4a65234052d698c4bb9b0f43401a0c70ec634464c562b7017e1d132cf0dde72e7d1cf9a00aef5bd436dff3a532beca75898082168f586f298e563f4dc08157fe2c6c247007759c2213e14804e02d59141a308745152ed6fd713ee90995ef80fbdd91fa800453c48b5bfe666492e373380f94335caa165f36e23c074c0b1fde31166f40c01bdba44f781db2b426444579e776bf492b3422a45c24865776161f706417abf02a153f6c5b942bc4db80114206cb448888fd992855e6f52331d28a1d6e9bc8200824e46f5e0ac7cc9e0df1643d04553a35dc7419027effc3e5db7e2b2332ef2028fce00a8184228e733c04b32f88f13db4a0726660fb15eec48af2264e89c9701c79432d5c20115776fe44e165396f2cd6a4766a96a1783c1113141d0541c1d024d0da9bf357d7ca9fe3bab9163364c8871542fc32a6380e37cebcc61ad18ab009cdde2102a70f4978fc40cf0d5d502f726be33d3e04cc310188d9ec674409a06161c66542b41c1604a2ce513a05baacfe56fe50a23dd66614de6404843a1c407ef4584eddebad0b5bccf3b6cac57f4e6e5773ba0a8ca724d7fda9b32064fd20030a2662d4435d407dacb4f36cab0201e9095d2d637a0b20f1b9cc3eac5fe2805ce87b9d31ecc3f69413e414ba9dfa88244195c6b9cc4070008283fa576509703007b65b3f5e8b3005ddb2c83a156c78d6f77f33c7e67fd39d1aba000297e70038983e6e9efe89bd7c91afce465b3c1dec231d493fb212fe036b9ff00e2050506082f17ab35ccf0d558507c3d53197293f887b68e77ee0e1bd6ef67b6bf7a13068c405a7460f094956ccfbeb406db5777260445078101b6a1b15b84d60c30900120331a9645e9178f4689fca1d856277c0015b3ec4342bb918e64b1710dae6802275f3306737f61f222c5e06af6fdb4fa2ebb7f5aa84369432c757dc8925ad2075ee7559ca799f06b4d294d527c9f9a6170e2881762bd3b506c9750b99ba6310343fdd8504f6b2f7ccbd68269812c107073e9c14adf0710085a3ac7a521db1802e294e47ca7e75bf4ada641e45f7d8b37d220af35ff1718132832947588233606d197f5ca744c64715adc7c7328542b9afa0ca3e2f4e6e8bbcf8ca58a77d7c803d856d084c658369de40ebf8504d607e3f745358a241a646acc04c214f455a80590970880a8de08585e26c4af0402473f8845747a63665767345307975777ab07d41b8959a719b1ee0303ee1813fa1283af4895fb6f73300962c8b6b07f547402fc88bc0241fc5d9cb37920f960e480365bb5170bd45804306a3f74002c902702a71239587e24f5a73ed314cca62c14d28698e7dacb47a4d0ba0c8fd1fe5ba70135eca67a5e0470e0eb4b86152b9d984ca1012ec5bc0c9a26fda2da4c2d963701df072001cc6ec2f460ae47ac403d8150cd1da0ff98bbaee52670c771f5169d078a5f4a8d1ddf7c317407a84e7d8f46a79f3b7ea7314cc2c18d07d6e3c0ef09034d8fe33531d71e47dcd93aa8d572162d6f5ecc2f15b91cbdc9b24f7b87db7603fec2757b0510dfe0418564d39bf0c8e1a45ecdcb077eb6e3c1b9c231064f8c03ba80de97ffc8d488209c9943f2b5f64e9e53702c910163aee4f90b4cf6009304cf1b4347515d58988de9d76b1f6394b90c46ad2a714743bb8f32ed0208c66307d966a397b3cb432769796aaac6e6a5a7e1fd0e436bb7dd9de521422ab5449002e2759e419affe4d814c7909c1d33dfe9ed9a7b74e3e573b2e6f953d1b7fcc5041f4609d947b061f1db6faad40b3dee993624c34500bf5a19af47458af2e195065a7ae8a61906af14781806ed5717339317721156759268f2fc3cdf21f61c8506700dcc77b809a79e50e33a0c7b4de8a1afe20c10198f04e86a034b27989d0d007707b7bbf1ae55a9d03ed2ab2a631ef64c9214f7ecff30a718cc803d9ff80d02295af8c985ae1b5c0b2d058d6099980fa828c01316b4dc84671928bed63d630087b7c4dd13ceb0e72ce7445355a96e927de847d12a598de2f8df8fbcd01f9c04e00c80dbdd4bed7d382e55b64b75235d5d11688d73405f44da6b637e4c1ee106aca61ddd9149c2bfafb38bb7636829ab64f12c4b40daccab66f0aa518ae92901e1136cc5af4a6a82d86a6f964e350760bed8f4110db8cce28167f27a67db4d01c9d1c8882759b78331289a53254aeacff4710b83fcfe061997c0d696060e840642fe6367cdca4e85f15e2a02b0098222359d8379b4bd650ee1dd624bdd83c003594de22c0b182bb2e524636af444010a9f79b22d52efe89101abd87c1e5cea07d4d24f5db597b9b9490bf84683efb763385dcd22687fa1cb88827508461bc900d43165bddaf48174401dc477666c73c2cbfea807d42ed4dce3cefb86eaf4ba00c4c7d0c8596d10d22a3cc8da13452060cc6bb4680754f5d81a61dea053fcd500a0163eab9daf99f4dc3ded311ca07b4837d58c7fdeddb3a09ce30485f0cfdf06608117d6fd071a307006d27824081328626256f67293978693fe1ed84dd12b034936ad56b68a4c99779005cbafb9da08302ebe8d4a44f98706cca5a26e2fd10205dc5beaf4f6c9ade43f55203e4eccca55656b234acd299a41f5ea8842242b06a6e263d7cb5f81b952fd3f1ecb95d4ef946f5bf4aab8c29e0b4d34596cab4c06ffa3a633ae3fb56bacb5c70ad1ff0dc3f02070e84a4a01984def747d702d3602aae0368b651eea2a2d67b7093252d6e701c601b7f564f28ab425343b20c01a0050e89549358d8e7323a0a4762102276d50a90e9e6a40fb7b5234ff96f89b620573c1512d102adc71982669d6749e81f3da338bf1a0ac27d36f572fd094ba6a06c35c72d60043025cd0815e357e39544031c98d9f27dcaa306582b2291bf026042b76caa9f4f3368690fd9813d06082f933063389d78200f29c5f78cdd95f6803f5c2c550f666b0e10d5ea02081bdfb79bf9562ceb06943ccaccbb6c3ba8430000a64f64d71609ecdd7eff3471139b5b0e5ef8cb419b950e857391cc2992f0c010c72532bc2600a407a15f55430a8d2c496c9f3f7441f1e4937194f76e66cb706276480950266d90803c4cf7404671aa4d50804bc8d272b88d057224369b01f02a5111de264946efbc8c9407d584f1c48fb1d4a4db07844af6ed77e17b63e8904db87774bcf308f4d6156bc2cb0eff16e4ef6a957608d53fc6159fb4d1b1ddb0726c3ca86ee3847dcf4b2255a83f10971746a49a0a5b6f92b03df6088805fdd06f08b44b3f58275afc7ffe6eef3bc0d0f1fc0fc82a188b6e7984eedefc3f3a703cfe687dd35ce6fc5540866cb59f696ddada2e696449ba8a2406a0aab9e43cd07f956f7402df53a44e7e92744bfd56c2a5af3816a408798babdb831a520587305ca7ae7a5b832364a08562375b968682131ab7bd91398934671bba5ca36139c059d1ed54e64b57fb2d6b77aecfbfc61171b6386c6df5cd2a06769d70700d95402f7480d1591934e41f0c2581d70c122ace1a5ec1d0769f36e359482e9178d4b077f79fe61b143e708cc08d707bd5d8733df3909459d5a0187acafe4469e8e770382a53dfc1009ac6074eddefe6d3d13f5764d6fa818794694567515c838f52502d73f3741a77e33ab9fa758963fabf3c84a13ad052f5bd9755eac18a61e3b3a050bf15a8d90cb0faee7a03aaa5687e8a281d00602e0452aabc9e815314252000302ac14e3a079ddd7e8b923518d2f9f299fc7dbfb2f149a99e817f0fd277d8607dd303206ecc04d197e13e60fa463292609f808fc80274b030eea169bc710770592a3ab8dacd67e5a03132289361f8f452976c31a1f55fd6b9e88773e9f66da04a7bc09f1af40775ee5465ad4bc36a00fa0daaf57268f71e979636687bfa98f07586392fc71e2d2418c64c67059fefc7116721812c36b58616e81310f22f084045636fb7aaabab690fe21fe9d32f60fc80dc05fd4023d5f09ab9d0a95490b6105b8ba9854dac961402a981b2a2272a13a4f360eb54873e5ad02c8a5b49ca5fb05120492c4431407513ec9b00e41aa0ae8b88f634fc89ccb5a55cdf4d2a1694705a6b14f93c09ebea6d9cc8a4d4351414a2e17000214733403fae8ea459504e80755936875d952acdd1629f149dd1bec1acff47976c9b37096a53bda0692f836015c0bcbf2bb3410473ab3b371915820ac68ed831a1018036471ef9f80edefe0021ca35158cf64d521a433496110a7daccb4a5173d74bac5a43bdfe3936628d507d6a07a3fec622f7a11a5fa3822b77adffb7e0cdc5de3b8e0187aa993cc3b4601939af966c30acf8a990e16cd476a38a5af4e923bf0aa063de8e5998b7b1fff03d1c44104032fd813114c01ebe1416c70b552178186276039495e0a8d37930106e673010c165c5130b2afc1c7ff053b26a51404de5ec5ffd7ffb5491c23e3b105b6754db0ffb13dbe5c646076a8cc049b263ba158cd60a03e2702024d341ea4046b156d3a71af5a236a5bb2738798473d0c8895748881cf65eb9fcc1cf5556e01960885a27a9328618a448df600ad33b3db34a4a3da9393de9a198070b5609102dc234a5aef7f46b751298f38245ba27e263dd95f0ad5d1628fefde1fe8f9e1032d82069fa78a1205b237c5bc3cd98527abe2af29422130855483f2d31d505005724376e6cbe8dc8ea8d4da91c4e1fd8217420b7340fd0804ee2bd87337680f069bffa61bbc72ceefb46a7f31fff3c94d4f328bef4e702ec72662af1ad82284064de10f6bed74f1eef67845c7d396665f3231a129b2d1183373737c0958049000b927ca560b703686d52f3d3094beaa40ea0d932b30a26bdd3b8f56677e268203ba83a8f6322a6c3ead71a23a590a78d313ef5628efd3ab1e77781ab94f3ca40118623e5770b147e9e5cacef16a496defd2275aaedf68a344f70c177cb24bfe00c0ebae50968063ca92867ca45e0c9d1884420a5634fd895257618c068fe57f07ee5802bde9d4bf427f86e1b776c5876a3686bbf105f9802f02908469f7f30f061077f25fe2cb345f68c64546df61e1d5cf2d60644e16e0026a20a6c7cad7100403e1e316c05de596d31da0804a673a10f7a3412e565aa8debe30b7645ffb1302900283058473bbdaebf6b5828d689370f1f9f15d05805ce89fca1e74ff3dd807912104cc77302c39549814636c3aaef03bde7435fc2a9cde8bdee24cef39dc0669b18375550cd06eb795d338822dad358514b7d4311844a0ce8d0d7a51773400859af1efcfcd5999f081dce0c7c18769eb3697d431b6b69487cd994491cf2a01550f4bef5476638b9c332f8f39cb6c9a731aeaedcbceefa8639b5a90cf20ee01ecbcfed3e7be2fa66b1a450a1df93b9261bb54bf9f5ab1de40d00e0728d261058bc55ff1a5d299176732a8b559134755594c6255a4c92e59080ceb6224f7a400a65e2e80a7bf347b86f6e0b417177136123c62b593916bd737942a88353ebe029d7a2db689a9debd73b5bc0f33bc8b804c6d427a03b0c8364b98a32ff3a1d20109ee328d9acbc6377bda0f8b83d884fef516eb43293d773ff529d74315154106b2b9b74683881718e9a2924fffdb66d611f6ddf200aa2e305385015224a771065a8506e88d74c101f5686b738f5acec61d8b1972217a164f20375376412c0900e02f477bd8f6286999e2760611729539f72b37b736243d0cd030fe90e2f7420235c27a3c0b0035a753fb069c88cad84ac5386c4977d5845a12edb0952f30690525ef97d77d88f216a678493562d2304700cffb3a3a0bfb1d16d80d352b5380044017d60da5170575683fdb516adf1bc05c01b563b930d6a832f4657b1ce785055e0a418ae988fdfbcbe26e37dfb9889ca8a6ed163eb2456c8757534e4e500304cc1dca467249e7a4ef41c888d1deb3f6a397d69d7de93c865d44c9bda5440504d5507cf6ee738f08a9a910689cc0663ef36a382c34a8bf9cc44ce9c8d7b343054bc17743426a2f463564e3ac9fa38332e17c9a23a0189018ad8ae95fa2230f03e9cb68576661b456e4b13a3f8c8ec5e0b7a264769a4ce8296cebb3606b20a900ea0abb41ace3f6cc7088aa1014d8272c2800981c8c25a3ffeb20b02085ad7b0290f6dd248adf76237aa7cde0e8489dea7e48f957366cf6a0889e480fce545901912b96939992a161f9329cb8ffd30c8d475fdd6171329d6a23886971b3cfe706fcd35bf27a7f882ea5c90155f6919b086918ba863eddbcf1fc3ab8515fa65403e1e54f944d45c7f4c383d82e7c2b6da04b03d100d40352cddceb7c0f974cd304286de3ce4269a34a52d6eadceafaab5690b22772f232832ae7cde093c2811e00343fcb1b89769ce8f1acd9d51194e46c2fc19a87cb5e750cccd86fddc042a701cd675ef2fed9bcc152602deefe2c11fdd89b8ac23fe70bbe32eb82a42378b006a4f6a187805c8cba6f467e80f106c858f5f657e11812fb4ff7dda9978a3ef605b57fc5753cf22a081213c9274e8201f978325d7bdbd5d4d6665f9eef64862205b576b1f3127c323e2dab0985abc53ae0cd2020c9683a0d06d35acc5f6c8fc805a2646ad4ddc9c010dd9f1a4551646fe467fd4cb174793f639bef674bb45b850147431127bf1b27daefb8dcfd63de6781b99b902da6b221ab767124f25497d8011e08306d4d6580fd070fc922d2517bcaebf94a388a40db61bdee762207cd6405468190ad94b2fa0168e8c424a3976297382b9ae7043265ddccbda15e382c7006b41cfddc55ecf6fa1acfdafd92d828a38bf711caa7ebdfdf1bf5b23c2f07660455f2cee62497cc490d0ce427446b4e58dc73f8eec2e6cfccbad62a8b792f0005d58377073ff85595c72702bb2cc62fbf643e94604d7b390e0d25eea8aa687a01751d23e8d77dc7eeaf05b74f4bcc04a524ed23e72cc3652b151cdf4ddfe135066629b2abf1b6d581d79f7c956197ba9d5aa3c39df89edb6a7401b6e9abe54304b4c3a9e31c03ce6939e92e8e96e45f332dbe2800ab905fb48c77729bdea72a03304e7cffbbfd5187be8ec9495f5562deddaf6ecd6407b47e083c8cbc61c2ea06cadc1649be22a964326d30d6323e85b151656ca408077e222e1074009d985103c8ce2928f4cad60c98d7047d81195fc164aed2a22204e4f4150080b822d6d601987c5dd80145a61b3739fbb4c8de833d97a37dca840527704c2131187c1cdf06cbbc52d45379a1222657757f2cbeff12124e596f728b283070b2b64c2a52fc06e2324f1bee5d1659264ca7dcd7328a0833ef908cf0641afcead4dc8656746705b872d58521837618b33d1a67d5b6b9ccf5c35fc44a5eeab3f3746b94c412430503b15a38d88e5919f60bbcf05c8b5b617b396e28d75be225a68a49fc187ad10325f0d174d346c0b5979fcef58038bae663f4eb6dd5a25151557ba61cfb5ab400dc357da0f630575b1ebda5134ac8f172a95156a1da08320453632f151fbc43063cbbe1e10524d2808b8db76ff190cb4ee1fde63505727028ab26ae8c6b0ecd01bbf2b5267431edaa3bd173026555880c3ab6b341c14fdb6636193234e6981a046befb1a4a0b55fc41b816e9dcf74996cd1497475f424a3f6570c9796d7ccc3032685d94ca4f5ec680a2c6e78ec6335721c5e975bf3f3d85e2a97d545747e62075e26c09df479c828e93beec2037921e5fcecf13f0245e7c4b806c1668b2bb20709a1aaae621249d84bb5189b00805644712052ed31023c7d6295623edc7f2705c79056b79104b5772f0256aaadba5141f85d3624d9e21fcad25e508e0958fd01be866ae072a5795ad10b4cad3bd9ad6e011a66bf636d4626d1eaa6dda36ccd014b2ead7bb84bb63544f32fd78ee4554d89afe330ec446ac442a96d4c52bfd0072081e12a08012a71a8046db10e86740e5d534ab78afb8bfaabf3577045b94704a547aed325fa32d7c77fb62d4bdf8a61f8222d0221218a02be7cb9877048d10016d98f9f233dbaf92dedb99f5fbfc98aa9a79cee149c064aa289e2d105a416070187f99a4a1a87be9a4cfe476638702bcc0a486dd29098bc68d2cee1ecb8170732cd1dc98e5a8be76864a6f6e26c5a891f10c60c4d2705b3f91eab651bf4dc07f1613fc5fd655f5ccc6922d6de616ce66b74e8fdcf4c4eca4d6569c471e06104d36285d4b4c3c794065183d68eb0fd0ec4231c54b4a81e1acfd29fb4e4b9d202cdb6b6e5761ea493149955c6f16be64bfd69dcf0594bbee4734864f46905ff0046f36419813a83dbdc5600aef87cdf436ca14484d2978096da1281e5b7774d07ba43580a3a7c7df99d36bf6b7bafd175087b631e61fd9fe589da2b3ec8959b06dbf02a758cfa112fe1d76a84b4d40ed0e4e21a652fa26e3d9aeb620f55865704bce7af72dde3d46362e7e8419b7bca4b9850363971eb5bd54ff79c85c775b902eac63f2ad6de3061ddab3aa6abad15a07b634ab14d095bde750bec8232b8c9028942090f4a258a48d3477ab756279d3074345c5b060f3ee930b589d9d1b6eb052986a824f512fbb572fddd6df600afd980408070efda9d8b5901055849e7a9001da438e85c1d378b4205df52db08a3fe4cf5bd256d4abeb8d9314c9c5f6b4903e036265d45b29a2b29a7f77943a96a163c50d20061627e77acf00db980085c0365b6a4dd2508fc0c0dcbdf00382b55903fa14233661b39cafbbb87ef947a3902393eb2d04bec6b76fe3b8ba1e744f881f4b599dd1580f45ee2fa8e7608599e064470772fae1bc2851ac53ccdde11bf05247b0dde6d77f2ae54a2e082186c720341b38586d1be36f78730e4e70681f6ce892ba184402547026b6366c32b13d8009ea682ce9147b341e4b1c696ff0e7272e1bac65cf6ffe9ae69155baa01f087005586f99a02d526868da2ffd05abb7ce9196960055d21327f81d6d3ed4e84800202e2db3ce2792c77c93c2a84b0050035c680a3ab5295fceb078df47072cb3602035bbc90aed7d544ea7c10f64a3fda8f03656a5c1de471325112b6f949a97b04e24c1f4aa2d50173b85398aa4c7e447d86fccf43718ccc3dc18bab6bc1c334073cc913a67c051438796c759e17efa51362f955330432b310c73ee8aea97877011d2d2b3bf46ccadde41b79aa8ae642764f921e6b624a7b9430a2a6dc07ebf505c99ca756ac16a062efe7283e706bdaede2d018da629509ef003dca1370de1c078dde88aae200a2673cb86b30527af12b22b1780be4e79f1864a8ce9fbea6e000e92121f18dee8f86af326eea5993d2d4e66a1504ef1082d7a49b495bf17a5303d0ee23a2712903b0a20fc703f3d088925112651b0185ad840892aec34882e70455fa6f48322f8adcecf1f0bfab954d8c0144ded26457d7af61a54505b0c7a306432d3745da5a9c47233438f4cf66db7e25639d13ab04aae45a5115ea8a29cb045d593b90de037e964eb193477d94aae31f06464ca6c03a47f19376dfa50374055c14530b9eeaaadf2a006d42d5ceb76da05de0b84508cbcea7386c6162bad10229ec0ce44039ae90c633d46194b84b8f87c170f4294ae2e284f354c151ff3c06c42b8768df636959515849fc02756d1bb493f51cd6d6679bd88cdd8589e03706b524411b3233e65ae17935a0daa92b6d3f8554ef1e5ca759f1ef62ae9378d00286e1fd7eaa4aec9190eef0f84ce50318a8f31ba0f5f80559215b1da258025c00a6c389c48dc891f236c22208650d418bcbd05b40f10f6ee6cfcf8130c6cfdd031e8ae9088d78e13f1df24c5dc3acd96f8ad817dc4d29b6cdf9e51e2a214adb0645512b2574d4d6c2c42b4456cf1dc571b632d4be02b86feadc22a02b04b3010631725a3323d59b1d8b7283b9528769a8b619a0e0f5280f6a44d639f35365af05b3e977e2547f1f2ca7a3d0290a18c03e8431ad4273925f8ca8e7e247ef2af10643bbbd534d2e5772d979d16da1cbf1462fd4f52c30467022cec2fc2e36e2d3078e856b25fad074e29d0e448b0a5aea5f9e6aea929ac27bfa616fe628e8ecf902b13ca74e3373eb2dcb59c17f5346886cc24e1235968007a55faa25faeed82e036a09007a66faf3c4eed56d9adaa6f7407d5603f9a2a386657721ad4419293a03f3c2448cc943a211df79f764b681d0bdd0fb4ecaa0edb6d7e8c1365c4abe2004c26ce7cf2a36d94d0b17fd0724557c0a2730d2f3eefde10ec52e3cec57bc3705bc338bc5236eb3b5262eb9429959cfc0821fac05d1d36b857efb1bd1098a85063bfe7746c09576ba321e397634d1e07f817e7885e9d2e31052677a531365fa077c1a72080eb2e960a67d378a3f8c0f69edb60a3101f76fe4ea73db5cba317e00026144a626f8e2d74e0d0db1dccc7cc1f4c712d6bcc665a4adca6f8ab32b83013c41b6f8e85774166f9f204b9b75ce0242fbccb593a22b00ebfcf0c1e6192a07e6b48ac0ac41ac28c1127f97b33b2ae85c9e55937f7084ca6752dbf238a37d079b7e0ad04cec6aa5848d324cc1c0bee3ff7eb5bfe9039fcdf69a678d0be496007bcb8fd637288ad20982a5ee8b49baae1236f7fc64cfac7495521837d3842600684f9cc6fc028f1ac3fb1fb79237e6be239bef4696aafd76d8b417e02597dc021409fbe9594833f376aea4d358def46539a10cc938b152b076db05fe18bb2c024b696fc40ea91326df75a22d5fc22fb9874a585c1fed7aacb4951c3e2d476c0529ab1730ab8901101bf3be2b492ae26c49b7114a733d1eb3544efd5ab416df00646b558a0283b99e32424cd475539ee14dcbdf65df072f0a0135f68e83756f07997c49f54253c0021bcb6926e9dd1c70eec31198f41bd6f5ba76f8923cd41107201e7f4c16ddf95a0f49d44494affbf68a3d33026336430709e0f4b1e2205105c3f7c5efafa87662553ddd1723f0d4e7801e620cfae8a16e1fadba849ffce60129183f4a3aa2c19b6cd8641496909f2144d1c35da4926b0df52f3729df537506f42d32b0336e7b5a9ac5ba2dd63ff3057540cb8871f6b7b9486ddef8d75669004dadaee8c82562040e1b224ad88c15994eca11240de4dec3378eb55db651c201c9cf56422f1f9f16ffb4c2192ab114fe2410679f2e4da4d72324e862db671600aeb78106afa1c49f48d53177a968a397891322a8846d701aac3e960e019a2101f9e123b1fc22ef7df293492201eb07450ef31640a755d2b1eddeaa84bea05e030c5d1410a06250755377d4c0a3524f3feb888ed0d8a9a24aac306c97dfbdf305897977835aad2dfa775a369c428511bb1c2549b58f1f1088d2ca16fbee551306d67a15d4a1870fa684e48e765b56d0a47108a5a20b651f9cec88f16a3893b20750bae7b66417f8fb3a45f44b0a9a3d0e80956e7aad2b9cc86bc48b3f9201d50543b581262aceb892f19dec695eb83e22851e12c723126a5e6744108de7dd49034239be784dfe7828356e3415a870094ff64d31a6bf5a7da200596a94c9856307d76396f3821ab01ad197b6056ce3698d3fac8ad2834d35a8ade943b0ae128606a31cdaca52a4215a23d66a87b25d67bfafdf7c692966c0773b539c6a724dcb04c61e758127c564b1da7d5f38c92118000582d9d9bb62d5251c75e072f9dc80006853fb1e6fd87d205584fb060f1e0d1dbe5ba85e6c429162b7fd9c5f26deae04f6f8bf5ccf585e01d55cbc446063edd31943df089b3d2016b8650d3960862704c2f5e8bfb856f1ddb7b3124cbe8d2b3c8c5692e98ffe9e3fc111961c40a10d016c0b6c54c7bcc4848755985822e511c288f9c684a4185715c7f3fda331956e03d14beeb3e4160f2f3a442b9f040f22e8fd2f02f43427e996a02d5328e2d8650339b635ba86856c6592ffb0da1f7c3beaa9e667b798384e3f54882671d5c4c7020f372b6671a897cabb9cb51219905c37adc464128a1b1b7c444053e291d55d03355a3f34183c4fb9f36df27a1b8430683b0931bc8f8b4f77d2e36a3a630c2b04e8416e2bf268b13c2e0ee6d6eda3ce58c267c7e1e8a093f8cb70f9929cbd7d04e6d8eeb07fe21f342c13fd08b2e3c208715d5f45beaafa2ba6cd6e16e75b290776e26e217c817848c0bfdf7f21eddc9a3e17b55a14a4d321504984f251d63c05fe27d1fd513a1e4bffc47f36cb51e621b5ecab446ae8444674e0f067482eb402df25ca51245827bbc8fa8837280b27010f0dcc8cf510449757eff7e4aa324702606b29f9e9eea4fbd536e4864252e6559f29c4374cae6dd49edb39a79a52de060cc4c0e8dba35e27fd2268ba2a58ed36570cb17f4a3d94ccf0ba345d8cb3b00416db1a95917999fb05e08174337e1f2adf3b7bfc89cd2cc4b1ee055ffe67d00763c66206befdb2718e01994f3c4e61d4e19d40439ffa6565bac2779b90d1ec0584542c8ad34211b8511226f3dd0f9812a93f3d3b206866f852d802ec54dd6701b0a339f2832eff31b539d6e3ddeadc04c026f830d5ab92c3531b15ff5d8a590647da2a835bfa07e78116240037e1e52b3b6dcf8c0e0f5b356dd744b8be536f038ab7fe076e53280aea0026c30ebcd6802ebe6c3b17852373f06b1d95a08e00044a9ab7af5df0e41b8344eba545f44d449383a98865a0d32c1b86b9d9ff40900586072a4c213f9cd27775dc27b6f86d48bc720be8a6aa23f0da9e3ab0db5f2a07d8780216fbe121c47acf704b792640f634a60fa5bc0a38f70ea7f4df5d0d54008827745fea4c439bf2e7976a99b210357289fd21ba20ffebb7a6520093da8d0336ff57ca97edbb481a7bc4a00e9a0a8e36a658463192a08d7bac901324992a00a76357e91a2e119ce534c66fcca3d46060e92675926628881229f4b9359e6c06e265239bc9b33232ebef5a259453f58052538bcc93c608097f1787d3c0bcaf0647280b7bef7df532f8707a7f1a41085c8c38e6cdbedec6f62ca882c760128a05e2b18f2e55a3a423a76e93431c2eb3529e1d7e093ff2ba621a5a5f7b894b2405bde73cc5d18df98cda2e2be79e68b765c13bde6ad687bd6e152767686dc4b6027a6c456b510c33bbfea628be34e68aef0b83eecbf11ac6447b8f164d10100605c9870d76d5fa799ec78b3183d007301649521d2c3d1791fec53d82eeec8dc902075fcde7eec4019c31d94914b1f7a09ae11ee13b1995cae161142099e295ca05b54f6b3da147042ad056de4eb92699c98ba25781a196736789b9d4266f2dd1076a171de0c264397920717cdd4a451c9d652fc3ed1aa2dd76952474f0e7089a01f2fd9afcb5a1437ad82a6daa7e5ea719c6998d9cfba9345010fed2588eb53d021038e307591cecd95a178db6a8761ea44bb2e804f7d0c0aad64b9ce029f6a002eec30a47fc8dff6734487c51965d16b1156209e690c8e78afb87fe87bdbe450454a895eb30e14fec72e4433df78af3f8890d7d0c50534759125f88acae4971026fae26469cd6368949a21a5e135800636a053534e2a9cd3b8abf9e57240eee011247e0d8a8c5ca155e6fd32dcfecb7efe9bd852cd324099e191f725c23b20d00364aa33ff587440b041b9ec6f38710b6ca770dabbff1e819fecd06590fc7b806d29d9f45c649630a08b801dd1e8d23812fb1f11ac9afda9988675e30725de5029f65e2d782e8a21aa97371990b69cc5248b2cfd78ecaf0376fdba6988894850074e219daadce35c96c75e3ae878d1233faa2b0dd6135b3b6321d62cd01c26700fdcb1bf83db7098e6a3502f03c31f825f80d98640fc962b4152c29507bf8ec068dc18a2c2d0dcf4b08aab83e4a9e80d893a9fa560aad59d09021fd5022400306ea2eff5a42c7e14f5c3bc7f69b1fb8893eba0702a0e1f735f46d5b5a1c2169064ad59dc246f8059d089276876307b4ac0be1da89100104857cd136ca4aea3b0453fa316f90963d5e67ae15dfc1b308a98f09490a3e60ac27f9759d1a41ba5102144bc9b614a7b9af4d53bee93f9ad855d94f6e4664c26f727ad7c58eaa0623059b4a0f2d090488c991ef9f509a3b82f76c2e9e6cc02717c86fb603e1f3ec7e004797c5edaea37866cd2f840457b4de286f20a3c0b50a13dfb2d4a26c76b4bd05cc408acaee6394ea0a50675e5aeec78d49bbd91a86de027b61d0302c9ebc70023bf2f46799ee25812a66e2e4687811daf6aa547edf85e801918e6d4c8836390605c64930396400c4d4cb650b96e422b8d606a3cf1dfe848445cbedb62f0d3e066d55f8bbd94e8a7ced97115fe4720c6ede2ff551b65a1c32703dbb22bb787401ce494ef306d276220683d5830a808230d0f2466350f9b0a14d79977fb5b85506e65c902d59f2301bfb5e3d5c8c349e194e5b4daec20582d3caf327e31f92ce03e063d19de5d70801278624150827d47f5646e0e743ba333d28d43efc4365aa0654658f48f9b1c5e327b0b83321dc12f998b204db7179d066f7be6b62983cff07ebd44a0181a2930d36073d4e1908ba7f3a972caa2a317eaa5d34f83cb5fc840147cb6c1b1706258ac1078323edc70199a105de0b0b489e7d873fc55280f98204ee6ed0c93985f1543d68ee97061c615b4cd99130f7e07a311a9f37c52734fa02edefe5f015a8e0570aa61e6917cf3498b077a410eac51241ac0b787ceb58a300733732e9ebb41e15f4e3df5034d9495649d59b9ae1f9d1e4e7491f456dab5e05ba9ec68218362ecddc9a1925f3fa9ffd91eb89784bacb1b4f097d5183ea5cb058e8cc0fea0fddd541d51277c73d4ae6579b4c12d6b8ed212bd8124b179002907fe43ca726341737dac08d55332120cf1d3bc5ea7df8fa616688ea8cd21cebf009c795b38732d131de5d24bb1d52ab8ddf421a7d2de2fd0700b1a5da9056b9e047353afc77736301071e2c1929d9a3d9c9f7ff7b6904868c52003cb5f8b8723078f0e9a2f9edae143351ae9d19525d7f62106166c43df7ed8cf86873c1e8f7205619b960aab230c5f2c707995a11ffea400acf8f5c81fc8fcc92b827a0816c801d4cc49711b1442206d33a06034a186f31e15130aa7724f2596754afa83f37200db3a4df33680c98084da50fa78a85e172eeab5d45f3de2378a30cd4e0655f703dd5bc93cca9bffc6cee2ca2f3690f9b52d8599dbd7bbd3b8972bfd99d50163023ad4c336a6dd47664d1162e37795174831c45faac433846e65c7582550372a066204dd51673dafd533cb8f414ea295693a2094a4409f2b5aa26bc7e23b123005700b53720542ef1817e8ef3c2548e3d617394e8619be7d9a0b2303a1390eea067b0f03ea31533d5790a6f938948f57d27e4703a85efb3a05dbf6cbf88d236905d14e750e4360423666ce2eea9ff0cbf0c1f309a4e5df975c043796b3c496a60584c221b12be61ed6c96a0ae53f8af932ab5466782bc4a049a4c5b3167498ec06e9d8ede27793c2fff17b422d5400a5f50151f94ad186109972b789d3ab297305d7c81d5fe45c310131c0f68ba385026c287ff2ca17d5c06b0ae005870f978b07cd50e2ccc2f2ff7a89baed885ba79ca5c66bd3dd494cc7ba384594d55fe8f003f547b5dd761922aee3be781474f1ae053b6f585c03d4122bc745e342c5106d06ad44b269bd7bcf8783e8da36395b4b4a947110f3f675bd9d26c097b721e94d07af5b0ebe8e788cd3d2727121c04483d242711a3ca0ae22493d7d1546729dea017e922af815af415cedf13a36f807f1407dbcd7b88e5c4039906b8736700bbc039ad48153150ce82d34966bb9fc913333e90563538b5d40ef021c72b6392989043ee275dcd41f76796bf2b56972737c202af39bffa020c60c6979f3d24fed0b01fda1117204a2f607ebf02d7e6855f320dd72f6233adaa1fa11949948e90b8d0485a9641db07208bd54316d78233360d1df05d920bbd1e1e60f5201f6dd8d9307c1e5c4ca9664721e65229082d8b0043d8909492800d460e1fa526b455374ce04d642a368b46477f0a15f9b2c53c86a7bb35e91a0ef52a9f0e7ccbb603f6bfa05ce5480ea7437153540244c02f57181bec84f035ae44128841c39241e7fdeaf03b5ac72323a124b2c0ab8ff91f2ad24fc19d698d54140594a6b0b9a01f8c5aa03db06af5bfe611216a329d2f1619789646e5550e1c944c80cf19c600fa7a4b503e4dd5e2ee6163505783f31a7812700530f30bd6023baabeb490f4bda06d9e0031ba3f2c87725ca923d658e34bfd3e45b283fa6d4b1b4e8e0ea90ed6050aaa80050096bda9a1732b9516d31b53c1fbce9a2b1c2c8b5267be40656b299b18b05074b4e72a80d52e2766eabc5b61d0ef52424fab6a0a07975922ce11c537d4182072d4d4f5a582bf96a76c74755b95685c7054a95bdab36a7459d2bd193e7ad2206eb73ea10485a54caaf9b4ac7e260bd7ee21fe5cb10e2ee8a91dacb5a0fa0c1073866cc2ffad23120522b9bcbd6dd392bffd5d6d32616f0e641b0a9fafe78ba016cc5da73d6f1310986ece346f22240b43c94e4d5ed8b5552c4469a956b8de701ddc1a1a610c8a9e3eb420611c1f51cc23fec136c3b5b5333fced52d808ddb1019e850c773cb1e0d5cbdd215013cd95f9264a83c0d268bfb204bf4f68fb853505dd04287bca5f882e35bfe4c2ef70a5b95b3530640edbb45e010b1ce50326e40473c1c3c688c100371f7205971b6d903b9d4ba0376b445258014f91e0b300ac046bc30f26fcafd52b8b19c8c2b81c829cd0c7c5c4d826bf64d24ab80a3e91d2002d1012a0b35fb554b8c7559195de9d123b8ab885a156f992a552c934bd6ef307f28664f9dec88f339ed10cf207e2cdfa8ed7ed4c9d03612f829c4917da9efb03ffd48b4cc3b85620138945cbac502329b456ea16355cf9bad3f5f9af412e51017e6b8ac92b471c8cf4d17709a3d9d7400e88f6f8b9787c6a637e33a8f765ff07d3ded592618897d22c8da7376f812f511af5aea22385112d6fd6ce76ec386c07051e1316a4b866641bd33e56639ee624731f1a4135b1d3b7802cec2e302f09004e51ad7acef8d785bb20540776c14761070533acc2408aa3e9008cf2e365bd067d6b0f1a1b5e63d4e9171eb1ba88f72bcccde0c71f00e5882cf03925545bff069f36823bd70b77a92a3d954de7a2b964d5d80d79500a04bee11df7226c604b0435008a018216b0936c66a644649bb37418fee8877f211b521988fb8dc4d62903ab0d4fc49492245e4e1af5cbf412a4bc9346b63ecc74ad69ced1b98c211d260184b6c3cc9bd0049d38e7c41a8afdd5f317f73bfdfe058401ce59c8076fbc66045b92850d3f9bd46efa547d61a70351fbd8c60f3acfbcf6d3dbe83321dec62e032ee7822ccda19d2a407073da5139a7a793cc13ff892198b1d9bc7f26f14c7400f8893b57611ba4b9d9f1688cf0f8d439ff6bfb1ee2296cf2f86b6c89c8596802b4ae3db5a33278054eb43e8c648bc2fe76b9e96a9c35f6fe320d19dd35c041034c3e105d0530580288554cda6a01275c7ed9061dc1219fa4e3e5b6240b3771028b9df4d2ea8f4e58412e1e37b5f5b5481f2e2ee40bf87fa36e175f5e3b3e990036d4253ccd1912003763f6cf6432e65ac2ec2a89cbc8a3b67a2f088c37658e02ed57428bdd24facb2c5f73a696c664838126989029842971ec2a625edbbc4f00af4398477f5d16cd8c75a3ec1738d38b5fe40588a9c6c1a137906f59269c2d05a95a22f323659192b08c7eb064c0006f6e1f0c57a088b446556ad987ce4a7206d768da45e856a22ab67a393c607b6ef05a577be834f527d54bdb0319ceb09602fceb27095d7d121f6f90381dfd1acf673cf965e6bf949865fcf56bb40a84d103209be808c8798d5cfbdc466dda113e8ad42d1085a99ee39e2c09df5fda802e05a83b0ce36cd03a53ba059655bfb0650ee3d455924b4028abb8ddd73dfeb65603cfaa2f260626a4b0616c9583de6940e220dd2c1521dd146701d2a746824a1f0623991b0137bb6176e22b64c1af2562b388b21a226bbc74ef37de18d47347680799ad148dadfd8652c8276f95ce346978ad201b88e23e023d46affc11db584a059f8873a71e0951699ab7738fddfc9508f53058b04d9035772eb586f86fc288040495d8d75d7d0cd0f075ff22da3549ff273ae0fe2d31bebfbf327d8e5007f1062cfbc553397ac8ca963d91168bb61d89c7814593e633d618d2905a1963f66e014c9e5a425e70cd2a1639acc888b155d9d732e94bf2cafff6fa32d5998ea79e025063103db577752ba2ee5e77735e1010c719e2da30759d71744b717283c71b021679a454663d4f7ad2efe34c66efb1c477d0f77f3a63c6e771c9c16dfc9ea900aae90b8072c04100b9a8cabafaa012f2cbf741de2da606c38152697e7b0068003d95281e2fef88b470f2b02edc96580e58de83d2738daf8993040825c83b6202171cda864d8f1d64bebb7e63e691f2efea5813309fd48d91a6cdec8a6d08c306f62ba5f779a79a0940ae444d870814e2413ddaa7b9379f572de779a95ce6e107502314bdc4ec2547b3f9815182eb508e091a4490593029008d73b12184ab85042aa49e49fb40b17ff209532ec918f1619f39ae4864c3cbc9ebfe5196195e0901b36e8a8ca9b37d737ab4a3b30f4ee15d7135afdba7babbeb2af01317b694ef023fd7fe9b60c246ef5f6cfc37acd166729a6d0257247f8ff0eac1b3230502990639ff95708eea9b32a39d92962de742d14d62ab9eeaf70d44ae5e0b4349c72a079f097c555b2aac1576dfd053e453adfaadfe7b3bf51410b349341e0808312907c1f91e06eb6af2eb1e21c114fbaa5858297cb1634aa76bbc2a830e0f43c07101d2f44fe75de5ca11d017aa186fe6f1228d3f4014a65c0d740634278f3b1f74075df5644a123cc9f254f0337a6c8c95b78514a4057dbd6246e9b3e95f14709d06e1315c88572b34d6fbe81e131acda22a0973a0d13314b211133b2199f767f30586bad548a4e516b7412f9e75350c02bb6c9ca9ee230d86451c2ca13b40bf7a05af192025c16cfb8f79b2b46c6c7a45d65bd26b2bc71e8f5fa2c940960c292d027c6b1143101f0fd0fb04cd67917b07f99c7991b6de51616fa9f18158fb7cb802be3d42594472842e7c6b0b82d1caaf7005fd9532d67879a44d780adf37d1ab07eef131df4928085950e4f6b8f88394163ee8b8ba864b1b5604ff34447ce3d50040065e81583152219ddb83b62678dab30864be3de241fea813780b174cf79303364f0255849d5fd038842cd04ab6bbd92687a4455a00cb657591ae78044d2400a6e6fa2364c1634661ed8c389560906b7808d0ed88264e48e95e4b2408b75a07c176c44f31c534851d3f46fb21832303bd31a837ac850eaae5baf3e1e4c38600d47b9a6b119c5f86ecc7b5d9f8513567d64785a1cc4e41d524debac28a389600d3d5d8c7a438301bb81e4248b3bf8e0616cce765825057c88833a6b29be18304983a44e7a756840f883ae91883c1f7d8394913c2607866263c6b418bbae1690277e717556cb67769edf720bea810e92edf4282797eaa96ae86d4430817b96d026a1b4f24e5cfe3b14abc6c0595502e266817301eda53791545497896d9bb5b050bbf825bc1d84b28aabdcb782ba53069162ce12e07930b7438a262fbde2ec40700167c596abac7efe090ba37c6e972f5d0f4cd2a4e8286b725cbd2f3b1ad9a07a586f043ba5718b7071ddbcace3ebedc7f5262eba405d13eba6bf2b695bf2105af3deda7c8bcd4feb0e3173bf028f6364a7346e9ddae93b8e6c9a3bfaecd7200389cdbf35018923ce02b0238988267e0447112fd2edb2ffb9d90e3f95fae3d048b52bbc6ba6be72cb652e19c4aae42b1fb113c46dc60943df1c8d1063d5fe90182603f53ba0d034a5a3d6f4bba261f87ba16e10fba50f24cbbfb16eadd5e5706dc6a5727e0347e225cd3432a685dcec164dc457cddb9a872d1d48ae7d556e10268cf2032cea41502e75995f93f44b782573a2438cc72ec2c10dc281398fa3800e4a475028f16a448d214b5b760963f0d2eeb2227595e2304ebb8f11ee5a25503c3cb871b7d9063dd4bffdda1ff1628a2811fd1aea09754aa049848c2e937fb0421e3b4052449cad19f4206bce5713953f94aad6f0128a1baac14b43f18b7d803892be6d542790f7b68e27b6d56909f050984c18d373cad70ea7521e417f71004f15a2219e8b5d0e9bc8ba39c07eb3575ef2a8837357cd06923d75507c752f404a8044680fe56578fb516318d7e68ed3872305c0398824232813409cf444e13000423472cb21ad3ed431ede33eb31bc89c3dd2f9b78a355645325e164aedb7707c6501f6114cad9701188f4b3a4758881577ba19a5aed0c270c96bbf3ce2333042015fcfbd06c2bca6f8d5645d1aceb52b9aedfb5d6b33f383a5e46ef0b3df7061d4b8677d28a3560d9d9c8986c3f018377711ff3c428996409d0e38162d5cb040c47ed0581ae37d9b60ec2d1ce6c0c82dcbd90aea9b8149ee1f23b85b929990572daa5f36bca300942a8c70502241700f30d3792b3005761236b9ea8025849019d8f3d217980858ac691adac8bc3ce01afca44902edefce2a951e484e990cb07a6eba76c1cf180dc4d07e487d04154f92bea2598b3ff3505c475f31f067c63035af7e6d1c8dc4ae32442d876ef548cb1398d609fb874f9a263d4c478c05b3c005d9657f7a774016a95ad967e2c0e489a2bf637e4b5cd194f922c27a2192e16008871988fdbf1f52a1880836242bba5f745ef1b36070e972c68c45dac95c86306cb2c93235e883e6a9ddd1f0344e7c41387ae77aca57f7d6ddeddd3028ffab904d79dd3e57ffd23fb9ca99c9b99d140daa06704e58e85770331ac525be89dae013efa35e6f22ced06851d542b337bdf181c51054f027f3e9d6a25db4ce974cf0101b58f04b6238348ff3407981116d7dca77c03a03a2fb35f15d62bd1b60a7f06829691b18415581b08e8e507e9eead3896d47b866aeeb58f3259b601c9f0ab0487add6b0cc10fe294c8c01e8d1ae9e1463e7de8205bc60528f058d5806db9403b1d58df2dfa2aab6b2dfa3fe58bf2fd1d9809f493af30176a586a3856baa25008290eae4eedced3aef20a83d9cd43a0a2d17751b535f4465fa0bfb1be837ac07ebceac26c0332488d1dc2e7382bc5c8a26ce99f91df1902c934b92f7fb689405d42bbe750997b37e4508c85a7436ac4e6f6e6bcd521ff1740c109b42bfdb5900c10b3949006c747d1fd14e3391ad64afe5b45a0a473c3d461e235b2b06e15f00791bda26cc76ecaa31ef1ef1a0b09734287654836c3e54e0f419e1c404d31a05a2f20b6b89489e267efd18adb8f10a004a24b3277992cf58388930a05e38b4000067db64fdd9a726f0fd0381ffb1354d10955a41099d5ecf5a370a5eae5429022e08b7500af4c037ba28c7607a7881595d2faceb2289d262e2c57707eee20a01e25122129dffd6d017f25e52e628caa2fe87ed3ca656dd39f7da4c208cf13003a427a42dd1153a1a18db767d9d6fe9fd9ff3d7a48ba8a4148fa99d4024851403eb685e357adef0a75171725a0b447f4ab5a601e151f12ef0227430e32bc4fc007e144002ef1da6854ceb34237505520df319397c65bd6f4ab3f8d56b5a5af203156d7a941fbe8146ae68f3d6c0b7fc1bc1a508a7d137aff305da1f95386e87079b8a5b5e06429e9918fe5eaca94a52446b992b3a301abd6a9f490efab7fc6b050bb50d0dd2ec73b8941d9e41354a541b27169b6d294ccc4bafa7cfdef7b8d10411f5c3ed0788400eab23fbf260ab214872529f85dd7510d5da688a41796e9301bd08b1490b47ddccf10746189a7475e9965f911fdb160a74f0f999d2766781065b22a341008688c1298a922285a3dfecfb9fb8fdd8d65381bdd76637f49d1000e959588747cb5bad3f9223665ee2e43db107b1224c6a3282cb698e889cde0100af0203c9f2e57015cde75b10f364f08af6d67be1cac25fc1158edc9a4bdc3800c02648ee3631f7daf3131f69ac7132a5769be352e18adbc1c79e1dec2cbbda00b4f12c39d3566591d5fee9327ee063c574b2a06fe7be74ce8e04dae85714520481d38f75d635ca98527d3aa5d1b26f266bde6045897fac5d7fb262263f36870445edd88d8c37bd3db6d7b62edc7bdec7f98c8b8d4bfd8ddcd3f77966fcd47d0595cbcde8ed61a846a1576a8d73219d6347a92af82b43a76e1eb9c43f4735790722caa6039367f9674638c9adc3610fa1e571c655dfa65a7139ac7f8adbd021075aa11036772cf39864d4fd7b1a8a07de17d345d68943342fef0dfc4b8b1bd302776072eea6c39ac50b4a0de2d2391ebe0188f9ac47ad8e134c4da0df80dfe7048ec909a20a118415a80b203c530b8e8aa068cb717454cadcff12f01693ad1004a539aa437d5f4306122c701606baad7bf86f9d9407db98718bd6bbf8f1110c041b17951c1f51df98822bc0c19e1bd9a2eb476de96e1ff8578aa479487077dd0031bb018ada5fd234b1d19f61b68a1c1d6c5180e9f0445c769a1c17b5bbf7c507e724b19bcc7cc96a1e041517750f320b7fd6fe5f2aae55000b05522bd8e2ea0543a7e6657a92a9d0366824b2d7728875d4634328e808e9c00fbb21526db60b03f9f95158e2ecf9049cc917dd8e6d02133dc97c5e85816e489a7aca7280aa980307235e8b6a586f1d3f91b84c3923085aac0edc0f6b08d3b6abb65027c0b8c50691f776d97d76beb4bd975a6255085e714163c01d1436ade12e99b72e7f13db06277d3525aae67cf90bcbdc6990eb5eccca7b08d25a4200f528dd80ec03a7f70031755f5763ef1354f3db66d7e1462e7e13969f87ce4b29f3531eb3198f225002de6ab5c0f4a377ee74694f9a4b6f6eaf61129a7035346d71daf13b9bde6d7b049fc39b7206c4bfb09aa54e04e3ee1d1f4a92db1550a6ef7e6d816c0b32096f0308c95a56f27c473ad1329f84d6a96c70f783b042a6d94fa85ad4119370cd3100702e32933a77757cfb342c99300ecef21d05f7bdee8e518ea6204705135b7202fb9989a213c4f24f44758fe9d135a2af02bade428067571926ba3a283a2a010347df05fe93f411fab4b90aa057d5972e5c5a65577e29c8de8ea132a669b59c01003de1cf780038c84e331fe5926b653d00dbe917a0132e0e23a39664c8e092059f557631193dd2a9d57b5827e7402e0a4835c1a0bfcd1184fd2fbff34123780008e05a7deb6adb0e7549c00e4b6f6e87b7f3ec31876cf762cfe643d69bad7506c79031d093e4f0e8e722a56ba2e13e6696fe63330377bd365b252fd59e891104915544b6f25d566117fde2bb0e389a2bcc2939a6f1be4082c81b853759052705c4f09f42abf46c20b709c7ccdeacc0b915d268748e6c4266f8d9cd96a20b600588db8f8ce5d60f66b38828cdd1f1665252d9c59f3d8c3180f8fadb7be84d81024600f3d20e052e56fabecb8c42c74d657a71aa2d96df07ba487cbeaf4ac56f06c609548693d0d6fc21d213ba361cb6a9853a1d7f3a84be79317e5583feb5bf06967f0134aa636a436d37b8596022682656df44cb805609dd2cc150a4c4c3c3078026c98af64d7d1e4c11f50a9150a95005bf51b8bcd531c1ae8d63b0ca8e23068edd29ece0e2bdc8f50a9d15b8e6f2759aa727d8ebd6db2bfc59785c336a2402dcf1dbeceae3524e38acad0b764012241ec67e9a235f85d950a6d46daf928b01669037aee85c52c851c3e16816fe6e7a219a44973b423bc8dcadacafe4c14d01b5e60c969c666da2deb1ea583aa649d50cd68d08f4a9ba804e66b150a7d89c02c66f19841679cbfd94bf4dede6d088c1a2cc2a34713e4c898e80b98ea8481d02a67bc74835ec8b41c45c39ebc12db21b42e1d12b10596ebffb2690010257a904d3b0cd78f0f74fab4eb5dab99fa72b21a8a0cbf412939ef416278a522c3e47040deaf8f53b86519ad0b02c7638eb6aa619205fcc875a93a589c42fe1a544500049c6cf995c437f7fea8344de095542aab432379a10afa9be422df2f8e9bbc40140794804f6b13b1aee8fd914511da8cf205343209741a31fc734027495f4bd07aee70cf402c2a62db620b9f8fe2a10443848b11927723c51c5a8a68debd1e5065836575dfd01c39b988888778862b1cb4fdadb556a1914a1cd10071969fa560024b103bb76b7dc4d7a02c5398e963663e286949cdeb79c487b9ca015a9eab00667e7914c022ea14c96ce919cfd0482121320bd53e6f851f2cb98385c9d676806c3f6b62db43b02da76b4901d61f4e4faa5873319b9d1b63d04d30e48ebdd5e07b3a3a7a62ae8a584702a1d5ed8dcfe019ee3320c32ee9702cc8107dc38460705cac2a4de1fa0101adfe4ded13565b637c3ee0cccc65656f3f9662a913e0cf706fdd1793a86efb21610e56232448d0b7b36ab790c3d7478058f56f9f3d1d2c10492ffee50e8bbf6c8a8cb0c4b4e46185f3ff78cd6575bdf44b117cd4d42f53600e7378e0503550df19e241708c501e60673edf89e393a912ee47d113db08e5e064249a5ee4b29cc74e6177342b8721e67383590488cdf2d6d10512801d3f07f02703b960bfe69fd37d4a6bcde6b3d9bf19ce984823fcc5faa7de4c5f712372000f1c61b7daa73b2fcb320bcfb3cd8ab0249122907761c00074254c5cbc4d5da0629b412ffd4956790862a37261ad766e571a6a3fa4f3dc59bbccbea702dcb9d0684614f047e384739962d533bc8ffc341511aa1d36a09af289de63d7f040af001da90817a003f8f1d5e8fc3b8c68951d3a69067e49ebe2ee2ca7b05b62357f7065cccfff96cdc9fdf583f8cc25044bc8b91695663341e302bcfc602f395c6fa017e28d0a29ab2d46508d46cc9531335e896ba0dcddba735e0fa951864c0a29a00f65bc371b85168b4d9381c6f2f859ad3537b2311ff354ce16978f19cab9cb300855ff27ec5aa3107e781f66b620b9fcdc3758aaee3c0e316752daf8820a27507ee95ade53ca85286d0c9f6ee64dba7684cdfef56625cdb992ca42fe0b2140605abb51010e80fe6bfe6dd01f7da1dcd82764055d1d9fbf319856bf7becae4b30788bcfc6633a60c7206678638a0c932170cff5fc02b6b01334c18b6dfeb49e703c66faa5c4296268ca224556b96547497f3b4ad6d189829457758b329b283e3070cb3138eecc313ecab3b67001ac771426bc21075eccfdd4ccacadfad7f9ce600d46a6f353573f1c009161a7ee8419623f146751cf1162b4767b56023dcbee3036546bd6c75708a44468f83a1965d33b2054a1dd0f032515a284161528c0fb9019c106b88ce0f959accab5369cc8c3a99cdabdd7b508c07e307caaaabb37a7104b504cd9028b7c70f9993b7b5318d938d1713ec825907ead8943b658e13ba5405edcbe5c6d444093f0809719d25f25dc65287464d1fa3ad56325f075bbf1af10014df7c2f18486f9a9b87efbc78e71b81a84e1d6dee8c68414a6a07fe1cfd2a019363e565ce1a83b8897a88b464de13cef8cd91da2b69ab4e01d59731d1038b03e987b8d5bc0e47295fb349ee58cf0209083700493af9fd41799f36404a8901046af32116653f9ff1b01e34a1a27dac6b070207353c71a4c8502a946ced5c88038e0d3c73c118d776af330c3303aa39c27af84a9e8f27d4992610a313e84128033f8f720da5512e6b5950c8db84953fbde4b5b0141ff8b753acb98ef7d1096b01ff02e1e80d1b6339489fd9170e330f06d76e2abd176d104a82480af55d209b0326f21d407349d0ba6dcdf16fc069f2d2c9b908500c3791661ca429756d49b20516eaaa149e3bbc1165ed596984a99d7bbec90800c0730941da1e6199e2a608035a12c6a9bfd036a2d02ebcffc12071329c02342ebf172af34941c3f076fb18069801321a8298ebe106dd51406418871af477fd6d60e8759bb6023ad7ac3ab706941f5e6027766cfd046bcc086e39581d8d9502c207f5b3f38131469a81373904b59f6d20936aa973a555a939257f1df0e6f6f32bef16890bbd4c9f3632569603a276fc24c158ccfb4c826d1407d7b32706c3bc84f4693967dfc33bb35fdd6000fac7dc214bc9f51db2ecd7ce46f360b28ac7dd2c38dead2fc21fc6127cf6170251644b6960823ac499d709991e25c556449d37befa7dca749a20c8fb3fc74b03353637d8838eea12601c5d37d883b4f9e09e4fd76d591dc918390996932ff9054dc0a503611ee728ff42405a7ba9f05dd20fde26ebfecd900cb584a94a7433029742f3d82cdd5420bb0d1b5c8ce6d9fb46a18e0dbb7fcb591e06c5fe1efecc0668113a556dce9fb4357cd617451c45dadf63654b91c76e6882a019984fc09603feebc8d781254e5c0f56278c2038195d6fa270214cd230d07cb2c910a1385c07eeaff17b765013008624bf3605335862f402fd1c98b40228157554ccae79ec046c68dd646458d9044e699eb4f4ae50de0c77424e87805b2f614a04fbd144e00153a5aa3362037962e692241d4ac7e5b3d567ee8f4346e13eb6a000ba1efade05c59a33ff1396daa40a64e0292e249ee31db4973a64605593f8874daf8017d4074780358afad480a694538c7dfb60ae948f65815660cf5e0443cecaed9a915b06f13ca4916556482a1d3115acff986305e292f2b932c8c5f09aa7732d6e6c230090fcea9369886304a89fbdcb4727dfc2adcd4a29606b2a81196a95dbed6b97073867129a37d09e940cdcbcfc03a4fa8de90a0cb85f0611f1e92f8a564b120505edaf9b17e837faf85e84d1a38cfd30d2a0d9cc6a80a7844b7a0181da3e108505d09ef8393ed9f7d6237ebf2a08f5afa9569bf036e8a3459aee38f1de05f85d0114e123a4ee18bf7a64d2597d44bfdccc6be553bab447168986e0d72eb8635e03f330a06258bc7eae48828b3489fd32aa5f0a6a0621c582750994c7d0057c8a008c0a66333c77bf0dae3b2b7f6bf15ae4d3b2053fdb0973a74b5a1052b3ee8001867d71e0ca4de13a386d7a4e8269789abe8ae8c3540a464b0f9c3b88a3eee1029709ab230de44c618e3354245aafbc122bf7dc5cb4d91052befee91682c70000fd9cf154f8605da6522505b03013f28d9ba3ec325f9bc45711f2a5dbdd9fac01176bde234cc80085d05876ee683bd36f8b60459ff4a3baf4b566ba45fde6a0049fe4cc812b660dc32f511e1a4d532be24d6644544b88fec48d5352f3a615bc058149a0ad7527603ae8e3ebc61e7856c6b1ab8c7755761f58ed0edf3fd881af0101c3e91e0b9ec7f021681aa1dcca9f6e6f1a53125f42d7bf45197946a3eb0001ad4d181e3fb085f4d3bc307834827197f303f89c46137046608622219f3f6306d065dce881b5e749c4e19b542a2659ab32828625ec1d17e0f774102e38df9207035ce9cb37426e8e48ceb1aef19d4b8e419956c6a7208d513aa2a47ac381e205391897cb27fc2d81ce2423094d9f45ea43df7af1dc0a707448aa398ebdeecc0321284e80afc00a6d864bdfe4bf1e6f16e745deece6a83c00893ee84042be1c05dcc7474bd0179bce041b223dc98ddab4f044d9065c524dbfeba3c74afd3761033c43063f1c5f0ef318b8832719eafad356a7f433c0855472e47cabde462142076125d2dbab8e52439900f6a310c5cf68e05193eaf62083b569ca7ad1823ec0037fa86ffc4af2c4f021dd26acfb1b12de40e215621485ffb7321a9112c01e7507f7c110f4f0c019c5204a31944ea527b91d51975fb9573d3fb6be14f630465505fd308fc26fd8684aa33e903ec16b19a4d83cccfecd570a855bd041d12c4e5607d745d46d763bda56823b9a3e51505a3a9c608bf3a4dd64570c2586107563d8060b243c3dfd8440ef56119d4fc40b8fd7556ecdd295c5af10253250adf5059c0454d290acf96912ba3e1b00ebe3fd096383f8af0973127a7fd6bc4c72ddc3d30097dd3e10d8d0d6ca2eb60664f3ebf5b84ff33333edfd991754a22b9a113f5b0387ef97b3829df2db8f95985f71e79b9942a42351a0b3a8e89ad886e2ae45dc01f19b1b1288f1ac49a0d4244cda18988cd59ea7e851c808d1583a0bcfb96715064e1b77ee7305179934a9089b0e43cf682b3800d91e44dd14b92003e0c1a7de043a908b1b6842ba50534c51429ec560c153ecb93c387e469cb53bc99db6d99701c9e964a61a38e881d3181cc21f24feb824d03808a4913c6be1a8e0cf4001f400f0e5e1ae935c33ddbb27c32cf1e0673a763e35ae2da47210da59a1b4c7f76802642e0335c333593980bbcafe38a579485c809c68c7aae9082bddabec665c7f02591c0a13f0905c011ec877f5539928c6322c2d0d5a81284a1e993f966fe3ea069437d3988be7f4fa7c9c6293644c5bc89f63d5e8c2b0a29fa2ec6b1cfc8a60002641946dee7ef240af51b00a4a1c005c7b51dd1bd02752fb64ce99cbc0a509004ac1f2523736738bc5e22247d8184eb12ca2272bfc92e45a7748936a6fc9970074c4dc7f730706eac0a98fb829a1bf87a1b552a6db23a5a90c55d7c56d074a00d006c20b379b0040947e1731fcf29d5f3722e4098ed9f34b4563d66168c22502765cedd0e14d746c7cd22b2be7990c7a6b4ca912dbc74d35936553776030d50197131aaad8b8428fea9c99479b39f9f665e5121c851a270d453bce5dd760e105e27945e0d4044c243cd446872c3620000321c018aa9f277b8d79dd95ced3e105fc23759816730b7e45f06dcac010d0db72c1c87a7dbbc02a94aa340dd6dc89017b943eafb8d199e6a092e60a320019053a05e1b2ca4e6f7ece237e55ce5a77070f3039ae4dcbbcc68e97f54072ea3dc907feb83d7004e030e15d01b4cc22e10048eae52ad928ea3c2eb32cc228d545602b9412f34df9cbd1e2548ad63b2e7507599686759432df4e5faffa662bfe837fcba7d1976cc8a62bf33ded0db4632903953eb43c1b2786235a0544f08b8150143c879c936eaa1e2aaf0bc9385785da03e9c9e8f4dce9a20188fcc32d5870b1c63a28dc4d78e36b3d037defdfe73fb4040ee3805086a44afb863f2d057ae13ce4367274f3da9acbcc4d044dc1d291a6071185948383992f76d28da94801e98f8087537b3e7314ce7a12cf06f5ca15c10700f32cfa5f6ba552c49d7bc67acd2360a9e723cb2fe25a76303815c7d2b431036d5ba30419f6c4e262749b05e0a719edc4ba4716916e2ed983e3a94644dc2d036c21d16880b12e3b117ddf0455bf97a57906eecf317dbc90e104c3687132ac03349304367845c680d0a6a6bbd821c5701711c8753f29bc705929e87875735d02fccdd3f90d659809461cc02c1b9e3b3144d3978b06a8208dca692e5272a468008f4d1574e599ec937040c172695e7c5a798873adae14bc9d4a142eefda45b205b4b86581a4cb32d1e0e0d39effe78edf22e64229677df915b87a5fc38e61bf040eca774cbce94db42c6e0b9a9320b6663fb033d46ebe080a60478fc965f9380675e64db3379512c46ccc9aacea0ca985229c8c10637f784dc25916974747ea01d2f8fa131f890c881f4dca71577eff75f88ec0e59498879d9d5991f279412007a4ce8c76e14f079bbc674ccec3c28d4f76d2c6e2a27a7d04ce6444763c75d60604752428eec7a2c3821ce9e008032a6e7175ac13f96df9c92a638c803b6e4b020fe7834ff97d8cb4f287653d210d232f1eac8fb2b59d80be48bc144b7bd952034b89d2b369ee6d567d07ef2b89f3ae7a28884a5c6b33ec8f5730f6bcc1eaaa05a6555c04bd4e391368003d8a8977b5b1d10a9c88577c0b3aa605c6177d12f402d3de1b96758d05f42c34c8d07b0634544f17a091ec979fb2b57dc8357db54900a200d5898883da063984905f82656510ba0454dab3c20526e34b074e87b7fe00622655db5bbecd20472edad2d9ca31f231de53106ff36e3a794cf0def5d1ed04ecb1e20f9b6c844a7bfb963e7b44879139471f7ca05d58fe65af3b6bee9c000114f185bcb5b4cd58bc53c79e0ecd67dc7c0a6500db0eafe9951c095c28ee010311ba9eacb84ad1cab40081b6c4ff4d28b19ae80c90d9ac3fa27841a06c6ba3050fe632f6b1aa295ce3833c388e963dcc6bd2ea90533b429d3afd1f07e5655d0532c2a113c81444041e3dcd205df7457f5d5723a4dcd8d900230fa0e63f2e75035e12b2d0461db5ec2917b3c09ad5fdfe15e2b2f2017af4d9d17e68bc928af00536c4d006107c3e4e2b30875805e2fc29cfe9fd3faaef62e5c081b89d7fff3c007a332b8494fb0a8415b4127a05d960d8c4becd1167fcd2b415e4e3222bc49206e17b874cc07d1176026db60040aa1faaad67e7a4ecd38fbd94cd8ac8b58b7b04080f77306f0c9ccdce2f1a4ee25284101bc0177e8b7b9780575448399d368e01bdc8ec3d87295c8edec0e4f9e67aeab69f69312dbca6431e43b7553c0adf4006682f5b6e5719923b99d55a1992cfd44813eceba114d1da77f11d1428094a5e05b24cdbe6e8e5d353e3b2c5d8cead21401784cc1f5768047d0e691cca61663500dd91e5090be268ac06816665f51c06b993260d7e623d7ad497a48b9cfcb38505b94d6743954efe3331c3e5bde85660224707480d25fe9172f138641f08e43f039d75507d028a5724d3db26eb3815b0daa0ad87887aa11139ddbbb5bfb9e58202df707312ece457af10cfa9171f121987db9306101984c4138db6ab328c169101bc91cca677eb8624d233ffec534c417ca5fd273114ebf91cb553a5a45865120677d387664979a48b56fc5a3c86f88ff5e29fa0c1bddf2f26cc6b84676bc69f0270d932daac8eecce9954952693ba345d769363ab24d96ce2920773364ced5206a3a712f32ae5d907c3ad650e6ec7a8df3e8024b1a9326ae60d2f0dc94f05b6070823830bdcbec081252cc8e91cc6e04bced0c3c7dc2352c3f5c1c76a780bd50202972245e29d06a32b16f542d2e14d9164e7d637542bec4e6e933a8f47746302f387c0327ceab67b99f3567afbfd42f41d6da0e35647cd89353af9f46ac6480569a371b2e1ad4bc98322bb46e471581abbc6b497bc7a766660cb6c0a73d0dc03f59ee07adc9d2482f86c58627caea27b2c40b1d7864d54b209eee4656540900508d08af9a7df610027b2a13abfe894fd2a1e660daac2d7e700b0a2e6c5334c06142ba1019852c6338dfe0c5fb941c34ef8487952a38713fdb8c9f5d4096300052f6ecaf666e5825dfd6cb667a6204705b15d0b3ef15b8d0c9eaae16366f0d500fa4f010398d4bdcae90ba3bb8281874688c3f879c363a62563723cdae7d46f02c3671b8a3441974e75057027795bfd86d167dfb6ad6d97bca64f3d3435bdc800354f28e6f0c37e3714e2bd01b30b7fd3921243fb84055c5459ab6162fa27580620b1a46d4be6d29dd19df746ade3ad3dd51e091baccd52ebda29e2ad3751620401b1ebffc3f55ba1b911ddddb7eaf2c4df8887943bc4c2464598ea2c0cdcb001d5fa43b6247a3c3a096a8d6949ca78c953fc655cff32b3b3e62423d6432d39033172f1709221df105dfa4fcd5cd4342fe397e6341efbef205b7a08290b3ffd046fbe0f9ee9b9e3abcde688a23ba2663ad7ed3a97e12f50489bf856c970901d044cf1daedbdfbae73b5b3952bf37b735fe38d26f00f4c8a8edaa32bc450e45a00b8662e2e2bc955fd425215d4c8e38d6e0d89a94f9a7e159405a3ee5867739703a2021c6b712e6ff76f59e4e553091ee2bbe181b85cf3147bdf5333dc1f6e8b067750f3c13d09be3578932c4fb4798ff4418d285d5de31ecc1e38d7cf298dbd047b487be7b44a0526d87fd2714ebd4b959835fac8e2dfacc7f9f4f796d8f9960783d64f5b1ceb65710008b126ad9ac2ab9f8940892a9f6238fbf226b187fddf027e5afe6e23fe5401d1708b0a95684b3f6a84b12b629a2c4380a47659423508072484922e8cd5ca49020aa00bbcc2c452c244843e2578c6489941b0dba9f6f304c7f8c52ac091a3baf76b76e92096a8d0b057fbe20c6136297631ce140942ab035f452bc4f6526f277a6c80cdaefeb50ea8a8c3226e57b762009787258c65a60297957a5d4898976f9bf7fa3a0c2805ce86427b344013ed9a1c7f708933def603ff92941dfb8971cda377e2059c4cd4876ec9c9b0d3f0aba0be7e8a8cb5c04703562dff87a33571f0fcb382733e6d87fd408efaf614f1706c32f0b35e59fcc804012c5e0b9c6f43155fc299e3afcde2b2a8191263a2f89ee88b7812be049cb301b23f36cd470f9387b6bb1138787687849eccda912f1aba9e1db4d3a2a83d3d06da589cefd9b7173992a726c568d0affd9946cd10244bda15ff1b47ce5a5ca4012fdddfa26d369aaea2c050c456e770540e814a6d3f836f2d3779d0130dba0e07f36d9ca04fe4fbaed900102854507cc89f88dafdf1e7648debc69310149a87016fa1241d8bb4238dff6cb87d0a083e16997bcdf9fbcb7909b4e43b214e1b5c045f370b4071e2b8e9121c560133c29a520be3e63cdf2ca5f97130d7c883f48e03467755c1d9ae66587ff60db7bb998cfc5ba8c35e40a8ce86303504c8edec17023a4f3e4b571f886e89882261e6cf702b613fb483afe15e0fe0120f15d6f33001a7da3ffc11e5eb599d8120af4aa4d984670b44f7f0179b23635db51c6f96f80424c07806c24f78c5ff3a044cffee50a493908b77527ace106320576a5b5fb1042628628e217a0cc280cd91813331f9b76451fb5910577bf8e7825a638eb02e048046b2c06d202a823604a6fe7d238d1fe53cb2ed7a2ee706d74306bdadba27055329772d55b13cdfb0d9f91d8a7ad8b4106de8b0418cf3d85b13775ad304a2059eebbb55e57e1f4ac524edf03a1a5762fc900bbd4aa0e5d60052cc52870a58067f4be973e2d76ae2d8d3abd745aeceb46c4e44182e5fe30eebf63422157309014d0657115f8349e7f794171c9b5b931e9e310e14ebbcb5f40156deb0e224b0027aa2bc133be4bc3497ea3a648a2ae366c06e725344a5eccc6cefe9f91b5c37068f1bd9d22608dab1e2918295941e7edf076b68b6210321843747cca874307101ac1d71fc2708777d4cdf36ecc7f75a3a7ae173f7980d5f3e02e54bf31489bf026b3af57a5741cd67117bc1be1f6c5d009991db5fcaaa52950197ac9af1852607c971f53d7e4a3bad24695e309af1ad98906f3b71b16300d700d9f42dcd566104feb271257f77486bd6c54ea9b36ec72d4fb078bfb970c37e39c9c0b764b6f804d9689837a4f51517ca80417122bf047d6dc415f88ed69fd87a5d0ccfd636eb027537795eb58ab5049dde19ebb48c9e52a966de1bd3a98b086b95a46d5f745906b133b5f290becdb11a386d170ec49babb6cab40eaf07c92b4ccf1b83fcf1a0018ea21a456087257027ba1625456bec3c35739b3584fca651f3c848579fd57a015a40278225112d15728ed9444cdbaab9fce8c9d98eb584ce91f6626d5c8a8505c49573301a3a48460af47a39006bc11327910215f7c09d2675370368c2907f0452710fd2120df9dabe5d7b26263d68fc0dc4a1062b9f3be8da9f969f31364b00f57cca483d8c20825a58740a1287a4afcb9bd499531545987bad346e2f96e0008d3cf44ab6c91364ce75d71c377f558423795238f6d66cc91049aa5c1a54b4010f856db76068efd192841a630b87ef4dceddf6c76b031ad759bb97955543a705ebca5bc86e86ae345a839a76003169ac437484a97baacdb14616af98100f7d04454a7696187d3db2b55feda0f18fdbb9cc7a6f76a01b5025c20876eaea00b401a55e64173a424292ddf3b2a35e7c6b418b66aa9025da0297481619d026b701078c1972c7c115c90c1c32fb0b4705c5f06c5f2e86efa6e678a08ad67e35c36101dfc1ab1be31719b7c6b71b6164428fa568ae0379b97e6f9def08066ea57148060c123d91e38a9e943af55cf257b17fa0e56b14f24d71bb98e9dfd9abc6071f03399250ef4a5eff96e2495f29d97afe35112a91db0835cdb71c4cc95d97bcda07b5d3faa2f7e5548397622e4c1ecc3770277969f1e4ea0244cafacac8ec19690615f76899199c41782e9e3a63d511ef75f9782a292b0107979b190ffd7f3600016ff765aee5e3e2ba92cb8693e300329a7b0fa67534f5f364182b9027ae35090348dc554cc7d4f94543d2824ea18d153d4daaa0dfe509c291067f71b87e4e3c06e86097cac2631bbe251e418f6f2d3125de343011995e57cbbf5a441b7123aa03355b885782ede68d8a5ea10972b45613a4a6f08f9e9ea0b6a2c581dc020573017fb1b924e87d3515f86aa842dcd6f7964e52a585dcab55bbfa0e244490eb7b035e941a30e0f3ef24b2c99b4c7db43922b4ff5dc6ebddf73d1ce4c29819d0460012f3fb8db7bac98a4dff798a0664ac65a8f6c20e1ece4bcde43be9078fdb5206aeaedf985571085e28d94421090b049358249136b38fb002cadb28b9cd815f0025df8c2b7d3d6fc467d5f9d9ffc797eb00a99ca48e2177cc324453817d878102526480a5ec7634ff1edfe628b14dee639d3435888a586a67a8e7499e2347250621e10ef8f838ddb90233183a81e2b194043f416c74a9cc6da678d4745baecd07ff78fc454a976def7030d28fa37f9d18af99aef8acd16f7606cdac2cfd4368024d217069ac569d313cdc50cf7e7993f2d9b021a3035266a410906b3db3849c078098b9501d881ed5761e01c4c5d54beb54e681215e6f3ed6c95a5d526e5c730723d64fd6e54683826aba330a9471e5332d97cdb36a9033b02b50b9377be3e900b217f834615f58ce5a115d674bde932a56e70aa19c31de378bfe9e7607bcbe050e114a86b7c411856accd2b71dd7a7b46dcb6dfda09758c6fb06d098e710970321e90b8ede0195ed63c67901ccc33636e214774474a71d6655aab67af442f601bed977a0caf78e1b74b58358a07ee5455d7b73cc74ebebf2fa17b9cd1f6b27049277941484811e4ed67aae263048f1431202f17b65a96919d138b80914098f034e0685b4122374d5973b28f2fd28cc3f8b8f803aeb2401ac64ac8a447afc6307adc013fcf8346cf795620b544a186ccac6bbced7e230818093370c9801458303e07943a891df62f81a07e19b6d68403195025bdbd7f3a0dab2f858c60fa07d0582350974cf5e7b6615185fb5a5fbbcac6edf92d113f1165e420f17fca3139a06f4a314f18556a9f210e282a0a027e81458ec2fcf630108ef0a43a1d800051d0070f8c17aa708cce0b42b34e17415cb624123a28d3c9a9db7de84773ce0c8df0573c907903b89265de5283310065a392905c732efa4b5ebf73fef895d7be1ed010130cdc8a4010396a4bba33860bf4089b1ddfa4fe90da14cc5c1bff06fe5d00412307dd4de5e058967f9c5df568fcd4ccd70c6d6e090a650df3b00f26dd8ee06d8838c988007be4d2874b78f7d9ca4880dc6d936f188c9d944b48aa08a56bf00256d8b1e78b1dd9b338f290aa62eeac95c7f59374fb2f8535f3f9e21f82d0403e285b3472d0dc4a3f340b547f6c38f8f6fe4b5a6f0584dddee9f78f21fa99e02b5bfaf44b7cb436fb7e2ddb85509dcb393914b9131a155cb387eaac8b7670a00fd85540167f8fe76cf5ced38f609b19c6e36241d07490d280029692837665307bca67a593f31a5f5aeed28eb8ee96b605d721820b0ab23e54d5baaa16313860288c334c0db314cb5de395e3703b2ad33d4f09c3523915563464b7be9c4a572070cdb5184f2774854ec31e5f92c6dcfebc79d3cecb70069c524df856a3c9ea406824dd98adf6cc3ab2a384cabfdfc35213f4f05080da8fc4d50319959e89085031cfb4362249f9fa881a8083d9f04455c997e0187fb78ef2acbb8e0e60a7365026dd28a01514924cea5dafdbc689006d14219bf5443dba4ecb9cf4104d78d2002acb2e77502b882c4194041adffbd12420df68a0fa37773adc7ca83f3c5da7e03f68e38e3ef5e4371bccca916684c270c033734292ac63eac013fbf90a1ec9b027ca2861f387af932aad4fc33e920e1b4648c10ffd17c330afb7e7c6e4d29aa00f7dd93f6669df253e44f62daa439b2557287903cda280f7bb09b55d88f530d0696d9754b00b0ec9bf7051349e1cbbab204fb1a9c31234a1c3bbb7f6340cd2602d9723f43ee6ab45c505c725c51ed9a2476f6117905b4952d31d6edf5e4f83b00a295548abc98d903c27bf6c91f8a98a202faa6fee181f093f5e3ff7211a933001aece85cc61583715a3a9d8c964879ea17bd9adaf0eaf21692d9bc05be8871050b267758a0081b19b41373f664fd444634f821097e4d2befaab0677f7d47bb016f4fa358fcae23fb0718a0dd5a6eb274f22174ec1195f29eed6d0d78e5fc210492cb622180d0a6715ca028fffcaf5eac37e7cfffc2cef3862b15df6ad8cc3f02c7c90b360588081135d78f03fc11cea405e035d0acc5880992c42b1769453207d823c118fb9e9b7b39f46a1efcddf6006ec921a75a3f5431e0560163158f3005cd3cd89d1c1087c47881f6b92d56fbefd33797ce5c5c2729ac81352d17f1210183068c3e5f186cfe4b499e0128968a94aa66374aca77e6b3ccdc9c8b22b836018f7d308c529c92ebef2cd32613dbeae27522cb3837230ac3fb217bf0229aa400d2a6c96f29c2158d9647c219cc9ac0fd627b14ba86cdd6a6ac0cd5e8cbab1701fa0017008f576e4da4038780568bd9d51b2f8a1ffaa5669037c5ee8d24e4da0122892e142a1fe6c526ca6562d81424c0f1950c55ac1e3897bd5dcad85beaa20760f96dc009baab9f5bcd873ba42cd576cb96a625f388546ac8106a4871acbb000b5e79a11646d61f6c67a080a752927891f7c99a917b891ee92c35cbd5f260024a2dae38fef1b2d3e88b3c76b9da4074020377fa7e77abc3ecc377514199e4058fcfd265c2c20d23ddc121edcae30da9307888348d10ffeb0da3b25ad8434901494dee922d2ef4fef80df547757b87f0d950518399a7189bb72ec41ab5c09700a4bf291b4d7ed9c11eb9c364cf43d2cf47d50d2e344b25a8e529da06479c6802c31295263e9c61c5afc8db52586ed7132fafcfbd6d0cc8f1717b2d927187a706c5fe422efe8c123f961e90d36514f010dcbe0a55ae2c41610b9147422b6b54013a674376e353a6efa65997f903917a0482946000ea433b3e897503ee5f51ab02ce4cb3086bd60103103969a573bccb9507fa58e7d145f2c9a8493a5c590dc1068d7625b6d7046bedc03eb4074b2e79ddbc2df5ee36631c0ba9dd2d083cb18300e00556376d027bd8e3ba5ef0d1e9450e33ae6a7bad9a76bd53532ddfaea53c056da98bebe0bfdd4f644de60f53c9606ce3c6dd34a9ac7bf06451b7e5a02e5a03d487818deacdbc11a4bdab6e9ab46f2c7c9a74166dda4d9e8b38c4810a805b05d55c4448256128d937faa7116315c4f53946fed6afd2d6caad5f032994212f019b7ddc8494acaa2479c8465181d16a152f3a5ce39f5b4226ec5291edd1dc6a0495f486f563231537acd814d7c5d22a678465eccb8c2e6d21aeeb4f3d2fa97101edc147843c46c15d65efb0bc048b6dfcf7b3ae55dd45ff4c024c137d0e0c03016de0c51accf9821e5ef2cadd9cf3ca51e8e0889d007c971fbb0176c0840b8400a1a8e632c0a7f724de9222cf1d693ff03c3eb58e56754fdfb7b81f7386c65406bb7046ed10f3042c5a66a5d59a862da50fb9667b48c34b707df44f6b6ef8d70797729724a17b4de66e95c7b075cc9e579629c558b8c6afbfbf2a3c42ea6e530086b1eddd673de75c37e754be62725a8f8e06dc84208855e93024988f80971d027cfb0b44b6e97d14a19919a9192c6a893ab93e44ee95304acccab7734a050300ac4f785d8962349bfbbb8da4062689852a681693982858d48f5191596f57a603976d7a94fb4885ab862eb6637d6c06fbe31a691451466fc5f83e602adc447103d5ff838eade3e5e9456571bbc56b95200c5ee186e97dcc0be891eaf37b2415061801800636ea8c3b195d9a7e9f1b23fc7194d6c7c3c6d66540a41aad64e29e05634c3cebb8ece46d9d4fc982784ed092d5221ed5270a1c88de11989d72b77d037780e453aa7ef56db1a2966ba918df9630f1474f3ea3c8ac047eab3e04f11b00beea0a2fc0827d4566bfd0e83d7d33e909f54f04f489c289e3706e678973f002eb8e8ca1ce1076612a62d878dd7a34f12907eb89c351338da5fd6865aa33d4003606fd81ff12884a8eb3f470b4f0bc85013ad50fdd56937cd0e47c9b3f82b601ad25a1ab593c1ae8e5175158fa20e4cd2dd0bf23f080a16e693d553cca75f600392355ee77bdddae6555914cff8c31288657fe8eb8ef98099c76fc3008fa0f054958f68390a9872dbda9e9bc7b15a8dcc8b1e221151dfbc0c2875c55e045f402699f48136209c283053f6958a50946f6504858441bfa525a8f4745509ceb7a04642ec33db746e1b233ffe40fafacb8e2d86cb5c2acbe119a7c72d912c1211b0519c7cde5c516040463656d152a065fccf7ed3c8c098229d29a374164b4676102f4adfbddf966c401bac514372d397ab4531c37384139bdb121bb78bef3d03a07e7c2decc5d49b0bd4c6c4c6d649d90349fcefca1da4e948ab78355e558efb707f70d0fea2a6bebd6da01e01e4c0d4a14b1398d4822cf1cba18093ea7dfc87501d3e425d96d9aed519a262b5b9106b121bfebc945f89b432c29c65ba279234c00b0fdd119f47b19024a337f92465ef8815db3189cacc920a1bfae2d2e62cebe07230512a491a2c8d23be6cd8c31ab3a87f6c77b1432696b222c2b124548f366054214f46f06e29decc1b3a4060a0d9531db91ee8a9956c08eb44a36615c832f0388071bff71c8543b4874e1792771becd82ef80520ae6dbc9f87f80b4c9443c03971f7f7c563e1de42e6aee492cfd76cfda7246027bfb6d3517196ca49639f3020c812213e2b862a44f9c490bc24bb458431e93552ddaaecd7bba296affb9440233777faec63660fd064d1de6792db985839d522ca6a6f2a685249157fa494e0751a630ab281092e426e93e0c90b9775c8eb7e7008e5ba476a5a71e17b1b44400ce7e52bde4db87408c50b2c5a8a4e39354567325946fc3bdc735e673430e8c035c402c167def89b28ad4eaba4646d58dfbbeff809c0e3110f78b3ab6fd743300c8fa563e90ba50c46c40a8281752de69becc8e8ae730b4b9d8407736514a5601db9a57e317c69cb8d931981a6ed671e4d5ab5dacf082d4564450ce4b70732501a2277c5218cb57735a3d9f50582a164b4fdb7d020e6139d73745217d28961103a0d3201084250fc10cc7904fe21780fcd7d492c5f40639b1084876909ee0bd06785334f4923442f1759031da4c551102a64a08dd602c6555a93fa7ae20c4840004ac43934553349c451ea737e8b396ceb331c9f33f82cf88e00346ec3196ad04d7371459dfcf5c01eb65d146eae0efcc0c9b4218b22d8ca0143eb95bd6fbe902a9d46d76d97a58ba77fa045864b640f151e7887af0fade1252f232fa74f4ac061ccaa408330798953c57334b1acd0b4578b7e2b0b79a5477041455304c7459007545ac13b80da2128933df4bb3781e4101388703fa81287202f388b7f058bc0171c43983a5a373e38b0a6f71779013886e019d9efa38e8141824ccbf66c338036c521eb4be7309ec0d7558462fab9d8784e8839a2ddd1dff88fd0cc36a972e0324099efc04ea0d4bbcecb132824fc0ab9f010653eeef60919179452cd110c701627577c9802e4071a551dacc736f0b682774542653551f5161bbf4553f9d270443eb5fc84095468aeb6c8cc07dc2eca72e8ba84699dc6e608bb1bbc3b11acf07f9c49329e720dee55b1b92e6f36ced3ad8921774c3bcef7b679c0f3c3cc759060153129a3f9daaa51e77d8518a655d8f8c17e8cd409824f5da38e054227fe603e95743a389d8d3b6986c15370c7892a93422ce050d74f511b8a5ea0e00a15b05ac8e9425c5e57ab8dd255ea9f43da150ad6d0022be77f30025feca500327fe0228d37da222c9a91a9d54158a2166affb208bd5b945600023b35ed41c91157802bcb8a695b44bb6e747c9eb863f7ac7e7a1fedce342a720ac1ec01710514c4c009f1c91686bcb0d7fef769fa8d51035ab0765595f4f0b9e0258334bd773089f074b8f2bed9f871a65cde0d9bd7c815da838555c2404f96fd6ad874386868a7802c0afb010a2d9b89589f7d9dcedf133856b299e04ca9b2f206b77daa366a5a801849989bbd2e32dfdf84e98a026764fb4e9305e577c4c5461b1ec08718ecc7f000809989746311014afc12af049152bac77b9d2c40b9c4f3abf8c4e02d08df1048c0ce3e8c79798f76e34d45cb477df1f30b4cd932c106e20e1b6b8f5d1a1d004b8be6608a73546002709fa13d3d5a97d8c97a01a2472b0506d195df8da5e8c0320c9a49d9059efc35fc3334b6c628dcd24dc9bcb88042f22db2d6bb7b2bc6d010f5c1a030180b614116483afb985ad7558602b5c2b626d0d2abd746b70bac406b6473523cb85b8e718aae1a7f9131e0a2408a5f7d30cc98e3700f6ca6067d205ea38446f2815240ef1a82153216ef6aae608ced4219d7797911d998156be030444134c61d074fa40cc1f760f1f112e0b7c7a5fdd19bc0815e41ede6f7a7c2002d13656be82279a93d32d84c07f8196ecb702b257fe9211d77aac6c1b6196c004b0c1e47d0eb6d8698acfe6976b1092197360214db7af45d5f6d25e64aa9dad0003aa04bf104634168dd23f9687a8bd0581b30b4e38ea35cd51c8f3de44a4c705c04f333ff40fafaddd4cefa040d7246d169717ede5682c119624b474e1c190005721954601df844d834f913ab1d05c572234f4e02103f8fef4930260f2dc050374039ee09312111e27618e542d378de7b1a0a637fbd7c66195120bd0cf1a1e01758b930b565679f23b78833bf2cbceac80b740a4a2cbac5f1bc42ab1cee72c05c7c8abd3ab52906eb9a5dcecede2b295bb864920113f704b067c572d41805d03c137b4ac18f6b5241fb538d2444a2cc77f1c4759f1fdc50ee61043e2665e3607df57d0f05b0c887dcda2781c3980a8ed1aa9b525e95a69b6af9d4b7675a781060ed7f3fa44fbb4455ab727733d68e27570ad3a1d04134ad56c3adcd04c7fde0062bbb38f29d28df7b2278ddac46178f54e812c1102a6c340eec2cf9a7ec07b06bb9f5594505128532ffcb08cae2686e0ddbf03f7ad398007f8b7342240e8f4006cee1606b00f6ca427badd3669ea31074b592b7648613b8dd419b9f9f3189407258db15799cd9ee250dea8dfb79fdf83c9293793a911519db7e256816e1b81062ad84d3dfd8fcf31f7c1e6f0f26468e3295e0dd877568c7a8e48cdb8d30f6e03c528d067c6cda6b29a3fd436be03c6e2bae15524c47669ae7a5e89f3b2632d04dfeb1f5021718c8ccc95fe747e47f8e7abf3451fd915cee0995ae2ee9f496801803cac43f80d2656ced69485c7b27d67d3ca93a61f7fed2a1527a967c54f490159199038a4d4bec9c2bd8b245298f61ea3f50ac3ea007b3e057a4ec05d37f3046decda17bebf2cede4668ad15a643e6b59d613b121155688856eea0280582a070dea2cfadfc2d43e47755a4f2436364eca451e76d94797bfe44531153a3dec04b04d4101f32a8d8775bcf83e4938141cd0705f7c540ca4f6876690317cf3070566b0b28da5f3fd01564355d1a1a916c69dfd8ef277b5e02adfed5abb7900de009f11382da520d7dc62f231e50ebf1d6ffb99a22745d448394472598d83b3f40020871cade7ced35edf09264bdcd73608b866f51052d3941dd44d69fcb45a76009480ca1d55b88103d83647f60fdf234b7ea7327690c45f4564faffb33331a20075c3d18c18a75d421e6641ce5a4605100012fca83a78ee531bb6654308b970008284f7205ee7d81ecaa5cf4a48b1b9be4c6b670fa3507f10f405beffad415e003104387fb215dcb12fe430465a738120a6fe5d2ba9c1fff8aa9ce2c111c4a504af3464e5246ca26bd289648df3fb89688b2026b87735faf3d7af549ae3a41107a1d2131f4c1b8169d9f4d7fb571542bdc583954ce673f1a86e9b0d2037d95306c6c89fe75e6d11077d855356cd9c10daa62f4868753eb8cfb7f01c9b83bfee00deca75c7eeb54ea84f34bb7546cbfac3d9380f456b87a55bb5da8ef739adc507e323eee30a98eb2b8f17488464eca9d1e7b374daa548e32e8790900dec7cf70449e626c08bcfa2fd99ff9a5a787f3197e8752fd8a77982fc81b82a9c44673906a85b91eab362cae56d201fb08be2c3d02daaf73ed89973b44a4689612f327d07503665b0c91338113556b4a02545a413a458eccf4c7a9ea5ae8d854ba6d32f05fa29379fc527595a1d1650a23057d88b1bc57cdf2d49cbfaf11003a946b539055a361183b91d28937a46e5284237f19f36f544e63aa6ec6a1272cd579be4a506530950c12d6badcfb3540da2cec41a79c0b1fa033155d9b1647ebcc97daa9d059841b64baaae4d3095c1475e79350991e7bcb6de890b6bfd43edbc20fd10ae06fda6bc81032dde44a32f209f3112ce880f05c4252180318d8a4205b452665507ff16bcfac919a949d3921f76ad86dbadfe4133efcbe32edd50e2c09f470344015ba66f18ca03b0d827defafa89815a4efb5203cc044b000a191fd4ae4309e005501a67a5e70b14dce57a85c62e12633cc063575ad7b22ada013309562be9b30052ecf15e69dd827068240239a79edf7fb5c8ce6b6a9c04913150dfe09ea8ca059bbbc70091ac8a7bf04dede24d3982771c61ffd679032ba4c8cc844e3f04380072cb8960ec3b271e60b463c13246957e282485a2fe7cb7adfcd946962fc530017cef39c4328523b6ce2537b5b792d962ac0db98daea8f260bb9bc4e1433f6f00868152fd75c97ce1d2644dbdb67bf16fb6f56356576a85c0ca800243ebe69300aa6b401a7b89c2428e0ae11729f6b43dfcd3591939d0a6f516784ec3c0fac205bab5e1b1f5faa3eb3dfb6e0fba0484e52849c7315b0896e1e0cdf1deb813a20084a675c82a26ed6ad286dbe5b91621f24ac2bdb9ab16f413de46f107afaf63063d1df15cccb4326661703bf64fe9071f6d1c37ea0c963a3dcda71b11b4de8600d3b72396a075716332e74d7fe7c74bc22f593f5554ce553ea89b0b6813960f01f4168622c148724c607205c8504c3ea6efbfa9b33154167ef83a81e9bd969f03a71f398328364e04a718c7b524209aaf115dac027cb8c528de688e5b383c5300bfba82e157cc158751ba97151aae4eb9f790ded69d4a2a332d0a9f55aae20703a82030fb05d734c363219af6e51f04358b162921333d0439ef6b27eeac847403250763ba7e425b673e5992d297b4f9ee0032f1876f2b8552025d635db28149054f5a724b660a73014fc8a1908ce401a5d36b462ba03306d0427c8c471582d701b6925ca4d38f29104ab895562dba4315058e44a06d01f0d72e5b4b60173fd007c376c7bd1e36daee5cb5434975dcc34a512611dd19ebac754257485bc9e26801429246012a969e1436e2f3f2307d782e4a2e955b0bb1e7b2abca7674032bfa025ddd94de1217dbed21ffd3fb27d9005e759cc0ac3f9428f261b7f066adb69e0227901be956ffdaa2062a313ec15828334015a5ea0d19d07fca6475c4b1886a063b5f6a8c9a029e81dd0f71b3b45dc4850dde19a4c9bbc29cdec28b341914ea03f38e1ee857553b4744266e067d0504bce6f9449b9faef71a68a0f92910dd7405622f8e5a94e7c763801cf10698205129f38f1ae5f1a6ce1affc762ad1e41dd04fb61722f6f76a01cc29ea04ef4df1b0cbab6df0af5961f1462541480c83cad04167d9717f9db0441dbed54029feba11cb450f751a6dfa2c870202391a9188100eb606f4b7ca6f4a0773ad5957972d0adc062f90c52a7a7378ab6293f6fdab202a3572aa1f49fba47a677264007798ab65b53fb856ed7a5e6a2786548f1b3b6027d6f6ac84d014524fa08d0598d64c601afdd9d7508ebcaa3b9feec0bcedeb104506b1ce5610417e7be159eb64723f83753244efc4fde7d6baea199a362ae6e065bfed183b7fde8dee45350afa57310afbb5ac8864a3239a270d73998bd559b058e35fbe55b2d31b325b63b281459a08e06313c1cf74e7171d139a6e627b06c05022ff6686e0982a7e4a475c0875a3bf2cacb9efc7ee52c7e37bab79bd2cb4d03c591ea4fa72cb5c234d696af02a7972a84771597a43facc773de6f5929ecac012669a2b7b6703cd28ea042076faf590e2ddb6d1593b5deefce94239f46e41c033b7c8895071aaadccd72983e60c0530d473a50de0707fa41a5208ec1a68a2d06fd03088b4fec4ef6b67de8913d36b01a161c8208846aedc2f93f783c5e7e0101673d0c4c9ae911034a1547d3e5e046ad9ebed7295c090c97f3e698333d9cf701d5ba2f1042f6210a47c6d448547f39e38ce15c69d630969fd1ef551515ec0b035d8912567d2718515e43cb44c384740e0e470aea4866f382ef36e23b87c9670523fde77c2ee54f84f6f88b1904996d11889d8cd2d2583209e687d50ed911980342eb597c71a8daa2726e82bb35075dfd8fda815187bee3976c87ca64c3055f01b614ba2236f89cc5233a0c200a08093bab351ec918632b0a660b3e41cf1d9c046daf9381d717cb2b4a054d04af56aed43bb7383d52a398fad145e71189b5bc00e7d6205a184c1510b3e91dfac719184547d00b44321940a7b18836b83f2d9c044453820c556466f9e2d75faea0e70c4d1caaafafcebedaa93cd2893c374bdf0470cac9616de3906cd924674086e75d9df73f848881392e7e0e05fa2eb0a3bc075bcae47c40c99b09f15703a0897fb27096e45ea53081ef4cff632f6e04537f032e6ca6108481d49774a7945e68d2fb21fd47177d0f2c83ba7074a14f537d7c001f6acb763727eb9f670d5295c6a6b1279dd26b7b5003e4a390662e93ab2666010fa34873167e847a25156c31f5e4424c4d7ad60cdcee53296b593f380b96c202cd81a06cc823dc5904292c3bcb03d47a6e86592691a8a55d191d430d50535900f3fa47c557b14a349afbf6f7ff9aa628877b7086871f4a5de296831be608da00c57be7db5878888bac874edbaee8d091012533419fbb74cffb5b4edb67960000e95c3b32a948822699f23b33b73978367f90344228a5924cff8eb8de1590c404e4ab698be94456290631ed8f904a7c900d102bbe99bdf3318584f3f749f95303903a1e53f73d4ec9decba297422589cd874922b83fdfb37e7271b6dec2a60d075be9ec5152c87a53fc769913885d57215346fc3d1f3613475ec34ebae909120550a066632f8b9fdf1d232222d1c7d3895453166c2cacc4bbcb50fc5b1eda09030c880bcc85c00affc7139258a3275f8d1741d2b378c1dc9ebb302422ca4271078c205204d30a4820273a696da64173b80742334d7540fa9690e63ac5685ba102ca3605310988d88555c3dfcfc2f8fc414df59bcdd0fdbe7a5d67d481531e8804b1cecaa12a1d33c6a48915d9cd9914335a530b631bc17ea91e89d4f796cc58031c3fac1789b1d867938ed60f3a61f0f4738af7b24d6c2c50b6d71e48d7043c0121c21e7182946fa9d1f4ed3771c41d55570d8f62549f59ae4d396d905859d300e577b74495b984f06ba16fc29ea750b927786f1d6c3d4e00654ed778e86a2f04a3a42ab47d5a41a0828574ab876e49ebaf9a68c4374e4af4fb93ee6baad6da06a4c22d027e56485cb0f5d18d232eb27a9369749ee52841dbccd67eb092e5a00188a8eb71a768571720a101742359395c679dc5ce5d95466b71bb2b3578f7d60320d8be15523d720f152570f4b3d6c2d79343125461c2be60f78ea380a1f86b0687584acb0817f643d15c2ed019491e8d3a94c62effb3f36ba319a421e96b4e070f2cb1b1cdc56af2dec4c177e3dcd263b1e12de5935a578f33cbfa1d297c2606c7189a91b06afdc028140f6b4cd4722ab18597d3ee099c370d714fafd71df802ff82b21ab4412e49631af2e6ee9767584b2b1eec13727fcfe7a063dcdfe30b01980e32b733409744b3f882b3a49bef5c9130b444ebb4b1f9638dfc4a55cb5c0145de0374b81dae1796b0fa76895986b2516f96a533689209d832f3de6bded3017408fc532da14a09f8813c49ef0bd97fb9e576b27721d051c9caf8fc5cd755053d8fd2198dde2e345e4766af2e90fb6167bc87a9fea1b95af8a74f74aab8de03d5e11e17b3e361ba98011772ed0538c92407a2e6aedf1918df7ca4c334f6ee00a0146fda7e01faafc84da50a6f45d79749a145dd43935572c8ac6b2844004d0280692609ac4c92e289c66d60cd54758a9dfcef57ef19ababac83a40c7aefca0701310cd14143f836a2aa49de8b4820dda8e93127417141d82a84aaf8702b10028fd6b7ad46a83bcbf1dec484c8efc5c2a8ba3007b34d776b0f65f91fc8281004569c01837d2daee014a411fd26a20f2a0aa0ac09ae85a002ab9df6a12a659005427a3db1a6024b9e71bef2721e06c02a458a271f845cd785dbfcf49cbc42b40309f2cb55d41a581e633c9e9cc5e94aa644027100d1597c8544d2b04b84859505ed86fa158343dff3aebe8f07e03972aa629a44b1132e7616b09c2ce281a5c6045c28cf8d08042d3ee87145425f4c8e27a0c91874c532992d84923e45f9b3000046410e844c3fcc0259f13696a8e0fab2cb422fd5c709cc10c57cb4e50ba5f00614107ff189e84d7bc776c05165f3e2bf22edbd461cb9304a89bf5ff3ca5c96014404f44dd2590ac5bce6fc07e531d03f8377f560aa6a931ef822226f6855c8066a936cc7dcb791a3c777aa64a58f10ea06e5d64b76a201e8d89cb7475fcd5a014b7edff7736156a1d50152c92f7a0c0ada219bd9dedcef7c13406bceec87320693388f07eb630f4912d45b3a5dc9a26113fd8bca7332c782affee85eb4f1ed04a540235d2d35d88ccd70ec5721124d086ebf7eafd35cfe9ab3a38d00bb0ba602bfaab6b09fa672d6955d2587b57711a64f82d8d01a4b65236606811e4f986001206d25c0796abce1801b7483a18f4360a1ecfe052c056d499495e64fb0b7ff03c32be5ce5ac976ed94b628dc5956d8ddd84ca652a4ce5a8b5d1c1977c2e93305d53eb3fd906f477272d1d00114b5e94b4008a196f0c1b1aa8e46e62bfb275d0369a75d9d5934bb55fda48af3f2e5cdf77e5037d8b9fb0dcebc0d59328a11c904375cf20061679b408da0a0edb81718f460eddcba5964437d169f2fe99c56e903757dac2d75627c0a46ea9288328d99d5e5609cb8db9afc28ed6789fe54e2fd0580b0b5b98cab80d30bfa06e11a7a084931284a1e1046208e2b467fd76cf85e0131aa1fbd2c6f9d24d5cd277019677eb3f2edbb5d14914f3f14d9747d16e98104f4c23b770b2a0ae74bd8fe5be2e811d9fd19f56cf465747b214cddb2695f33011d6eab514b115c24f9d6c2c35b4c221c1a95a79bd11d758a4335e82f84a0cf0751253406bbdd98dfa895e6707da592206ddd8fa1d06a49c7a90fe901a36e780380efba1618482f550e70c1dd9d84d5e56c9ee603029273a7b538ca303bfe5e02ee1dd956f7b945bf725b2611cb62b243d47b88dc1ab715c930a58c7de350a70781570c3c0edb6d656aeae672e79ba0ad8296a96090a0f753fc2715683acf6607c30ded4e48bf4e7d7a02170e9ac9921322a6b743192faf2929e763b1c93a8d07c5962548ab61ac65609b8fcbc2a22fd69d6516f1f3a1ffc14224eebdbb875205a8175aed89629c093c5a1c2adc4b177b61120899dc7d71e7a4c14d2263b978024ba3a966a3bbcf90dfad973796324cdb8b8fb649a8a933abc12566cb3c90900454f2373d2dda0ef66714fdf8b7d4624feede980d0e18182cad208d0b5558ca06cd376c238792ea723afcb4cccc15aeb6fcf60877ed7b184439380620f6126101fbc0f1696b0b36411d238f5ee6575443ecb1fefdce461bb37875721590d28005471cf09f2f984ca413ed26abd1bc6ac224eefba24edd5993874b12605ee0b2000f13a94ea5d05c1064e244c115b7cae7708a737772057c681da4be7d1910880511d09cac4a9f0d57a619bf88597951707819222df968dbeda74d570928b7b003f501df2fdccd1d5842ca78c91a42d63d5284234afb086fefe2a4fef43ee30603eb8b42c2fa26b0c9211279f8998b25d210948ece5b5692dc45db416fa810b204c241933c9e5988c258f51b60bd50941016be910b04fa7a8c4c351a4818ec6604aeb0a9cdcd1d7e095a88997940252ad583725f6a6ba15bf18de5becf84d0f806d889044317cd303e7a4880fef39d630836113abb747f636b2ce8a28990864904c248802a04cd6673c91dbd899c5a4fb838c01fc732d7d73a740ad946593ba90618a5f1e19d87677feebcff10a8d842d014e9d2db5478a2e3359816aa666d5907f1ea5185c269ae4ff26b3ecd2334db2784bf18df6333e36c8316f92e7ccbef01f74ea8b0ae10247c9be3c4c790339fddf9a437356b9c1d4806fd805c37614f07dc68c924f63b4dd9500ddf0ac943930de2ba7256e36ef513be93658fe68e4f020ad225582ed5348357ebf6e8c039200dedf7106f52f1d3f496c61a1789a6de034ad820d225639fbdea9d8635713c415da036cc10ca07ece7ff7e44b727a9df041eba7106a34b65a9aba471b9e293b38d4e8ec6c91ac1cf00397075873c28a202275927cc48c5b4380ebe69aa815fc870d370b8f25fc91fb34358d6ae1c95210764fdc347fb7feba7897b48a4827abdece2ba9ab7996bc167f8312779e378880406ef5ec08ba70ca5d9b8a5a2bd76df09586c6e1b0806417fdd69269787d7100146b7e0f731f0f445bf36f59c518ce93cd9831e2a2d7b69ab12fe746e9801f2072bcc760e5e0fbd46a38512274a4095d63b154b6d32c641e022a6a08089f1ae07ed6dd78bb197399dc73e55486529642766e9c554018478bd45fce9d61ab47b0461c9aee5ec5f3b23e1bce78ab44b0054b12158142f7aeabbbf3f1631f2ece9024fcc021b76867beb2da4d279158f28fbfbad3d3e9d605c76265fe9e313933a0198e81d004c6b6bb5f62e0c0fd0372b9fd3cf99f585892960a2d027c2bfc871014b95dc688462f5d38fd74237a6b579d78c50342cdb71519484ecba8a247e75026ded8f7d8a0ffcf0a65e377e2b994262f4c2c80a717068b69aa1dcbd19188c02fb5ea1e32a842bfaa86f9acddf2e142e8f133bdd4c8697383f2dba8385f36d023961cc7b9dd4023b917cb16061854932a480bc23e47b719a30f6591b7873bc0113e53af59338fdb05ed21d772d02683683d06edcfbb99893dbee03f8e66ddb01fc37e59410f9b118189a71a0e40398cd6449d23d2b13c209f193b9d7de6d8a07b4de905bf7a00f900c00c1af1edf3cdeb202714fcb56b35d3f511b5fcba27100c084720c09ed0dd120019b2ef062021cd5aff396a76c1196bc1877402a66ef07adde8930bc0f0320030bef4354110d4bf7678b508b12f1fde6f95642de593204e76d1e172cd24841e8571866a4fb561ee8806230ab93a6f0a90ed8c418833203c7deff965741f19c18ded4d14cb164dd29a7a9a0d2f2eb3a7c7a5e45837f5705241babdccc21a95a0fced812b3c3174f6aa71d5d408c0b9b7744620945d7dd006003f7040fe32f435daf1d160e4590bf2a521ceeb0ab9998a21fd79f9d05e6032a34f58fc230fb25986cbae86dcd804e0c5b3cd7b18557b71fe3737344c74100670bd79f3f56e0a5ff696dfad1d13b2e72b0735eab9ce6b85cdf1ec9fd88ce009fbe783dc5dd5fe7111283719e8537e87e517793dcdbda50f32f7f092192bf0158d6adc507379563d933a12d92cb40711ba8174693f59010eb6eee89888d2f02121c427ae248ab6a145ec1aff88cec0fc170b694e9cd3f0ce135fc3eae074003e0d3a0931733b431e3e8ebc6f62ce2655212cfcc64d562d967416f043e5fc2014bb86cf86ca9a9e0dabbf2b4c4cf331d50a2703070ba0ce88954c45675e689040f6c51aaeef8da2a12a673c2cf1c7917fe4f8970046e5972bd925556655ace05d110b4c503c0eabe1c27cef65fc3045b55079ae45a9335495e39e6bceae2570521fec80ec1adc5c6b0390c2e54a80d753098a2dac947953d6197f88accd5f106ad844da4537db8b4fd87c82b953e8553a02b94ed338be6a969fb8e93e4fcb800697d33d9e9a42a342f85670d9dd8a25d2a1b293476e9d0a9669492ba0f71b401fc0b4c5922adfec416c4d6e11f815a8cc1cb0bd7fde37ddfebd4bb02f3723307fd4978c6b4213eef1fbb25668371559bb18e679a5c9b7dae7d0ff846a08bcd052cac9e2efbae83198af1a345acaf723d268ccb3ab26addf529a976a6df987e07426df0834ed7d0b2765edd12dfa98b3daaf1c401a16418aa2520f03d9a358803f694e0a4b19e0333575e5cefef12ffe4b87b16c10b45e6ff2134b6dd6c967d0461081f26dc0f7b42aa8150b0033191a1c7bf6e7c553b385d5a0bb0760989f403fcbd57849356054751272ffc7f5e54c2ae6a626668caf53a34c793cc33093601d077c9e3c98b5bce7a5b4f3a44ed0e9ee7dcd89300dbf803c93447f8ce576f01f32b915bafb6f7a381ff2ece4cd3c75339afd8b997713c0078e7048aea9e950597fa173bfa3c2bc0020274996d4379a1bfdb5c65563a3bb235501977205e880410ae7cf04cb0dd7b8d9f4031b6ca5941e568111ff54aef9b0438a804f52214053b87bf113a15d58cd04ee827f4bbd055abf2d8ea85ed844a20931c6d3e829204cf2f270ae6aeaf56b545a835324b2163cc00e4d055949ef9c4ca1ea7de0dde056e48edb06d89905cec109bb266cf52f2b33c777486edede467593ce5a0878504bcadc5030928e923f8ea9d824e47498df11300375c5623f454824f4cb79eb507cc1eb508ff48b91c29032c337a9d55ababd13f6e3346f0a0bf8b4b240f1cc000e6d589bc0ccb9732cdcd96c7d2fe3e010bcaf043de4e395a0e3c0e3c123ced06eb3c00187371544264824ee87de9fd9c0fa48884e2c133333d64cc298dfa7404ef8b6b4dd255fead496a98f1e0522211de84a17742f219968d9a821c97029e0758a90cc1154615008c10e3e74a724066711914d1b9039022cff5bf48ca812b03f1ca1c32d2758e7532a63aaabe0b15247a316a9f6da76c3075d763ebaeb639000d306d2d00d915c909f3b4124294406ff3eceeb7225c964d43891eb1c6302700a7f83a0720afd766e9c35bc53ab8db5a52b57cfc3d68e62f63a487900668bd07a05ed3d4cd4942332558d51b9e813861060a21ae06fb27baa712fef4177e4e055883252dab2f446e0589cdbe5e06915046dd84cc17320011ae966126ab368e0708cd7ce8099eabf2079b2f163d44f600f64990e56f1ea0a19ce16d5d5555fc051490205b48a76bbff0f7ac5ab6067c7d0b2b685b2ff1ac406dfbdd5944c1550297bb25d2004ca82797ee7ef3ae26ef618843c6d146c6f1675bbb93fbf8e942050dd33c7ff7a1704a084909f6da815b8352874135804e2b023bd72f5269fc9a0411dbaa7f6933e63bdfcacdbfc88bfca6f579b7a759fd94dc11f328ab4fe4aa02765e24b1af9abd63f1989d93903e4ac9ee1cd550252956caeb4d0e4d27a6f700ac3e41ac45afe7abc0a1bf946834656d2ded7b3193252edf1b4ebe26c70a9c0081ee992380304bc977f954dc78822e1b334dc1a9781783247121033ea448f406de1c7861d0889a90a3ba30720c122d670cca7ba53f3c5f5a3247aedfc603d30027e96ba09798daba7ada60452b7c3a1920f23fb4be57aefd285edd81130df5055d33f6f734494c81c24024c9debde0b758b8461e2ece4fe1503860caf40edd06095f8188a9cb1b053cce2d8c8e70e05d25a633bbcd18fa2c32e31ee66794a401f6d4a752dab71533a1e2e519bceb46ca6c463535f0e5ecd60684190ca8bd62070d8b0ec982b8c86c4bfe90b7ef655045ca5b95fde29583b9fa0c121f3a4d42031fa706ebc6074709f44c585d4ce9a63472a004f4883b0c694ff8c5ccc500160355a5fcccd474a4554bfd7e4e9131e0f93fca25a71597be76ce649d540a58f7010e102a16935c6069ed0477ea67123fb3b414ac4b30a1a5003a04fb0a015f2d064413d832db84eb6138414812be24d61197fdd1c9e8b953d8fde65699076263035b6d43291b398136097c150d91cf758f5106bf524b54daef30b3935952719c07902b081835032ccf51bb02bda575cf4dba433d3d551cd86a0f5884e59fb1e402c3120033c166efbebc06516a67f31fc369a4f2b403c3c68e7db0d1173db43f03d2d9900878e303c6e5c4bb9eecd5ded3190496f4d3db10433211a94dce5a660337e2b8496d79b42c60506b8105c3b0c892470ed8f7c7b002da3062ba64eb9d0576b54b26afcc0607e7fde4dcb13340ce08d4cc95ac62ec369c460d5fa1525b06b95bddec74f7f42f49e542e34c1ebda85431bce8ca826347f81afb10a8adac00f645f2bdb84461b95cabd81b1eec54eabd1f7db88840269c8ecdbb1c5f455903d58d8db9960f7545c70f44032ca6049e9f1acc33d7e7be9db7803f7f544a33024335e57620ba398232bd28124df7c08edd13e284e5517d7238f4239e4ccc5a06df09f5d363a1d930756006bbe9d710302061441de81019405eef4c16fd8a18033e6d9e99c9b52ac3990844aa78dbb03cca82e4483c7143252843b7a572fcd907066537556f0a88351c12adc387d7a4bdf3f9314a3646133316e438bef410ed07ade82fe42eeef290d3bcb6771409e532abfee2e6b951bb6a7c4e86090752b5078fb0b136911f1ed6d66a5f03f32c94b0ba2c876149473e0e4a71ba5b502712020df2a152d99cc5fda99ee80a260c98a95d5c4f5c707476f36d91fa297de78005f319de7bcdbf42f8ecb914fc415f926e7f00f3427fb7c9b385bf7a6f8925f2063149e7f3896fdf78419185025ce159ae10669a48226b6e749844317a75503106314149f9a240f8bfa846db9a3cc005bfd993bef52553d692cfe7b0c4d787c503cf1268ecce1fe7bc56d0ea762e3906d1d3dc9d6cdc4bd7ed4c5910b84abec4029cd6d05faf5ff2c610fc3ca4c763ba52d4858942de40259d3b517bdada81df005fcc7c6f043bc1a9b9df29da02fccade08bb20f3bcca88dce622460675c456054ebd6f80ddd42ecade7bb1f3dbcb4faf01d8c39f23426eb3d5760368f6d63803d42e03250c02aae4902e7966d6abffa6fcdde0e9720ad81466baf490d1e2050057c68f5d1446f724a6674f3099e11445aef85880fdefb35920a000a22df3f003f9ad578f3b99666c48b46531e017927572c7d7899e0dc308d64dbaf7082bbb04729c2933d8318565fa5b6ddebd53e647f8d8703a81e0973af8ad42a8f3b77f05f74cdae3ba1b066c33834d79c9a8ef27dfc743eb8c0ca4c8aa77129609fddf0491a0e49865c030cf8daad83dc693995bc4bed5660497c30700206b469fbbfc06a2cde9e1848e3971b54ae1e262fa75835d359c5ddb3ca4f20e15662e3248160270228d93003b33f1167f59e9163bef768c763384bc74ba04163422735b0714049ec1f11ce7f8f2acbf91b8211ce90a8d0408106df5b449e96486116b2eac7506eabb38e75303aa99f2cc70a4ca4d294d4411dd43f1c2fc2221c67bd74f28cd01828128c3e745443588eb0d52e92187f6beee1ef2f9333ea0d4ec17afc862aa07ed0816c55643ba0828f9f436da72aca5b5de9f198dd0034747d472edbf2e910295d329bc527dd402cc089d69a67fdd9788d30aac4885f4417bba1247b6d35405dd80729887b6e4d67d6bbe700b2145c64bbd1e410b46d175171235095e79a4053d1328f019d58bb72f28dfb6dc33d4faa41345dd3f8166be50a86d8a1f79890272d4557469955dc533690b57c24883c261d5aa117e22fc72a586f7bfe9db0505fb1b6943bc8f1c21947923c07812bb12145ed57e9dcff76859a42db6df443e00425d0bf378a7fc197db47a4ea3234433e4ed16a97eceb28d0d1cd33c534de004a83fce21d8b7b4a1be74dda4c88692dbf059e9ad84e4c8b6dd6562e3bcf72702008b2e741f4ff98cdc3cdd450f8ef2ca5ed62831b3640ced480345b67fce63040742f857153c4de775242045af03baa8e87724edef34f39e1ea014afcc0927069e09f433c247c58f21fdcf89072dcf96ff1f181fb0a72f64936f5621eb25c0068bd768f62f820e53d23651c85a95012f180bae86fe1942217eeddf64a2527f06e6c09b7e618d2b8f3b25d7866d7db81a3c95b18c0f2961a7a251bea81b45c901e576e2b3deea87eb459e63f246b09899f3ec8fbe1595ae72e4cbca33af9f6b06b8232dd91112d49c6af847890631dd198ef9fe1d231b385cb9de42707e9301045db8101f6718941ce67f84ae64260751220e2120df37db8d6a092fd23bce2204e6382f28da63d8c5ee649811e7daf698819cb25f93f0bec0ce13ecf2b49931033c8e3dd18af81647e73c0098914ad8ea0297dea988f6b5ba570f9216f6f3a4067d00491eb3012ae1a09d2509489f73233d2cd73797687edfacb3add08a5f49036e1617512a8748758b039a9ff460be158db8c1daff8ce895d35031de23c06a0316d2ca83d56c8ee2b4ede33ec6746dfcb7e021f945535e3ea0f6ad45843519055dabf06c0d9fd3ddca44fa53607e16e0a13c83ddbb47d4988a18cf3eca84d40144f334c2de47c9fd7e29c3943f154bd7463730298fb0d7a1f64987fe7e0c6704514ba850c01eaa74f98aca654c28dc58c55b27de749f160cf3e0feb902be05066c3c39b27bd2b4590ba3f71bab1593a607bb7b6310f4b6a01787916e25ba9e04bf962886f57d0ac986a619ce7349dae7459dbf620da04dbeaba52723e1bc6500aab6822364e407942c8a05be5f2445a5dfff306220d1ea1054ad39b48b47ab019734c3212f2032b025052bbffc0229f675006fdecd8f9d46ed8cc2c56bcd7c001cee0769eaeaf0bafb0543fb2b8486c8d001da52e5095f7d5726d81562fc350182ada99af6e09391fabc86b5495687c307aa30baf7fab0bf8b230a551f9834078f7be6b3181fa8e5d785d0fe2cb9645dc12780d3915a10810aafe7aa49cbd6018e3fd27b807c791f1e537875395aaeafc6edea6717441805ab287ce39b10cf009363029ecefe665065fc4af820183cef0f1b14516be4d1b5ea6afa9767d4d4044bc894496df186b7eb571f44ccd30ebe6993a8af070e43fe6eb346c24d76e204d96b260ebd15160b32ba0e8ce127fc910b3e69e2fa4bce64548a09a89663ba032caf20ee82ddcd5b2c9c2a71aa985fb9fadceaa78893fcb95a2b23c28fad0204762321cae4bdf01e6652be9cfad39f88d12aa7227cd61108cacc084353b2560012d2b5350dddf98adee1caf0454f2abc0e501ab92ef05050cd7df2b33707ce038cbe3f4fa0be53e8d2914152882da351139059aa1335bdaf669c10df87072402d69b7be0b6cc0912042ddc96fc85e44593316b20ee0889bd2604b8cc7b716104e510be34cfa1d8b643301fe4d4397abd82c4fc74845b134d449e89b44275ec045b7d902f42dd309ddb095d4e39c86bd34a1c780435887e8a59f9f9267057710120959e2f8bc31136af23e93f86bf61b413fef682ef13eef1cf69eeb9182796023480308b9c44dd470b251a69b2ee0a087629aea5fcae343539d8af1e5045c900ead30d217c7c8f3d65cefb2d9d214888484c62bba4ebf81358b13b95169c7b07f14e08e6ec2d74b20f0fbbfacd268bb3d4bbfaea615be92e69470f8679176903eb017692fa3203ba9a7ea8c192a6199e8fcd3813f0366e5cc34096f4b1d5af07eacbc79ee1ada3cdfd322a169cb706246fe19746fab4173ca46ac669f4ea11015587d3bf4b652f2b6d7af49ac76fb88c14ba41940340d86f66a2b480f9a9fe03d7e86eab8991db6233f7912804f432a3212c8db00a1be362442bfe83a46fbc01be91abcb6f2b8733328fa0459c640c0b96563362ac80d7d38ed4a3ebbff98c02716302c6bf5e182869bcf31c66f970f1ca9ec5e5cfae156e6f9e02b441a37303776750e1e020e5e08e9b449db963d0ca1cfa5f36c5c77fa0172bac5c4c1c9803bdd943ba19bec2b72f699303a5ab2f8bac5203a1dccae6819e0c7e21a753f501bcaed3c6e55f48f015f455bb6741c8bb6b09d2de431cf3c054c3b21ab5b38a01940a4459de017050f1035470eb4f8698ed5de4c6f9863b80b24db4beef1ea003e0d84920053ce90047493ce90539e3aaf0d1783c3d3f93c7608f038a7d577906034ca64ffdaefc1ccaa2660bc16353a76345d568ad467766e0bbca413051be06c4da9af4df05c2cc56c36ff1281c843e50df8168e1c2cb2f67617d12f2215d026ec4cc55b5f85a704824b59a1315f6b1787f50a3bc55461797779e6b99548600a69e1fa6b92489a2843492b62896643a31769e95cfeb88ac76e9dec231c9ae052d00e685fca33ffa827412411534aa52dc12d7de898bb0af2b64fac971667006c74841d394aad21f308b606c705947705eae40f36694302a07d81e770e189302c8ea6e6852b0926b643e3a0105a15bfcdeeb1cdc90ccfe8373008d481debcc07d3a5c00de7a81ba6f2da4cc3e6aa477f41359089b27736eb550de2ce6055fa0665cc1f79015434020ffb79b3463ff372fb2a3cb40d2eaf1f59dc9c00e7375f04deca7a1ed68738c96a171c4e8490e6e4770db60cb8d33a0abe736c6d11f8b906754e068c6fc9a598f6115b131d7c2d2ae604fe33e341e58f8c55db22be1db40394006700e17ed9749d7673f6c95be4a7a0426214e8b6ad29f9f36e53a2e7b603554c75bb05ec11e493be0e6910e9ad880f49b0338c643cb87e801bf2151a57009433e504e755d5b7ccb3362545e3d3d8aca6420638a4f32b754bf8847e27f1002fef6832a350b6cc105127ac755c089ac7fec4256ae1e2858e1958ff2b251506077fc582293c28565bc569a54ecf43113d893ccdef659464cd1aec170bd25f04d52eefb0a7ccbc0a7e2a988d3120fd96e2d09a2f8b6c6060d8df86daea62c00779608d87848676735245f603a06c5c143fb6f3c5cfa2df8bf8affcd36eb0ab0381aa736e8e06bc148e7923ca7f16a0b1fc1f44b90d3c17d8a2166127d34e66035b0b8d67e613ea97477baccdfa2233819848063a5c4dfeeec1b0c6e9d07b2f007d1645d393a403276defb4fc6e469ca534e1ce43d52a62c4ab8e6fd07b9997032262bf593e69b86ecbcb6f13a99994a8c3725ea807d84e9adc390d49f6f9eb038f51d4b1d6e1d014c6d7054b028f6b2868c096579504ce6db309798fa4b0f203782ddf3e7c15bd7c63e244ff4682605b400118e929109bd7c04af94b242b2f014591332287b21c238a702f948f9650aff22d791bd745b90c9b201cc4319eb300e8eaf0bf02e6e628ca0d87bb6169fc565425f8009f6597885f3b4971f5403401f9514baa0fdd74a123eeefedc0746d8e6af2f29f44492627cda219753c4c1b018c16895dac9fa6403a7a385b1d27a1ee2f77b14d95dffb3def40a57bfde8820719dc48a05cc16a7f8534a09bf31d890d161a80c91daddbb0b6952a9bef347d03d16d83ffee015dc8959a1567b8b299ad057dcba679f805462b25a8fe1c26a90321100f6c03cb94458704d47f251e944650c2ab07406bffbe2ef3fdb5f9102e04f3961108372638f521401fa7ab508d1428057bd3f5f268efa5c6e806c23cc90392e99aa80ad091a28adf6ea4cb2e6ce8e87b902234a2ce663092ad4b395ed70470790f019aa1b87da6819e509abf50f4dc0e1a7a4e38c17d2778573ea45fd7041baa88608a1276701771ed4fec7c024f5433dda74af56780a9737c57e4dc1605e323297bc8e4bf3f56b4520813ad103fec94de94107609542385b4209316a503f4f53497bbc8fcfa210545a56815b4f5a0ad6f7219c3f9463f324cebada20f03cd1b98ded657fd88b59d7e3feb99798ae5e7080681b1ac7d7f821c41993015000432db208612325bf0e2358fb77e306f0185f0a7e9f76f1e1d951cbcd81fe60084482a3800fcb4a06e8819e14bbce7c1bb0b36869d7a2cf5ae9291ef5da257069e63ee02c1443ed990eaaf363565e49587774f3740675b7f333f0c2a28b1f8077de2244db3cc4ee227feb57dc601ceeb61c7f1afa52e8946df4d14454b7b15022030ca8de3a931fbb00c775001293391572652daa13616964cf554bd10d8c0067ea5c4e822beb2fc85d2fff4a7b2e5191fc182030c2b7a83f0c417ab198bbb068643a31bcf62fa20e703b1b6fc5f2d07a20f12fcc7346746cc9bb7468413bb02c6d86bdf81627863c3ac68a047eeaaa1e6d0fe36f8931007b9714f5c6a4e5c0526534d3824698446fbe1a74fdb0b8bef97b2481e9eda6bf9fe3085174c2b320647bd0d1fa41ee9cde468e1b2035d2e4e43eccdab6c253ef276ace4a84f8e120300d4175ff27e904b623f8e19ab8a720f0edfec8b994141a9e446d7d1805ce807cb36a2675a1716cae69151c655b84c5e16f076c9cca7896811005038bc69990046fb1f573dca99d0bd8cb167ecf8b68e77585d0fa13071a5dddb9bef393ba903e25b13f482779d79b1415d4503c81339f9743c01e682340f08224176a5e44507e8c8aaee798150b53c912c877e16b31fcd9f97f499952a2c76ad375729e126056c9470e9f78dc88b33ef09f81bb43e954f222fdb24f6176fd552930a2220c002d6821889d3db8e238a6566a4ef93ff01643cad770078e654b6364b17f6a2f40711e683536c0a3f3bf27fc6a682b52d44a4a72e98e339ce52d3cd3050447c6f0117132498285245606d44b48e2e925ba684f31c2e0173bb37debf0f08505a2b003a8d105d8fbec84b06d72ac9672c457bfa5df0d838a201e5918f378e8f9a890089ece3d58e0e72a844757946da9d29352162a248cb1b065e004165aaceadec06aef5d6ee0a810057ac54e32e856e64c62734ec7d64bf342d172385b9acd7250287d98ba429a779cda99102cc1a2ce9fac436414633a9fa311c4a99e784d21d06b63fb82d13d73e0225eb217c705456292a1737d0dbaefe2222d0db689c7dd20451479c27694631c27d965dd48627b30eb57db286316b06c8d361c7d8d399660741c3da21e0e8537aa696f56445e64d09b473881cc2458eadd603f34bbe793102fe9d572f183d9b17c96f2b3bb58d443d8eb5bdf10817bfff095d5f9f318d41015ae406149617feff12d431995a769f235e2bf42242ce70ce1a785caa7e1370071b3640ef09f576d1d986e3d67b61c2f5571bf5bede705aa9f2871e599d239603ed6da20d8db2e31a6aea0ec6f621bff0d2eb03e1c158b30518a3b1be0d56dc03de4a9b180c72dd89c31146af1d54827943ca82a14475a15e35e5d0121ac3cf01c1a8ddce0c87ffc23b563f81491c9de1b9170ae6a0817d80b409e0b02482d301796ddac14c56d1269b2f8e2cd860bffc28c1ab468db7057f602b351bc700d3052b05ca37363eb01da8300c36894e5dd682cb5a65e2a19f15f4be9ca85baf7c063e5de5f9ce5cf22e2a3af1cb7bdab0d4f447bc452049353d94e9fe2f5d7431002d91cab74825216e584e84d46282c4157982bf53cc0eaa9191320b51f227e903dea3a29ed523e039c94b9cab6cf7bfe790150c10e32bda113f0a45ef2a3fb4047941ad2924895cffb5713d7ecc625dc5c87add899979f82619ce54f5675efe04b45848f3a5a6008ec72dc070169af8e5647cfaea23a388304c9b853d9fb6c601f9ab6cae0508f37c68b80fb2109ac2d3a5378a516886dbc215d5894fcf354401abc0612e98a6fc65bbe73da62b1a3fc5b6a151111b8cd580177c46232aad23077377d00b4dec01df426b7a3679279edad4ac242314d37f39c9cb7f85e6b3fe04f68efc88d061b5aa05db8b3237ade4eb013897fddcab3ae7ff24743fd185b80570e3c840411ce0ff0c04abc6f3a6bd5d8cde70f2cb9816570e0369a04017f401c4db7f06812bcb6a2609efe23ed2b928f4d602b276041b9a09d6b0c3837f1105c82b30fb213f58c047a2c84623cf7ee95998f2b3462570b3338430ac12e7680298b4790a6c2fd49a5a91d2d39ec8d07ac0ab6ba26c6a519f4801871a72561302cc5d706ed3a9f0aa9e1e5c6c6a9042315a5cfa060639ca563b6dac506326710520068831f52746d1f578411ef89eeadfea0619a464e51a2c9c9a0b00b77fa8043d00889eb75e2330b4283c3c88589dc79ee175123e6cf5d00f5b7e65ca914a0713320e17842ad89a857b2a3502dba1757a1914a0b4a14289228cbaae1cf78b00b11fd3ffa128ecd0f35262fe6cb023ce42a91916335ab2eb2fe46d6074ad6b0127f5ce9f333ad4517cb925f52457dd4461ba53323c9788a92e181eb20ee54e013ef27a228cf8cc4de4dd7ce459458156464cbb09ffde3f25edb0803d35c0c005d3315175f10f19aa5e19b83cc22404c523ed51b13bc320d4ffdf8b75b22a85044b1a63e63885c6b25676635b0254d1a2f355980b0588ef53f1992c5400da4b02354054675c72dc10c1adc9bd95a5ad6689d7062788a231514051ce9065f57e0404632f211ebd317b3ab191697399323c880461aaa92fd79e77efc81c006c5100e15d51d16926663094014c1610a02892fc79b6c17281d7351376b41e6bac2f0015fed0208bf3694f8db6014175271773b2f063900c9d15ff36dc808e820377057c72bd2be05d3138d849489026462be5709a74d7875980f80b7c5c27b0ed7105fe54432198a408fd4c04735341b8554edfc2178ebd0090265d725b675574e1016d08f076f768f854465fc0231190d18764eb58c78440893f5ce1a5f65d9b6b03a02ff8af7237aca1517100698f517313ad86a5c3dd78ad6d8336a70c8c816f043245d82c6da092904287707f86cc5ed0f94f692842b5d0478f1cac5da7cf330724e7426c3c32ab4fe996efb84c8eff98604b1225bf2fcbc1e22b7d812e7e6e048de85960f4437a63550d0e9010b3fdb80a517e90d2011ea1b6d9ddd780f56f017e16a166a61d8bedefaa0381551b1c1de0b5d119ec3bc4898cbc58061795fb077d79097911281bf447e49ba2e5a3be281021b9b1dbcc24469357fd5e0381ae02c41dcb6b84949ac175742d8079d4f371a3505d36564051845f6f2b7608254903dedcfc89cfa56dab5a77699d7d1cb50f078ff1606313e61a850b9ccc1d22dc0094101a3990e9cdb8446c6db99bf006cabd0ae8fd7ec2672750a8860b4ff6a4015b403dbec2714d48bc2f6b3b969e8d5346e68cee36b5b057c9f5efe2f723de0212ea0343e4c1811a3330c49cbd6b178bea430d5eb3ecbd2c19b1102c8d39ed06c54b37318eb4269813b17593d806df3c3ed5501d5ef6cbfef60dab702fd63803d04639c7bd0bb31f8de7841e4ea75aeb52fac79c26e81d0fd735a81910c53f0442adb8ecbf51edc004510d43a42eff27340fe5327ac1f36d7122fb692e8d52055dea1adb1116b2ef0ca397131abac9c0961631821ff2ad2bdc557b6782ff6e070b4cb7801948506ef34b898be6b00312e092ffd5e8aba0208bf5bd54ae4601076db27691ccd5f75829a60a8bba685e99dee542b77d39fd4312eb1fd9df388d02220e408189bac1c5ed4565fe5b65a5b0a142009a28cd3154c45c7ac1881992039473ba7d3d7c150fd893178379c554ca1e677983f8449a4db6400cfb5dd90901c1afc270035ee28a81af3965be0cb8b0c7ca5d4608f2ce341cf77b3de5028c029cc2849b524ee227e364763d974b06a7b7f7c6afba8381e486f93823a5d60e0022ebde30aff0acc8a56eb80b3fc0a92e99de611bbb83190cc1425950b067e401995a62c7ec6abd14ac00e98ec1b0487e8576721c4dd40d338a8782580404aa05aab9dbb4b4f0d2264a343278e31438f4ef55c91f67fa93a47f2ab7b33adb420737e6b1dede6c29d31ab6dceec9589e824e1551f33885e794dcb0e6e9c7a79a01f94e73590a8225a02de00e66fdad0d702ecbad31b076cb506ddebc8d7fdeb70527e023e3541bd2a4b82580f6658d8434242e87f8c2332352ebf9ba84bede1101046277965a5159bb6e1628d723ad23f4613ed30af58bb2a9287946fdafeab103ed80b7b5e1f0771b3307ccb9620e361d96d42863d3ca00b5e8b6150132a4ee0096506817c29c2fcbb81f3b6cbbfa2c8e967bd11ec0297646dff1ab00b85f1203a43afbfb659fc95de3cdaae26aaa595de4adf3a490820aae21f32a17b0c102006a8ee2a9212502c7ec274ff8e5eb892f6fcdc25ac7d79b00e784e834fc477400867391db9fc1b18a0932350aa67b596bc5d0fe59f48e2b12911a0bb436c631058a94b0c4bf34a0fa7caac1b82f72b0dc1ab429b7b4a7cf020ab65f7e44f3990283d55264282fcaaa73e54a5d82e21cfa596697098bfdb05a532d3df17fe28004fef442ba144f5a63261d330c3b2a13bb76d76aa4424c46fb132a203c90a2d60630574ad556fcfcceda3f8a467901136aa6f56fd1db4f3ba955eb14629cf0f703bd707f80621ac5921671488584414c3d1ea0ec06fc6304149e0c17088b6c59011a6b7881660f8f20628688d444d0cb8d40101b3c3c2d5ee5fb0a894469051d061b9dc3f643eaf8cb1456d2049404b72009a8e0f2ea8f12f657fb102ceed41e00b4a5bc41dd411f5d0d883575073b6bf2d3683785b6a14816b59ea8f03c3ce303b12f8f5a6eefc1a4430506fd65e4f5e37268267e9f0e1f2ac21123bd4a8511025dbb32027ed37102d32ac15c7245175e695f863bcc904e88014514984f0d9006d191fe6ccbb200ca359d87eda993766276723bbab59c279668b66eda9dec8a0760df4db8267c69f72b9c131dfeaceb488d4df02e6b13dd3b5a3acb58f26ffd0330c99614d4402395f04be283d6dfd9d8468e76e3db6ff3051bf8184327463804ac563f3b29e4be1a13050e734a700ee74d5432c0af9726a60c2643b9d38581012102378b09a179afa985e3e827e5535c23636471d28c462d5d273ace34d58a0320446efb6bf357d3d668fcbd910756c3fc586a2ddc78c5fe3e9a73e16983ed037a353c9557a8e65917d377101afd1af3888454d1ddf13f3f58efff454e6198037d2c9d200a343cf2fe477382e391a148b2712412141d761d0b380bb288ca9b026160d3f15046a23beeb6b45be76c11de7df9f7b416908bfce93f729d1e51500671d90b65d3e7397fc7e8568529bba049231b3269b0ad7cffc6de08871524870697c2c64906be56c295da6d6dce7ca3da398497f879916a41855b5de41647730416cbbbfd67421620bf6759ddb20618d79e87dc6d753ef5c0922f474164ca19055eaa3f133c281aa4245eaaf2161ce0df5b95a8e3e8aee5fafa41fefdda544b0773ad34c05eb590a4acbd54fcee8f5899f00c80ec48d692be3032b9742c10f20642361c0d86eff581402674993d74dab809e3dfedaa8c0b17520ac47a7f084f016c93cdd2136a603e2a9f8cf66bcf0c2e8d0e896362382f8ff33ee0d091983b012d61ad2625e87876cc40f2b433c8d6ee41981faacf826a88c8f5360763b0a50518fdcd882496702a0bcc9070c54491826e1488763a5526165b43101f100716014d7c91bff959993c8ee88b7d47adccb79b4e5e60426f9f99e406508cfdd61e07a51f3f5ca0ed9d7ac77556ef04f6c84ea7578a7097fb62e7610f33fd01fff40449cac119b4b776b7e2a9cc6e98be439a4d5cfda633aa10eb90b4ae27094d340298a862a2c4c6baac0006d96dadde4f715bdd530c15a5136b2ac3c934f3909404e8fc9752b2e7b6c982f1e10c9485bd695f1ebfde8cb3a6b73066774e61ed5c00252fff7a145574a03b92a94346d97829b0039efa5739abfa420d0164d291b5000598f15dcc94f225b8100e828f0cbbb7b829911cfbfd4c2f806a53f067bb4e028121ae51d30145ee57f314fc786f092208f957e91d5288b9cac24b6d5022b4004a3460b3f98be41f1b42e256b9b046fc9f7337193f23866ef660634f2207840267491ac7080a0f9ef7de35087da14e9a62bc446221bae2253fa19c4a09f74e05b0231a1973d079217e6f0bc072133be1a051222d9d6479ca4e42717b12c8ef022f41a02fdccf9dbc8a3427b63fe3f424f051200f625e9ef4ca8e462871de8f01ae0d74e86f975f9e6cc56401e6ceaaac970ad188ae03f86eaedb5c31ee3aff04008fea03e9e1397672080d4a911ef7c1080f892f6f3f9b8b173a6e6d864925029284f5213b71fbe798fb55dede7558ab79c01c6d1cba9c914dbf7722d3d55503d7e36f78d4de5bb00792c72a2ef9ee214188f198d898589fb6f59c08bea92f04020c9e1e1f7249c84b3d4f5b23cad008c1d83328785882eb396a872e4475e6002457b152cc164d2a928f9ec2085761749486386df507a9fee292eafd354eb201a27062c984349f1755d71ff8cc57f316fb0865a6bdde0620dfdcea51e851ab0216c32614bb409335594a4a6f4d0fb8ad0abe2318cbbb8547c5b1cbdcfbc3d203550974dd064112b5649a939b786a393acd9c1210ac0396904d03fa6807f11a069e4c60fe714ec3633ae24c60ac0cdaaaeba3066c64af19c0ec16364b6e03f2042eae59b480e9efa517cf65c52c0709b25566cf543d65f3cb1330c1c4f7533400b15653ec3794441fd61005aee6b035bf5f117865716c6aa4d1674699fea3ac06518b26449d42114a79c22e750cfa898dc512e17d2b5d3bfea01a3ba40fb02f076d499c08360a26fdf4dd55480c26f5d20e6cf25661c52e7e9fc205a4eb4419070c21a8b40e0f3e65f3634aff13f2c4f911ac9f3517e237fdd06e86643d2b700420130ba3a7258dfc55784f3b79e2c61bed95088b4d64a9c587aa6d119619a30589437b59eb69c67b57480f584912b3b3f65c69a3d5f136f61320b4e1e02b2b00292b62efa77b4c7e6dc30c92b122233347627ecc3a10caf0b0cc04bcec0f0c01f8e71999907d976555fa55a8e07f733368d69f7dd78da891a410ed33557d190384851e8efd85a0197671786388ba7c02c9c79051e96d3f6e36b00399b12ff5036859df2acc4c6479309860b77a8ec479799cc69fbda055aea1341d07684ead005c6484198a57f037abcb148003e43443ccf4869162ee8044df97ce0cd94805029fbf03a1134c357a1be8ee6a43e9d6b8d09b71e190cd55f7da4cb389b7aeb70502895e3c8c98ee77d2d3c6361ecd8a064f38ca599551cace0b26f8e0ea375b048d50aacd91c9b156ef33edca6ab6ed56b84ed7451784c002ae216924b9e5a403cd6ba22077933a730d66ae59357addbd0b00a3ab745d5eea07d21f0d322851061cbca70fdbe5401d4d3df74a93388c7c96b3c27d9986cd7b631f516b0bbebe053b195d088321c672056b6fd0022a6d17d1dc5dcd41e0c6f3514e20f7f3b3ae074598b2351ef89104b46e26e3ccae1396dbecd2b60035f8d2becc307c512b12027d7b54db5cee767364590956395c4e9cc5d4a95ad548e3e9f9c6fb86fbbb5d07721581f7be0d2b8d6a901814cffbd93cc4ee4156bb270d49c6b0ac80dd33b602c94c8828c9c56d7c906c1f728374da44aecb3d05f40294eddb735a56fea47f07baffef449382d6c15b344952d60bb4b710474524a7e8ba47392b782e3687c60075cb000bb1150b0da493fcfc20c3f8143bb89e56e13dd84a429d304ce08ccf04f3deaa5d3505383dbf128325b03a7a0d4ce63d8eb61e1a0c0ec573b11178d7040c670f78cda2a48ccadb6c2c57f90a67c29b0eb8510c2f8b01e5518f528eca07d5ba616c43bb29fd818df0685cf534c285d7c4ff40b869d6e15538ce5ef83002e0cc132ed727ec028107508202213da61708ad7b73763c63e396f171e5df2001694092ed0e7883b1d3426efa35b702d9571da80ae4b21b300b4429c6a0eb4f00d9c7bec32ba5d08bd357602bb1841ccfe10e0bed24f164e603f951269f02c506a30245a28d7fda047068de89265b4d0a750ea2b8caca7e4e1a6ba6b88162d20221b66acc077c7ca23e02d2d6ce99eb529e56e9fae0db1215c60bf38417d94907cdf4ed0206047353da359d30c29448d2ef04325f6c30897244b45a00a1bbbc0627e198baeea7d3d4314614a33c71dead0d65554d3b51809136c67eff4c487901b582ee5f5fa7e4aaafdef605b7f9fc5d7ba1dbb5a96306a0bfc6ef4699c1440193bb36161901994bf7af5769979f67721bf1c27e47950fed21e2c3009fd45a06ac21ad29c79fed7d363e22651cbf0fd909a10e2d7b2ba0f4143272ffab22e00487dd00589bfb07be2affcefe8a8d2e20337367d98870010ef7a56d17045b0504c616cc49b28eb07446755c11447331704e075d241b7bc4950dabac771bde2a0265530530f30a955dcb40993e118c33eb04aedabe4dd970eb6cbf326fb9d8d50519ee7ae52b657c156dde1f829af39ade6e08157ad3a208b250904a2d1f53d400e03e340810561bb6f1983300cd61fdf34afc1828e64093e3b90d6be79770d0015d27b0080d654f20d9c25173f7f584d4dd1d6b65474d3cebdcfd1b132d765c02d636c4c06d7505b09756b682b3eb633f8d1c749216869b1853a8641ad7f0f404210eb0b702a6260dbad595139c825dbe8e71e7c63e9c42bc72033fa1ec9cec0104e86e21e8647f90916c408cf5e3fba57130a2189b5249532c603983bba9ca03469b7e1c7d7eb995b964774b6c01bdeac893e5bcef450566de82f524e9e00306dde8dca5231dca119316b0f25bca0a24b237ed4fdec9f977eb548c98b412ba01e8b7d48ec52a4edfacfa7ec1f4396cef6bd96d575208def9f88503a2a31f87037449de14d0514c184db3ba11101c09340925c7becf72b1b64c6ef6b62821df032e190053ca9b41e5d6e0129d46f591f3ef3c2a21354fda1816035031d28cd00603c9a2771efa024aeab2a9d44496d4399f77065bc40cea047771bc1e27f0f1018b681d76ad2a237e3b71d03b09eac93cb0151d010a3d109105895017ec5d0501f091c1a3c38995e5400b382dbbde6d2cebac4df75a596d3aa058f38a94c0fc0738f616599d9ca6a7e3a76c76fec70a83cf9e435034b9fafa2041e0eff7d072024692f09aea3379b973cc19bbd4ec92603d7a165aa256fb6e9c6a87d9fae29f052624cd32b677b8d45c536a5ff74f6a507daca21379edf8ed535e752e8a5073045a6e038fa2f6b75708b3d53a069534b01c094b9752ebe78769d6a1a14481c303d1187aedbb503dbab0fa940a5dfc323bfdc27bc411b52bb0540b6b93038c6204d2cf268bded653f8def3aad7d9cbd52cc2facbf51017aee052096cb980afc403c437394066f7e278060217af7617d354e965eb324188c14ad10f93ae91febc0424f77a70a1a47ad88dd4a9e37ece3cab8a008943945eed05c573aa5db6b3d805029d62682c158fa799b198c8cd550baf8df35d4702b146a98f0c97f118aff107107762e0be4df535bec806652b809757889a9046a4157dd95f2f2ad23a398001962af4bcacdef81f2d8f4e6a67fa567b49fe56426857c604dda7ac0ca3f7f205eaa7ced2be78260739aee4bea76ff93f94c077bea70d2a10ce5c55ac0927fe04f617dd9c0364a724ce797bb749dacd959a5c0347c2a79ffe6692a2db5d4ae305a8ecaa5db07ccfaa714103e959c10210fe1e61261adb6a3af5166bc3f064e0077fd7cdeb62d10e3e03e82ef945dc139fa074e78d2525e770b6fc086bd0260a0676e53dabc7c9ac089f147a2627620e23d5a2718499b2b30c2f6e7cd5670f6303759b98f16ae11a852e82c7c564d5efcf973b94576633e34d4f769082194040065fa6cc232c5394319b44c8bd937cfe06ffdd557d9c88af1e02f7b073297acc037d8313a86dd952667617348e779b67edd1c9e7973128b650b0724b0f5338c0050187934613142e95d98ec519650efbfc80e53b397cf56dcf67620eca4d8a5004dd79d87e0fb02d0f51f9c3c6d8ae626aaddfd1bc0e35b7c967f0fba8e5d2d706a8e7bc3aab6a1330382449422ab579e2c9ead82506ba40467281b25b5f55fd005b9b9bdf6412eb5fe97f970631f49b92ac344ea3d2be544070c73d0138adc4069366298c1c1b25b762d2b5888eec3f64cf4123efcb4b58866493b06122700e00bd8116653a9b42817d1db6e3a858f66aa9de66ed5b0f9ed035a770fe5675bc04381ed2184a7045981306f23b8761d750345bb6f72f540f09635ad83924328e0693931a78fec466df08d7219d7338b2021c172b30142a5ac3d075f4e2daf5cd07ff714be213604668a675ba87a24f4ed0457e2788801ba2af590ae380df4537074f04a20c120e3b38fc3237480d0a4b563b051fdf9f53f8c5d40ff432446e8706d4751ef8e075cfa1587051e0a24dca097651b0337208c075b8be23e1e66fd307ec89fac5e8f40abf0262bab40d820b350730c2ae6ee0ece48afb471093c51b06c5210b0701cff0e3177ef803ea498936a603f929399122ffdc71bd7c5b489e02e1199d044e2f118b63afed0742ea2a3342ce73df99c9131a0e3cc22863137e041361c2b17a40b09fac8c1dddc0a9b78cb12476d8c5286ecba2b3df2616ee7c02b7f07296b7961465b08386fd653c53a6edf0e42393a40d258b15e2ed648e34070562ee0ac42eb33622fc9df8ed649c446a46c2e867d6217885f28b2e50834404f34e69f508344d0f49a88c4b2d55b8578caf253d6b4e85e5f1088d565a727f015c8bfe8ceb8e935b79c1251ee3d2498624fbd180a5b91062d637c673f05a8303ab2e0c55728c31c832838805f1ceb7ea3245544eeb16e9777e8c070f0111fd008973d3dc24d5536ada7111e10cacca0fa9fdd20c039e89ebd435b29a1892990472f13ab3e4c486d148b2f1f578e14f4fb24001603b79f2ca46184be9a2eafe06c5ff15ac8222515dff1fe248b797a4d18e569b0db878c6553561027c8e0962033410e9b91dd5c537aca491958e99d0b8d9c56e66f8d279ef933ebf68e557b205b8cf8ad3fa96d9d32911fea55451333698f074b59f508127e3fae0f66fa52306de1c3b6a6bcff639507cc5a8f79e9856f73353d4399590f9291e1a0b1ace0d00be79d25d19769e7761189d02c2ebb9c85d197cceba7728aae00cdffe8f6fba051792de2ea053aae13b3c959f40730f965c26a4b63162b697e62560d9f5b9a904800cc43fd61ce2708e3149be72956de4923ec26c26ef43395729e47687de05015d25157b4b44632ce53431499a08bfcbb92d3720e296dbb988be9d0a3f16db0238c77134e3cf3ec51b7d50f1b78afb2614b4aa6eeef402105f74e222128b6a007441f809c3a9af28db86afb7de0e591f8a1321aa3b30d3403222898b017fad0316878992926b994033be15b835c0550e3f72640cb6f48a1df6c5be82a7a38a0667b2816974466cc78fa44ea38fe1e4b0a34fa6891a7e193d133fbfa3ec6a65069fd8a1c5e614af3015f187c670251359855235facacdf74a8fe1d55849314500b578eca0a4a928fdcea0543004b3bea0c2c4daf96eff864738fec138ff4d120486beb31eee0920124c74b920d7cafcbb81a6e8561597ef17481c19c813a115037be2f6c67866c52c91917f0b56326cfc70f8f279b4469a8b73e8b5450ef44605d246a6cbf04c8a36da157b2789b27e47f7499c01ee386d86135bfcf7b5b23307653dd1bfcd69e213d42c9ed90e44eac72f78774e8bb67c8e2eadd1f1c0547300b731fe22196a3e8dd0a6c4caf39401cc888b7e78a5f1e8619eb2d962e5899f06f6640baa2832b1811acb009d2914ea8dde1915841502a5be865bf1cef9f285059053fcf69d206310f141f9a3dc2b67255ea2546369ea92c611dfd34f1187ef0266ef8509871e1863838c2d22342a68c2d2836e86a897022027c50cb10bdb88019e2e268d3c790c3033d17e73e8e47242fec23ea948aba87b4ad9ef2102b1ef05ecaeb493b555b4d93033a357a2b5e0b86d6f9e98df1c6f235fdc4d4bb8aa18066a8cf9b1ca95279c53a0273fa8f7c5d732a98a44bf3f543b04fc225c4174ed021bad018cd6f2b21880fbc76c728fda1f22540acc6cb34710e2ee9ae1adec8f008f977cf97148cc7360347162ed143c85d0a01784abd91648fd898d56eed0a801691ed09ddc567f756083264f7cd0916f3ee4f0dee028eee136d908f3f88ff9012de4ad5fef1ce25b7f732b71b5043ec29579c584896cf83a1123f6c214626f01527bd7deed9f6be2bc3e252c93f753384078770810bf8a3465d489acdb740d05387e77986be5117d9d10a01b1a9056da97b4c6aec8100ff5732b5b49b66fb807109032007dc5082efa76d25e33c28b8cbdd4775cd320b5a20d253c459406c00792b6fd196c6452926ed0bef157aef83902e14961435ad8f4f2938b374b4dc60710eb9c11902cbcf0355f8dd6aec55b343d8c8a9531e98a88c370d8a6370562003a0dd2ca26571e50327a29316df9d18aa24c258e91b0bed64190a2aef1e75d07a283ed1ceb9991c805b0671db457043b96f82f973a0501f17fa8fd21ee979d01de7a7f4f10351b4d3a13018c6628cf0a3fb08f2e0b3cd86900f670c03056a105dc078bf48477d3ca9d693ccb9d41998250cdba6f77c04b96d175c08c9a18b303c23643fc3027294cd28f352628cb823ba05f6bde86d6631554703ae1ba31420231ba1253517585edbbe7d7ea2814e43b1483cbc760111cee5151e8c6d5c3ab02d7d5d57b909e0e6445d10d038ab253a19fa22c27a2316a8f2f84799ead8e0b03ccd82316ed764145e8013b64d4cf18063868d049df8765ffbde8a14b82c065012ff1ec449b1cf6fe0dbeca0bf28813518191dc4ec7d198cf24d06bd818fc6901f2443a978e28baba3bf0cd612cec3ebf40f11a6b59432564ef66c3f75350d703d91eb93208c2488bdc1e5e58837b85ba5f0acea9c51307bf8087ec39dc29c9070f3168982cba0e463f97c5cdd144942f84b51547a195cc3ab93bc3152bda6502a7f18b2fa3842a88a392ead539609eb15904549fa8387e0342286960be828304c8ef4cecd6b0a4f84cc5a838c57c2dcd8efb40a7577292e403c773da8da1ae04b66aa1fb984cfbdc22fb407f6ba1a1aa04397108137882d328b8e813b38f210494a3d5d22e9b7d92460d9e56ad14784abe953d76d855512483ec27ecd7826102b366a0f79f55d0a09dbefb7b58935070f88a16066a2bde4254231a133144420181e427d8de58212687d5cc23aaa63da783e98d8c5f0355da0daf362ed9493100f35916918a2f45d4a3beb6acf49c9e5022fd121a0e6495950ce8d09c33bfab02a19b50dc8954769b12b3bcbf22e078a6bb95a8bea0483c3f92f9b87d385d3702263fcbfbddcf7b69f9c1ad3d410dd852e49af85ae36e37298587e049dc253103bdf1e1a26b492aa1fff18c8e45d9ac4b2a1ac187d0ab35296e9e5a9fc5ce4c055fbd5da6979fbbafaec76cd450e7502c2ccc7d1edf18f52dd5805af52421d9007f5bcb8b6515ed8c3f749159dccc2315e51b737c0f5e5c902093a00f6f3f8102d85cb0dbdc981f60a756ca5231a32f3cb71fffcf47e37c2369379190ed630b0522e93b16960f3188ec84bc9399d07b8cc6bac737fa84b7e28cce8fac64937c057ee930d3e6435ce420a70c1f98dca69283d03a2d0704aa062bbdb053ab931b00b8006c00c5b0767a39d2233785216d200ed603f50620e06a759567205f63e401222f224929c4719c0557a420415be39b311ab1090c5dc34e9a364994ce200c03b45630f376293cf0943be0db5b666ca9b60ea08d45277809ec0dbcd071f8d50785804a6c59de1ec7866abcbfb417c07e10a35cdab8778c10279cb726fbb0760311e7a9dce8c317b57ce76baa8e55abe66ee4c777fcfad9d0ed6fdafcce34bf03232b9a3835d50db4127cb0c46d6aca74568d39c0b73715e60bc0410bd21732075cfa38a9b9b96e96f37ba9e82d43ca09fb0242535e7315670f4ec1009c0fe2065d0dc6055600fc80eef7cd414a01494f23b9ab6a7f71d0e3c4a7080605334100e21cd2151f2877ce4041218b7c5fc921511da63e20182241fdbe2fe9ec7bbe027c2bdf26a03b105c9f982f664090a77ef1d246e762d02e85c492cf5a2dff5301474339b412e151ab40d743972eaee7180d9db94bb555c3ad9d3336b8e2d75e0509be7c6bed61bc5f6d9e0d232df9dc1d9c2a0eda0f3031c6f2b7ccf1e4a80c03aa8e2b252b42987ca807e602c6e17b4f259153e6f23804bd6075a17a23613a01d77272c8ec725acb249d49ea0bb4e25333dacd0fd990cffb3f520094b391be06dd4cea22d99a47cd073ffd8290e52e90a9bbbf5d7111eeffb70d4ecb90d9a603009efde11f94b067989afb5c6737f3b66ccee33cdcaa1c7e61f5fa8c83158c06225d4fd1697f44948aa66923dfd4e6575d8242e438548cb563489f27492657016cc933d52f35ace30a0b5a22c035ab7a3bb04485fb07ec344dc013dd4a22d605385908394aff6857eca082d06b2d6d264585db96957bf9aba5c57443456c8f02ad39cd3b5730515366f0912ac0b45726c4cada064fddebfa2bdf042bafb611055f284d71e6774dcdda3674a49eec3b3e2a2b989c91677176f23d98c4245f1f02e8ea7b12585f0ddb10ddabe76eb50bb08e90751177f478fe193a634c29bad300c25ae7438870a79f54d5afd9cdb4f6bd79f4ac8c7e9a8283b745315d84333e00369239649e01f6e2009738ddc48a3fcd1b9a315d40d51720acc1f44832403a05884c814f87a39389435acd5201ac523d13118bc7cf57cc97f1880413aebd0f00d03e4c3ee662327ec617883e28186dc0273b0a5cffa216cd8e03838acee965008799becccfcd5b3a789d87d50a788fad21e7115565e25a01a2a13549e17b450292c74795c72ea1f32f75949dc31c0b185e603dbf91c64e7e0055e8e2f9f7ce043dbc8b8c809703b1a1ab4b7935cf422f2e0469ac4b5038aa18d085f143341907e8274a54bf251bffac4bb90dab4372033c018dea1103db64465b75819690480199af4aff5b908b39998010cc4c3a89c97c1a008dba3f3e16037d51d256f94900ce11d4dd1c95ba129e406136fcb8cb1840a56da4dcde163e2d6ddf627c000805d2d056636ba5673e63d7d497518c5a087de2b769c76ddc03af5391d9a5f513039420338d9a14025bb0c78f761ba44b1f46af4c8699c8766568b370a59f475004c218358f198ebec8e0c2b7afd27457830ecc810d85aa6eff82c59aac2ddfa60662172de6044872f3a3257694611455c1fa2671acc7d197a3832e65066a832604d98669e176047251dcda905f5f0b9e1c24b8f7132db12fb97fb1c94691b73407272e7fc04dfc7e3fcc175f8f87ab3ac46e39dc7ed9a1b6f19d81706d288bc0079c3e34d7e1963f8fcd640a0913a8906e49a906d4bd5fdc069def80553db17404a6ea1d843bdbb8627b765e0757a6280c56230876d6c3b6e07abcca8e5e99d404c74698b3f258d31c88f3c8c59c5b7f04d89afef7b306fb5584011865fef0f7058d14e4869bf950e531f09eb315f00b8ba5743e9f87537a858d25d0b3ff725100f247fbc915b42a74d43cc72d680221328569bf0eb245f06f300b81d5be7c0905398686ff6f5daac5d59a4be52145ccd18ebf5106084da779414266a7c4651e04fdca33bdf9cd872debea44590423da5ab17a269f60c1a0654651dc4cf219f80633a0f3c50b70f37f817fb550ca76a0d6d8718e22738f3b264221d3bc8060d400b2f0fd7080118acd37cc95973282ab84a744ac1e0b7f18b66bd697147f1b26027576365514a8dd9d3f7cef9ddcec9a6074804e9b9a370aa443f5076a175955020ff2dd127970faca1c88b336df32ff29d101704030bb8a32bb28654324e18201f0ad5c8408e5e8599cdd62f82de63c40d06f130559d32519e2f2674d81a1a40547da50d39beae04128d331fa345418d6338d0185427b6e425c35d1a27558af06e67f8c29c861a523b3fd08d9685bb69d58bb26efc678c6ad8adad83e2be6ad06270f86c40d48aa87e0f70f4f9b9f66d65c16831208a5413ac1bcf53170d28005944f8a7919dec9da2d097b8810f765e8f26f6242712b39539c49d0226e603a037e18900851f37a8e65c7bb455b2697b6af64ee065e26a50e71dc283ca2bad805aafacc80448845318c5954750529115f8f6fb51e8376d43c2b4ef4ef676f79064174f25844d28a2da28979e7038cb75ffe5bfb712345a3f739a85188f744ed037ee96eb6ca6c4a420150b0c5df6cfb63383adf9d23e392a9f16ff30e7ac9c003437526d2647b968f080822cdb9f208d11e60a120ab686a76a4ab3c7f61351301569c67ef37424e2715c2c0eee498073fa8144ffa66a211705a9fe95acd6a6707c7de593026b4c7fe4eb79ed43211efd23d339a7cb7407ce1aa1e58d5f7a063042ea56b3954c60775b4580f81a0fcb675a54be07dd41f5b039c5b42f6c86704044febef23f5a5e3c00946fff21811cd7ca4da068dd5bb65fecf51fa3856422a02ba25e467f22c39d87ebd6e686bb04ac78185f001e43d37542c0890d767dba906b69a206f648cae0ca3e2b3b088a6dbeb58c05f5c91b795feb3aa1db852984b03ba2a635da8c1c717366732027af1155808c2902b916aa86936926bda5a0578038b7aa8127494d73f3fabf7cf8be4e2b026687b7b680ec10e00dc94bf7272a0038ca28a1b67d8e82e01e67a2e72852cc3416f4b06749204188d9c80ffa81e860545c9d1615ce12e70ab1e0f8905d4f0e7971e7789b57790aa6aef5c680a5ceb0258029ad8626a630908b2a15d395dc1fedd9332d9c41504618c32a00e9dd1b404d75597e249df67752b52143c0beccd2e3645634b8414512da7210fbf32cc8f053a194429915fdd4b43a0286b57bdd13e242deae9a91daa84b1df75bfd9fb110555850262453be450741c4acd11218af02b231489e533bfe44e5875666f7b9800153a874ff8240e8b1237be300b0c8dc37ad0e2785e51f41202ac253ad7ff53009d56e0b4d56fd24f5c5d42ca6281ec97b76ea802d8759877dff2ab438a853a02f998685094d09b173f42e866e6548fe30ca7b8172274bd9909cc8818db70e905a7b8a3445ffd7eb8063165ff9ed58a4fb86056bdcd20c2513d34d19e540c6604a2fc3c5009159a3f9b87e26fe1b6a2837b132a3554615c5bfca0dbb58d9d1106a06d3ec324919000142d2ba2f7ebf676af310ae7d3755c4a970c914f1f985e055584b99ee434be5fe709147e6492eb6ad38b40b7c853522b3d14a4d0df6161055e97d9c7b497dc1e9b4ba7794832659040e0cb0f191a0e9978ffd2d9f815b4003a6a750c465c2710315a00bd2af8a0631d895be4771c709b40ef974f9b221602fd89b8d80e739be18c71f23450ef6dc3635a5d64b5385a747b451fcc8a83b7079ec3517759157c4251d1b965b4648e725046e547ce55b2874d7391740d074e00907379b75054aa6670a604b985c060f6ed3e94243a8b5605c8d7202457d0d900789635c32bd1f981723dbfaba20f767a30233af5f3e77b478ec1f70a37efd90578a8e97f543ac0da55dc2ea4d01fe8d94325cc5db7343f82ce43f4f816895303a7aae32b9f5d7430046bae36492d1f897a0d58b6722ed3ebe9999c9027c33e0411f1e63362667cace972e8218a0ff40b47244bfed9c8a307c041e535091add01a4799a4fe07a115adf38a8baa750e50f5c388510541720292d4a8e202a22f6026d007514cf2c1cb3524da956df19b0fef71c421f6620f5883efe0bfbbcc46407b6d6490071f5bee5f20978727f5c9983aad35f452fb736d81c74c317463d92011551b21d69e9f6702c8a92ba64d5ac1816b10a126ba50b14c3d289ad075bdb0309bdbad4c508cb7cb70455f0f1a6c2cbe9c7cc2d8cfcc5b569bda2e6c76d2b0196dd535af393c79740cb2b295b2e69d8323aab11faeb0fba117e6d7103652b04a090aaad69d9a2a4f33b76ca3c99b9ff455b78e7a3852fae70de592dced7a907243127783514377625f4282cba1abc228a3aad1585cbaf7f3845cb63b732b60631dd8e498811358c6ecac61b9036962afaa2919a395a34a0e2c65a36b203430616454c7e76f649cb0ffa062b26aec546bf6e1bf5c6fca93c36c747fbbe6cda03cbb9a639f34998d5b9b4bef8cfec0368ce29be1eb54183e682851486842f8e02e64735815eea49a484ecab5b1e7cae455b5105e57a437d581633af8ee7b29e07e0528724e7539bc9148ee6d95ef6921a79dbfbf0a40ed8a53f58e650e997fb0203a2e64fa648b7067a41bc8fb38c9aa4b10c592c6aca927d0e14ae1a0664e804d55e52612b3a3ffb44ff4d34bf0e2b56e7f29b0db31828f90fac3757d72c2a061fb2558e4a7309ccc3ba1a039cb8150e4ad7c68ac4064ced12e3b721dff3ad056c07d71b53614b461c3f97dfb2da10ad38ea64e736b2b00dfc5e03611e624305c38d93b8a64abc54730676825a556f9e4678342a14dd72016947c6eaa32dd006f209ce041986e29f1e524de9fe75f94e421c8d5d0d979ab5838943e8c16cd7050ddd6d7c2d4ca24ace244b31a27596e152cbe010eba6a5834312af3b5170c4051009706ba8494f34f337ce3362fd535956898af0bfc447f18fe4d00ac6b82306235b55b7b7057521265ca87e2d9b8d4e9359a73ff0349c424ee7eaf22ee84e077c083773333e1abc3eac0d2c7a00e09edea0dbe40da0502647fbf759db0aca007217af1ce27ace1e6ad4ce12a9b2be4f1e03fb948ed58e62ed62dafe3b0beb023d1b9b4431198b810d545dea204f03181be69b6a38e9e2abe50e03217bb95000969a8f667aa9730527e84dbf13aa322a6d08e45652f9e39fbb13c1a156bb4c036216b487aa3aad17f79d7a5fdbc06a25f2d828934bfb9c75ce3992f520fc14021d1d25d2c08d0914b2b16379e2327277f510ca6d468120bbed3afc92890243028389066bb2b578a806926cf8644bbfd179800d9feb4898c44218d30c35153707da84ca904d1f8a0abf58c5fe2aaefe508266965e42353ea37bbf7dc7349b14011201a9805d106426483539979857801354460d978b4297bae3185b746a9a2e0770eafaa517daef1c23041721f43045b22c237a7c25c824d8db80c5a7304da70642dbf9179ee26d0c512a9e94b3b3f08181e399c7f220b96e699aaad0ff20a603ff28390885fa5437fe21aa0530e58401c8a798926262632aeb57e6afb5d701006428e542928e3b89325c7260d96c7739150d35a81ccd996267341231517102074925cadd771eaafec1389a5712ef60fa0b7c59e2dfcca11bf10bc9727ef2a5016e10ca0342f7efd269bc12025f8129fe0eab4dfe3be1d25b4882af3df480700259ed82e5647e6df5b4c7901b372a7c495a059067f3fd2c63ec812d107cf1df046ec81ed139eb254d3bb5779a89bd42aca3e0cf87ecb1722e88c271fc432a950022ccce44d59c77850697b0bc20a87264d19e89246a7e36bb010f1c9a6951b805d656662a2835053e945e01b2187d1bd8ebb40d2236f0ea4dfffd940efac7e90488ec9cd4135c1a8caa89d38270dad848dd946e636bc501e3b02902777c3557032541e34038a8bbd1baf084ff40f9ba8f75becd99021dedd61de45960e6fdee01976a3e7df8da44e4ca75820f17f000069aa753037d5c9fbb814925ab740cee01458993a7c44e4a3d5eb6d150ea3dc9f28f492a2e474d4f1b9d0a63b5b654e0075826757a4ee4810b1486be7a40c0498ef8e18a26a080d61a95a7affb80f1530024123102236d5ae335c7bea448d8b8293a4f8acc0c43c43b8ea3c015b5c6c00769fb97d0812f25457e9a16859bd88a0c65e0230f8af7abc2d251535bee553906fe8f134b5ffcee18450d255f59d852286339d28df5615f53c6fa5ebf5e51ad02cfc0bfa0f7f270a4d383d35ad38141d9c027fc339c75f5cd49dd9368ffd7e705bdb7e30c91402fcf53409152ebc3f810b0a11adbd33c1c6556318cc4b616f4065cec369a8fe03aba01923526a7bf7c843e7ded749a0cf1fdd43dc63ccf1a7303fbba1e8a7f3b954752da3da9e948df40945a936fd47b0757ec53983dd69cf3040ae4c15ba99d0a51dd6b5d0e3f58ba6cd7ecac10ca714926a2f5cc14fb4c7d0496a1ac66e710ff3e25f6dc21dd6343d30a16e0e526e9c42e93370abd544b430546e7826b7ce0a8fe76d8981d30049a873ed82232a1790618836f50744c4b4704dd5100e071e6ce7a890077e96aea016196a14ea75984540b4f351285b5242300f40dc8910e069e7df51ad8fc11ec680a7866d38fe0c15075047d456426e1f702cf473196f6b5cfdce16a78d82f6b3aca8d1514f123cf294284768c1d1ea40104aa13ba3f3fe084fe34a7aafbd15dcd6991fc9591c692be29a2a8614eb6bc5400a61efd00d775409cb3a6e5278711ec7649780f0d5dd29504090d25f6b08a61000d59c8c046e0804c24d8258ffc73db387aa5736fc55f6f2b7c6f963518c61600f718d797db55e0493feda210cb415e4e7684bb291f8ff6946c6a069841d6c704049d2330f40e5686fc3da651a64a02ebdfa7b025ea53f696f763a498ddb5d30294c2793dab2153ac04d68260092a2cd03cf79ff00f135776e07d5b1096fc5d048acdba58a854fe23cfc70c2293abe644ffcbf9fae53dcd1565f473e00a2fd4040c8e412f8aee2fed19fbc88bcf05165bd6f7e192149a7dc1e9df0945c377c40006b843f30ebb55dbb69fce338d25429208856b77871e6a30641aea299a4e14068bd6674c2575eafbc20ffcd6b5cecd3bb63be593e5d8c99e01754271502ab3026eae9159308a9f3ea32f44420efd29eeec2e2018aeadebe52a4c538595dc2b014ff6f8041be821710b7b890ead6e6051aa1f71056e90d66cc0f2de9b8448920742c64f554454210cb6fe9d510e8750c8e67d5727fd1ce1c23f9a2e1efacd8502399b5a98bfad716654ed024a518897a6dd361293ff05fceefa64a9639bf43206f3b60ca5e212e403427bc5c3a690c5b281f72f8ae9b1e612f531ce686dd806011330016c640654ea1958e91c5fb62d1b071d233fe2426eaf4b013eca3138320388f4e94d803adfcddaf6fe69cce6f14f393f2f7f8d2fc2fbcfca5aac0418db053b652b41aa9003e1cb358a0afae93b062e76c2dac7ed7301fe70eb2afa74d40458fa17d3614855f8c8676d935506db39b7ff421c247a973d0714ae32c5ab9d049cf701daea8409de7f8c0371211ce03d04b727115a6e75365fa01767b84eea065f1285551f3e5a0adfca0b90ac083d10e76c1fcb5a674b93298827b47d1c7102e18806e3b6608a90074dbb2669206062586bb684c0d926c10947840e51507a038b7b9a862121b75073a2b0a7ad4d8ebda03dd0d1fc2adf2b8b7c8c701928080191473afeb8edf66a6f30b00a07efd6cdb4a8c8bb92f356fd3566d5fbf88320052d4cc3e61e6cbdb19b18d7ed134b3f00c2785d45361f3dd9ff349dc0a95fdd020567ccb55f4261fe4a9d89378eb8e4e872919570fa66806d22456f423984960708d3ef1e6dc64af7c0474d3cfc7a4bdc2cb1dc8872c97639d156405e4dd12603d66868fc898b32b4561843ed772ea925aec7f66d4d05c796f8d3193d5ed503065f0b0c4fb50f709d10ae3606da2a34340e24791255e7140357e90959fd9520009b4419d3638bd0da1c0d01918507e4d367e07ebd7d948ec0660bd1b6a8513903f8135f4a088dcde5357cc0550206713a4457bf631a86e82e2b124c2d0468cc00fe49d894efaecc880982c7b0a8f00270d4fe672c2c8e110860bd7a91b8ebc306b88834fc77a453f547302d3b3161aa0878fb708903fd22461505b485ebc1110799d27c3b80a91a0437a7661d06db8f2f669f8f70e58f696beeb0893853b8850651f1700d5f7e8990786e0cab1dd069d4211f44f8e42bb5244386f103f5f31b004dab1c66d8a11d971570ae0a021eb77343182d26aa3ff4819d266a9dd231ec04a7474995dfcbcc59f61fcb60a07475dc5b3caceabc675a57746035c175ade502195a459c87bd01931b81d232ecb655fa6a63b5f8b9b2485912894618301404071d16c1a9a32a7ede25c5d83e46915b94aaed6df80514ffd333952df41e2dc5008202f5cfd7afcb93efd3637a8d9065d73251bb822ad520f0ec97fef5f5164305fb5cf6ee55a37465acb1d85ecb09d38ba864398b9e7dfeeca550c8d33f795407bfce4ec2602a8dfb4e32467d2faa4ef210a03bf7a9ac90e3c2063a2d448e4003dabb3916666d6e5793066bcabbff106a6f11d2f1c66e0de6856763381bf7eb034160639c2dc4965040ed90207587703f4d80cdfa9fc8aeee66818bab78499907ee4ac08c27c6ee78e2db2408be3b541f6a9acd7aa9476285470dfc9dc421d7062694ace597cac35401fa28ac88ff93faa5aa91ae61cdfe45f462030afae9ef023da8f187bded995c77ba9be6d9b8098e8b5a21ed1312347d6189e384fc7ba701bff85c4b1ef808143b79c38cc524e327a221e0b154b68b387dfbcf216b6a960354551a712876d473184aaa08306085faad56a449a7cebb697a901a2696c6ac06d42006a10777ff57e17c67f85e08829770740522ad455a4ac075dddb6b80d4028c1881572b155e3b06d0c53fe7871ee910ef2e8e1404356233c7b9d8b105ba052b562fe67fbb5e052445ce7a06dda46ca9aa2a27107bee201204a77bb8fd5107604c5bb47865b4dbb2e674ee9d9721757c8b4e973a0defff11941ef2733e49008d7d600b920c9d0920d41edcbc8f345df6bcfa32c8a8d36718ce633f0c798901252e7ebe7f23e508829a8227579524a236790635f104e6bbe5e44248273ec907dece183d560951c7f34304d25e1bd924662b5c74a3e362c21a04144ff5ec4903973ac02323e7f9cd08ecb1413e351b1cde1869167e5b3b296c7182c456ba90077d9fae67f8e1719d0cd23552a170fa198a4726ae16bacf5fb5e12bb0cd2e340538ce5bf40ec6956425b651158cca5b9793f485123d1a514a5760ceef155cb603d3e631e4678fc4e2dd9e1de392785c0c414d5de0ff5a1a9b6474e95b3a33e907169a08f049ef95d1a1854df7e1d4117adfced654bc7562271f55c65a045a7c04799099110be25d5a838baa2f935b4fd6238c87b46fa660ba6c5530fe57099b0150068b790d6cfb25b190f4419cbdb790909e3a61a0e87eb0d5c9f2a5eccd77077665311c52144679f3bfbd91301e12b9a3e486196dc67753473afbaacbc34304477311dd2420ecd992ed679aff7464358a8cd2c282b070adc39b0d5d64731c0748a9bf573bcedc8bee9a318bbb5e43bb20d161e98995b4a3b73d89727f4ecb025fb8ddcb87b843a4502937339428c189687ac7b27b145efeffd29b2e69250b0517946e4a5253322fafa8cae854fe9320ebf04fde52d241fd96372b54bf31b707efc4c84bb3d15b794bfb4564048cec56b13c8c805f249d882903d5307cc45c016b01e9fe3d12f3f9cc912cd0b21b96e84adbd63641f7bd75ee4b0fcbebb8bf050beb1e5fc9d77cadfb48bfebea11f3ae744696bccac624f585603dd056a243068155df5b6dfac30f2d54c1f84741b1c353e8b7d50fb8cbe02930cdc5136c4505059f986954ebf06d806a590017a332e93da4b94ee232e647e3fd633aedc08204e717fb894b6934705df8a09d8ec86cf14c815e6449bd05d50eb6550960148802943d8ef471794d97c72086df04f2a00c8f394330cdb0ccd754914478418f8d04cecbde38773ad538eefe23d1f1ab72c915035cfa6026feeae717cba87aef77050f7028ff70edfe57febd9ae6637c524b7cde53e684e941b8efb674c3b88f910503df56554b0533404ab5baad28841d67e1cc39cf6348196840263fbddbb1d304ee94403ced91095c829cb4b4ccf81638fe8db27f9b7d878abab521a26613d302ecfde2d163ec6b189b40cbb2108fa0fc304bbb5457d59c3fc3597e10ebe32503abb5840399e6e6502716e40951251c93fc0fecf3acf2060d8038d8d08604da0498cee234e8ebaeb811ab857660203eef590d07e79e7ffb0b8c852bae78fbbb049d75de29e3c1d0694e61968830faf5b6e7be2d65ee4e96f9dea1f0e45f35e904ad448003d541ba94ce860215fe5d5c8c78e6089390e64bd71107990d6a73530558bfed518ef52e331fd2f3377bffe332dfd6c41614a09b2f97256fa469a00b06cf41ef9131b6c211349a8847608bb2b0cea0ad72ecc1c0306b7a9ab754c07205568296c6c0f0954647cae68306e13b8f0fe29c1503842ebca4f5da999c3cdc042f950af7a141d020dd2f10a91c9ea3a401f448913a52bcaf0c0758ea0273f70229d320986757f5f63c64eccf0cc21829d77254452877cced18e70da538830c05d0e676ff59df91e7b8318c8d309e2ffc7cc18d4c9be247bf765ef10db4e48303ee134a02edf34acf0ef502f034c768ce1b9a9e1e3495a69aaef34724ea835900f2a20bdaf690852d508598060821f6a5a7414eea1d7f1299ca240a748bd11307da8c73ff645e4b24a639709ce27e5b4385abc7d09599a514cd7c8d8a98dfb804f06bcee6719589537ff8a5007dd327d5cf558b1cc64051a0532d94c4fd873705df3591b2204abeffabcdbd01e9faeda31f279b3e412b2948a336309a85dbb405ed9a248eeeeaca6f45738e6d4bbc9e4ccd5b90277348f0aee24b65418d9f4800583040d395a3a952da6b1f8bbd8b435b1898c8ecc48a228a83a7437c8c56010320be35cb977a2ea4c2c71ad5e0c90945b4056aea39d988ca0b6d5e3103b3f602886a7199143b6e980afba294eef1ea2e97d6ee140d8e4b7d23c80232ec16bb0790199731e5035df1764e31a168b212c1920a30d7299252b899363a99e2d0f507be708b0300649e599cdf484e972c725aa8758db0f1744a5f4e9760fe5d7b9304a4e68d1f6e0093b5a37e73afc99760eff06654e535108695ae1b755d6be37001044830c13559bd951c993a474d6930418b2d2a51bc440c4b30acfdaadb68ff046b99aebfaad1d5ea8d8e997f46b6736e9fb938e08745163ef73e171157b0030134c819415d3dff2fef019b2aa5f085a03e593564029200a8f38450c01ae3bd0521075f0521bf550552422942554baf9995c534c3a1dcdc2080de07ea0aa80f079b57d1b413796102d8495b58f32960b617006e2122310e7a67fda01e85293100c4324ed84099073d09fae7071a21fff6856937802fec0718778d08b7d20bea06f7f1bb8bef064de277758b23f858e94cb62be7d08030247e80ae4bd8bc12a307a9f3fbee6460f922fe6d24c4d3eb37ceaf9cc9e0f9470108dd787565b8815103660a073e2834fc891750c7e68488bd6f5798fa345f3b401c01b70b7597ca7b0078922baf1fcf4552817b577691b54a3807c9a2157630fe9cc9967d2b4d948102ebf6e4e4138d916e94a8396ca32d2cdbe5c6f65c4bf0a8a6925f6a1ebe8ef703cb7feb8ab2e3a95dbcb5eba2e52ebcc423aef4be12015983d2edd10d442ec4073be5346922ef9365978ab1112eee00e66884758bbcb4ca256e30d11553abf500415a9438bb1eba182e8ff9f3a906c44fc12b99d03f5f71b81fbd54c9dd6d070037d1e95d107627a260c9eb6ab01fabeaacce6e1678a94cf9f48f617aea9d05012a46c523acfa74b12b6492a02d27c4c918ed65d9f18ac36d26444027a31c8d02672bf787b3891a1d8cf310579ba6f450fdb212c51858b282828c050ca6947705b733aad7b65c1ffbdd8b3491a28fe70d03693e413bc5267a3837a4629ee26705394fd64111f35c33e5d5fae8dec640bb4e8b5db82fbcbc02d7dff2356148dd032b4adff006c728c5ec160d7f2228aa4b24bf35422aae1317b0270c829ead1702214860290e757affc023d0ba18bb3f703e152cbb3abf7d791f012a5660bc5e0464dc0bd2b08a712919a3f5c9f46418f7eeb5f63b9113e8708c721b820c787203fe2ee9e166c008609ae2926e6dc5c28c05d97c1b8ad759e33f6c85bf98ff0403b26c02a555f04deebf757a69aec928263d511df331a72308dbe5df435823e8001215a472cabc7d9b61113e949b764821dc2ec7370fa6d72470169f841714cc06967c6170c98194203bb791ffe90906507107564d4d0106935dc821c02dcf020667d22e0f7cf0de21092cf19c00d0fdd4f9cc2bb48c4e2298e8c3934ce238090750a00d11720fe8b595cf56ed35c4c4915d683fcd06e16a44bc8d124867677705847cd3c09bdc596c6f175c2c80dedd29474c1f61f243569c37029f5f634e440084d5a96240d3ad974c1467132f14522c4beab53a152c6e073aef143aa8b36e03d451082f4b22cd0f27416d43920ebe8abe6697251b3c690992f3e4486f48f3008e92158316bb5521afab5e976423199368339003d58151d880af76a211054507cee5757ae37a1e94fec8eff4f01b9ee3770932e371b8987a0ec5f484f2044906ef8d5a5278769a20164eb74564d5a99bde03601d5ddf8bc7020e2ef7ae9b1400f6e653ec96efd4b45ecd321a009a3b334d51200d354af9f70801058b88f6a30002fe2d04c7c57b312f5c6057f2ebcff3ba4ec987f9c02b3b6268d1ab2e91040610a949e5fc0130766541c0140d4303c5227c4b79da877d460e673ec45ee486038e9813ac2c5b2013caf2e33d2e5f6175cd6513ac75ec09e7cd32bafa5448d604f02c79e06716e30c81f4e9699efd922562f70db87be2d5bc28299fb505662d07259843b1f0a92d3444489979ad6b81c2c54d720b29b8e9c165938e4ff8e64a0757c6f369ddfcd8ace3ad7c1897cfbeb20591154f97125417d2c184d94b03dd04a3918ff0b079be52818a2008dd5e2b88cc4e23c6e98764e1a86df542dca0be033d44771c70255301df28f3c6dc289c394a3d43235a05263e30ee34ac9201e2037b9cb10172c6c36e80cde84a4fce09a5c716091934240ec8fdf7d00d801222035ea3f529727478b8489e0cb2fdc54416d66842e9ad858ff35c86a4a9f8599a0715fc65f386daf43eb09e85d8a1628f70b1c0eca53e672f3665cdf4bec112db0228362304dd98ef40f52ab847a1d4b78f8a5b55d43e7de4277975cc6def55fc00a8cf7e0777ffbf3e3ff1f7a7b87f43d6497d56f5c3acc83b9e9bc0b83957e403bec23487fa36a4bee01ad51b094b5de13a89a4fd7453717a154d5d3d1fe0c0027989a5b55af19dfdae32052648e65688d3e3cbb514d922357756d4fb35e58306bc014e0508c9d31b0e5969a598db516f515efd12b8109170cff35e8b6fff0a048294119b159df9e3aabef9f4f429564e9214e10c3f0934fcc7440b2354b03c078ff6dd00f9e908e372f1419c4f121e562d678f0c44004b3a13329ce535ad4b067602d1ff05d915967f76b87395e7d3789e1947832dfebd5a03ce7c4845fb2001ba74a7d9f42de7d43b916f3f45546dc48bb15d88207e6eceb3c0d07e88458303219e2fa3cbfdbfafe44d17c56cd4d5f8862596df9894a403c75d7fffd4609e043f63ff8cdd087d9ecad00b2e809c55c1df78ae2eb047cd22384cf24ae447fa064e247d62ffb43d35265d64c32477e2218f77792b0b20e9e9cc4853cfde6fd507f95e3c320524ac6a6fe8968ccd97c990d5061ac29e60dea322934ac4a5dc050592f7573fef02ec6f9566e8d7b6d858bd724c8b0f6f85f9347e76b0fa88b78f06ba764119239a517eae410427c1cfa3d00d33fc6388a2366dbe8961ef38ad520667a20a040853cc7756e0f1d4716ca059fec069485834eae7f04afe8c95b2b6074c2ff8607361370806413e2c36a6d9befdbd9b29e06abc68c42f009405cc5602822b7021703c13169624e3b1a79b493e41dc40844617ce867ac72ce0256d2b058511965e5d4ffeaa67d995cb1c8db88f14349b1fef65f387436b9b9dd3cdcc014acc61da89a4381926398e855355007d48092a68cd94ed9a5bf53cfbe2fa0f07ff51cbbe7a2f1b443659747431b49de704758807f054831df7f0e5cc7093fe00b72ba5a4b028d579270c2b611b7f83b79ba1fe08fbfa5ddcb884aa272d969603ec9cab43693ffefdbd240cd8a9005763f5d9d2d35d113e3c994bdc3ad4a48904099f30919feabf4cc7516ae7c729fe29c3f76aaca074380a887f4ad9b6504b01ecaeae75baeb73b0199d20b43f9faa7710b6cf7f921a10f122b325a05a148904c4cfa5d09dc4d2c747576dffb0dd5a7430030ed7a2aaad0915339e32ef8db702b7aca3e7ac9b56849c5d29a27b45f569c85bbb671e5174471e4cc794bfc8cd00875e011078ced1589a2ddd64cf8fa860cef304250bf0d38125e8ca6bc01f77034198111489fecb72946ac875252d73399e74753b6f6f753d0ca31963144cba04527bb326b3ce6a114c005e422350ad7688f406df7f7154e7848ac12fb69358051e1cff3ba8afca698afdedf8205a2a81782cc4f8d4eca0085819373c5f476a01f3165f820964f7ade7a29f6245138baeee49543191e9c7b3960bcc544e20ef05fad1a0cb970deb5be6fc02f5ebd1014d52cd238192fcd3be3da080c896547904ac8f3cd6d07570324b6f08bd09e82c05fe2d9f94a800f7b3272ff831c6a8ad0024b985c990198c0e78acbe3fd571bd9157c45e8a93cf58a51e0521b374284001bb641bbc641f2d500dcd88d3654c0774afa76627488b41991fc43e1b2a1dd00624c9041f583d61fa92d36aab40027a03408a51ee058d8fd3ae3fdd228f817c06a3645c75147f88b18b99de661694a6c35eb59d4ab2a64a695e6bf6621ad79e01fd76431bcf41529813d00906fb27d6c425e9bc58c36c9e66f08035988c9d04076acb02b70724af1e1be7b66d43b56233a48118bb7fe50f4a4f96c2e3511d4a022ea06a187fa826818ddfa59373014906c0db33b61e921c6d539f7b1136ad1506b56b56f2ecde7d8e472d9d3fa7c6a8d92df8daffa5dd2cad12f3a0c8b0d2f505ca4cdcc8f90ddb8a26ff14922918e0a2359b2414d1ee331c2fe26892da02c907c5bc40daea33c361e0ca90506de9c8bfe5d766a51cd93b6d4d866ba0588fc40429cf60141e797d60af0839927fc15a2e8a559aba5d43b8d34206d7f8e4152c02784ff1180b47576b15d2de932ce59116cbedb5e6caf610505f07455ce356e7018902a04d1c929d9e60e17eb6eedfc8d9903334d57827c5df8adb624a5a6d2a057c201385ffb2043986f6b30f5498479e4ee26d42437f7022d873683a641ea500c8ca9702bcd2f9fd2419cb4ebc03e6dbf0f5de7ac61466f5e7c164930563eb009e036cab5b1374ec8f15c3f923cdd8774049d540a375faf838fb9d6177820803ac4cf81f838b99c2ff91afb237d4be5b20fb9544ce757f0b87d73bfbd5464a050143647d00e9a529018d4453397e5d48fb53d2224ea637e9ffdf06841e633d0665abc0d6159441bf42830ff66f75e243ee6a7d3c0a85eb7c7e3c5338d9327a05fc8ff26a437b11a6afa19ec2c331a26858bccd35c4ce9d0f5ef680c618f2ad068f4dcfa852b0f5fc3159e99592452de5cbdc25a5f14ae013b245a29c5e533000edca6285abf442c0c2d66b71d52b15c46b18ea249f507201bce66a439eea850489a90571f39b9f82a71067fbaa14b4ac2766ecbf3e3a5bfc5d763f2d784644029bbdd3a86634a31b66b75673d40fbefa451cc499cad280859e52129a2586be0702c8817b6544f9b8032c370daca1408e38f64054bc17bd0c3dc69600339e70036ec26a946fe578b6165ce8378321503c299797f6076824e293a6fedfbc0b8904f6da22303f3231fd1aba1e8a7ebfa451fab1941a15b5189e5bdb5a23ed172102cd9995ac1258ff737462494c295db8755d17af6e394735d0bf171fee30689d0095ab43aad6307efaa846cb73bc22a3fda74f28ad0fc367b3489efacb020b06011084815dfb865c267164e7d7e218080db2fc18eb44e2041719810c6e5a2c4b017e5c6ed989e91172cd97e43068f9e63a82121434ab4b07134e5d0281cb348303643cb3efa600c4f041409a8ca44a15879de0979b2ced71f3b0df4cf2b2013405d4b3b5405cce181e0c37d2c94b2fbe978c25c51fe1e111f3ed400f020035e1031ac5cb289e7f695cb511f73de83a8f6fbe983e76992ef838ff113be308353103b6df3b97417c64ea42b2b9ee03a4a7e03da31cc7297dce886e4d639114c0e30640f3e73d06c5a90c1dae091c4e98cb8a46f2602b295dc8e151a0953511845f0409bd36bf21dad0ba09cb4f3f5d1d816d70d260c30e2ed95da0d031f6237a53032af81c74b022ae87a499e959bbfc7c1a8ad95c8161e78ee6c31a0c726dc61a0670740bbe8f6312b962823379642dfdff86dd1ab6108cc64cc07e500a292af0072da936a2a37c6a0f261de963027528d9d924590fb5c7b7d5f4f9b93ae72bec049a6112a81e1bd8c3f27ac407fafc2829059d7e33aafba834a7aa805b07ba16070538a41df7c129abf4805c15f717138a660c83713d1428b19de2b651e27edc05dfe74c0a6f833f8e5607bc6ecbd5c53c5d717c5c8b949f26b2955f546252c00358c7b39bf05d0e7b63d5e171c6bf74713c9cb8c90ff8b7e693fd031b1d97c307af8d67ea4a754421b82854cc44fb6a5b2a55acc15adc1f1425c73edf2476310497815a8f9f076897002cf3b2a270f9232c350bc44b1dd6b67e6c64b152745f07e25451174cdb8ff2df880b84f8c0a4824cb24e63f186a0757f0b81b53172b7036b8c5eb31af96368bf54c23d8428d27319457d96d619d3f19214f61ad85a2105c69b6308143e04bc1ee6e1cd545775f487617ea825b96f0a9dfdb269e50b7e01a93d467b7d59001d27020559e2380df6e87e9f541ead6fa4541f8bbd2ffdaa036f4bad17ecf1257b621938cbac131c47fda8934e6e7d939d7c32999d6c124104974e1c384d3c4f13eeaf7234c879328e737350d24b743e14bfc690847691cd03483eee0a7d9b2ef29658723db772fbb2003c6b216951f598507a87859bee380355a2fd6b45bcb61ba51026e8233762297cf85f200c20adec78cf81db874de4029026235af30ee18581fe62e8a767d68c4dc38379141b2fe3b59bd00f50100001266239033f3cf807112978c9417dda5307907256d825107c09e6d9eb6b9a2105220095133d80f9ef0e288816efa2cef273ec00f705e8866bb5e306da88c213023d76660600b244a17edc0c6761892632bb36eb5b9617597f77921958f4b42d023798ab2ab976627058bb668b8454b7fc0a6511e17782b4d99a3dc7976cdcbb052f0b540ab85bd642d4bad90fc4fe5652156ddfa06211247640278e469e05b406bddb51822faa58ed98e5a95de1e9c243cb1e027dbd0483fc7cbcba03443b5c06f6a66be425847570037fb8bc4f751209f5c178d5a4f9fbc34581ba387fda5d0055495373834f78df8be73acf85b7a5a20f1a1cdc5db73c4476b0bb90b312ca07fbcbdf4b0df9401fb8102ffe4736b333fd2a2334e9c06151c06dd07ee80eb900ef212d48e6a0e4654c5951b9804787651984eeb05c6055128f0a6d7da35a2e06498bdc61132198509b31a38260c362f300406309f0d2095097e85afed068160484133ac24c682e19b694cb31cda986418ebf46da0ed9a7780ba310cceba8240258ab862714f3fdb12d2d55bc13144cf2e77e5b36229dd7c9a1bdc2b72898570587e6ee9a61bb7ca1a39f5387bbf670cee96ca8b9386ba4e343e5264cd1db3200ff0fb19aef4f82bda3a047161afa1b1dc9cdcf9f29f93cb666c65882bef10105ede360768bf26b206c224d47a7d3cee24f3e6711d86d83e3586b1e50465403007640430206f75bbb3a1c4c93cecf4a35b1a6517b7dbe08d3de828377bbe2b504db279411373f21002d4b26d3c6811f60a73aa2d52d2c2c4c117dab993bd94300c193495e01d67b59fb785aadeefae26aaf511d2e81a64d11d3e26542c87ff20325a0ac41be0d79a22612323f5fa421c7cb858cea1b0e6b6a1adf9791ba221c070ef6b0e0cfea595758c5e5b2cc6390eecec6812e1c424071dddb6b7b793c71042296d23cd0db01dc9216ece48194217f72b3bfce33c4fd69546c6c9e76ae5201e9c07a71a92de85bcd25fd37ffe2c80a43819c8150a82a8a668024ad78342106e7389e4d3bacd5c60cb5c3cc905ee09a9f135f32d89ebb98ce906d2792bd7a07764dd5c10d2ad36e3699503648bb8fedad26a14c0310ddc1841e581aadb76902d2474b4337d2c37e9eb682738a9a35c9b1fb732a8c5a5a1f191815d4a8fe9704fbfe4d98977a5e2106e27cae4cb74134adf73820b5ab1eb54e0af934beafd5074544285f8d28cb64b90046ed59d0ddb01496928694bbc3bad5052bd15f858f056bbb2fe0d8ebd0077bda17b1130e1a2dc1ec26d4e1f3607aaec2243c274fee051ca488daf44d3bf03396476df2a7c2ceb60deed8c750d26264aea4ae9a35970473333bfd21b39b561dbcfe7f49c5aa75c77242280a6e70f77a4b1c7ac0046303c3a25334d2609f1dc8428455c07c64da9627329c25070490f221cc7ad1a6fe03046793e8097b6f8944f9ed0b23de7725a3ba5411f383b94c0f3b556bc459ad037b424d66c523a0a0c5ca6553ecd15a782dab1e5ea85598acc7e7aa18455c8401621f0bfb5074947e52e884f86fd17fac3774e0b9d61d6abb2151c19d314a1600995312866e233ae288093018288a451a8033eea9e4b0e3e13050c7624ef349053418b1c21856818bb672b22b5ab7fba46f3e92ad8e149c40eed80b604980d4078090ddaef60421d688b5f3dfb030b265905266c4e133e29fec946be955c948031691427d18a5293233f9923bd4a0b978ef3aed997018d2b4c66876197f351205c17da8d273e250764f9f5e55045d2bfd5cb1c34a09b54fbb5c424dd3fa918e06a6246c3aa25633ccddc7a359e7c036250c5365806a8b5bd7fda8c2a7615a4607102d7efbc80aeb4cce00f3afd9a898b8124bbe36fb5cc71676fdc0cb57d6ea0485a64a80ea5446871c5234d06e8890a7673ecfccf891cbf5623ef10bffbe7300a1b026f073e79b23738b4953527d2553de23f8bda68376747f97bc96e2cddd00fc4525f55c7cad744888fad79d57e1e3560c4b9346671fb9cf71f06a8bf36b020128a24fc835c85e511424fb46c371d0562816d603c0a13d154400ef50c6bd0482f78c5ea58f22fef92bf075b54ac87d73ebcf4e6f53221e60bc972c08c4f10603e15fc80e5d36a08ca46cb046e7ca5162a4e1be23ff614720a91e87d410d10312c5e3b0f22735216dd131ca9709a3262aa56c404bfdd5f11c157737f9b0ca07826eb6ed944639154a32738d3a00bdb78c865f082608336fb9023de6fd8dcf05cc7f6ef30243bfc3dccc2ab5cbb46d708c2c4d9041fb907a2a061b8d54423007c8c9cd79b57b8f82dc7e6dd8ec8bb8bde0379fff21bdac8b85c4d3989f172f000baa36149b7c55aa316973a2e144db5e40549406bef55063ad26eeca43051d02f2ea662f4b528dc3b45117ae77066b4c955798f361dd58f4e2da3f4ee96ef90321aa7f192ed846143ba5c213ada9137ad0d09f9422ffb6afacb169d38e5eb50571fd4e89dfeef4c42dac9459e8ee7d3ab1e48e835e19116f08e6d3a559d0c50526201f1670c9f88d10bb11ead2586f8b7c78159a32c1fef35b292173f59e6802c3363dfdde7faaf07168d41a57a3d344ae1664a42be374fa0ce80fa0a77d5406c8accdcbf4a54eb105f2926ec84e85bb9f8acf049527b8fc240b28cadc45140139ccf3541f88eeb56a20191e245fffe2d91572d2eda05aed13fd4ed6c3cf5807fecbe73361440f8b6bba0754eb1f68c1d0f841f95a5acbec45180ab5ab81c50499ca0de38698045237a5ed04d40d8640af2e85b187b824ee59fce6fe933b1406dea7ca69b28d5c09e40255c8a28b628ada481c53740c08e4a22d7e0e007ce4068c2d4b1ee948da6d67cf3c31cf9d5ed8b6235f88d5a1768d6909283d2406150699fb53bdcc48a71cf6d7026837081b55c1afc60aa7e54a0b336d167702150b001302a6ff85853115942d7f322d10ef96f55ca80690a7535229269ae998773f02104c19e3932c24a95959b25828cb571118231f3b5d40bdbb3c7401f42483bd0720a3f85314d1a8aa308987210e30be3229e7b9fab7b99c13406b64b44b6c9203eb88c38d04bf8213290f07ce7a25e2ded82d0c410958d2a6e22497f6d27f1b07803b483bfd2e52fddbd8534d4c619532450b7ba45aedc46a0125e5e89645cd013498ff1367d171a76d681038941d625efeaddf3ba7fd38298562cd3a7e81f501638d2031a928afcc862dba418f591ff8d8534dae7fbb2b3d5efb45822b6f7800d954d117fc09bbfab80618e437eeaf199e3250fdec0d942351bc5bca4e8d4505e26ffa71eac36fb6cb51db3f39661ea4e30f8299f84e2b5ae1707b9255466c02a4dbe6eb9f8aa600c0e34d1f1bec3e268b4cb9601b2efc13182c6280374a0e045bf8906eb12afe56e70154020e3b32757b8862bb82e34bf38d45e3128d754604a1ddfb6be50c3076effe70bcd1b27d80aae8a709fff4a9a7a0c9e630b0cc71027691e4afcc080545302de9f3b5c4347d4bb13f4ad961ca11a89607bc92a6ed0738f99b2a0f45348f6d7d48515e6ce4ca647d6b7ed518e8bb497a672db5b50a064d5841f3b5393fd706054080e81f677e89a5762e4326e1085c734e87fcb05406f92dd00d180a10d244743f2b5c681f6b1edfe22e12e408dec5d65e1ff29b7a045ba68d028f45596e65acd3131ca28c2430168ebe935e2e962616cde89ec2870402efcbcd04b72d61a090b2abfd3e6a3e802e220a35b216f02a88b3d3ae34b1029395473c9d5ffbb7053bd1a6fd17646cc470728fcb6215a235eeafde63ddfa05750bd1554b8b98ad0066649ffa3e62052704edee313b56e43a7c5a03501a2d0069f9a5c2b835dc110fb552d72e0cb3fb52aa479346f37428deb2b982cf3b09003541be8ceebdc3c262fd002a58da599469e4acab16e4f3bcb9e69e8380ffb7044dad3f25e25fbf4945941aea6de8df38e2dbd248c04f4e9eb3105d3602396005834721a8f8c5f1a84003e4544953e90e0ef975c9aeff9c8797d1ef6d03756806de8c229afa422a8f704d3bad162defe2aa21ecda9c1e53e366133d581e9e8c00819f8e89165526057626db5a91a3bcdddead0ee9838c558094aed0d8bbd79c07a9a2a9077f64c9404cc98efff759d6ff2ffc95974dfc892f4e64308709437b0540196341f6c7f19059f0e9acf010060db16614212aea8538cd78fb89c4bddf03257eaae313e2a30679b88bdb431f9696ab20ab08877c48cc4a9fecf44888cf04e1f2416edd4c9c460e2099d16cc2eeca8d6614dc2d4d437445b4b02218408c06342c05238cab5cbde959919cbbb8ab63c6e0082df72dbb5484007418dfee8600dd65f8e0ef977e09da9a8ad85201e75bcc90b7f10dad644d892927a9948e40040c8911e1f8aecc088b7c42e03ad7089c1c765eb509f3749a7180b1af099020062b923073b05d3bf2389163179f93fe3606bc4a00479847b12ffe359dcb6fd1040fab229b9310e41a3bd6de6256ca557818ef6d9397edc6e715834742bcb41a05d6859e77ae0a8c0214b3f35cb576453e9eb0b72145a8557bfa7bfa9e4e0daa03dc8ad998bb9483733ee985d95b14ead0037bb2eb93aaf3225b3e49f9f78736011e7423db04fcf4f2bbb5d70071bc4a545896533f3080bbbca3b4c2d7eb29d705eeba241df6b7cc4dfea006eca8b7565de0bac09d0fe3ec4040a8f611c54b4c0401260cbecd23cd14e395b360557bb5d1d7cbc43fc4f3af513488425bd4409a067ebfcd283da71a87ee9e1bef390a6d508ae21270913ba1bb57856619f750540234a093f753fb38e957e6229c0aadf46852578600e044db1f7501b2fe5db4d402c05a19bb2bc7b1602d56cf8bc443180ccc6d68e13e2d8547cab305fee80394028c9c0a00b11dbd9f6292b8a7410ada4d9459ecb0e147b85e0dc1c36f1a067903995ffb4140e35a5986ed6de87ffbb077d0724b860a48acee54daa4001b052201380ce7ef40bd686452b7ae50d52d4706a4403f9758708a85d9054f51a1d2fe04bc58aacac0b28a9a516ea75b8d078088122b9f3eb9b2145541ff2a526ec1a8034fd4ed91a4c0e310062397bfe03f926aa42aa7f4363a08cffc635ceed8096e06d40c1e37cb59360552bf6841bd5e848ecf63e5c671f803e038937b42b0693e054b3d6fbd7ff7d550b58b5ab82019124bad96aad27b9909e865c36e68b1fed3070857eb080b8a98fd8fa54c0d49cb5c614af0a6a9cdacc4bccd4bd44fccb06a012575d8276bc324159e5025e46a69c5d96c70958ab4a7546739b43ba85dc874053f6bea7d84d361f6d3cfb324dd22a91a303d2547a76320cbf99bcfef4085fc054bf37dcce258a1c349cb16c92f33c61971127944fa475f2b9233bdfa26abac04af5c91f56fdcbe1b2e29a50090007c64c8867eff8af9ad1412030bb2063b4d05186b8ed525ca2058ab2ad445d08cc993e85e0c2e35772ead09a76ee2ed871d06235dfb2e1c0acf85e1a663025b3034ec49fc908c9d0656bf56aceae032a13406485e2debbda14a5a77415dbc8f779be07da67f16d30317bb328013cb64ed3100305ccc93dde8766efbafae94fae6ce7edc6fe27d73681cadd70c5991c1bd6e021871e8e4cf6ae5033cbcf8ee3f7135944a926760267b4db4afef3459edd97806875899db04e7c51e93628d06a515eddb9969d4f7e5d18e25c37a9a3a0fa98f02ae13d108b03ec4306260a3f7e78e73c681e0c163832f4cc4b749455a72567d07dce52d8e98dab06cd4770f394ecfc478f569205f126ab5e662cef09af5a041040c3069530b6c076649440fc534c39666dae138255101599b12e19b2821640c01b08eda70f39649be772e8f974aa74d0140cd66d223a23be2759afe818a589302094dd5cbbaab5759941853bd2e93b1bbaf194350c7b63e0caa5d4190663a120411fd759825becc36bab93186529a35f81c11855114bee2ca7fd5804877788d023b6ed27a470ba5874dfaa3b84a9c2b5838ca2cc5a06c64803c996e54491740053c9d7920b790e9e57758d5a0d49926cdb2b2e8bee71a6bbb9758e384f8a5da07d84053ffc5ffc4d79340728c25c014fbb5d4e34656b66c07b89e62fd339a1b07ffac773294b9dccaa59cd4ff21e659726a5bb20af295159797bdf19bc96edb013b1e81c66a990f22b0146db5f13c461a95b8daf8b9452cd92b1b021df0053407fc474a08c443d5211675204ac31ca981f3477a4bee16d5ea6f14c6b2b41abb013633da2dba3d04f90dce098975aba1188e3b4672358db5be0ac375b39f31f300806b83d1046f84062a9008a3a7f598754db9fd61f0c7f4b4940c6d6bd0a5af041cc191cd4175f69f968eeb619092cf959416dccc33cfebbcac635b3781e05900148f7d493b16bf43aa9f0016f594015bd0195f1893754001244bf1137c99bf046dfe78e3c8a59d3f65b8b9831b320dcc8b42c745842af8660245b9e9f81d9007526b3d90bdefd9bfefef05fa0ad4b5ec19c0648e0790010d0b8f4e1bf6968d07816ce6061fd3246e77160452751fb6757ef1d32259f2a53adea098dfcba4d605616866d399b0ae5dc796b57b65d844249bfeba8f6979ea4c730e4708f97ca407826a5b23ebe37c9ecde4bc28119bbcae88574c394b81d4cebdc2471b60e28f0790684783d844c76d1ef8e4550bd6e39d381757d81765266d36bc60017ca31c023a2851552b539a80ff6a47bdb74642763cefebb9bdf7d43941f83d8681a20e079ce7bcd56756005efa45f97a6f469f33927e97c3ac7f126ae9c5eb08549305046fa49c3dc81f6207941dfd33f56db223e88923f5f503d6f5c0f3b5329811b6037071f6949f3dd49cb9f873b7063b0271931bd8bc6bf4d3522883ae012b57f807648c0e9dde6c3ff8c21104a184bdf3a3d73eb94c70bcb02d72cee4352d32f3000a930288be6e7c063b485bcea93afd4e82be0edb6a4988814fc43a43b250ea03f0650a1290c65ddf99c84e7bb46fd9df997bf5b518b3aeb7a5e4faa2c0e117015b7b0aebb2cc45ae66a1e81d374d5a15b6ec9d20946be6da30dc0d8cfe8fd105c62e440c1a654b87543d0e3d02ffcf16130c4fdcae6ff4a7671ab6e7a03e060229d7a4d3feb5039908dc4638e4fe9286acdbb126957f3f7b52ed113bb6149406b78731493271ddb98eb42fd380d389ac689f249c9efb1778b7aa358fad418807a1b3cdd482d4350be1cb0c005c60ae8a3ce7e55b9b81a4a7102e8671e80bc7061ae50f194d1acb0b3334deab655ce7dfd47d97483e4e8b542862e610981a82067fa16cdb8a6ba2396aaaa7b959680dd0d8d9e6d37a2aad3a4f65be4c1a67f307dab0657539ee3b8d21e9a0de156c6cf29b9de6ea980c9217808a8ffaa9997701f2339801ac36ae00b304ff7346f54822fd8db4243b00503370e0404c576b5703f29dd0d17359a0da3e5154b16e40485236854ca2664badec3644ea14ec7e39010bc6009b15194feb7fccfc8bc7c1b455863c151d58518655ebf3e88ce6df360365feecb94ddf6f20b423a66f8900c054f09904324028044ce0bb718e874d4b026cde4f2a1e9c551441f222f7f9eb57be082f5919203a05a11347f2df0bb208030ad97f0528b9f36da8947b55d7dcea824e9fac994c0d06b4e8dbeec29bf0b8013c26e148d9b2fd05c3cfce6029971f9fa2f95e97aaa2221ee4d28b175c00b300e145cd5783e41bab3ef1c2bf262c68b589488d4cd544c9999a41257de7bd6c01bb68d48f9916307276ee8f6d03b69dcd5f9135ba917e7e3cc238e518488bb006c38c2a1f2f7f8ba60b14e95e4e9b5a925fe33123a40c1fd9d573fde143eca50380bf81c27deb172f67cfaff2bae612239a37b6595ac6daf582e4de0485c5eb055837777f3a79fb13ccdd23124df396a88f6667bf749b9d2c4d6478f94b2bc00123d61aec97e8e0cb3e8f757b65e35f81d3a0af64550e047f53e066dded5696023f9f3210a89ad21c0adff773515b48e543c0c5447bb23d152d248513be6928021afe4ac83a64f29a29c187eb1d63d9aae9b730ecacfdd8266a4ce4ccff16d7014ce0edf4aa65195006e2cd05c486a702aef4dd7df1d7f41e430904f74702e005138190ea5062808c0cad3a935580e7cf5d388b820237034862429a101dd89d04d47bcaf141ada772d84910d81477212ffe0a9f4cea88532cadc3f4158de1e4038be6ecdff3f3cccb14fbd8d20726b5523ea3339e75228fc8574d6e5296adfa01ce69e1a5fd4dc77337ca7154b2c00d625ceaa018524ffaf4d81055cc8f4edc05cf93fb28963986cc463c4b262df77cb969244806ac00177179496408a4a98a02b342877acb55681191260a8b1162e75ec923572573261f1007f7442d99007202b328e5f072de64f41fe2e60eb7ae50235300588c281b6f55e396caae2f9cd201db95ce83a6b4fbf697b306c7fbf5fedbbd9b10c4d16ef457c57c0c136d382d07876fe2631ca9442e708f11d5f6490e3ba0ea796c6329e260e5d6daae3d1ea503a06022497fdb40ea1de8019032c48b4018b79e58e76fa0fa9b41ab7efa161305f1bccb353f0a52a8642f8f44abedd1f817ea6622c38dba1c0be7334743d08502b423a34d13786463cdb4a17d4ff3e070e1ad4660b9916e6f64a6f1e900168f060d90587a6119a6f9faece348a707ffecaa9eb89dfae463e0d6716786d7dd8305511d0bdc3e856da21b982b8a25eed151941194954152d79ff7e944a0f476ec05ae3f30208a0d86a8c8a5584f4aab6da88eced4bb9ec24175cb84d56aaf6d1d0370ae64f67cf9491c17e3ca49bcf71c75a1ca73c3bb15f7472ab8321027f2e407b8353625293cdd63fbc6d66db7e8ad5c1450f118ad057ef34c163cd2291d3b0149c7a4c358562b807c3169ffdd1ca1a9483c4d64b50eea1864a95a4c2691c7039dbf376da595fa014b60267d1c02711d4ffc0124c4b07c9d16bd02a7e15ea503537a6dc2984250df1e2e70eab5adb3ad668df552abc28efa5a76c379daec33014effb1966e3801e32d45823b010223db5d7860b580207344b30e70e8a2eae206a1eed7d725adc65cf42d3702beb13aaffa2f5245d33237489e1d2c17a3956d02e772fc5db520c2b5396abfde71fda981566db760b01dbde9244f0f6cf091e0008898f6550b16a79f08fa38f9ecd1cd8cacfcb584d03c0a46e1770d2ae6c77403f07de66744e5fb9b163883a1010fdf237bb7acdf448a2a883fbab632514738065682770961f963312cb0f2822ebcf7ef515d37bf13f320b376f4c2018b8602056b1693c7966f4ede1ba1057a68d5e81753f6e33f7148a683251aeb95ffb19b013fb685ef4bb9b57fe3beb04e255945f1370b10f02f50ced1c643fac968678b00f44d194fcafcac74b30fd96a37ca8348b2d3646077cf11019c66652f123a3803bb9a7630dd12e2c54ade5fe1d951dc7297827d42a711fa9d2a5976b0cd127b05a896ba69795ea9d7f691581b056b7a152d6dea7eb416aa358aa9bff838af3506a49a28b56d918733b4089743f06149a7e1b264e46eff60bcdbd9ab32ccac8405b293e318755f0cc8c371a948af54305ceda57fb7228a9f02adbe13028d360c07a640638272a52265d493be304b34039c614e779d2dc475344b68154d120de4055cf25bbda35222de0956cbb1ad5baa2022d7be2b0986297e7779263c65bb2803a25a2857a75d1084872f6a026118186770c9d0c753bfc5a70c99b375d349eb0017904616ed3c95d34b37ab36c11c8dedb631c13f75a85dea3c957a079109130036b5de6dda484512f096f12573a611f20fc9d77dcfab40d13fd8796e87f593025c435e8f29b49904aa943b585c00811cfa790ef691667e6b0fa43405e2aa85011f07b0d2eb7c32e5499022f73f90ea5ee2ec2cb48b8e0b9f18ed7b9e3dc48e027137e065ed60e2c68ff395b7da1756f002330372a303451b9b9401cce3b122027947e48b77f6bb3cd510df24aae1f2b42b6ad2207b7295b8fdc5d17fb7f7cd04eb91f27d9689bdf502368675045e774436bbd2a45a9aed83ca974da857b5c9066d99ee85f4df6ebdc5c724b43697bac37ce5375395d530313e66798a36ee2c056a9d72ceb4d349caac5ed903d66ac579bf1b709971d2540723032eeb3b5fbe06f8207eb7d6f14ea378b28dcb32cf531bde01b174e4c5050a105966b40e59e903de0f4ae250588f10a765edfd52efb0dc553a19c9ba40eaa208cb705a4f3cbd034287282c3450a1112cb8bf0b45596a013978747d384dab425319cf9102e0c6009e7321c1c70a9e8db331b7ed93f54fa7bb2a657f3b63f5a3abc2791ca2b5ba06d9d3f9d43ec642cfe9dc5a768f6329d6ccd87e221d9593383623733e0adfea04145b7bca539e760840081b87586f35ffcb8715f02a174035541d88383eec3d02d7c2fbb37e129f9b27d0968fa55c54511e9411603270a9ddb16f178d82c4ea01a09fdb5b428528d515caa1fceb008ddd8b7381f5304e670b2cabd3b7f550e206a43106d5ab26e89ed7274296c6b991d97256cd22aa2f58114eb0e6ad9a790f0485a4bf9a8b4bfc42c7d1c266629aab859419faa46f37ef06fd72dccc684ee100c343f2c22ba7e6b8987191e2605a2378ccc2aba80a1e4eaa5c37044bd9c723035aeaf1cabbfcbd5aa9bb7c5aabadb715e76a301ce74318576235a6d33186d30173a34159a203786a8636f0cc7b9ed72440ea5b862cd6cf49fcb109417a38a507aa2371ad954007a35c92872e5c0bfb1e73bc69499fa4faac9fb897ace247bd053672326b6ce14a290daf8f54ccdddaf60e11611631d8f24617d917f954fc210467abfabcd1a8321db118c5c97ce9eef2bb225e4249921f3642b4bab758c6640650709a2a8fe2f371579a9983a593bfdce4193fa71ebb82cddd84007a024bdb01cb90ffee555e340d369b05a4414b39cbd2cfd4109b46d7a868a117b5b0b03501db2cf99fb26457418780613a13b610b6c9b6458200535723ad01f3767b4f39037d56fd8ea51282145747b0b0ca6a3a8345e6f851cda0ec7ffd4bc021b2f81f02dddd7d82812b484503c561aa348b80b2bc20fbbf3306e2eba4363b594f5f99002a92584d00a02dd5bdcfac8a2677fe00f5db5e1ad5baec3e5890996201ab39040606016e9af176773707a9587352c399b7b50f741d866ff61b1eb93bade43f0123d40df3270b15c98bc1733e05907993210e9f0b21a9bce06e3a225531a3c201a9623c53a9e6146d922ed5e3288ae1233b28f59cdce15e625eeea2c83cd4d1043abc9d041ef547fe7980b89d0c68ea0f6b9e57aa94fc060b1c9eeec389f559023e6c86e022d395b02684e01a4e6913ba9082b571ec4d57c6d3954762551410041ddbf42e3c6274c0783ae4788b69d3a424e0e4f4b6ac08aabdc49313ba38490649b9e3f78c8800824ea55cf219c9ef5e32586307feb4a4e16b1fdc1fb35e66044da6504078b34ab3e5fe376156a01877cbecbc61b1403c365f2b3d5d9f69b403565daf01d5e6473e85c3703699c479cb083341f47484d851fa1adf9044cd4c0216ffa871ff149ef0f9e79c0da6714cf1e742406ec4726ee86a64d10d27c0dd07a2789638a9e5c697f96629b0df9f6df5ba5a66313f1c8217b32f6d87052f1904e20972831b34478ab7e6c1cbecd41aa01f649307fd46af111d60d57fc724070777f0bf7b83dd5d8c84f645dc03f5ee432c3fd31ff3c929bc384d4841c911e40692417b44ca131f436a36f61a526d3c63c20b7d374e85fbaaaf52d3ce426c90064c65a1b57e3742e8ee69f8edcc7b8c84eae559bc2c39f35d3b1ef3c9eb4caa01a9c42cd3af9b6ccc5948fb1c9d723b773e74ebc8423c4bad8d465010f2ec12057d97af905a7909007ae6b62883aae5015f1fbbdbd0a7ffea23d3748bdf72e506165df545fd8c6b8deb5c15444e831ba0a771225428a382dc7d94a7b8e225e702e04e74bd23f69edf2947f17d8c5936d97898c37a065f741ac39b67f8bde75500a30a3f9a17e908b21c1c1164803a71b998405669e7d76774351baec47745d2014dd2360e4e4998d91f03573debc0d5ee7e681a48274181d8e67267b28a9f22052ebe56f187ed6acec9d9e9dd0deb3d0135509b6231b70e01ba11dd11d2e940012166a218f825e61977b0231dc43c1e86872a2a94639d0ccb48a6cf157987af01e27452dd23a6779f7e209e976ffced8811498e07664f32eaa33fbc0e70d96c02952be82993dd0d609aacba564b759f1273ae145135ba730c3ed79aaec8831f009c510cff25fd0b3b83f8744c089b888a12fe13b4cb1bfee07e673513253b2d05cb308d2b0e7eb3fbf9df92cfa2cb08123bc2c5e55cfa0307ecd529b39e6bcd038db239892a0aba09ed3ab6629003e4fab44f2f09385c82cf0f3c7825913f5a04d92e1c576ac41728220b391114812b0ec0f35df09278215baf3db414b4ee660508a1a24af0b82d2f9faf11f8909e5835e015a409db148292c55f70162d484407a0c80081dde78f731a108e1871120599d7dd28df45795bd0d61e47fc9e321203d75ac2b024bf8c9f2735151a010827b0c6503495a2a18fdd8af00b61a5997301f45d964ee98afcfa56da7f613e2901e8e21bd5ddd20e3a40ced7a9b40ecaad04f23f5b8946860a30cb428b33ab1809dc174260758cfced86df6332719fd69604f18caccaa6e39a7334f6311848fc13857a47662abe0243f78e2961d3aa00090358073e6bab56258dfcdb25ff5866a01dd9667fe01e192a121dfe3697867dcc040a7725599fda53db70886010d30d85ad71d3713facc7381c1d61ca12d02cea071f8d3eb66f686511963b0ba930a8e417698a737b31ee0128e8ceb1d8c3111c0789e35ff1c41b1d15215656382818307211a823462a992fa8374e218806898e04d891916707c5b6a714f2769461142434f15de255930efcf42ab63d2c2d1d5a0291592e1cfca7e2d4d3f14151de80300a783092d829d7befb28000dbf471e9c04465f9b18408e1054308eadc473b1d1e878f31065065501440f7eea4fc4e521006660d72eefb081cddba56265e6dcd2e7c2a0fc0a9e4911192a4ac459bfe76201b0a6b9f4c33b887852cc511cd575bf714029a9a9969433fe8ff0feeb169d6c0784da54cb12a15cfca6ddd8158af38dfbc20e0a091143b5b1cb5125ed402da107462fa52e919356e19605bccc180720130b56063251be5eec06967a48edc9260303ccbae0ef93594612557d7964798cc29cd8d19d1ba99ae1c5256719c94ec901a42fafe5bc6ab8e9c982a783e88bdbb100cb850fff4dc1fef34b99f0b895f607ab0d8d2d1fa6262f9ff308105dedde9187bd964e413b4c08103e5a80edbcee007602c6ede543bbd3e8177b3efc6d837df27f3aa33f2e64169e9db1748fa0c904cef0fc96d1dd3a56a91b43a532476898a7c2a94faa4e29b026923e746f58a10736885e306f30783e014d58a50c09fc10f4daca8c02728624dfae6866939a6f01a262bf55785f4674ab46b3040c928799da8a012703b1db7ca223d53dba866d03624dc4ddafd391d2314520859bafaff4facd29f34dc4835aecaeb852b9b49f006b75f983c608f641fa1fcb11384b00119615331d2acd8d6055c0000b77a6c902e10fe34092aa0e4853bfaa5a5cfbdf0d960e0e68de65e9e165d0e2dca8955702979add83dacdb7eff6360748cbf238a50668ea95c5d0e44bd3f0912ad13e7607b14126ff6bbeddc5dec9c498d36ef6ef4626d0b28685ef2e1dce150727674a01081669ed0decbe6c5cbc40e8378238267560f2112d3b400e2cfd960a4e439d038cf5f73375caec2214b847d3e0357d1fe92c6ada4940d5f4838c23a1c59fb6046010126b19e786562b2b1ff028e4ea4be9db58b2005898a3b31524805b1d61028cae6534f92832b28e8c9c02d86da4a99d283bdc2661dab0ecd44b4a5393e9026ddd267911b22a8b0691542dc25f3e428f74f25cff46d97ab6615dbc4e0fe204d02a1fd785f83c54c3b14607454681579a898080366885570b1e3c2155bb4d02bfd6c38ca1583bf5b660be01410fb1e180cd08cdef4dc712ea7e50a8d90e5101a6db5353835d735f1cb73f17a18876baa5592a819884a9397bcce97dca04cc03189280fdda4e6176094b1f5ee530b3bd8896b4de80d5484c505bff07be839707c5f8622717dcb06d30b0f79160983848f2c3440849220e32490f68acbbe306062fc9b903ade0ed8f76dc8a71c2d8bf59f86e8ec98cbf618ab6cfbaa11715c3066ffa6f4de59d9f2973fbfaee304e54eceb037a6d22b10d1c9772975c3adaf30493546444cf53789677b9c396114783af9262e50079b7cb4dccd1e576f23f65050ff1fd558b229afeca48e16936d338852c7d75522cf5186bd1ddcf7a82e63903ab727bdfc1ee76940e1d496b362988408820ed1c8915cb4f08a3ad381650db0177f036cb0e1246d0de22ca8bbcc73265655f541c673fbde7c50dffa1e99fc505b84ea7b68c58f08a56f888d6016ae363265c65efaf56fa6465fcb507a196bd0113e256a061a04f990000b4251e8d608e0b4d79e9f54ab8b43418ec62b8f36201644e2afd8e20603c403d85ba00beda3e4cbedd65f8540060b0502e27baaada019a9b832be64369499d1aea5b8e061e28e27262afc303a8f565a294151766a5055156ef7c6a9e87c12f58ed17229382acb29922204ebef009263d6f54131abf07d2ab634c324970f9ad89b24d645573d6e3a8227519cf2adddeedd015f110d404cd6689dd8c91997405631105bb54ac122bcf445bd4c13f619437e6650ef18c0724dc765c9f1310ef9937142157c735c12baedfb14f25cc768adb19ad51c06506305bb6c48cdb56e0de0bab28226d56e4e799644fbb6f672179de62d30d4f0603653a6331110ad82c8be70643bda14c5cadbad8dd92639f0e5ee89ad8b3af2b0144aac692653db2cf34ea63ba5bb3cf6ba6c63d2256d724ff358e2e75f1dadb00ce2998cb65367bc136e6cbd3833f12090c2d1837a9a1cfd327c4a513320c2f01f8137fec7a233c12f7be08ba39b05c14ae4acf62f8a79f6b98bb9e5bca18bd04eb5e99604acb47d985f5ee3e9cfddbdd070ff278ce5e07d448601209f1957f0353d48b77ca0a2e7e6afdee244067c3f40fb0510fa75e3d60a8b7598aa5148d00ee42c32233f60eeb203d7f4fe1ecedd2a24dc683bb95e63fa852c0bab319ed042406c55a7e36bb3f80fdcdd8f9747ded0e444597cce7e6f818fd7f572a2b2607e535cc9d983c5103caeb217e49caa42e6f27c94138e70f7c63525a7886d62d0073b08da1f8527041164e3574864a9e1625bd555a713d0b1f99d65a250705c403627d651ccec5569c420fa00860e6ba6d57f37e038469394d1d04b679ac016e07f5d2ffd1b04fddc9cdab92b468b9aeb7d089d2d5fafebdc2f36374ea9d4b3007273161a53d4cf40c1c5d849ac7aa80a8e952068a260a66047b9453f9c102ff045685e5c2c26023e725d6135075bd1598ab234b77ce98ab9747fc038cc8ad430182bd2c3185e87d5057d091c1796e8fa4224b687c9f1bb12becc80f180de13707314d137d89aa15649e425afe0ebbdbec0f14352740e121595ecbeb410cd19d03bd22288c506e624adc5f5a5602b0924d2921eae5df16efdf8d8220846f71e804c06e5d7d20d8481c5c2c18878f5fbc8b560d83118c0aabfce67c7ff7b2675c002cc15b651451e6daccfc8abf7359429b98c8d7024e8c2d0d656668af9f87ae07cd164387776d8460de857aa416693e818642e261758bbb70377c4a909daea9070bdb77d1280384439692c0f69cdb30f172e7f3dc6635d570029e22a7d284d3055160c0288c05992120fda2ec0eb3710ff47ef4345b2649797f5778d9ecc00403a4144182077b38349c227f89c516abc85205b3d8b6d91b444b2dc0e376b19e076e882c54cf7d4a55cf7a936a45121c5d8cc64fe41c86ce88457826e0df80020516a5c5a16e5146a12955d9f95c70668f15041c41ea50fe7b5f52dea188c608073e2947bf227e009a9c5173d28e2994a5486e544637594690ff380174435af7036b0a31c573b38d21625de890889d284b03d11e871298e2eba1bbcddbb5cd43046c03bb8bfed5530a2da415f425774028a5124057511664ea86e281f0678f33050bcdc9565c9c855444d5beeca4b2cfce77525bc085dbd47ac9b4fd892bf6d401fec12f6404db946cb53491fa710be43fc2a8ab7c7a6665f4e0698710c4bc330191885b8371d73c98c62d2e075ee7653cc7bde28e6840689bbe45855962ebff026943216905867899cd5a5e9293a79761660cdb0d416da835be1a2605b05d5a02d00efd58fb7e84d84c3a2468ab1520c6724ec52356faaee041db66d8f99ec7006459344b10603551e0e2ea75d4fc61e51a2e5036361878f3fa8ddcf27180510263dbe8c118776d365bd7b1bf2f18b91ec50eedfed9a0465b7a808bb4fb651b023fa1ac1a4c1c79c1ec3f9da91806e9b8355b7f5814f2301b84216c43e1cac1035e47aa4348eb7e2a7674ab1a66ca65dd98a14af11459c88fd0b05ee8a440330645d118725085394dfb6f548d4063d4ab5774e917ae2481678f2c17bfa1933d01b3228ff9b35eaa78344e496ab039c08329ef22bad7e58505ba6c5ed6c6e11b07840f0d27830c35b1a6a876a5e346983b9e8d5f27ed24cf9bdfd0a869cb96aa07ca85a9a14123884bbf8272135432ce77d36ca72d114c717629a5b5e343c0a1023592658d91ea23e9ec56a12a85e49b32dffee7a33ea1f1c013f376e84c119b0262e42d900bcf018ffaf4bc59e2c22e91963f37ce88cbeae4ab951bf99be4b90234371ed990a0e9130b19928930e55a8599adf2dd7efd4c363b2c357a4f30c205db89488d69647ac2e7e695bce8f84bc835b10ee4b4d23f4f0b09e18bbe6db1026619b0fc832a46669a58f48df934f8bb92ddd6fe438e03bda8f644e55247df04ef67786a180d6d8bd8b6ba3fa64f6ca2e901ef57d68271aa16f1c53148977d01972c7627ad0affb7651ae72440c1c6695aab77b57c358bc791accf174fc007071e6f5c74d6c4c8663f8bc95ef7af0ddefa4aefe9f8204a24b87ec1dfc1a06506647e659c0221294a77eb1990e4643b3ea52f898e3cb0f833eae960c56d0ba601f14e834dfed84c4e5937de63d2f4b4ab2b344d52e2280a62e73aa9df56c4a4042a08c0fbc80d7daf5d84aa9bff640500809ee8a3a12c4706f23bde230e770005de8643813ece6c4baf9f96589f979b0997b2e3f7a2bdb7e11e7a2cc1a422f900a71188ce13272847ed804f592bc1c698a4da20146d6b0c400a6822bb29532a07bdf49a8341a54d5d4f7d96e6d7e5636607b228279d02f225797cb378c826ee02a1ed4535108640a5b92f9e2d93e0b85c1ad0e4b8407ded1678d396355e8d0e07e21b355b9ca9b8bf84e12ecece464dde3b5401230a0c426421d0f0715c91a5069c44b532e985cdde5983a57e2166d1da069350e23563f97ad48b0c2afff61b05a2cfcd0eb68228c6657de95dea0bd1e2efe18e7f75248710fea9e884c77819058c4eb51fc27b9a94fbbd51310d7e0b61185f56ecd53e3f044608d5b45d3c44039c6c8b2e2e49a5fb89fc03b53f3b96a903f581a5654d25329f4ab1e07284f300b59e7499bac4bbc7efa255be271f0a5d6e7a7604b73fd27ac7975ed56532ba014d3cf9638fbae114f87a06895f749de6f190dd08287c93def9af51c6884ea704b60c427488e552d9b464d6e69eb90a07844b925596438f5d071d1b83c7e5a103b071735c94d744b02bc3ad01df1029646473f17e2ba393fba13b0334ac694a03f3d74ae952a271bfb4b3d951ab4c2734363b78a93457c4cbbb79521d653fb007f29864a8e29ac051ed5c15c68a0df9c1516987eaf390099a7b1660f0a1579700d85bba74e9c4d3c1c758516a5129583522d715fc72983dbaa5829d6ed46a4d04cdf67f20cd30d2e9bfc496802bcd0ac6e761198c806013826f58a04e8c39d3060e117eeb2d9cd94e4753681810fbe4a0513a963dbee64fc080ba019fcc7738020dc763cffeecef022d1103dc8c91341ca08a7e78e1eb2d9e181a56f99b023701321cb4d0f8ef7f1495f50d773766c72f3e17660bdaacdf13b85d953da6872004a262ded06bd1496d8ac4a959d70c8b2c08381c599e699b155e20346aeb37a402a6c5dce5b71714c1c40436d44e459b1f3140669eab0d4e168cb5936c4a91fe07d6027ee0ca1bd60fe9289d9715de22528119f4459e0be4dfb8698e659e278a00d6ee089e7a9b3bc8d57809e188d0680c48a9a01aa324afbf45049304db402a03a7b3280215b170bff90285f95951513d7ff5db6d8d1494d5798ae60f8631dc074fa5ee6a20e36cffcd27572eab22e1231bacb1df62a55380f50c0786dc999a014e13667c479b3fe55400c4659f11dd93321dfda99478fa5576d0d5d0b0a82702c5965248ff5d1529db5fed37446688a32fd6b9fbc7e39b92bd9df21f943a1706fac808d3517fa959c2da733fae6bc0acef2f49c467fdfe6934c8f6d791a8d5070346d69d6625a267d9f4c7b00fc29b7bf74bb7bee763f65f16807395f28a0f07eaeb82f84304ed161bff4bf3745179f4cfe0d16c23cb37b305a41fde94fff2003c9e469ae68156dd2adf2207c57c03457593af58bf4a49152c13786f2e2dd1057608300c24f370260dcf44fac3afe87fe61b5c86004d0decbe5b67f7529b8a04518ad5d2a2f015fc9cf06a9a4c3b2be53e5b34c27a0d857ac426a06c786dff01a2be5583299659fe402d321624513a36306170667b16bd92d9077b39b4ac860115fe9191971c4559abedf733f379e42e5728fc7c17ad9e8f49147788b883da04b4b05e65d74cce86112601a15856f57734835687a1d9c42e2a0b86f9ceeb7101a37216db1b21f997d6fb89f3d5f116972c4324bb9ba4beba03f7c40bc51cd30395535578f28f4a37a75adf489bfb121e9c9af5c069a08f7ad32dcab7916fc2013ceaece3dd72e626b08b494a172356ce7cd1d79925cb0dc68394e461fd474f0208ee4103df450ac2fe1302afca20f2a8e5faf2b1e142f17a47b260aa7c7e6b075a87e263359c368dfc040559cfc29946e97590d6635e7a41c22fa1b3467adf012e79b744bf5e043d67d003b96bf6ad8df4c4954d1d55bc383ed1d1607f987d015799d699ebf4963af54f799f7a564a093b81c2ea3f410ada3fb316299a2d01033eafd6b37c886fc59cae1c873dc6eb1bcff2ef2ddc7176becc8d40cd78684d00e8ccd5adc7ffb9d8d42c8b4fb524e7abe2f972c7bd42c4e98fc5e3770a400c05778f001bd44916a1881f0feca48892403407fb408d7a630601bf5e82f41a7c01bd14b874a822328b95f75467b241912ce9760d8beea0d099383d30523690a70143e002afde9e6c37e364510a0e5d2143183e93d9e9ff9050354cc6c91bb5e506e2a922fe9c5770c04662bbf337dec6f6e89891305853a3a18e83df5b1ca7da02b60b7958876272e342cc11915a0d72e62aedb8b472bd79b8a92ac905da683f06e492e269dc640a6a2887b28c566b0678ec0b002a872407a6e51637206c6c290297b586bd11a611cda19a4d91b28838264788516f29c0c7d61f3557128ee681049a7b2b92f7809568b9513a6ecc0d7b904f48dc5f63c6d12f8e40e019fe9b33063c747d4f3cc0561e1928d73d1b3cad8e8471074bf9d51003bef729e3fd093a02e8b825b74c8cce94624344888615935dda65a1eca2c9df09df6c38056bb9a403091636dbcc8ee3dd7118fad6ae2645dc8db70415bf039d5cac683a0a13ff210263b182bf486b7c696828f2d8ab22a3a2cbee77f9ea421f17543dcfdbcfc65b041f73bbd082ed7979562f2f3aa2860218a11eb05879ad452233f196d0e49231051ae9e74c3899563ce088ce6179ca8de1dbc0a8a0bbd7b8e106f87db5bc1d8a07eb62619a2f0c2ff01e17a4a7ab5fa44256d77e100b56a9633a21a9efe6c0c6065f2f1aaa4f68f4d4a0009014838a821df22ec0855ebe962307a21e3c2e19c502c83a889d4e16414ef805b762174a96071f68aca202aeba943773f231c07bf500450e26f2166522dadc118335541e1efece69cc9fa033119fa2249c5eb3b1b0024aa1e840ed5acbeddd52a165f55bcec01dd39793816e03a25641eb18e55a5a07b976b10d4267b343dc5f282af97be79f68adba0fe1e719f6cccbaa8f1070b107453ded774956640768ea4921d04006fb68fcbfd83024f336768b3d4ed7bdfc062b2a8f95318315b05c3f1c0f2c4e0f8f6f2bae4e9489605d132acfca9899d60762ca64ac91480bb1bd7caa6a5b2cc2403da446380d19910081e2cdc8287d27036779a7bac1531e14ec0ed19a088c4a21616651f885d24ec9f9e0744334575a060df7e4d9064b5df29549ef466c7d66844cd0b5525d7318273b0e252591f8a501507e2b0b391a7810c56115170439d27e768a052d9e1a2cfcae40ea657021cf062bd0e4a0065b844bf345e6df265139bc7748b55d3514ff87c44f1ccafa6006068ddff11bf13cffe3e43c1ab175dce93d635498b3f162bbe89d43e42872f4fe",
+ "proof_parameters": {
+ "channel_hash": "poseidon3",
+ "commitment_hash": "blake256_masked248_lsb",
+ "field": "PrimeField0",
+ "n_verifier_friendly_commitment_layers": 23,
+ "pow_hash": "blake256",
+ "stark": {
+ "fri": {
+ "fri_step_list": [
+ 0,
+ 3,
+ 3,
+ 3,
+ 2
+ ],
+ "last_layer_degree_bound": 64,
+ "n_queries": 32,
+ "proof_of_work_bits": 32
+ },
+ "log_n_cosets": 2
+ },
+ "statement": {
+ "page_hash": "pedersen"
+ },
+ "use_extension_field": false,
+ "verifier_friendly_channel_updates": true,
+ "verifier_friendly_commitment_hash": "poseidon3"
+ },
+ "prover_config": {
+ "cached_lde_config": {
+ "store_full_lde": false,
+ "use_fft_for_eval": false
+ },
+ "constraint_polynomial_task_size": 256,
+ "n_out_of_memory_merkle_layers": 3,
+ "table_prover_n_tasks_per_segment": 1024
+ },
+ "public_input": {
+ "dynamic_params": {
+ "add_mod__a0_suboffset": 0,
+ "add_mod__a1_suboffset": 0,
+ "add_mod__a2_suboffset": 0,
+ "add_mod__a3_suboffset": 0,
+ "add_mod__a_offset_suboffset": 0,
+ "add_mod__b0_suboffset": 0,
+ "add_mod__b1_suboffset": 0,
+ "add_mod__b2_suboffset": 0,
+ "add_mod__b3_suboffset": 0,
+ "add_mod__b_offset_suboffset": 0,
+ "add_mod__c0_suboffset": 0,
+ "add_mod__c1_suboffset": 0,
+ "add_mod__c2_suboffset": 0,
+ "add_mod__c3_suboffset": 0,
+ "add_mod__c_offset_suboffset": 0,
+ "add_mod__carry1_bit_column": 0,
+ "add_mod__carry1_bit_offset": 0,
+ "add_mod__carry1_sign_column": 0,
+ "add_mod__carry1_sign_offset": 0,
+ "add_mod__carry2_bit_column": 0,
+ "add_mod__carry2_bit_offset": 0,
+ "add_mod__carry2_sign_column": 0,
+ "add_mod__carry2_sign_offset": 0,
+ "add_mod__carry3_bit_column": 0,
+ "add_mod__carry3_bit_offset": 0,
+ "add_mod__carry3_sign_column": 0,
+ "add_mod__carry3_sign_offset": 0,
+ "add_mod__n_suboffset": 0,
+ "add_mod__offsets_ptr_suboffset": 0,
+ "add_mod__p0_suboffset": 0,
+ "add_mod__p1_suboffset": 0,
+ "add_mod__p2_suboffset": 0,
+ "add_mod__p3_suboffset": 0,
+ "add_mod__row_ratio": 0,
+ "add_mod__sub_p_bit_column": 0,
+ "add_mod__sub_p_bit_offset": 0,
+ "add_mod__values_ptr_suboffset": 0,
+ "bitwise__diluted_var_pool_suboffset": 0,
+ "bitwise__row_ratio": 0,
+ "bitwise__trim_unpacking192_suboffset": 0,
+ "bitwise__trim_unpacking193_suboffset": 0,
+ "bitwise__trim_unpacking194_suboffset": 0,
+ "bitwise__trim_unpacking195_suboffset": 0,
+ "bitwise__var_pool_suboffset": 0,
+ "bitwise__x_or_y_suboffset": 0,
+ "cpu__decode__mem_inst_suboffset": 0,
+ "cpu__decode__off0_suboffset": 0,
+ "cpu__decode__off1_suboffset": 32,
+ "cpu__decode__off2_suboffset": 16,
+ "cpu__decode__opcode_range_check__column_column": 3,
+ "cpu__decode__opcode_range_check__column_offset": 0,
+ "cpu__operands__mem_dst_suboffset": 4,
+ "cpu__operands__mem_op0_suboffset": 2,
+ "cpu__operands__mem_op1_suboffset": 6,
+ "cpu__operands__ops_mul_column": 4,
+ "cpu__operands__ops_mul_offset": 19,
+ "cpu__operands__res_column": 4,
+ "cpu__operands__res_offset": 51,
+ "cpu__registers__ap_column": 4,
+ "cpu__registers__ap_offset": 3,
+ "cpu__registers__fp_column": 4,
+ "cpu__registers__fp_offset": 35,
+ "cpu__update_registers__update_pc__tmp0_column": 4,
+ "cpu__update_registers__update_pc__tmp0_offset": 11,
+ "cpu__update_registers__update_pc__tmp1_column": 4,
+ "cpu__update_registers__update_pc__tmp1_offset": 43,
+ "cpu_component_step": 4,
+ "diluted_check__cumulative_value_column": 6,
+ "diluted_check__cumulative_value_offset": 0,
+ "diluted_check__permutation__cum_prod0_column": 6,
+ "diluted_check__permutation__cum_prod0_offset": 1,
+ "diluted_check__permuted_values_column": 2,
+ "diluted_check__permuted_values_offset": 1,
+ "diluted_pool_column": 2,
+ "diluted_pool_offset": 0,
+ "diluted_units_row_ratio": 2,
+ "ec_op__doubled_points__x_column": 0,
+ "ec_op__doubled_points__x_offset": 0,
+ "ec_op__doubled_points__y_column": 0,
+ "ec_op__doubled_points__y_offset": 0,
+ "ec_op__doubling_slope_column": 0,
+ "ec_op__doubling_slope_offset": 0,
+ "ec_op__ec_subset_sum__bit_unpacking__prod_ones192_column": 0,
+ "ec_op__ec_subset_sum__bit_unpacking__prod_ones192_offset": 0,
+ "ec_op__ec_subset_sum__bit_unpacking__prod_ones196_column": 0,
+ "ec_op__ec_subset_sum__bit_unpacking__prod_ones196_offset": 0,
+ "ec_op__ec_subset_sum__partial_sum__x_column": 0,
+ "ec_op__ec_subset_sum__partial_sum__x_offset": 0,
+ "ec_op__ec_subset_sum__partial_sum__y_column": 0,
+ "ec_op__ec_subset_sum__partial_sum__y_offset": 0,
+ "ec_op__ec_subset_sum__selector_column": 0,
+ "ec_op__ec_subset_sum__selector_offset": 0,
+ "ec_op__ec_subset_sum__slope_column": 0,
+ "ec_op__ec_subset_sum__slope_offset": 0,
+ "ec_op__ec_subset_sum__x_diff_inv_column": 0,
+ "ec_op__ec_subset_sum__x_diff_inv_offset": 0,
+ "ec_op__m_suboffset": 0,
+ "ec_op__p_x_suboffset": 0,
+ "ec_op__p_y_suboffset": 0,
+ "ec_op__q_x_suboffset": 0,
+ "ec_op__q_y_suboffset": 0,
+ "ec_op__r_x_suboffset": 0,
+ "ec_op__r_y_suboffset": 0,
+ "ec_op_builtin_row_ratio": 0,
+ "ecdsa__message_suboffset": 0,
+ "ecdsa__pubkey_suboffset": 0,
+ "ecdsa__signature0__add_results_inv_column": 0,
+ "ecdsa__signature0__add_results_inv_offset": 0,
+ "ecdsa__signature0__add_results_slope_column": 0,
+ "ecdsa__signature0__add_results_slope_offset": 0,
+ "ecdsa__signature0__doubling_slope_column": 0,
+ "ecdsa__signature0__doubling_slope_offset": 0,
+ "ecdsa__signature0__exponentiate_generator__partial_sum__x_column": 0,
+ "ecdsa__signature0__exponentiate_generator__partial_sum__x_offset": 0,
+ "ecdsa__signature0__exponentiate_generator__partial_sum__y_column": 0,
+ "ecdsa__signature0__exponentiate_generator__partial_sum__y_offset": 0,
+ "ecdsa__signature0__exponentiate_generator__selector_column": 0,
+ "ecdsa__signature0__exponentiate_generator__selector_offset": 0,
+ "ecdsa__signature0__exponentiate_generator__slope_column": 0,
+ "ecdsa__signature0__exponentiate_generator__slope_offset": 0,
+ "ecdsa__signature0__exponentiate_generator__x_diff_inv_column": 0,
+ "ecdsa__signature0__exponentiate_generator__x_diff_inv_offset": 0,
+ "ecdsa__signature0__exponentiate_key__partial_sum__x_column": 0,
+ "ecdsa__signature0__exponentiate_key__partial_sum__x_offset": 0,
+ "ecdsa__signature0__exponentiate_key__partial_sum__y_column": 0,
+ "ecdsa__signature0__exponentiate_key__partial_sum__y_offset": 0,
+ "ecdsa__signature0__exponentiate_key__selector_column": 0,
+ "ecdsa__signature0__exponentiate_key__selector_offset": 0,
+ "ecdsa__signature0__exponentiate_key__slope_column": 0,
+ "ecdsa__signature0__exponentiate_key__slope_offset": 0,
+ "ecdsa__signature0__exponentiate_key__x_diff_inv_column": 0,
+ "ecdsa__signature0__exponentiate_key__x_diff_inv_offset": 0,
+ "ecdsa__signature0__extract_r_inv_column": 0,
+ "ecdsa__signature0__extract_r_inv_offset": 0,
+ "ecdsa__signature0__extract_r_slope_column": 0,
+ "ecdsa__signature0__extract_r_slope_offset": 0,
+ "ecdsa__signature0__key_points__x_column": 0,
+ "ecdsa__signature0__key_points__x_offset": 0,
+ "ecdsa__signature0__key_points__y_column": 0,
+ "ecdsa__signature0__key_points__y_offset": 0,
+ "ecdsa__signature0__q_x_squared_column": 0,
+ "ecdsa__signature0__q_x_squared_offset": 0,
+ "ecdsa__signature0__r_w_inv_column": 0,
+ "ecdsa__signature0__r_w_inv_offset": 0,
+ "ecdsa__signature0__z_inv_column": 0,
+ "ecdsa__signature0__z_inv_offset": 0,
+ "ecdsa_builtin_row_ratio": 0,
+ "keccak__input_output_suboffset": 0,
+ "keccak__keccak__diluted_column0_suboffset": 0,
+ "keccak__keccak__diluted_column1_suboffset": 0,
+ "keccak__keccak__diluted_column2_suboffset": 0,
+ "keccak__keccak__diluted_column3_suboffset": 0,
+ "keccak__keccak__parse_to_diluted__cumulative_sum_column": 0,
+ "keccak__keccak__parse_to_diluted__cumulative_sum_offset": 0,
+ "keccak__keccak__parse_to_diluted__final_reshaped_input_column": 0,
+ "keccak__keccak__parse_to_diluted__final_reshaped_input_offset": 0,
+ "keccak__keccak__parse_to_diluted__reshaped_intermediate_column": 0,
+ "keccak__keccak__parse_to_diluted__reshaped_intermediate_offset": 0,
+ "keccak__keccak__rotated_parity0_column": 0,
+ "keccak__keccak__rotated_parity0_offset": 0,
+ "keccak__keccak__rotated_parity1_column": 0,
+ "keccak__keccak__rotated_parity1_offset": 0,
+ "keccak__keccak__rotated_parity2_column": 0,
+ "keccak__keccak__rotated_parity2_offset": 0,
+ "keccak__keccak__rotated_parity3_column": 0,
+ "keccak__keccak__rotated_parity3_offset": 0,
+ "keccak__keccak__rotated_parity4_column": 0,
+ "keccak__keccak__rotated_parity4_offset": 0,
+ "keccak__row_ratio": 0,
+ "mem_pool__addr_column": 4,
+ "mem_pool__addr_offset": 2,
+ "mem_pool__value_column": 4,
+ "mem_pool__value_offset": 6,
+ "memory__multi_column_perm__perm__cum_prod0_column": 7,
+ "memory__multi_column_perm__perm__cum_prod0_offset": 0,
+ "memory__sorted__addr_column": 4,
+ "memory__sorted__addr_offset": 1,
+ "memory__sorted__value_column": 4,
+ "memory__sorted__value_offset": 5,
+ "memory_units_row_ratio": 8,
+ "mul_mod__a0_suboffset": 0,
+ "mul_mod__a1_suboffset": 0,
+ "mul_mod__a2_suboffset": 0,
+ "mul_mod__a3_suboffset": 0,
+ "mul_mod__a_offset_suboffset": 0,
+ "mul_mod__b0_suboffset": 0,
+ "mul_mod__b1_suboffset": 0,
+ "mul_mod__b2_suboffset": 0,
+ "mul_mod__b3_suboffset": 0,
+ "mul_mod__b_offset_suboffset": 0,
+ "mul_mod__c0_suboffset": 0,
+ "mul_mod__c1_suboffset": 0,
+ "mul_mod__c2_suboffset": 0,
+ "mul_mod__c3_suboffset": 0,
+ "mul_mod__c_offset_suboffset": 0,
+ "mul_mod__carry0__part0_suboffset": 0,
+ "mul_mod__carry0__part1_suboffset": 0,
+ "mul_mod__carry0__part2_suboffset": 0,
+ "mul_mod__carry0__part3_suboffset": 0,
+ "mul_mod__carry0__part4_suboffset": 0,
+ "mul_mod__carry0__part5_suboffset": 0,
+ "mul_mod__carry0__part6_suboffset": 0,
+ "mul_mod__carry1__part0_suboffset": 0,
+ "mul_mod__carry1__part1_suboffset": 0,
+ "mul_mod__carry1__part2_suboffset": 0,
+ "mul_mod__carry1__part3_suboffset": 0,
+ "mul_mod__carry1__part4_suboffset": 0,
+ "mul_mod__carry1__part5_suboffset": 0,
+ "mul_mod__carry1__part6_suboffset": 0,
+ "mul_mod__carry2__part0_suboffset": 0,
+ "mul_mod__carry2__part1_suboffset": 0,
+ "mul_mod__carry2__part2_suboffset": 0,
+ "mul_mod__carry2__part3_suboffset": 0,
+ "mul_mod__carry2__part4_suboffset": 0,
+ "mul_mod__carry2__part5_suboffset": 0,
+ "mul_mod__carry2__part6_suboffset": 0,
+ "mul_mod__carry3__part0_suboffset": 0,
+ "mul_mod__carry3__part1_suboffset": 0,
+ "mul_mod__carry3__part2_suboffset": 0,
+ "mul_mod__carry3__part3_suboffset": 0,
+ "mul_mod__carry3__part4_suboffset": 0,
+ "mul_mod__carry3__part5_suboffset": 0,
+ "mul_mod__carry3__part6_suboffset": 0,
+ "mul_mod__carry4__part0_suboffset": 0,
+ "mul_mod__carry4__part1_suboffset": 0,
+ "mul_mod__carry4__part2_suboffset": 0,
+ "mul_mod__carry4__part3_suboffset": 0,
+ "mul_mod__carry4__part4_suboffset": 0,
+ "mul_mod__carry4__part5_suboffset": 0,
+ "mul_mod__carry4__part6_suboffset": 0,
+ "mul_mod__carry5__part0_suboffset": 0,
+ "mul_mod__carry5__part1_suboffset": 0,
+ "mul_mod__carry5__part2_suboffset": 0,
+ "mul_mod__carry5__part3_suboffset": 0,
+ "mul_mod__carry5__part4_suboffset": 0,
+ "mul_mod__carry5__part5_suboffset": 0,
+ "mul_mod__carry5__part6_suboffset": 0,
+ "mul_mod__n_suboffset": 0,
+ "mul_mod__offsets_ptr_suboffset": 0,
+ "mul_mod__p0_suboffset": 0,
+ "mul_mod__p1_suboffset": 0,
+ "mul_mod__p2_suboffset": 0,
+ "mul_mod__p3_suboffset": 0,
+ "mul_mod__p_multiplier0__part0_suboffset": 0,
+ "mul_mod__p_multiplier0__part1_suboffset": 0,
+ "mul_mod__p_multiplier0__part2_suboffset": 0,
+ "mul_mod__p_multiplier0__part3_suboffset": 0,
+ "mul_mod__p_multiplier0__part4_suboffset": 0,
+ "mul_mod__p_multiplier0__part5_suboffset": 0,
+ "mul_mod__p_multiplier1__part0_suboffset": 0,
+ "mul_mod__p_multiplier1__part1_suboffset": 0,
+ "mul_mod__p_multiplier1__part2_suboffset": 0,
+ "mul_mod__p_multiplier1__part3_suboffset": 0,
+ "mul_mod__p_multiplier1__part4_suboffset": 0,
+ "mul_mod__p_multiplier1__part5_suboffset": 0,
+ "mul_mod__p_multiplier2__part0_suboffset": 0,
+ "mul_mod__p_multiplier2__part1_suboffset": 0,
+ "mul_mod__p_multiplier2__part2_suboffset": 0,
+ "mul_mod__p_multiplier2__part3_suboffset": 0,
+ "mul_mod__p_multiplier2__part4_suboffset": 0,
+ "mul_mod__p_multiplier2__part5_suboffset": 0,
+ "mul_mod__p_multiplier3__part0_suboffset": 0,
+ "mul_mod__p_multiplier3__part1_suboffset": 0,
+ "mul_mod__p_multiplier3__part2_suboffset": 0,
+ "mul_mod__p_multiplier3__part3_suboffset": 0,
+ "mul_mod__p_multiplier3__part4_suboffset": 0,
+ "mul_mod__p_multiplier3__part5_suboffset": 0,
+ "mul_mod__row_ratio": 0,
+ "mul_mod__values_ptr_suboffset": 0,
+ "num_columns_first": 5,
+ "num_columns_second": 3,
+ "orig__public_memory_suboffset": 1,
+ "pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones192_column": 4,
+ "pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones192_offset": 27,
+ "pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones196_column": 4,
+ "pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones196_offset": 1020,
+ "pedersen__hash0__ec_subset_sum__partial_sum__x_column": 3,
+ "pedersen__hash0__ec_subset_sum__partial_sum__x_offset": 2,
+ "pedersen__hash0__ec_subset_sum__partial_sum__y_column": 3,
+ "pedersen__hash0__ec_subset_sum__partial_sum__y_offset": 1,
+ "pedersen__hash0__ec_subset_sum__selector_column": 3,
+ "pedersen__hash0__ec_subset_sum__selector_offset": 3,
+ "pedersen__hash0__ec_subset_sum__slope_column": 4,
+ "pedersen__hash0__ec_subset_sum__slope_offset": 0,
+ "pedersen__input0_suboffset": 5,
+ "pedersen__input1_suboffset": 133,
+ "pedersen__output_suboffset": 69,
+ "pedersen_builtin_row_ratio": 2048,
+ "poseidon__param_0__input_output_suboffset": 0,
+ "poseidon__param_1__input_output_suboffset": 0,
+ "poseidon__param_2__input_output_suboffset": 0,
+ "poseidon__poseidon__full_rounds_state0_column": 0,
+ "poseidon__poseidon__full_rounds_state0_offset": 0,
+ "poseidon__poseidon__full_rounds_state0_squared_column": 0,
+ "poseidon__poseidon__full_rounds_state0_squared_offset": 0,
+ "poseidon__poseidon__full_rounds_state1_column": 0,
+ "poseidon__poseidon__full_rounds_state1_offset": 0,
+ "poseidon__poseidon__full_rounds_state1_squared_column": 0,
+ "poseidon__poseidon__full_rounds_state1_squared_offset": 0,
+ "poseidon__poseidon__full_rounds_state2_column": 0,
+ "poseidon__poseidon__full_rounds_state2_offset": 0,
+ "poseidon__poseidon__full_rounds_state2_squared_column": 0,
+ "poseidon__poseidon__full_rounds_state2_squared_offset": 0,
+ "poseidon__poseidon__partial_rounds_state0_column": 0,
+ "poseidon__poseidon__partial_rounds_state0_offset": 0,
+ "poseidon__poseidon__partial_rounds_state0_squared_column": 0,
+ "poseidon__poseidon__partial_rounds_state0_squared_offset": 0,
+ "poseidon__poseidon__partial_rounds_state1_column": 0,
+ "poseidon__poseidon__partial_rounds_state1_offset": 0,
+ "poseidon__poseidon__partial_rounds_state1_squared_column": 0,
+ "poseidon__poseidon__partial_rounds_state1_squared_offset": 0,
+ "poseidon__row_ratio": 0,
+ "range_check16__perm__cum_prod0_column": 5,
+ "range_check16__perm__cum_prod0_offset": 0,
+ "range_check16__sorted_column": 1,
+ "range_check16__sorted_offset": 0,
+ "range_check16_pool_column": 0,
+ "range_check16_pool_offset": 0,
+ "range_check96_builtin__inner_range_check0_suboffset": 0,
+ "range_check96_builtin__inner_range_check1_suboffset": 0,
+ "range_check96_builtin__inner_range_check2_suboffset": 0,
+ "range_check96_builtin__inner_range_check3_suboffset": 0,
+ "range_check96_builtin__inner_range_check4_suboffset": 0,
+ "range_check96_builtin__inner_range_check5_suboffset": 0,
+ "range_check96_builtin__mem_suboffset": 0,
+ "range_check96_builtin_row_ratio": 0,
+ "range_check_builtin__inner_range_check_suboffset": 48,
+ "range_check_builtin__mem_suboffset": 197,
+ "range_check_builtin_row_ratio": 2048,
+ "range_check_units_row_ratio": 1,
+ "uses_add_mod_builtin": 0,
+ "uses_bitwise_builtin": 0,
+ "uses_ec_op_builtin": 0,
+ "uses_ecdsa_builtin": 0,
+ "uses_keccak_builtin": 0,
+ "uses_mul_mod_builtin": 0,
+ "uses_pedersen_builtin": 1,
+ "uses_poseidon_builtin": 0,
+ "uses_range_check96_builtin": 0,
+ "uses_range_check_builtin": 1
+ },
+ "layout": "dynamic",
+ "memory_segments": {
+ "add_mod": {
+ "begin_addr": 1828,
+ "stop_ptr": 1828
+ },
+ "bitwise": {
+ "begin_addr": 1828,
+ "stop_ptr": 1828
+ },
+ "ec_op": {
+ "begin_addr": 1828,
+ "stop_ptr": 1828
+ },
+ "ecdsa": {
+ "begin_addr": 1828,
+ "stop_ptr": 1828
+ },
+ "execution": {
+ "begin_addr": 454,
+ "stop_ptr": 1568
+ },
+ "keccak": {
+ "begin_addr": 1828,
+ "stop_ptr": 1828
+ },
+ "mul_mod": {
+ "begin_addr": 1828,
+ "stop_ptr": 1828
+ },
+ "output": {
+ "begin_addr": 1568,
+ "stop_ptr": 1572
+ },
+ "pedersen": {
+ "begin_addr": 1572,
+ "stop_ptr": 1620
+ },
+ "poseidon": {
+ "begin_addr": 1828,
+ "stop_ptr": 1828
+ },
+ "program": {
+ "begin_addr": 1,
+ "stop_ptr": 5
+ },
+ "range_check": {
+ "begin_addr": 1764,
+ "stop_ptr": 1775
+ },
+ "range_check96": {
+ "begin_addr": 1828,
+ "stop_ptr": 1828
+ }
+ },
+ "n_steps": 2048,
+ "public_memory": [
+ {
+ "address": 1,
+ "page": 0,
+ "value": "0x40780017fff7fff"
+ },
+ {
+ "address": 2,
+ "page": 0,
+ "value": "0xb"
+ },
+ {
+ "address": 3,
+ "page": 0,
+ "value": "0x1104800180018000"
+ },
+ {
+ "address": 4,
+ "page": 0,
+ "value": "0x1b3"
+ },
+ {
+ "address": 5,
+ "page": 0,
+ "value": "0x10780017fff7fff"
+ },
+ {
+ "address": 6,
+ "page": 0,
+ "value": "0x0"
+ },
+ {
+ "address": 7,
+ "page": 0,
+ "value": "0x208b7fff7fff7ffe"
+ },
+ {
+ "address": 8,
+ "page": 0,
+ "value": "0x1104800180018000"
+ },
+ {
+ "address": 9,
+ "page": 0,
+ "value": "0x800000000000011000000000000000000000000000000000000000000000000"
+ },
+ {
+ "address": 10,
+ "page": 0,
+ "value": "0x482480017ffe8000"
+ },
+ {
+ "address": 11,
+ "page": 0,
+ "value": "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffff"
+ },
+ {
+ "address": 12,
+ "page": 0,
+ "value": "0x208b7fff7fff7ffe"
+ },
+ {
+ "address": 13,
+ "page": 0,
+ "value": "0x20780017fff7ffd"
+ },
+ {
+ "address": 14,
+ "page": 0,
+ "value": "0x4"
+ },
+ {
+ "address": 15,
+ "page": 0,
+ "value": "0x480a7ffb7fff8000"
+ },
+ {
+ "address": 16,
+ "page": 0,
+ "value": "0x208b7fff7fff7ffe"
+ },
+ {
+ "address": 17,
+ "page": 0,
+ "value": "0x40780017fff7fff"
+ },
+ {
+ "address": 18,
+ "page": 0,
+ "value": "0x3"
+ },
+ {
+ "address": 19,
+ "page": 0,
+ "value": "0x404b800080008000"
+ },
+ {
+ "address": 20,
+ "page": 0,
+ "value": "0x400380007ff98001"
+ },
+ {
+ "address": 21,
+ "page": 0,
+ "value": "0x400380007ffa8002"
+ },
+ {
+ "address": 22,
+ "page": 0,
+ "value": "0x20780017fff8000"
+ },
+ {
+ "address": 23,
+ "page": 0,
+ "value": "0x4"
+ },
+ {
+ "address": 24,
+ "page": 0,
+ "value": "0x10780017fff7fff"
+ },
+ {
+ "address": 25,
+ "page": 0,
+ "value": "0x4"
+ },
+ {
+ "address": 26,
+ "page": 0,
+ "value": "0x400380007ffb8001"
+ },
+ {
+ "address": 27,
+ "page": 0,
+ "value": "0x400380007ffc8002"
+ },
+ {
+ "address": 28,
+ "page": 0,
+ "value": "0x482680017ff98000"
+ },
+ {
+ "address": 29,
+ "page": 0,
+ "value": "0x1"
+ },
+ {
+ "address": 30,
+ "page": 0,
+ "value": "0x482680017ffa8000"
+ },
+ {
+ "address": 31,
+ "page": 0,
+ "value": "0x1"
+ },
+ {
+ "address": 32,
+ "page": 0,
+ "value": "0x482a80007ffb8000"
+ },
+ {
+ "address": 33,
+ "page": 0,
+ "value": "0x482a80007ffc8000"
+ },
+ {
+ "address": 34,
+ "page": 0,
+ "value": "0x482680017ffd8000"
+ },
+ {
+ "address": 35,
+ "page": 0,
+ "value": "0x800000000000011000000000000000000000000000000000000000000000000"
+ },
+ {
+ "address": 36,
+ "page": 0,
+ "value": "0x1104800180018000"
+ },
+ {
+ "address": 37,
+ "page": 0,
+ "value": "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffea"
+ },
+ {
+ "address": 38,
+ "page": 0,
+ "value": "0x208b7fff7fff7ffe"
+ },
+ {
+ "address": 39,
+ "page": 0,
+ "value": "0x1104800180018000"
+ },
+ {
+ "address": 40,
+ "page": 0,
+ "value": "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffe1"
+ },
+ {
+ "address": 41,
+ "page": 0,
+ "value": "0x484680017ffb8000"
+ },
+ {
+ "address": 42,
+ "page": 0,
+ "value": "0xa"
+ },
+ {
+ "address": 43,
+ "page": 0,
+ "value": "0x482480017fff8000"
+ },
+ {
+ "address": 44,
+ "page": 0,
+ "value": "0xc"
+ },
+ {
+ "address": 45,
+ "page": 0,
+ "value": "0x480a7ff97fff8000"
+ },
+ {
+ "address": 46,
+ "page": 0,
+ "value": "0x480a7ffa7fff8000"
+ },
+ {
+ "address": 47,
+ "page": 0,
+ "value": "0x480a7ffc7fff8000"
+ },
+ {
+ "address": 48,
+ "page": 0,
+ "value": "0x48307ffc7ff98000"
+ },
+ {
+ "address": 49,
+ "page": 0,
+ "value": "0x480a7ffb7fff8000"
+ },
+ {
+ "address": 50,
+ "page": 0,
+ "value": "0x1104800180018000"
+ },
+ {
+ "address": 51,
+ "page": 0,
+ "value": "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffdc"
+ },
+ {
+ "address": 52,
+ "page": 0,
+ "value": "0x402a7ffc7ffd7fff"
+ },
+ {
+ "address": 53,
+ "page": 0,
+ "value": "0x40b7ffd7fff7fff"
+ },
+ {
+ "address": 54,
+ "page": 0,
+ "value": "0x208b7fff7fff7ffe"
+ },
+ {
+ "address": 55,
+ "page": 0,
+ "value": "0x48297ffb80007ffc"
+ },
+ {
+ "address": 56,
+ "page": 0,
+ "value": "0x48487ffd80007fff"
+ },
+ {
+ "address": 57,
+ "page": 0,
+ "value": "0x400280007ffa7fff"
+ },
+ {
+ "address": 58,
+ "page": 0,
+ "value": "0x482680017ffa8000"
+ },
+ {
+ "address": 59,
+ "page": 0,
+ "value": "0x1"
+ },
+ {
+ "address": 60,
+ "page": 0,
+ "value": "0x208b7fff7fff7ffe"
+ },
+ {
+ "address": 61,
+ "page": 0,
+ "value": "0x20780017fff7ffd"
+ },
+ {
+ "address": 62,
+ "page": 0,
+ "value": "0x4"
+ },
+ {
+ "address": 63,
+ "page": 0,
+ "value": "0x480a7ff97fff8000"
+ },
+ {
+ "address": 64,
+ "page": 0,
+ "value": "0x208b7fff7fff7ffe"
+ },
+ {
+ "address": 65,
+ "page": 0,
+ "value": "0x480a7ff97fff8000"
+ },
+ {
+ "address": 66,
+ "page": 0,
+ "value": "0x480280007ffa8000"
+ },
+ {
+ "address": 67,
+ "page": 0,
+ "value": "0x480280007ffb8000"
+ },
+ {
+ "address": 68,
+ "page": 0,
+ "value": "0x480280007ffc8000"
+ },
+ {
+ "address": 69,
+ "page": 0,
+ "value": "0x1104800180018000"
+ },
+ {
+ "address": 70,
+ "page": 0,
+ "value": "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff3"
+ },
+ {
+ "address": 71,
+ "page": 0,
+ "value": "0x482680017ffa8000"
+ },
+ {
+ "address": 72,
+ "page": 0,
+ "value": "0x1"
+ },
+ {
+ "address": 73,
+ "page": 0,
+ "value": "0x482680017ffb8000"
+ },
+ {
+ "address": 74,
+ "page": 0,
+ "value": "0x1"
+ },
+ {
+ "address": 75,
+ "page": 0,
+ "value": "0x482680017ffc8000"
+ },
+ {
+ "address": 76,
+ "page": 0,
+ "value": "0x1"
+ },
+ {
+ "address": 77,
+ "page": 0,
+ "value": "0x482680017ffd8000"
+ },
+ {
+ "address": 78,
+ "page": 0,
+ "value": "0x800000000000011000000000000000000000000000000000000000000000000"
+ },
+ {
+ "address": 79,
+ "page": 0,
+ "value": "0x1104800180018000"
+ },
+ {
+ "address": 80,
+ "page": 0,
+ "value": "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffef"
+ },
+ {
+ "address": 81,
+ "page": 0,
+ "value": "0x208b7fff7fff7ffe"
+ },
+ {
+ "address": 82,
+ "page": 0,
+ "value": "0x480680017fff8000"
+ },
+ {
+ "address": 83,
+ "page": 0,
+ "value": "0x0"
+ },
+ {
+ "address": 84,
+ "page": 0,
+ "value": "0x480680017fff8000"
+ },
+ {
+ "address": 85,
+ "page": 0,
+ "value": "0x0"
+ },
+ {
+ "address": 86,
+ "page": 0,
+ "value": "0x480680017fff8000"
+ },
+ {
+ "address": 87,
+ "page": 0,
+ "value": "0x0"
+ },
+ {
+ "address": 88,
+ "page": 0,
+ "value": "0x480a7ffd7fff8000"
+ },
+ {
+ "address": 89,
+ "page": 0,
+ "value": "0x480a7ffb7fff8000"
+ },
+ {
+ "address": 90,
+ "page": 0,
+ "value": "0x40780017fff7fff"
+ },
+ {
+ "address": 91,
+ "page": 0,
+ "value": "0x1"
+ },
+ {
+ "address": 92,
+ "page": 0,
+ "value": "0x20680017fff7fff"
+ },
+ {
+ "address": 93,
+ "page": 0,
+ "value": "0x4"
+ },
+ {
+ "address": 94,
+ "page": 0,
+ "value": "0x10780017fff7fff"
+ },
+ {
+ "address": 95,
+ "page": 0,
+ "value": "0x3a"
+ },
+ {
+ "address": 96,
+ "page": 0,
+ "value": "0x480080007ffd8000"
+ },
+ {
+ "address": 97,
+ "page": 0,
+ "value": "0x48307fff7ff98000"
+ },
+ {
+ "address": 98,
+ "page": 0,
+ "value": "0x400080007ffc7fff"
+ },
+ {
+ "address": 99,
+ "page": 0,
+ "value": "0x480080017ffb8000"
+ },
+ {
+ "address": 100,
+ "page": 0,
+ "value": "0x48307fff7ff88000"
+ },
+ {
+ "address": 101,
+ "page": 0,
+ "value": "0x400080017ffa7fff"
+ },
+ {
+ "address": 102,
+ "page": 0,
+ "value": "0x400080027ffa7ff8"
+ },
+ {
+ "address": 103,
+ "page": 0,
+ "value": "0x480080037ffa8000"
+ },
+ {
+ "address": 104,
+ "page": 0,
+ "value": "0x480080027ff88000"
+ },
+ {
+ "address": 105,
+ "page": 0,
+ "value": "0x48307fff7ffe8000"
+ },
+ {
+ "address": 106,
+ "page": 0,
+ "value": "0x400080067ff77fff"
+ },
+ {
+ "address": 107,
+ "page": 0,
+ "value": "0x480080047ff78000"
+ },
+ {
+ "address": 108,
+ "page": 0,
+ "value": "0x480080037ff58000"
+ },
+ {
+ "address": 109,
+ "page": 0,
+ "value": "0x48307fff7ffe8000"
+ },
+ {
+ "address": 110,
+ "page": 0,
+ "value": "0x400080077ff47fff"
+ },
+ {
+ "address": 111,
+ "page": 0,
+ "value": "0x480080057ff48000"
+ },
+ {
+ "address": 112,
+ "page": 0,
+ "value": "0x400080087ff37fff"
+ },
+ {
+ "address": 113,
+ "page": 0,
+ "value": "0x480080097ff38000"
+ },
+ {
+ "address": 114,
+ "page": 0,
+ "value": "0x480080047ff18000"
+ },
+ {
+ "address": 115,
+ "page": 0,
+ "value": "0x48307fff7ffe8000"
+ },
+ {
+ "address": 116,
+ "page": 0,
+ "value": "0x4000800c7ff07fff"
+ },
+ {
+ "address": 117,
+ "page": 0,
+ "value": "0x4800800a7ff08000"
+ },
+ {
+ "address": 118,
+ "page": 0,
+ "value": "0x480080057fee8000"
+ },
+ {
+ "address": 119,
+ "page": 0,
+ "value": "0x48307fff7ffe8000"
+ },
+ {
+ "address": 120,
+ "page": 0,
+ "value": "0x4000800d7fed7fff"
+ },
+ {
+ "address": 121,
+ "page": 0,
+ "value": "0x4800800b7fed8000"
+ },
+ {
+ "address": 122,
+ "page": 0,
+ "value": "0x4000800e7fec7fff"
+ },
+ {
+ "address": 123,
+ "page": 0,
+ "value": "0x4800800f7fec8000"
+ },
+ {
+ "address": 124,
+ "page": 0,
+ "value": "0x480080067fea8000"
+ },
+ {
+ "address": 125,
+ "page": 0,
+ "value": "0x48307fff7ffe8000"
+ },
+ {
+ "address": 126,
+ "page": 0,
+ "value": "0x400080127fe97fff"
+ },
+ {
+ "address": 127,
+ "page": 0,
+ "value": "0x480080107fe98000"
+ },
+ {
+ "address": 128,
+ "page": 0,
+ "value": "0x480080077fe78000"
+ },
+ {
+ "address": 129,
+ "page": 0,
+ "value": "0x48307fff7ffe8000"
+ },
+ {
+ "address": 130,
+ "page": 0,
+ "value": "0x400080137fe67fff"
+ },
+ {
+ "address": 131,
+ "page": 0,
+ "value": "0x480080117fe68000"
+ },
+ {
+ "address": 132,
+ "page": 0,
+ "value": "0x400080147fe57fff"
+ },
+ {
+ "address": 133,
+ "page": 0,
+ "value": "0x480080157fe58000"
+ },
+ {
+ "address": 134,
+ "page": 0,
+ "value": "0x480080087fe38000"
+ },
+ {
+ "address": 135,
+ "page": 0,
+ "value": "0x48307fff7ffe8000"
+ },
+ {
+ "address": 136,
+ "page": 0,
+ "value": "0x400080187fe27fff"
+ },
+ {
+ "address": 137,
+ "page": 0,
+ "value": "0x480080167fe28000"
+ },
+ {
+ "address": 138,
+ "page": 0,
+ "value": "0x480080097fe08000"
+ },
+ {
+ "address": 139,
+ "page": 0,
+ "value": "0x48307fff7ffe8000"
+ },
+ {
+ "address": 140,
+ "page": 0,
+ "value": "0x400080197fdf7fff"
+ },
+ {
+ "address": 141,
+ "page": 0,
+ "value": "0x480080177fdf8000"
+ },
+ {
+ "address": 142,
+ "page": 0,
+ "value": "0x4000801a7fde7fff"
+ },
+ {
+ "address": 143,
+ "page": 0,
+ "value": "0x4800801b7fde8000"
+ },
+ {
+ "address": 144,
+ "page": 0,
+ "value": "0x4800801c7fdd8000"
+ },
+ {
+ "address": 145,
+ "page": 0,
+ "value": "0x4800801d7fdc8000"
+ },
+ {
+ "address": 146,
+ "page": 0,
+ "value": "0x482480017fda8000"
+ },
+ {
+ "address": 147,
+ "page": 0,
+ "value": "0xa"
+ },
+ {
+ "address": 148,
+ "page": 0,
+ "value": "0x482480017fda8000"
+ },
+ {
+ "address": 149,
+ "page": 0,
+ "value": "0x1e"
+ },
+ {
+ "address": 150,
+ "page": 0,
+ "value": "0x10780017fff7fff"
+ },
+ {
+ "address": 151,
+ "page": 0,
+ "value": "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffc5"
+ },
+ {
+ "address": 152,
+ "page": 0,
+ "value": "0x40780017fff7fff"
+ },
+ {
+ "address": 153,
+ "page": 0,
+ "value": "0x1"
+ },
+ {
+ "address": 154,
+ "page": 0,
+ "value": "0x20680017fff7fff"
+ },
+ {
+ "address": 155,
+ "page": 0,
+ "value": "0x4"
+ },
+ {
+ "address": 156,
+ "page": 0,
+ "value": "0x10780017fff7fff"
+ },
+ {
+ "address": 157,
+ "page": 0,
+ "value": "0x12"
+ },
+ {
+ "address": 158,
+ "page": 0,
+ "value": "0x480080007ffc8000"
+ },
+ {
+ "address": 159,
+ "page": 0,
+ "value": "0x48307fff7ff88000"
+ },
+ {
+ "address": 160,
+ "page": 0,
+ "value": "0x400080007ffb7fff"
+ },
+ {
+ "address": 161,
+ "page": 0,
+ "value": "0x480080017ffa8000"
+ },
+ {
+ "address": 162,
+ "page": 0,
+ "value": "0x48307fff7ff78000"
+ },
+ {
+ "address": 163,
+ "page": 0,
+ "value": "0x400080017ff97fff"
+ },
+ {
+ "address": 164,
+ "page": 0,
+ "value": "0x400080027ff97ff7"
+ },
+ {
+ "address": 165,
+ "page": 0,
+ "value": "0x480080037ff98000"
+ },
+ {
+ "address": 166,
+ "page": 0,
+ "value": "0x480080047ff88000"
+ },
+ {
+ "address": 167,
+ "page": 0,
+ "value": "0x480080057ff78000"
+ },
+ {
+ "address": 168,
+ "page": 0,
+ "value": "0x482480017ff58000"
+ },
+ {
+ "address": 169,
+ "page": 0,
+ "value": "0x2"
+ },
+ {
+ "address": 170,
+ "page": 0,
+ "value": "0x482480017ff58000"
+ },
+ {
+ "address": 171,
+ "page": 0,
+ "value": "0x6"
+ },
+ {
+ "address": 172,
+ "page": 0,
+ "value": "0x10780017fff7fff"
+ },
+ {
+ "address": 173,
+ "page": 0,
+ "value": "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffaf"
+ },
+ {
+ "address": 174,
+ "page": 0,
+ "value": "0x482a7ffc7ffd8000"
+ },
+ {
+ "address": 175,
+ "page": 0,
+ "value": "0x48307ffb80007fff"
+ },
+ {
+ "address": 176,
+ "page": 0,
+ "value": "0x20680017fff7fff"
+ },
+ {
+ "address": 177,
+ "page": 0,
+ "value": "0xb"
+ },
+ {
+ "address": 178,
+ "page": 0,
+ "value": "0x482480017ff78000"
+ },
+ {
+ "address": 179,
+ "page": 0,
+ "value": "0x1"
+ },
+ {
+ "address": 180,
+ "page": 0,
+ "value": "0x400080007ffa7fff"
+ },
+ {
+ "address": 181,
+ "page": 0,
+ "value": "0x400080017ffa7ff7"
+ },
+ {
+ "address": 182,
+ "page": 0,
+ "value": "0x400080027ffa7ff8"
+ },
+ {
+ "address": 183,
+ "page": 0,
+ "value": "0x482480017ffa8000"
+ },
+ {
+ "address": 184,
+ "page": 0,
+ "value": "0x6"
+ },
+ {
+ "address": 185,
+ "page": 0,
+ "value": "0x480080037ff98000"
+ },
+ {
+ "address": 186,
+ "page": 0,
+ "value": "0x208b7fff7fff7ffe"
+ },
+ {
+ "address": 187,
+ "page": 0,
+ "value": "0x400680017fff7fff"
+ },
+ {
+ "address": 188,
+ "page": 0,
+ "value": "0x1"
+ },
+ {
+ "address": 189,
+ "page": 0,
+ "value": "0x480080007ffa8000"
+ },
+ {
+ "address": 190,
+ "page": 0,
+ "value": "0x48307fff7ff68000"
+ },
+ {
+ "address": 191,
+ "page": 0,
+ "value": "0x400080007ff97fff"
+ },
+ {
+ "address": 192,
+ "page": 0,
+ "value": "0x482480017ff68000"
+ },
+ {
+ "address": 193,
+ "page": 0,
+ "value": "0x1"
+ },
+ {
+ "address": 194,
+ "page": 0,
+ "value": "0x400080017ff87fff"
+ },
+ {
+ "address": 195,
+ "page": 0,
+ "value": "0x400080027ff87ff6"
+ },
+ {
+ "address": 196,
+ "page": 0,
+ "value": "0x482480017ff88000"
+ },
+ {
+ "address": 197,
+ "page": 0,
+ "value": "0x6"
+ },
+ {
+ "address": 198,
+ "page": 0,
+ "value": "0x480080037ff78000"
+ },
+ {
+ "address": 199,
+ "page": 0,
+ "value": "0x208b7fff7fff7ffe"
+ },
+ {
+ "address": 200,
+ "page": 0,
+ "value": "0x480280007ffd8000"
+ },
+ {
+ "address": 201,
+ "page": 0,
+ "value": "0x48327fff7ffd8000"
+ },
+ {
+ "address": 202,
+ "page": 0,
+ "value": "0x480a7ffc7fff8000"
+ },
+ {
+ "address": 203,
+ "page": 0,
+ "value": "0x480080007ffe8000"
+ },
+ {
+ "address": 204,
+ "page": 0,
+ "value": "0x48007fff7ffd8000"
+ },
+ {
+ "address": 205,
+ "page": 0,
+ "value": "0x480080007ffd7fff"
+ },
+ {
+ "address": 206,
+ "page": 0,
+ "value": "0x400080017ffc7ffd"
+ },
+ {
+ "address": 207,
+ "page": 0,
+ "value": "0x482480017ffb8000"
+ },
+ {
+ "address": 208,
+ "page": 0,
+ "value": "0x800000000000011000000000000000000000000000000000000000000000000"
+ },
+ {
+ "address": 209,
+ "page": 0,
+ "value": "0x482480017ffb8000"
+ },
+ {
+ "address": 210,
+ "page": 0,
+ "value": "0x3"
+ },
+ {
+ "address": 211,
+ "page": 0,
+ "value": "0x480080027ffa8000"
+ },
+ {
+ "address": 212,
+ "page": 0,
+ "value": "0x40287ffd7ffc7ffd"
+ },
+ {
+ "address": 213,
+ "page": 0,
+ "value": "0x20680017fff7ffc"
+ },
+ {
+ "address": 214,
+ "page": 0,
+ "value": "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff8"
+ },
+ {
+ "address": 215,
+ "page": 0,
+ "value": "0x208b7fff7fff7ffe"
+ },
+ {
+ "address": 216,
+ "page": 0,
+ "value": "0x482680017ffd8000"
+ },
+ {
+ "address": 217,
+ "page": 0,
+ "value": "0x800000000000011000000000000000000000000000000000000000000000000"
+ },
+ {
+ "address": 218,
+ "page": 0,
+ "value": "0x20680017fff7fff"
+ },
+ {
+ "address": 219,
+ "page": 0,
+ "value": "0xc"
+ },
+ {
+ "address": 220,
+ "page": 0,
+ "value": "0x480a7ffb7fff8000"
+ },
+ {
+ "address": 221,
+ "page": 0,
+ "value": "0x480280007ffc8000"
+ },
+ {
+ "address": 222,
+ "page": 0,
+ "value": "0x482680017ffc8000"
+ },
+ {
+ "address": 223,
+ "page": 0,
+ "value": "0x1"
+ },
+ {
+ "address": 224,
+ "page": 0,
+ "value": "0x1104800180018000"
+ },
+ {
+ "address": 225,
+ "page": 0,
+ "value": "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff73"
+ },
+ {
+ "address": 226,
+ "page": 0,
+ "value": "0x480a7ffa7fff8000"
+ },
+ {
+ "address": 227,
+ "page": 0,
+ "value": "0x48127ffd7fff8000"
+ },
+ {
+ "address": 228,
+ "page": 0,
+ "value": "0x48127ffd7fff8000"
+ },
+ {
+ "address": 229,
+ "page": 0,
+ "value": "0x208b7fff7fff7ffe"
+ },
+ {
+ "address": 230,
+ "page": 0,
+ "value": "0x480a7ffa7fff8000"
+ },
+ {
+ "address": 231,
+ "page": 0,
+ "value": "0x480a7ffc7fff8000"
+ },
+ {
+ "address": 232,
+ "page": 0,
+ "value": "0x1104800180018000"
+ },
+ {
+ "address": 233,
+ "page": 0,
+ "value": "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffe1"
+ },
+ {
+ "address": 234,
+ "page": 0,
+ "value": "0x48127ffe7fff8000"
+ },
+ {
+ "address": 235,
+ "page": 0,
+ "value": "0x480a7ffb7fff8000"
+ },
+ {
+ "address": 236,
+ "page": 0,
+ "value": "0x48127ffd7fff8000"
+ },
+ {
+ "address": 237,
+ "page": 0,
+ "value": "0x208b7fff7fff7ffe"
+ },
+ {
+ "address": 238,
+ "page": 0,
+ "value": "0x40780017fff7fff"
+ },
+ {
+ "address": 239,
+ "page": 0,
+ "value": "0x1e"
+ },
+ {
+ "address": 240,
+ "page": 0,
+ "value": "0x1104800180018000"
+ },
+ {
+ "address": 241,
+ "page": 0,
+ "value": "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff18"
+ },
+ {
+ "address": 242,
+ "page": 0,
+ "value": "0x40137ffe7fff8000"
+ },
+ {
+ "address": 243,
+ "page": 0,
+ "value": "0x400380007ff98002"
+ },
+ {
+ "address": 244,
+ "page": 0,
+ "value": "0x480680017fff8000"
+ },
+ {
+ "address": 245,
+ "page": 0,
+ "value": "0x0"
+ },
+ {
+ "address": 246,
+ "page": 0,
+ "value": "0x4002800180017fff"
+ },
+ {
+ "address": 247,
+ "page": 0,
+ "value": "0x480280017ff98000"
+ },
+ {
+ "address": 248,
+ "page": 0,
+ "value": "0x480280077ff98000"
+ },
+ {
+ "address": 249,
+ "page": 0,
+ "value": "0x480a80017fff8000"
+ },
+ {
+ "address": 250,
+ "page": 0,
+ "value": "0x480a7ffd7fff8000"
+ },
+ {
+ "address": 251,
+ "page": 0,
+ "value": "0x1104800180018000"
+ },
+ {
+ "address": 252,
+ "page": 0,
+ "value": "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffde"
+ },
+ {
+ "address": 253,
+ "page": 0,
+ "value": "0x4002800180027fff"
+ },
+ {
+ "address": 254,
+ "page": 0,
+ "value": "0x4027800180018003"
+ },
+ {
+ "address": 255,
+ "page": 0,
+ "value": "0x4"
+ },
+ {
+ "address": 256,
+ "page": 0,
+ "value": "0x4003800380018004"
+ },
+ {
+ "address": 257,
+ "page": 0,
+ "value": "0x482a800480038000"
+ },
+ {
+ "address": 258,
+ "page": 0,
+ "value": "0x4802800280018000"
+ },
+ {
+ "address": 259,
+ "page": 0,
+ "value": "0x40317fff7ffe8005"
+ },
+ {
+ "address": 260,
+ "page": 0,
+ "value": "0x4027800180028006"
+ },
+ {
+ "address": 261,
+ "page": 0,
+ "value": "0x2"
+ },
+ {
+ "address": 262,
+ "page": 0,
+ "value": "0x40137ffb7fff8007"
+ },
+ {
+ "address": 263,
+ "page": 0,
+ "value": "0x400380027ff98008"
+ },
+ {
+ "address": 264,
+ "page": 0,
+ "value": "0x400380037ff98009"
+ },
+ {
+ "address": 265,
+ "page": 0,
+ "value": "0x400380047ff9800a"
+ },
+ {
+ "address": 266,
+ "page": 0,
+ "value": "0x400380057ff9800b"
+ },
+ {
+ "address": 267,
+ "page": 0,
+ "value": "0x400380067ff9800c"
+ },
+ {
+ "address": 268,
+ "page": 0,
+ "value": "0x40137ffc7fff800d"
+ },
+ {
+ "address": 269,
+ "page": 0,
+ "value": "0x400380087ff9800e"
+ },
+ {
+ "address": 270,
+ "page": 0,
+ "value": "0x400380097ff9800f"
+ },
+ {
+ "address": 271,
+ "page": 0,
+ "value": "0x4003800a7ff98010"
+ },
+ {
+ "address": 272,
+ "page": 0,
+ "value": "0x480a7ffb7fff8000"
+ },
+ {
+ "address": 273,
+ "page": 0,
+ "value": "0x4826800180008000"
+ },
+ {
+ "address": 274,
+ "page": 0,
+ "value": "0x6"
+ },
+ {
+ "address": 275,
+ "page": 0,
+ "value": "0x480680017fff8000"
+ },
+ {
+ "address": 276,
+ "page": 0,
+ "value": "0xb"
+ },
+ {
+ "address": 277,
+ "page": 0,
+ "value": "0x480a80037fff8000"
+ },
+ {
+ "address": 278,
+ "page": 0,
+ "value": "0x480a80047fff8000"
+ },
+ {
+ "address": 279,
+ "page": 0,
+ "value": "0x1104800180018000"
+ },
+ {
+ "address": 280,
+ "page": 0,
+ "value": "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff11"
+ },
+ {
+ "address": 281,
+ "page": 0,
+ "value": "0x1088800580018000"
+ },
+ {
+ "address": 282,
+ "page": 0,
+ "value": "0x1104800180018000"
+ },
+ {
+ "address": 283,
+ "page": 0,
+ "value": "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffeef"
+ },
+ {
+ "address": 284,
+ "page": 0,
+ "value": "0x402a800480117fff"
+ },
+ {
+ "address": 285,
+ "page": 0,
+ "value": "0x480a7ffb7fff8000"
+ },
+ {
+ "address": 286,
+ "page": 0,
+ "value": "0x4826800180008000"
+ },
+ {
+ "address": 287,
+ "page": 0,
+ "value": "0x12"
+ },
+ {
+ "address": 288,
+ "page": 0,
+ "value": "0x480a80037fff8000"
+ },
+ {
+ "address": 289,
+ "page": 0,
+ "value": "0x480a80117fff8000"
+ },
+ {
+ "address": 290,
+ "page": 0,
+ "value": "0x480680017fff8000"
+ },
+ {
+ "address": 291,
+ "page": 0,
+ "value": "0xb"
+ },
+ {
+ "address": 292,
+ "page": 0,
+ "value": "0x1104800180018000"
+ },
+ {
+ "address": 293,
+ "page": 0,
+ "value": "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffeea"
+ },
+ {
+ "address": 294,
+ "page": 0,
+ "value": "0x402a800380047fff"
+ },
+ {
+ "address": 295,
+ "page": 0,
+ "value": "0x480a7ffa7fff8000"
+ },
+ {
+ "address": 296,
+ "page": 0,
+ "value": "0x4826800180008000"
+ },
+ {
+ "address": 297,
+ "page": 0,
+ "value": "0x6"
+ },
+ {
+ "address": 298,
+ "page": 0,
+ "value": "0x4826800180008000"
+ },
+ {
+ "address": 299,
+ "page": 0,
+ "value": "0x12"
+ },
+ {
+ "address": 300,
+ "page": 0,
+ "value": "0x480a7ffc7fff8000"
+ },
+ {
+ "address": 301,
+ "page": 0,
+ "value": "0x480680017fff8000"
+ },
+ {
+ "address": 302,
+ "page": 0,
+ "value": "0xb"
+ },
+ {
+ "address": 303,
+ "page": 0,
+ "value": "0x1104800180018000"
+ },
+ {
+ "address": 304,
+ "page": 0,
+ "value": "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff0f"
+ },
+ {
+ "address": 305,
+ "page": 0,
+ "value": "0x402b8002801d8012"
+ },
+ {
+ "address": 306,
+ "page": 0,
+ "value": "0x400380008002801d"
+ },
+ {
+ "address": 307,
+ "page": 0,
+ "value": "0x4826800180008000"
+ },
+ {
+ "address": 308,
+ "page": 0,
+ "value": "0x12"
+ },
+ {
+ "address": 309,
+ "page": 0,
+ "value": "0x48127ffe7fff8000"
+ },
+ {
+ "address": 310,
+ "page": 0,
+ "value": "0x208b7fff7fff7ffe"
+ },
+ {
+ "address": 311,
+ "page": 0,
+ "value": "0x40780017fff7fff"
+ },
+ {
+ "address": 312,
+ "page": 0,
+ "value": "0x23"
+ },
+ {
+ "address": 313,
+ "page": 0,
+ "value": "0x402780017ff38001"
+ },
+ {
+ "address": 314,
+ "page": 0,
+ "value": "0x1"
+ },
+ {
+ "address": 315,
+ "page": 0,
+ "value": "0x400b7ff47fff8002"
+ },
+ {
+ "address": 316,
+ "page": 0,
+ "value": "0x400b80007fff8003"
+ },
+ {
+ "address": 317,
+ "page": 0,
+ "value": "0x400b7ff67fff8004"
+ },
+ {
+ "address": 318,
+ "page": 0,
+ "value": "0x400b7ff77fff8005"
+ },
+ {
+ "address": 319,
+ "page": 0,
+ "value": "0x400b7ff87fff8006"
+ },
+ {
+ "address": 320,
+ "page": 0,
+ "value": "0x400b7ff97fff8007"
+ },
+ {
+ "address": 321,
+ "page": 0,
+ "value": "0x400b7ffa7fff8008"
+ },
+ {
+ "address": 322,
+ "page": 0,
+ "value": "0x400b7ffb7fff8009"
+ },
+ {
+ "address": 323,
+ "page": 0,
+ "value": "0x400b7ffc7fff800a"
+ },
+ {
+ "address": 324,
+ "page": 0,
+ "value": "0x400b7ffd7fff800b"
+ },
+ {
+ "address": 325,
+ "page": 0,
+ "value": "0x400780017fff800c"
+ },
+ {
+ "address": 326,
+ "page": 0,
+ "value": "0x6f7574707574"
+ },
+ {
+ "address": 327,
+ "page": 0,
+ "value": "0x400780017fff800d"
+ },
+ {
+ "address": 328,
+ "page": 0,
+ "value": "0x706564657273656e"
+ },
+ {
+ "address": 329,
+ "page": 0,
+ "value": "0x400780017fff800e"
+ },
+ {
+ "address": 330,
+ "page": 0,
+ "value": "0x72616e67655f636865636b"
+ },
+ {
+ "address": 331,
+ "page": 0,
+ "value": "0x400780017fff800f"
+ },
+ {
+ "address": 332,
+ "page": 0,
+ "value": "0x6563647361"
+ },
+ {
+ "address": 333,
+ "page": 0,
+ "value": "0x400780017fff8010"
+ },
+ {
+ "address": 334,
+ "page": 0,
+ "value": "0x62697477697365"
+ },
+ {
+ "address": 335,
+ "page": 0,
+ "value": "0x400780017fff8011"
+ },
+ {
+ "address": 336,
+ "page": 0,
+ "value": "0x65635f6f70"
+ },
+ {
+ "address": 337,
+ "page": 0,
+ "value": "0x400780017fff8012"
+ },
+ {
+ "address": 338,
+ "page": 0,
+ "value": "0x6b656363616b"
+ },
+ {
+ "address": 339,
+ "page": 0,
+ "value": "0x400780017fff8013"
+ },
+ {
+ "address": 340,
+ "page": 0,
+ "value": "0x706f736569646f6e"
+ },
+ {
+ "address": 341,
+ "page": 0,
+ "value": "0x400780017fff8014"
+ },
+ {
+ "address": 342,
+ "page": 0,
+ "value": "0x72616e67655f636865636b3936"
+ },
+ {
+ "address": 343,
+ "page": 0,
+ "value": "0x400780017fff8015"
+ },
+ {
+ "address": 344,
+ "page": 0,
+ "value": "0x6164645f6d6f64"
+ },
+ {
+ "address": 345,
+ "page": 0,
+ "value": "0x400780017fff8016"
+ },
+ {
+ "address": 346,
+ "page": 0,
+ "value": "0x6d756c5f6d6f64"
+ },
+ {
+ "address": 347,
+ "page": 0,
+ "value": "0x400780017fff8017"
+ },
+ {
+ "address": 348,
+ "page": 0,
+ "value": "0x1"
+ },
+ {
+ "address": 349,
+ "page": 0,
+ "value": "0x400780017fff8018"
+ },
+ {
+ "address": 350,
+ "page": 0,
+ "value": "0x3"
+ },
+ {
+ "address": 351,
+ "page": 0,
+ "value": "0x400780017fff8019"
+ },
+ {
+ "address": 352,
+ "page": 0,
+ "value": "0x1"
+ },
+ {
+ "address": 353,
+ "page": 0,
+ "value": "0x400780017fff801a"
+ },
+ {
+ "address": 354,
+ "page": 0,
+ "value": "0x2"
+ },
+ {
+ "address": 355,
+ "page": 0,
+ "value": "0x400780017fff801b"
+ },
+ {
+ "address": 356,
+ "page": 0,
+ "value": "0x5"
+ },
+ {
+ "address": 357,
+ "page": 0,
+ "value": "0x400780017fff801c"
+ },
+ {
+ "address": 358,
+ "page": 0,
+ "value": "0x7"
+ },
+ {
+ "address": 359,
+ "page": 0,
+ "value": "0x400780017fff801d"
+ },
+ {
+ "address": 360,
+ "page": 0,
+ "value": "0x10"
+ },
+ {
+ "address": 361,
+ "page": 0,
+ "value": "0x400780017fff801e"
+ },
+ {
+ "address": 362,
+ "page": 0,
+ "value": "0x6"
+ },
+ {
+ "address": 363,
+ "page": 0,
+ "value": "0x400780017fff801f"
+ },
+ {
+ "address": 364,
+ "page": 0,
+ "value": "0x1"
+ },
+ {
+ "address": 365,
+ "page": 0,
+ "value": "0x400780017fff8020"
+ },
+ {
+ "address": 366,
+ "page": 0,
+ "value": "0x7"
+ },
+ {
+ "address": 367,
+ "page": 0,
+ "value": "0x400780017fff8021"
+ },
+ {
+ "address": 368,
+ "page": 0,
+ "value": "0x7"
+ },
+ {
+ "address": 369,
+ "page": 0,
+ "value": "0x1104800180018000"
+ },
+ {
+ "address": 370,
+ "page": 0,
+ "value": "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffe97"
+ },
+ {
+ "address": 371,
+ "page": 0,
+ "value": "0x482480017ffe8000"
+ },
+ {
+ "address": 372,
+ "page": 0,
+ "value": "0x1"
+ },
+ {
+ "address": 373,
+ "page": 0,
+ "value": "0x480a7ff57fff8000"
+ },
+ {
+ "address": 374,
+ "page": 0,
+ "value": "0x482480017ffc8000"
+ },
+ {
+ "address": 375,
+ "page": 0,
+ "value": "0xc"
+ },
+ {
+ "address": 376,
+ "page": 0,
+ "value": "0x482480017ffb8000"
+ },
+ {
+ "address": 377,
+ "page": 0,
+ "value": "0x17"
+ },
+ {
+ "address": 378,
+ "page": 0,
+ "value": "0x480280007ff38000"
+ },
+ {
+ "address": 379,
+ "page": 0,
+ "value": "0x1104800180018000"
+ },
+ {
+ "address": 380,
+ "page": 0,
+ "value": "0x26"
+ },
+ {
+ "address": 381,
+ "page": 0,
+ "value": "0x400a80007fff7fff"
+ },
+ {
+ "address": 382,
+ "page": 0,
+ "value": "0x40137ffe7fff8022"
+ },
+ {
+ "address": 383,
+ "page": 0,
+ "value": "0x4802800280228000"
+ },
+ {
+ "address": 384,
+ "page": 0,
+ "value": "0x48307ffe80007fff"
+ },
+ {
+ "address": 385,
+ "page": 0,
+ "value": "0x480680017fff8000"
+ },
+ {
+ "address": 386,
+ "page": 0,
+ "value": "0x40"
+ },
+ {
+ "address": 387,
+ "page": 0,
+ "value": "0x1104800180018000"
+ },
+ {
+ "address": 388,
+ "page": 0,
+ "value": "0xe"
+ },
+ {
+ "address": 389,
+ "page": 0,
+ "value": "0x4802800080228000"
+ },
+ {
+ "address": 390,
+ "page": 0,
+ "value": "0x4802800180228000"
+ },
+ {
+ "address": 391,
+ "page": 0,
+ "value": "0x4802800280228000"
+ },
+ {
+ "address": 392,
+ "page": 0,
+ "value": "0x4802800380228000"
+ },
+ {
+ "address": 393,
+ "page": 0,
+ "value": "0x4802800480228000"
+ },
+ {
+ "address": 394,
+ "page": 0,
+ "value": "0x4802800580228000"
+ },
+ {
+ "address": 395,
+ "page": 0,
+ "value": "0x4802800680228000"
+ },
+ {
+ "address": 396,
+ "page": 0,
+ "value": "0x4802800780228000"
+ },
+ {
+ "address": 397,
+ "page": 0,
+ "value": "0x4802800880228000"
+ },
+ {
+ "address": 398,
+ "page": 0,
+ "value": "0x4802800980228000"
+ },
+ {
+ "address": 399,
+ "page": 0,
+ "value": "0x4802800a80228000"
+ },
+ {
+ "address": 400,
+ "page": 0,
+ "value": "0x208b7fff7fff7ffe"
+ },
+ {
+ "address": 401,
+ "page": 0,
+ "value": "0x20780017fff7ffd"
+ },
+ {
+ "address": 402,
+ "page": 0,
+ "value": "0x5"
+ },
+ {
+ "address": 403,
+ "page": 0,
+ "value": "0x400780017fff7ffc"
+ },
+ {
+ "address": 404,
+ "page": 0,
+ "value": "0x0"
+ },
+ {
+ "address": 405,
+ "page": 0,
+ "value": "0x208b7fff7fff7ffe"
+ },
+ {
+ "address": 406,
+ "page": 0,
+ "value": "0x40780017fff7fff"
+ },
+ {
+ "address": 407,
+ "page": 0,
+ "value": "0x1"
+ },
+ {
+ "address": 408,
+ "page": 0,
+ "value": "0x48307fff7fff8000"
+ },
+ {
+ "address": 409,
+ "page": 0,
+ "value": "0x48317fff80007ffc"
+ },
+ {
+ "address": 410,
+ "page": 0,
+ "value": "0x40507fff7fff7fff"
+ },
+ {
+ "address": 411,
+ "page": 0,
+ "value": "0x48127ffd7fff8000"
+ },
+ {
+ "address": 412,
+ "page": 0,
+ "value": "0x482680017ffd8000"
+ },
+ {
+ "address": 413,
+ "page": 0,
+ "value": "0x800000000000011000000000000000000000000000000000000000000000000"
+ },
+ {
+ "address": 414,
+ "page": 0,
+ "value": "0x1104800180018000"
+ },
+ {
+ "address": 415,
+ "page": 0,
+ "value": "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff4"
+ },
+ {
+ "address": 416,
+ "page": 0,
+ "value": "0x208b7fff7fff7ffe"
+ },
+ {
+ "address": 417,
+ "page": 0,
+ "value": "0x20780017fff7ffd"
+ },
+ {
+ "address": 418,
+ "page": 0,
+ "value": "0x5"
+ },
+ {
+ "address": 419,
+ "page": 0,
+ "value": "0x480a7ff97fff8000"
+ },
+ {
+ "address": 420,
+ "page": 0,
+ "value": "0x480a7ffa7fff8000"
+ },
+ {
+ "address": 421,
+ "page": 0,
+ "value": "0x208b7fff7fff7ffe"
+ },
+ {
+ "address": 422,
+ "page": 0,
+ "value": "0x40780017fff7fff"
+ },
+ {
+ "address": 423,
+ "page": 0,
+ "value": "0x1"
+ },
+ {
+ "address": 424,
+ "page": 0,
+ "value": "0x480a7ff97fff8000"
+ },
+ {
+ "address": 425,
+ "page": 0,
+ "value": "0x480a7ffa7fff8000"
+ },
+ {
+ "address": 426,
+ "page": 0,
+ "value": "0x480a7ffb7fff8000"
+ },
+ {
+ "address": 427,
+ "page": 0,
+ "value": "0x480a7ffc7fff8000"
+ },
+ {
+ "address": 428,
+ "page": 0,
+ "value": "0x48127ffb7fff8000"
+ },
+ {
+ "address": 429,
+ "page": 0,
+ "value": "0x1104800180018000"
+ },
+ {
+ "address": 430,
+ "page": 0,
+ "value": "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff42"
+ },
+ {
+ "address": 431,
+ "page": 0,
+ "value": "0x480a7ffb7fff8000"
+ },
+ {
+ "address": 432,
+ "page": 0,
+ "value": "0x480a7ffc7fff8000"
+ },
+ {
+ "address": 433,
+ "page": 0,
+ "value": "0x482680017ffd8000"
+ },
+ {
+ "address": 434,
+ "page": 0,
+ "value": "0x800000000000011000000000000000000000000000000000000000000000000"
+ },
+ {
+ "address": 435,
+ "page": 0,
+ "value": "0x1104800180018000"
+ },
+ {
+ "address": 436,
+ "page": 0,
+ "value": "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffef"
+ },
+ {
+ "address": 437,
+ "page": 0,
+ "value": "0x208b7fff7fff7ffe"
+ },
+ {
+ "address": 438,
+ "page": 0,
+ "value": "0x480a7ff37fff8000"
+ },
+ {
+ "address": 439,
+ "page": 0,
+ "value": "0x480a7ff47fff8000"
+ },
+ {
+ "address": 440,
+ "page": 0,
+ "value": "0x480a7ff57fff8000"
+ },
+ {
+ "address": 441,
+ "page": 0,
+ "value": "0x480a7ff67fff8000"
+ },
+ {
+ "address": 442,
+ "page": 0,
+ "value": "0x480a7ff77fff8000"
+ },
+ {
+ "address": 443,
+ "page": 0,
+ "value": "0x480a7ff87fff8000"
+ },
+ {
+ "address": 444,
+ "page": 0,
+ "value": "0x480a7ff97fff8000"
+ },
+ {
+ "address": 445,
+ "page": 0,
+ "value": "0x480a7ffa7fff8000"
+ },
+ {
+ "address": 446,
+ "page": 0,
+ "value": "0x480a7ffb7fff8000"
+ },
+ {
+ "address": 447,
+ "page": 0,
+ "value": "0x480a7ffc7fff8000"
+ },
+ {
+ "address": 448,
+ "page": 0,
+ "value": "0x480a7ffd7fff8000"
+ },
+ {
+ "address": 449,
+ "page": 0,
+ "value": "0x1104800180018000"
+ },
+ {
+ "address": 450,
+ "page": 0,
+ "value": "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff77"
+ },
+ {
+ "address": 451,
+ "page": 0,
+ "value": "0x208b7fff7fff7ffe"
+ },
+ {
+ "address": 452,
+ "page": 0,
+ "value": "0x1c6"
+ },
+ {
+ "address": 453,
+ "page": 0,
+ "value": "0x0"
+ },
+ {
+ "address": 454,
+ "page": 0,
+ "value": "0x620"
+ },
+ {
+ "address": 455,
+ "page": 0,
+ "value": "0x624"
+ },
+ {
+ "address": 456,
+ "page": 0,
+ "value": "0x6e4"
+ },
+ {
+ "address": 457,
+ "page": 0,
+ "value": "0x724"
+ },
+ {
+ "address": 458,
+ "page": 0,
+ "value": "0x724"
+ },
+ {
+ "address": 459,
+ "page": 0,
+ "value": "0x724"
+ },
+ {
+ "address": 460,
+ "page": 0,
+ "value": "0x724"
+ },
+ {
+ "address": 461,
+ "page": 0,
+ "value": "0x724"
+ },
+ {
+ "address": 462,
+ "page": 0,
+ "value": "0x724"
+ },
+ {
+ "address": 463,
+ "page": 0,
+ "value": "0x724"
+ },
+ {
+ "address": 464,
+ "page": 0,
+ "value": "0x724"
+ },
+ {
+ "address": 1557,
+ "page": 0,
+ "value": "0x624"
+ },
+ {
+ "address": 1558,
+ "page": 0,
+ "value": "0x654"
+ },
+ {
+ "address": 1559,
+ "page": 0,
+ "value": "0x6ef"
+ },
+ {
+ "address": 1560,
+ "page": 0,
+ "value": "0x724"
+ },
+ {
+ "address": 1561,
+ "page": 0,
+ "value": "0x724"
+ },
+ {
+ "address": 1562,
+ "page": 0,
+ "value": "0x724"
+ },
+ {
+ "address": 1563,
+ "page": 0,
+ "value": "0x724"
+ },
+ {
+ "address": 1564,
+ "page": 0,
+ "value": "0x724"
+ },
+ {
+ "address": 1565,
+ "page": 0,
+ "value": "0x724"
+ },
+ {
+ "address": 1566,
+ "page": 0,
+ "value": "0x724"
+ },
+ {
+ "address": 1567,
+ "page": 0,
+ "value": "0x724"
+ },
+ {
+ "address": 1568,
+ "page": 0,
+ "value": "0x1"
+ },
+ {
+ "address": 1569,
+ "page": 0,
+ "value": "0x3"
+ },
+ {
+ "address": 1570,
+ "page": 0,
+ "value": "0x692250f91dddc2f26a007e6d4d8199b69aef55ec132392c7be067b715c01adb"
+ },
+ {
+ "address": 1571,
+ "page": 0,
+ "value": "0x2710"
+ }
+ ],
+ "rc_max": 32802,
+ "rc_min": 0
+ },
+ "version": {
+ "commit_hash": "INVALID_COMMIT",
+ "proof_hash": "INVALID_PROOF_HASH",
+ "statement_name": "INVALID_NAME"
+ },
+ "extra_annotations": [
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 534274: Hash(0x1b5d4a285ca38142cc49b9ce60ef8ca07223950e2c695b3348e3bb1f91c26a9)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 537982: Hash(0x2846511e95078aa614750666189bb31e7e4425157bca67d3316679e47420553)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 572076: Hash(0x647c1bfb076a436087b583882cf0a7ced97a0d23db59196afcc4fac56d141c0)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 635350: Hash(0x7821b9aeba6e54aa297506c5ed5e9d7e098308f30c736d83554de96e3345647)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 635575: Hash(0x3e9354b9002bc4cf43937dfd30fb537980de2b2b8d6c6d9052659b2a165ab69)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 720907: Hash(0x7591488694f8ba2252449845c20d2ac4b92a3cdf4631a30f91ddbc1627f3bb9)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 732035: Hash(0x57f96e8ce80e3b04be664ef5a7941d6356ce3843776a03338aec3e5ad4e061d)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 737902: Hash(0x47728ef9597a570ca03cd90dfd91906605813451c86ffc89da6e1156b976cbb)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 773385: Hash(0x7c92c891471951cbb09e97d3978ee6ccbc1f4d632ec0891ce9c7d3ad15c3ae3)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 807025: Hash(0x7304d594918b9458e9f135d274f57d408b0f22538622d623a9ac143f3b76f8e)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 814253: Hash(0x74e27e63c50916944b444edc1d530b573d483dedf0de66e8d694a27a7733cc3)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 815493: Hash(0x76bd6363bc8ecdb0ad0ad4a3316d8b5b9829a5b6da861d8c5c1d5891dc0f8ef)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 817192: Hash(0x783b9db5ff3a7947ec7ed56ee19df97bd3108c2df6378f89f7f9161b7f6a3fe)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 819886: Hash(0x60da659e245cab1e9c019c6f5b6221f7a3982858d2c5f71618db47e518e35c7)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 828144: Hash(0x7d75a8a9af48974b7a2fd2f5efe5a37b25ed5feac8312bcf30fd9c43abf01ed)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 843536: Hash(0x451bd0018d58fe6251cb3a9c6de65f832407ea5b88bccd5d3642d9778bff1b3)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 851297: Hash(0x35a93fff1bddcb11107eefea9d5c1ed46f0caf69cd6e1c304c7cb01304ba4d2)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 861310: Hash(0x1f1490ad34441df9d336956d4af79cfde0f648b31e72569586e8eef4cbc49ed)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 865756: Hash(0x3a53a5a30211c03e21c57c49aab664e64c9690f901bef351ce90a9a62932e80)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 883260: Hash(0x5516ffa4ac439182c9b50a7b6486dfe100f8335db4548ade4c938babf2ed732)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 939034: Hash(0x31bf52ef906183bb4b8bf920fcef6abd3763e7934916bbd9f3d8fdf08df9a89)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 940757: Hash(0x3a0874a713a3c80607e748ae0b59daf8b5424ced766146429944bbe9015fa7)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 944603: Hash(0x2dee639079e2e5b823466b188165a75fed29b6e16cd9b43d3a1bf7acc3e0cf3)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 948426: Hash(0x726e372b141c6669336bf58b91dfe1af197fef23f8620b70f8e9a6ad6a7e8ea)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 957442: Hash(0x556fa10d073995624b254aaa9091d9038574c87f26f1ae90651f26d7f9a2628)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 967951: Hash(0x2a24e7328b65e193eaa16a8085efff8662fee5ac7864a3e59c780df035f606b)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 971163: Hash(0x19d64b983d1a9c50904269dd42a435b4fb73371e6bdca8e974a67c95186c029)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 982512: Hash(0x250f49e71c7ba39c1451251e877e861a8066e05bc279aa1a76bd9bd0fb1ed63)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1010396: Hash(0x6a5776ae09db3575d0ce205a4a4e15ee1df2c220a4226eb1ddd600c2383691f)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1016759: Hash(0x48389390e2d846e0c7829b6ba48a1f066aed0cf075262548ea051d1bde60414)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1023248: Hash(0x5e1b52e0e2bf93c7291b32688467da3663793217c7016fc98b61658a2a14958)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1044663: Hash(0x523e3cd27d7c9e7c43d93563b10c126d6d1bac232f019b8863ed13905fd4652)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 534274: Hash(0x51af698dbd4edb4680acd0fac4454d8738903380ed019897084160d4f85c4ca)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 537982: Hash(0x27202aa119a9d110c2792bdedafdbb85ee3efda13b213a9995821e45a6e551b)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 572076: Hash(0x4c0346fc198ab940e55e3bab6fccd713b4301e3161809c0e298d22a1bdc36fc)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 635350: Hash(0x538748b278aa6e0d72cf47cbd70838efbd433f547fe4e6a58f50b364680bb62)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 635575: Hash(0xf43b1e991d030ae5e38147f7d0f10ff4dac14d294a8b1459aeac7af06def73)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 720907: Hash(0x74413f78437792ee1cdec8d471c2f4a87890d40b9ef0244e171c1a987e35339)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 732035: Hash(0x348fcad026f18cfd40f81e628642ef297b85f591857d45bc43caae121531b6c)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 737902: Hash(0x1ffa50cb25066969273d193f50356155ebeb27bea1c83a58809b568c6a27859)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 773385: Hash(0x4c1de5bc23e0a2152e91a4763f6fd10bf2ef5dd25240b8439d59ed0bb4341ed)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 807025: Hash(0x322e00e61811c3aca5015a55d4d00be6530b69935642c23c1951fdc56fc394a)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 814253: Hash(0x69156cf24942c3afb13c00953da48bcbfc19331a0173c86f45d12441cb96b6c)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 815493: Hash(0x5cdd2936e8c661171b7548175b1e978d4b97deb3bcd4a9a7b2787e3f2e4c283)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 817192: Hash(0x38c2f50c899e8bf59d0b16f6d297b82b09f1784873711246dfe96049a337f31)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 819886: Hash(0x22c7fac4f511cb60223347c377036eaa9207ceb1f9fdcbe8fe0eb53d3f19995)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 828144: Hash(0x49cce36638df3f8a1da204b290434cd99f5d807327cddf4f2cafddea4660731)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 843536: Hash(0x35c38b50785a6005f4adfaef8c6799b9e95182d4aa4e2fe98c124bbb3f4478d)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 851297: Hash(0x1b945a9e39766d507e7afe3bc230edf3e2a3adc102bd1ba9d59596f432a4a2a)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 861310: Hash(0x39c26c9053b831c850be8215a1324736fef7967ed77de8dc7c18996af5c6717)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 865756: Hash(0x11d269ede24cff0d6d2c9c3cc452ebc5a43655be28a4bb803d0cfa74b132eb8)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 883260: Hash(0xb6c1badd6d915be7a417b7638e698f287390df55ecb448b6ba15ed46ccbf5)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 939034: Hash(0x4ea8dd1b110abcd7977268a3df3acc535bee19608aee88e92213cc99c4ab606)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 940757: Hash(0x247d4c3d787c0a05242345aaf75b6878b06f360d6fc7a79292bd7d1eb337860)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 944603: Hash(0x5d1b8cc94157d9781bb10c94e3f80a3b414aa94ab59b05902d03a5cabf1ecd4)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 948426: Hash(0xc2fc789b297dc460040303aca9aeb16a382124f294cc796907e99f019dcac0)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 957442: Hash(0x4715854b088e3a212544239f7e900d8a3beacb34a255f81d8bd3efa5a817a94)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 967951: Hash(0x39572b329cf387be588c13e0413bf40e804857a30f6c43070fe4f3c1a7e17eb)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 971163: Hash(0x54ab4320bc3c6dd7729517f758b3595da4b1c3e343dfbf4096651fbe29b1e5c)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 982512: Hash(0x91395ff8851bd9570c721f04926e371d0d8abc12cfdfb4612fe44ff5847382)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1010396: Hash(0x3e5d63267e497e0f3eea8c882e99b2c65a2e31bc089d0a1778a34fe21a62a5e)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1016759: Hash(0x365bde9aaf411f49ed9e492e704babe3cb546c342a58b4263c5735fc29acb1c)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1023248: Hash(0x510caa1f03b9eb3520e5c1d76f98bd1da230d8c8df65507d41f5d52a8a4f056)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1044663: Hash(0xafdb901697acdb3ce10fcbeb2f4e69e7412982204953a270205f3bc78b3cda)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 534274: Hash(0x435e1d7ff36edba3246f166854deb7ae024d4a021e99d06e672ea7af0b9078a)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 537982: Hash(0x3bf41b46ef853fb23a2c1017f94b1b2e84bda2c9b36e657aa06a678933a76af)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 572076: Hash(0x7d7777ca6bd4a743b39eb0d1254a08c53f4d0d1afcecbb6379c8d043d738812)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 635350: Hash(0x4e9956a06103bd2a70b2a5e29fce46cc604a80e0e3e621e87a6e4afbf68b2bb)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 635575: Hash(0x57aa2932e4dcd3561569be81b0d288f403dbe26abb711b750d1027d45bdc6ec)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 720907: Hash(0x7057b5fe2b8eb4404c3a50cca77c448a310801c6e09de9fee94128d10de566c)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 732035: Hash(0x79a79f5239880f390ec92847e4361fc9977c8cc4deb26dccf26bc424215fa25)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 737902: Hash(0x301f2c2d8da2a4fe9467bdc91f9af27e5fc2105fbf35f07b55520eaada32fa7)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 773385: Hash(0x5fd3a66808d31a46430f84bc24d816173d461cff45d1460c62174c284a552a1)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 807025: Hash(0x5bf3141444face6bea02934217b529a3f71f922dd2064b0b735ea21ba496e9c)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 814253: Hash(0x6cbd7b120840774f30d73719952c244e3f08276874d83c3d6b15d8cb5f2cfff)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 815493: Hash(0x27013af2aeee96b9118a672127a61204403c0546a5aa2d428ecd6caeab4610e)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 817192: Hash(0x520705587ffa3d63539603e785ba0313679c59370cd1cee1043da17d1644f0f)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 819886: Hash(0x68e60e362418759dcb3eae6c18e91dcbad8fb5f56a144a70d4d23fb0f8faa29)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 828144: Hash(0x5d145a8904dfdad90642f7b93f239255250226ca19dd9dc6f1f60d7dc95fdac)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 843536: Hash(0x11d68bd8c9694377b366e5dd5e15378802120cc47231d7da2e31e96f0343e59)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 851297: Hash(0x26f8a795df0c9691b4f2506ebfcb87e5041862138fc755b06a13ae20704693c)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 861310: Hash(0x8ae9154b0228cc62d26867becf470dc50b48a9e7bf5052dc1b2e1bf59a7f15)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 865756: Hash(0x67cb28099226367fcb0a47c3357d117c807486ad40c7ef00c22e2c9d9b050b6)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 883260: Hash(0x6b801c22106b4c3d49858f621537563a3512e75e54368c487e9dbf21c6ab140)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 939034: Hash(0x50e3f8ac398652ee7a4f85351441ad4e0d58cbf8fc5c644673c3325852c0ffa)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 940757: Hash(0x48e86891e25daba22220531a53e33d92298914121f14ecadc93b489e2878f15)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 944603: Hash(0x74bafd29504cb2ecc3d3f2a19327ff7f96976023ac66d937bbd765c43c3ad9f)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 948426: Hash(0x365061aeb3fcdc0bec7c920608ba373570a70a097dfa3b193da80eaa4622da4)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 957442: Hash(0xdee9f3d208e069301eaddc41a4025f1f2eef9f9bd296e1ca7b66a0260f18af)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 967951: Hash(0x6a5ed57300e95dd40a78842548e503416baf38309e5e283fc729456d3b83a2a)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 971163: Hash(0x453c0846971f5a0e75d62973e2e4a567cfc93150e9521f746c935609f7469bd)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 982512: Hash(0x10356c49f3b373df129e28f4f9d462538fc85b0897c6c4a55f879acca5220ef)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1010396: Hash(0x16c7ef9f147c9edf90e5ecc0a7982b41d16ed99f5b460fa00c7d0c926f8d9d1)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1016759: Hash(0x7e2e1c29211e9b398c23020df4eb33e9da5cd36445a50a95d8b2904130434c2)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1023248: Hash(0x6e313b3a690a724b2821caa71a7fc5182a76289896e15a57a4efb30f16e012c)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1044663: Hash(0x3c51a3704997d5f6d17546e92a80122e59da446d100f5eaca05ab7a18da571f)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 1248, Column 2: Field Element(0x74f1f8cb0db8f79bb61187dffb17a495b4f5667542c8758f3ec5789833595c5)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 9986: Field Element(0x5a3130f2de3757f095c3b7ff72b1664f267aae242e9e5ee3989764724b6ad16)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 1711, Column 6: Field Element(0x6361abb99960334cad7ef9d1eb7dd2f00b66fdc9adac15a5812f4be18f7fb95)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 13694: Field Element(0x281dc74270c7e166359dd05b10fc35b1285b174b52cd86c5c677cc5ce084698)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 5973, Column 4: Field Element(0x1bc17309e1d8a7bc61dbe9db1f67f8ca913c4529659eba031dd2d84af3ce92b)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 47788: Field Element(0x3c47ef88e3c8257ae53f118b7bff58efdec824b81248fdcbd80b0081a724c40)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 13882, Column 6: Field Element(0x7879bdb300c1faef9cf91d4ee3a7239a92f049f3a725d3175c2563f42ce86fb)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 111062: Field Element(0x366c8a10b1046ed35859869de72416093f51c9a03ac7420dc4266a9ee8988de)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 13910, Column 7: Field Element(0x3a6bf1cc17baea956e77e2fe39aed5987505c8dd00fb10867a9c1444406a330)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 111287: Field Element(0x6b46656a11f51285700c36286abeecf3dd765fc8cc8fd2188b065227d69eb8a)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 24577, Column 3: Field Element(0x68aa360a5d98cbb4541a22051856237025578e09f6055cc689e5aa6a7c7e069)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 196619: Field Element(0x7b67e285cd76aea3f8d9ebfcf70ab79fb7613c820b85c4c29cc50a9509d284)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 25968, Column 3: Field Element(0x7babe17fdb5a53aa2eeefc3172137451c84bebffddd24480f7b2aebea9527e7)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 207747: Field Element(0x2c6ec6e9f3382ec7eeedb4ba392ea12512c907c5c7497b2b74170b567d5ff0)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 26701, Column 6: Field Element(0x5a6479e2025514f1a6e1953d1bc9dd574df57c9a844428737c371400966dc35)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 213614: Field Element(0x57573909adc2845a829121a0658540298a0a20d9f31e442210f3e1d7b1726ec)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 31137, Column 1: Field Element(0x942cad503fc3d565c47793f998db9ed867c06c8e1e79e4fad876b831a8f328)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 249097: Field Element(0x3f7ae7bd1f403aacd625ec8a23257d9465b799504d53d7b2f7e0f0170c932c1)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 35342, Column 1: Field Element(0x7eb67d0003ef63a2f430398e1c204e4502d8a16b0cec2c06a992f8fc11169c0)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 282737: Field Element(0x6547313f50b61a566fbf8f11cc0d8a0ceaffb84e0df093aeb4c833a0a53d2e2)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 36245, Column 5: Field Element(0x307c38b5251a561f57d4d23f0cd8f0ba4e46c2d4778935cf6d434d4a293f0e9)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 289965: Field Element(0x68750843afed9fb14f2e202b5879d50138eedf3f55d488f1fc1acaff27dc027)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 36400, Column 5: Field Element(0x7ac8ba9967b7f8ebb1a6f0f855d80954038c9ca452278a940612e7109a2a164)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 291205: Field Element(0x46fa333d7c9030cbda6adbd904b266dbab81871e482ee6270c22cdb8c8074be)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 36613, Column 0: Field Element(0x60000855e9e5b4ba5fd7c930a6b8c65b9c37654a040fa18cec9f51eb216fbb5)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 292904: Field Element(0x656f8a11c41e680332d583acda953ad02f57ec5f2a0a157e0b5b25d4431b552)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 36949, Column 6: Field Element(0x4b50daacf8621d291a7069278ab72a2464e930749fae0d07ef1ffab3b27be27)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 295598: Field Element(0x5b50fa71862818427a8287d2361b163e125d2a07ad6108f46795239c52281b0)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 37982, Column 0: Field Element(0x7fa861d7fc2db54790d0ade733f33d4d3b91f9e17be0d17d76d13903b239c53)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 303856: Field Element(0x242e03e0af6edf3a36b35bfcc4530200937e9330fe64d1784a4fbda34fd81e0)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 39906, Column 0: Field Element(0x5b8c43e96fec0aacbb385ab0bb04f2dbb64cc74f305871c8a9f54070399c8a4)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 319248: Field Element(0x7899882c7db8b30ca78ba4c6ff49f6b5e1aa54c1768e4b35bb66d06af72b2d)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 40876, Column 1: Field Element(0x14137f7357f78dc759186087c6115ea5a1ab8764b604f9ae0de6734242c9eff)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 327009: Field Element(0x274b95ac96d42cc07bff976dd1f229251a091d6d0890b8b9f871b954395cf6f)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 42127, Column 6: Field Element(0x4b66f3e827a06f865e41c16bb6433f21808fab6bd682b70a9210614808b0fb7)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 337022: Field Element(0x74e28818aa1558647d639ad667fec08d8d64ec0ae22aca5a8a2b0b9d755abf8)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 42683, Column 4: Field Element(0x104430b8dab9eae284140daadfb490c0c731dd2724bda49f23b363599a1d7cd)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 341468: Field Element(0x2e7f119f4069f5f9449f8904ef65c24025d6a6a79c807662b13626197fdb3c3)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 44871, Column 4: Field Element(0x65dd569a6654e8de65f6595a4710e8bc1c49fe05a0c37d036945cac3e5acd61)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 358972: Field Element(0x16d721235d6fc2266b4221c3d1638e8e2ec64e71c0ca37b996a5a720d31efeb)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 51843, Column 2: Field Element(0x280db210d81303cb72c8595812057586d822a0bd7cf3da01f500bbfa5fc19be)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 414746: Field Element(0x34757d9ce2b9632ce9cd88dfa06b1d25c7994d3d77da6cf180b4e3f258719f4)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 52058, Column 5: Field Element(0x512371ab2cac43de177980e19b879bc69c455f6fc08af9c7539420b32d184d5)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 416469: Field Element(0x4f3925f6bd2b301febc8fe3b6ba4f50f1ee8424ec23abbe33aa947a8bee1daa)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 52539, Column 3: Field Element(0x3260316bc72702e66ffbc98bda3091c95d8a122b04c8882e846da76921f6a3e)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 420315: Field Element(0x407caba1d9724cc96376160c088f7b6804b63e7006ed114f26b0b9447ddbe07)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 53017, Column 2: Field Element(0x6dcdad2c66f9c4203686ae140cde1cae4eea33f2698cca8ac193317f9dc1b71)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 424138: Field Element(0x1b78f17c4a782fdf723a002bb2a8267d3a9d0d7c7a294134c8397b0c60625cf)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 54144, Column 2: Field Element(0x7d71d4f02da0be1fdeb3751d4e7bda1328377223d406ab9bc48a4fdfac3200c)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 433154: Field Element(0x7e422d9cc0ca30061b9fe4261d2a2b7980c593bc199021b9a3c4326af87408a)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 55457, Column 7: Field Element(0x4cdfc99a479cf7ecf3766c61f67135d6bc1f49050a5828629eda82f0682a286)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 443663: Field Element(0x61fdbe3a826de5c2fe2eb16034e17f6554ab87b33e6774d90e80556dbb72c7b)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 55859, Column 3: Field Element(0x37297f03fa00f83206f69a2f782851dda4d6b978f15227de98acd915412deab)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 446875: Field Element(0x751c76df0a82afe59cf3d10ab93d3978b92761aa7f462b26c3987beaff06501)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 57278, Column 0: Field Element(0x99d8bcaa2c54a49b7c967571b3366a827e166e53807a537bbd1163cbe9849f)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 458224: Field Element(0x4797343d05123a80566457d2f890e9b87831464eade75dd73844a8b0abddfdf)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 60763, Column 4: Field Element(0x464c69cc98a80f1702c729745d482dc46343c056a510248e0994c4053a2962b)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 486108: Field Element(0x7e5d904aa35fcc76ad059c48e6a6959336e470b7bd2b21536050fb7e4c1e844)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 61558, Column 7: Field Element(0x1f8637afd0f18d2b2f32ddb5cb30599d2a06bc75e15e55458fd9ebe6f271a5c)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 492471: Field Element(0x7061f026af57b8df7141144859eebc39532eda934ce4c22998e828cd9e4f1be)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 62370, Column 0: Field Element(0x28b17d69c85c75927438c3c9836758f8a4c7942a4e414b94f8c86cf2609eb9b)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 498960: Field Element(0x3618b5b89a5cd2e2c7f65c612087e89381d46a782ca41603957e1e9f660f6fd)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: Row 65046, Column 7: Field Element(0xdfcc3c97e34ab09309220dc04d74d876c61d72492f07a41f24b401e2a174a8)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: xInv for index 520375: Field Element(0x57676732376e698fff73ef6d1b5910f139a5019f22a1cfc411c5be7f597def8)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 66784: Hash(0x736f15c085a11bba27a39ffb89e888810d7fb62850e8d58a80bd8c338e99da5)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 67247: Hash(0x3f51628d178ff783db3ab194e96b4f9fcb2d5bf0eb6ca4967b3703e34a31b3b)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 71509: Hash(0x6ff5c6951e2d16723b44e2d18fbd81e550448131b5f4d1a862efb7140aadd51)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 79418: Hash(0x3c827e8f01e2617285bd545caded646f678879190c7dbc33ad6468a09594cfb)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 79446: Hash(0x15acb9ba54565ebb56946500a9d24ec6b2f64044c27663f719efb8a0b0e2a88)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 90113: Hash(0x33d74a72062ff3922547efd0a4eb1200f70b30991f3bd695e87df27d10e236b)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 91504: Hash(0x6804586ad2760d5e0ef8d6af650511df355a5ba6321f80e80b4cf476e567624)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 92237: Hash(0x646b3d4da643ac0ee5b8ea54f1efb55b28de646a45bbb7b41e7aca281f2fab0)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 96673: Hash(0x33894c5353740525c80f3d832447d660eadce8d684c14bf9049004990b5d65f)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 100878: Hash(0xa3353d6bb43a094727d33cdfd12675a5cb7c105d34cb491ea9dd514ee770ea)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 101781: Hash(0x3f2ae031ac581573acb4b4aa826e4073bd1f1005849c7ac07f95145483fc95f)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 101936: Hash(0x1625bb3457ac97eb9a09f109b33d619db4c055a53e5c338f969da6851cc4eed)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 102149: Hash(0x3efa0ef20c7b396aac4ed24dd4318f1031a257dedbd9441bc6ca727547a73ee)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 102485: Hash(0x793b9a380788f470d0e99c523f7b641a9315327d14c741f869b56a22b7bf6a1)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 103518: Hash(0x5cbf3bc7f593164aee59f27f53347141ced6ac8f15f06d2df84500f8d9ec717)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 105442: Hash(0x27a32e888c2dcbb81b2ea0473eb01ac09dd98bb962df87e9a1210a85421ecbd)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 106412: Hash(0x1462e435b0608afd72c77acd6db0d3e49ef26caf0ee6465ed8a1d38d849d396)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 107663: Hash(0x371c6d0fe5e81180762efb8af4960dfc17fa40d28e3825ac4b109ff68021207)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 108219: Hash(0x5c5649e07c51911c79fc5020d9869ffb804233f616f15e232e778a05c7d8e2)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 110407: Hash(0x338782bc675d4b656f43a7b2e140c7882f5a151461ff40fc4d670bb8955a4ac)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 117379: Hash(0x1530cf9215a639552152fb9e1f0a48723911ce26098c28b05eacb48b90220f3)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 117594: Hash(0x1bdb7ca0bbf75ea1f5286ca08d30d8f67db6723ca06c35fad2d791424cdc92)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 118075: Hash(0x4a106e9cb8e4ebd7d0bd3a65c1072f7c6b3c500ce72965c075b91755a89dfde)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 118553: Hash(0x4647de59cc7a7139f3fd4c1e57e8f344beb9c960f2af8b836fc64b46c4ef2ed)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 119680: Hash(0x3af054d2a583daecf61e7bea44e7ebd02172aea4213226d2f4d3508cd76ddf6)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 120993: Hash(0x6d92bc3e2d34f086ef672a44893a2f709b693e4b1b10eb58229776b3d443130)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 121395: Hash(0x4f0ae27b66a6e801dddb1c5d55ddbae280cf85d8827a795b0064b1cace8d77a)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 122814: Hash(0x1415bb5d45b2126f7b686c6f320e6480fec98fe700a354aee8289b9acbba83f)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 126299: Hash(0x32201b5c5cdfc9778d4cddec1a016a9a1947d006ebd980a854d729243d1523f)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 127094: Hash(0x123f4dbf836b895e4256655029c9cf7713533bdcc85c67dae19d227420442ff)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 127906: Hash(0x5b203e0775d1cdeada1efcfa9415550b32d39428555b67dcf873c5a95b844b5)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 1: For node 130582: Hash(0x47a845acfd40747dbb4a673102fe6a971ffd1fac76bcad11a36d00221c46b9e)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 156, Column 0: Field Element(0x16dc184e5e07f3ec8cafb8f22bcaa09947b4fc319305badcd5332dfc1aa3eb3)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 1248: Field Element(0x49f325740562a021d59570939f12e694d12c810ae2afc2397c22fcf1c588d8d)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 213, Column 7: Field Element(0x5589ba6e3fe2ead88dfb22f9c1bb5d42c886bbab004d223031f0f1e9a350177)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 1711: Field Element(0x543f21d6a2c26819667e7abf1488fbf488af7039c6a0a545f28da3f774f4e81)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 746, Column 5: Field Element(0x5d41083a4b1fff87a56d96b58a706132e2de338f276dc538bebaf09576b97e6)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 5973: Field Element(0x33bb9060c9c1490edc4f1171c5d93ed084536231b97bd9e43a95867de8789f3)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 1735, Column 2: Field Element(0x2fc924c41b2bfa3e027475ab824587f0d4138e6ce62eb97d94c9b64572a4f5a)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 13882: Field Element(0x7262ab452653106f562d6a1886dd737dcb27eae306fe72f42ddef484ae80d4d)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 1738, Column 6: Field Element(0x2885ed799b31c26621d352a6a1600edf202d24c0c3e5f873cf894ea02adbdce)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 13910: Field Element(0x4b2cca97f180f1f0b32e648cbafde7eb4e2d443179ff83d5e9dd7b49c772731)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 3072, Column 1: Field Element(0x227eede6354ede36cc2c6fe728ec3cf04cf8582663b47eb3377298ffe2a880f)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 24577: Field Element(0x7452e2df4ef1318e519a30dc6d41b540d2afd2ef4789fda7fe997ee548a9c5e)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 3246, Column 0: Field Element(0x5b0455f01205cf1096b859ee488cec4eb1fc346d6fedbd51fda0c650a5d55d8)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 25968: Field Element(0x2cacbd5e968c86aaf34b446fce03ec5b0ecf88d4b1b15ceb552047425c1d055)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 3337, Column 5: Field Element(0x4fb455969a6800f7282c05d7e9705ab4a03055446eb6620a0f96e62bf61864c)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 26701: Field Element(0x165401e67e14ad2f21a21da12a7d9b74e98b039b2360111187bcf57e8595244)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 3892, Column 1: Field Element(0x148393b2d32f0f562b362f4054921e55272e2b3f05083e7ef6898e738e62873)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 31137: Field Element(0x37d13ab9340646b2acaea7fd03a1a8ffb98f5405ee877c653dcc0b010250cc1)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 4417, Column 6: Field Element(0x47744b83e50d92a2d97078f924755a9e12f7bdc060d64bfc0dae93cd40b3267)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 35342: Field Element(0x98a948d9f0d5ce7cbadb0779e2ef93d1fab7705cd79146dc5b10c496dc583c)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 4530, Column 5: Field Element(0x56a2daccdc56c420ab9a2cda96c40ff01b0b63d93a00ef24198b0bdc5e5e82f)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 36245: Field Element(0x75c87165eb6eab40bf56328f04fee45fd0d45c87e9196d527504c5bffa9b1b4)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 4550, Column 0: Field Element(0x51564a8bcacb1c9f7f98f54e4c6a5878833229420b22abd97730cef3e7505c9)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 36400: Field Element(0x45c51331f6d233728619b6c0e8d6bcdf4cc4d28a2282be588808dd468cfd2fc)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 4576, Column 5: Field Element(0x7eadbfd37e12f2be6ea502f6833dd72265de1854836131c7043d17461511daf)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 36613: Field Element(0x5f9abf352ea5e36881c3c03cc21c9e99a4036687a26cb72fca559574af6de3f)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 4618, Column 5: Field Element(0x5214e58cc339087cd0e0e25f03c18f7c55b1962cc9c53600a9a3b6515e66170)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 36949: Field Element(0x5e57184e680b3a19ef83b1eb3e1aaa8001373068d8f4a7a638432343bb7103e)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 4747, Column 6: Field Element(0x243b10f728f5995ac7442268afb5de90b297e2915329a5936f0ab34f7eb07fd)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 37982: Field Element(0x446d105afbb88fdb50b3e4810104bc69162c27c34eee61a650586258d738440)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 4988, Column 2: Field Element(0x4c0e70f1290fdf37dde57403ddfe5b44cfddfa2958fd2fddddebd8457831707)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 39906: Field Element(0x50024f2aa3d5c0b735a23122b170279a4dab8919bbfbfcfdd062e4d990a6af0)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 5109, Column 4: Field Element(0x48c8c883ebfb4c2dd1143ab08b1436d280fee963efbd4954e4b5426ca22bb5b)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 40876: Field Element(0x6c1b55fb51a8e108d78b748619823d42517f2d0fbc14ca89478598b5f78a074)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 5265, Column 7: Field Element(0x32a3e7706c81bd36e353f771ff28da2d97baa68f00f45026b1c159a66cd3ff9)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 42127: Field Element(0x1757550c04d43534ef5711482d6b55cfc4e79d39004630621767c30caa0f907)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 5335, Column 3: Field Element(0x1d09162f7f441ac09cf155874956713a145faf0aee24f9eea17b087e58e7971)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 42683: Field Element(0x594f6fa1dcdea9398be3c4cab45495a2734a7b176948b719e5ffb780576b14)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 5608, Column 7: Field Element(0x1d8c5ebcbc45a5136341cad7fd97d4e9c06c5a9c21d9201737fabae2198653d)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 44871: Field Element(0x58c5a9e52c05592f99f1d62a1f336a2b32f677f5d95138a61c632c2a75d8a55)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 6480, Column 3: Field Element(0x408135f47523c95dc0157c150d8bfedc8f14f959985d82c4b0e08a8da6000dd)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 51843: Field Element(0x708689af314fcedacf2f0f04347cd32587962e0fa8cd7060d1f06f93d155fbf)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 6507, Column 2: Field Element(0x679bc5be80ed1471c37058e0238a699e19a526f95b9b1677f7378304cc86f43)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 52058: Field Element(0x2fab9ea4aac068df5504df237e82c7cbf8efaefd7b6021e4791de321a81a1fc)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 6567, Column 3: Field Element(0x215fb65b9d8036c7337d61a2c3fe4b37b57a386579391af4eacc5072c35756d)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 52539: Field Element(0x35d1f9441170071f1a43d8078864721ad5721ba59c78766044ab894df6dafcc)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 6627, Column 1: Field Element(0x754845a2a47c253f47c646751593105547c62e91da420ff3ff704196f1ff4f)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 53017: Field Element(0x68f8f21cb6990a210a5cfc99a2a9e7a2c6c0726819176625deb89d77c6f7912)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 6768, Column 0: Field Element(0x5993e257ef5f85be271d47908433a651f938ea5a436798fce127fa535479a1c)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 54144: Field Element(0x43e10d8663f88c877de4ac1b341f4b25fbc0d14f241a48372ebc038503ecd37)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 6932, Column 1: Field Element(0x37546c6468ae92eb9b25faaac09b954d5cda3861fe8ad5e37e965cd3e258351)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 55457: Field Element(0x52aa1cfa20a60dcb11c0301d74a9bc977c35cf65ff3b65d85935712948afff7)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 6982, Column 3: Field Element(0x25a4239bb144b354dd5de31c1bde5f1d0ccc25c6f0c6c5d34ff4efb7a00967d)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 55859: Field Element(0x609de083f443c2445edf6057a983e5aaa49411ff1a75df1ecaf0effb65aa282)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 7159, Column 6: Field Element(0x26c63886639dfaf68d07bf0ede991c23c8c795f796a4589f2f9cac4e99d9efc)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 57278: Field Element(0x36306a2a81c56f86ed26051bc1d9027e7e2efefc96c6ac152dcf69662c72bbf)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 7595, Column 3: Field Element(0x4a8a565b398830e6990ed3e68b8760b1d319a598e5cdaec5d8353f16b11d52b)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 60763: Field Element(0x10ce8ae3ea48fd0084782404e584e3ccb6d2164ea5f8522f7b47d88f49495af)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 7694, Column 6: Field Element(0x3311b3876dc0669ea815c85d1c7033f5c243550d820ad50a013361ee5ba55f5)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 61558: Field Element(0x67b232250abb9c8582f2a4f3f39977053b1c165056280fd7d9c7a3a869c7958)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 7796, Column 2: Field Element(0x12c8ab2fb1b7e5cd5d6f3ce2b7a20ce5f4b7fe87032b2c9ad16bbf17416aec4)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 62370: Field Element(0x6d46f979ead145fea1ceb431f8bd8cfabcaaaa16fe7da3c777774b15ca226bb)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: Row 8130, Column 6: Field Element(0x774eddb751a6ff46790bc28c93f50a05f1871e6e7e7c7c7da3839e6035ef132)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: xInv for index 65046: Field Element(0x38ef498bd2e1385efabcae1ef39fca922942113d365143f10428757e69ddc9d)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 8348: Hash(0x74e066dc3e2fd14bf859a95168dd75fe80f7fd08b1f33ab67aba0ff2440bca0)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 8405: Hash(0x31df65248b2ed2b8b53db8702eadefdc4e0fb6748a8007cfea7143380f7e5ff)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 8938: Hash(0xe664fc783be4a892cac7ba397f3e9fab897801e48af0315cdd24a08a2bdab3)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 9927: Hash(0x533aedb290867bc1f9b015e392627323bf8b3fc4c5ada60d050eabd001df11a)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 9930: Hash(0x1402fdcf578e94907d229b44d5ea43254ead6754e70e9ae19442b6fc60130f4)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 11264: Hash(0x20a557c3fcfb1537570fedee53eb49c67bd610e77b455a4504be5a3aa9d0fe2)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 11438: Hash(0x7d36b2b0cf76e6bde65cade9d6854dba09c7636da62730c489c9d5b8d311532)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 11529: Hash(0x60f2d28782618aa9458265d1076df3bba8dbabe68f280c9322a390b6f4cd8c7)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 12084: Hash(0x11e4af00c0737321a6568e6cec3d6893c6ceca36f54d64492cce6836efca8fe)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 12609: Hash(0x4f2db16202e7759064f2008b20358ab64a51518c8e5f43db8de336068b8b260)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 12722: Hash(0x6ddc097177b81aed5f10669b15232c80e422d1e116328eb96c7c84cc09663f7)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 12742: Hash(0x7f0845457984b16754711fa75d94522a07a2c2d541d66e51073ed57f254405d)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 12768: Hash(0x7fce9927b45032bc226bede98bc0ef5997477eff5fe3f04dd3e5a418103c2a)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 12810: Hash(0x7e430823199b5acc198329f4e056e3db291d6909811608ceaeaf4d7dd1a480c)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 12939: Hash(0x196baa2dccb4da7d50bc5a900cf56d2c25f4ba694252c7a4b0ee46c4612f0c7)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 13180: Hash(0x6b01777fe053644f974a6dbf65e4f9f448a5384e04dab6f3af8bffd530a48a0)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 13301: Hash(0x3341cd9f734e8f7dd2737a19d675418db9a2714de3c9c079053fbd515af111)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 13457: Hash(0x5224fd179a6e95d6ab0a31a8b8cb42d48e4395fb1da75dd65d323f160789985)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 13527: Hash(0x3f0e694b23a65db2d6f82ca08d1a094551bd1ff44113cf0d8b2f340f3a9178e)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 13800: Hash(0x23a112660eb392adc7a496fb273da1e0d5e8523ba29739569fd1ef3997143c0)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 14672: Hash(0x1cc8efb732da59db15afcc54cb14d55585ae0436be572378665005a1b9137ab)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 14699: Hash(0x145aab42410df65a5ab43ac6557a59ab4b37b1f2635e8e80ffa23ba3b2bba49)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 14759: Hash(0x138c579858f51ba8cfbdd7cce1c2cf4ee0ec008bcc00d71d7ef7610a61c77b0)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 14819: Hash(0x6439b7506db2fad18a6fbd09fa29a24bdc0762c1745911d7e44d09727fa060d)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 14960: Hash(0x4d8fe3a466bf79af96b54c75ac17564e46a197c205ba4a3d404383e5311c134)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 15124: Hash(0x48c65b03079e5213c672217b0b7ea7254954029956cb3c6b82a4a5c4e15f253)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 15174: Hash(0x1ac1f8aa8c7b3941345a87ae2502a64df338eda3159a4fc82872212fd89f535)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 15351: Hash(0x526edae8f1a649edbc7c58c2885e2b6079f2ed47f59dc6cfe73362db28fd45c)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 15787: Hash(0x3db68bff3e2614590d133065a4c1a97da1564bb57b24b5fbdfe93bdbf2130ea)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 15886: Hash(0x7c49fa4781a62206cb3804fe9d1187b07005cef4cc2f3190581842a77597ebe)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 15988: Hash(0x227516e34d3c78bf5877b313cd6168550df401de532dac644b2c0f13805168e)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 2: For node 16322: Hash(0x5253a84b3d842d0613c4c4bdc6c7d86277e0937610d3e010e0c4d197b61de3b)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 19, Column 4: Field Element(0x2a33f39d6a49f5c097c5b30690907f6e330b497dd5e3833ab4e18693279368e)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 156: Field Element(0x34f0b2addf1b092ecdab5982673f7e489b931b76d0e3196781a58e0c54655dc)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 26, Column 5: Field Element(0x5a181cba2c462e2b0d7c817722f5a5d3648e293f20b0395e4a7a3d674b4aaf1)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 213: Field Element(0x1d143bab1873a7d4f202199f91650095e9868722bc42a014a2a0a0cbac2a11e)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 93, Column 2: Field Element(0x17902adf0b73d965883c916c7e259d598b5fd5332a52adc3290b2197c8138e6)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 746: Field Element(0x3078b4dfb466bc84e04508ffd90c7a2cc53da2bb411d989b9916751eac38bc)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 216, Column 7: Field Element(0x48b8296894600e73fc2b9b815bfdee6cdbfe0d3199a54fa57d191bf33aa5074)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 1735: Field Element(0x26f98ddc92f1b5d98e7a347549f244d6621c0ba59acbdd991046430801d23)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 217, Column 2: Field Element(0x2b4ef95a0f39b178628ae76844871e028903f85bd61f078bb6355c19f6df833)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 1738: Field Element(0x2be66bd37f594456aed41509c355e6d772143edcca642ffd7e492b7bcc2d95c)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 384, Column 0: Field Element(0x62f83a6b5a1a04e5bfa10091170bc80e4c6f64d492b2fa1ca07b3a9afcfd6df)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 3072: Field Element(0x609ff5c047afa4dc3387b13a4eabb6629a57ad4827e4596584366103c8ff3d2)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 405, Column 6: Field Element(0x114e975e598b83e750f098aeb4b35217432b4fd68d5705b2c9eabd5cb88d2f9)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 3246: Field Element(0x498705b9533a14e9d878bad81efeb3d5f0e638061a786230bc64cadb820c527)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 417, Column 1: Field Element(0x1420638c96e6609237fc53c049084dd3ef6f5e81eddba97e6cdb4e3a52882db)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 3337: Field Element(0x4a95942b29d17918bd410a454bcb63976151b795c83e342076ae56a2fa09b3a)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 486, Column 4: Field Element(0x46129856eb579cdc6ad893dc05a598404eb3389a5036f4a4079d1a748fa20a0)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 3892: Field Element(0x36b8614238dbb308e5ef16febd705269386718a295698e6120ce28f140fc68c)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 552, Column 1: Field Element(0x69e212148c6af61cf86ca6ed6810287bd435576a5a22bd964fa269a5b418d3e)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 4417: Field Element(0x25cdee704f42b1240b44cee2ed4b5cb44cc68821c3e42dbd5dbb834da4a0fe0)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 566, Column 2: Field Element(0x1d1294b6f6c65b7efdcf7b7a8a8085a46b21802e5a8ec59ff4c40da0b5970f5)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 4530: Field Element(0x4cea0d3411a230d1437e7808d5940c5ad4ee1ab94418bd13a05a54c20807c9d)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 568, Column 6: Field Element(0x38d3d749f26c11ac0264e7505e912e116844d6498caf9c9f6c8e712841573e5)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 4550: Field Element(0x422ede4438984b43c9b5e3e1b52c6db6fa0023d44f166bb9cdc91901ebd2a2e)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 572, Column 0: Field Element(0x4893e4f12cd15f6817a60c87b214c4bf63babec489d3ff1869d5bba438f7fa9)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 4576: Field Element(0x407fd73107e04a8f049f75552f6a6e655ab3951522fe58ffbfa5a472581f52f)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 577, Column 2: Field Element(0x5f9eb94ed8b81edd19ff6d1c1e281ec55d775e9e5c15613f67c2e0de09170e2)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 4618: Field Element(0x65216bdd16565820753c16e7a5c37c3789a60b598e7d8e5dff871137e2be524)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 593, Column 3: Field Element(0x3f7597f78ae8afffdfe813138de2cb7bbe10d23c912a203c0bd31e4e8aca25b)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 4747: Field Element(0x16d40113e1f3e640686a608af137f2b77cf69d8cca8261f3833378d785ade69)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 623, Column 4: Field Element(0x765f9e7ee66b5ffa7b36d8d472c5c09b0ed694a8672444fc5b8783323624f2f)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 4988: Field Element(0x5d1f965355fc91cd287823fca2c5ef2a6500e3a310a05407640170488dc878b)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 638, Column 5: Field Element(0x122407fb7a73f7d2d223b7e09cff64544e44de131ebe9764fdb322955128000)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 5109: Field Element(0x1da57a79190b9f1995b7577540ee74cc5552a4fa2f8d777bdfe1024f5c074bc)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 658, Column 1: Field Element(0x71615dca8fa1bf5979ebb36fe6c11da724e69310ed0c8501795866f862f32dd)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 5265: Field Element(0x487fd18e21c01ff2631c8fa030711a2336ce65187976cf3851e5297505c62bb)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 666, Column 7: Field Element(0x429b3697776a345ef023b021625c82e69a46b9f830d6d3bad84acab22ad4ec)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 5335: Field Element(0x3bd0548d3dc8a3f18ee50c4544099e81ce5e388e1308ab7f0d87189cf319de5)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 701, Column 0: Field Element(0x128e9ec417560edb5bdcf8e0be67cb350eb8d6828903966b2da77cc3470c2b5)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 5608: Field Element(0x5d4ffb8eb4085ea98b0e5c34380eaadd24960bbe35842825db15a9ecea360ad)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 810, Column 0: Field Element(0x1384b77be74acab6ffbc08aaec07b42aa87c422ba93fc145a632f605456dae3)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 6480: Field Element(0x439f24f26389bff0081a86f4d9e5bb21e825d71438cbd504edf9b4751dd88a8)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 813, Column 3: Field Element(0x15b0575d343250e762a0dd496776aa2937414360615b1af957367311244bedb)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 6507: Field Element(0x84094d2384be22ea48a45a0e1ec806f5875c11b25faa629cf2599578386a54)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 820, Column 7: Field Element(0x573834bd8369aac3916570e7c8ae07ad5389fbf297c7a1aa38e0d7f34eac652)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 6567: Field Element(0x2b356cf4a552d3b60e0ee8b05751fc770c9cd8759f3754085581b5b9ebebc8d)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 828, Column 3: Field Element(0x52790ac28ff14720548ea0c90045739264a3cd7785dfb9f1169051b7cc4db3)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 6627: Field Element(0xa911b2a3c0afc3496669c93e43821a9fcb37ad77f49b008c975a5142717f1d)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 846, Column 0: Field Element(0x5ad78e8e05dbf774e719779af63a7c4a7ec0ef789c30d9bb0304bd98f00d051)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 6768: Field Element(0x55b62c31eff8e5dfad84f830440bdd15a52e36a4b6ad01bae55fd1cf41c731)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 866, Column 4: Field Element(0x786e02e8c8425b22ccf73b16cfea8681008775c63049d50f77813b6bc76ade0)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 6932: Field Element(0x49bd51610972552f0f5b0308128f581d0724be7c756513255576d118a25bb8f)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 872, Column 6: Field Element(0x3067d154423f7434b9202a463b54b146bcb877811f2e93599eacff09bff9fa4)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 6982: Field Element(0x65f9463ce50d29f7803d24e65a35220ee9e7d04caa8c0d526a5a2dbd3941169)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 894, Column 7: Field Element(0x28d92e11519e5467f13e5594a8ccdc1a6195edeca273e5a4a0f1c68f4be1f86)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 7159: Field Element(0x3cf50c271669244efb8a895c4e22c9abd4399b5a82b3055e99f1fae3ce64ae2)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 949, Column 3: Field Element(0xfb9567cd51a607a7e5c1ce725946c9c9571d81c95e77b36b4c6d8046f3afef)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 7595: Field Element(0x1470d2d2799abf346dae46c154763883c3a4da52cd6d8c44bb9f0b00a7891a7)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 961, Column 6: Field Element(0x5864d8c1f3a9d768e2b4ac7004a647873d29e932c1dfb2bc6ac504332751c8)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 7694: Field Element(0x1a23ef0522d7b7eb5e457fada68f1016526a24c461ecfba0c0f85ba57b321e6)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 974, Column 4: Field Element(0x42612a283e9c87c24214904b05adc91af73251b8ba904778861731828c7a8b1)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 7796: Field Element(0x46c9aa1fb333c983850efc838dac9aa8c65ea28118b18cecc94b01822aa3a2)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: Row 1016, Column 2: Field Element(0x27d4d3123e94bf91d4006796287f89d0951a1c797eb80a416f2f605aaf1fb95)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: xInv for index 8130: Field Element(0x562f10c224896efc105e750d2058698eac6ea758f385ae780ea85d49033c80d)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1043: Hash(0x5f664bf307bee72b19f76cecea8da0f46b04744cd52696fcae257772b3172bb)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1050: Hash(0x64e2aaabffd22a515ff8a0c907ab1bcaf92ff6e2aa21cbe0373eeb7c0549232)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1117: Hash(0x5bd96defdef5de2dcbe59861d8a5e34db439d432cf7b5b1e21194830ff0f78b)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1240: Hash(0x3b56feb5224d77585e1f0d22b729e37edbd9ed3738aa81549135c0326f21f79)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1241: Hash(0x7f1f7968c40763f3338bccaef141253d2015b5b06a0a719c8a5fa1646297e7e)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1408: Hash(0x27ba136591806a9263ee86659ba8c3949bd73bbf0358bd1e1b0d88e736c6a51)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1429: Hash(0x39ae903a683b95b5357e9f45bf700408c3dfe0a5138897190a3564ca10e14b)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1441: Hash(0x206a6bc025884b095ef53aecb7f5ae4d720930875cb79ae8d8620ee36a358fa)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1510: Hash(0x11bdfa49839d322f1de16faabef8c12e0b8c209fa0ffb98c6b6062106cc00d)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1576: Hash(0x3635608dbd7d6d070883e0c0ab1c92489dd244dcedb9ff0b08b2a5b6625fcb8)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1590: Hash(0x5006dc49a6aafd42e566cb071d35144d9763085611bfc4ff59881e9960331b6)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1592: Hash(0x4c696812ec8d228d1c4335115fe25ec41156d37915dbccaea848a50c583ddfa)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1596: Hash(0x5573530ad09f51f0800c880089b74f38e5e452832b14eaa4ecc6592a59fb763)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1601: Hash(0x77b3fe29d1c8c0deb9fcbcfe7af2624c402eba8b72ed43ca2b994fc1e51ce41)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1617: Hash(0xe9a828026a002cdf20e6ffba2d7116296ce2a414e5758e9b3f023d80ae1bed)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1647: Hash(0x8f28d92f41a536f98e7b417fdb3ae726ed2b9aa97bade461a016dbe75f867)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1662: Hash(0x4e85b7d66fdcae2a5677fa42028296d16a10a9f5fdc1e6b88165abf6995fd09)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1682: Hash(0x1b75e9a7976afd828468a04d177de209036d9505419a4da47e6b76c093cda85)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1690: Hash(0x1af4cd2c64d272a43d0016ec1a4cf30e265e9921bbc71a68b8ff14df8bbc9fb)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1725: Hash(0x7977767e40bb88ceb9482277e8c8f40f822b30274bf2f44e65ce132bdacd20)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1834: Hash(0x40faf4f848693999172f8d898b9d93e3c6dd078a0944969b3c1032e1d76bfc0)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1837: Hash(0x947dec28729b553cf9371c525bc157137635b7d07285fe6a2fb4072538ee8)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1844: Hash(0xc2b52a72dea4d8d09d4b0c4639609964a32e95b82cbf57c8b85550852031ba)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1852: Hash(0x458b66fce6accbc8206ef507e86db69f60b68ef31ba26d7ed5f86cea57a774f)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1870: Hash(0x4f8ec74f6a122afa546edb1946184b51c1c526979bac050f532770d3e4c9893)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1890: Hash(0x16e8dbc3fcca9d33368b4d9a78444d61939371c067b5014eff5950470295386)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1896: Hash(0x3a16c4e1c2aa6be1b6f6a24741f7c1829973c8ea625a0df2b1102845de1db7a)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1918: Hash(0x6b86b21e1b14947f67bb317d597775ef1651aa367f9665a96f02b07a4329fea)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1973: Hash(0x6139bbe26b6ac57d55c693abec7a62802fc1a440b3f2940d8a4dce344b2527a)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1985: Hash(0x488620b35a5b664fbdc57041ee622766bfab4589fd65bf08f6a629c42051422)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 1998: Hash(0x550728e432913410a62ee6a1e8d4067a1c9917184753d106393b13b7db46c68)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 3: For node 2040: Hash(0x478e98fa1d9e23eb1ea0ba521367e55e67dd0db06f51022197724e32f40b503)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 4, Column 3: Field Element(0x5ca95a8f4dc25dccf6c3a81e9b35eb89fcb6c6a7938794fc40a6ffd543a13ba)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 19: Field Element(0x35b01f2f03b33a0e6416301ed24191cb5b5db5ad8831dda32f035d1bcc1cc71)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 6, Column 2: Field Element(0x7f3df53f2419666b79de98bc607a97f1b706de5d657284cd63dee694ad687d7)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 26: Field Element(0x5ee3771d22bf43d322e396efc5d93f9cc68b63096bc79b7de02392efd9cf8f5)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 23, Column 1: Field Element(0x12896b26272e38d5d839f02bf468300c01dd899eeffde6c22f39eccc54a9324)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 93: Field Element(0x5f86c167624bb80ada091a804564708acc1f30d0557cdc57f8ee0a0b1cc9476)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 54, Column 0: Field Element(0x50b548fe005325646b6f41fc0db0095716fe90f92e62e56fedd5be85ee8fe8c)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 216: Field Element(0x2ccba4668b17f0cc6cbad924797c33721dfe355661dcf31da6a2000adeb76ff)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 54, Column 1: Field Element(0x42677400776b21d54c73aa234f8696b972d290b60181f8a9005c2dd2af9d8a6)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 217: Field Element(0x53345b9974e81043934526db8683cc8de201caa99e230ce2595dfff52148902)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 96, Column 0: Field Element(0x79ff3f3cdbc8f997b661299b2c51e471f6647ef2eb2e7bb21376623d06c146b)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 384: Field Element(0x234b25e11c55c49ed7f39bac26c2285dbfaacc4ff57c1f52ca84684d3258b61)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 101, Column 1: Field Element(0x1250a6264f3f81ef05fc3adb25c85c904f6f84fa4a4fb2047824c389e9e6af)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 405: Field Element(0x4cb7c00ba3bc30e2e8550e03765c58ac68c9ea6f59beceb619265ab194452e8)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 104, Column 1: Field Element(0x5daa8922d12eddb918729e4de4e1bcc2d7940507f75415dc70e2bcf5a26b3e)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 417: Field Element(0x752ac6ec2224ecdd0d0ec1f246587914ea486618ff811263882587f161b7681)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 121, Column 2: Field Element(0x6ea110c998bf73c707b6aaf6ce48b81c4d4a8ef37e7a06ad40c604d1078232a)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 486: Field Element(0x3c4fb19608278b0a0ca0685acee9465e2a987974dd3e0612d009bbe36f107fe)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 138, Column 0: Field Element(0x602ff6ba43f079687d7aace20e10a145ea225c2a1607969ced93358fa64163e)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 552: Field Element(0x11896c60694cb23aa74aa7da74d71a309aaada3b0d57995ccd3b1a568aebb44)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 141, Column 2: Field Element(0x33ea3aa3a1dcadfc67be0bcbaf7ddf520985e8a3085568fb1b24f2ff9bb20a4)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 566: Field Element(0x6027abb0f55aba4a91deeb5aaa5b653cebf3d69613ee68bc5204fca020380a0)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 142, Column 0: Field Element(0x723bcf838cfc9815a300f347c1a0f8553f66a2c9adeb3429d05d368ffcc671)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 568: Field Element(0x14cd836bb5e210e247c416522af3240affd7946f52f480ac0c7bff5b9b346a3)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 143, Column 0: Field Element(0x6e85b76df4cc373b9a4bf7c63a78c94018982164653997994d0b69f390576a2)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 572: Field Element(0x4e0945ebeadedd71a8da775cbba40edcf32f07f2e8ffc066f57f974cc22f5b1)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 144, Column 1: Field Element(0x1467b9f23bc598b7d37390ee8a59752132fd98aeb2c19f55146ac72902fe9e3)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 577: Field Element(0xc7e7bba9ce5db7fd4deeb14d4bc10a967bcee600bcb13eadc22a9f0c9c4d5a)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 148, Column 1: Field Element(0x99a8be2b4123ff140ec7f41cda8b2cf974714aa7add4cdec86900008699251)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 593: Field Element(0x68eaaf696a3dc9b54bc40e0d69a6fb523b51f097ae011ea7a9eb64e78a16593)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 155, Column 3: Field Element(0x66f786f3fa01d147056d7b8af625a40d3814ccd511e0a0e79eb48a3046166b3)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 623: Field Element(0x4251fc6bb59a6a042f4ae91b65d39676370ce9280e908d321d14c27612438d1)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 159, Column 2: Field Element(0x168e19ec47708c75fbc2e0aeb486ffca4f55b7c7e7bcb065cd4d66dd40f4f4d)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 638: Field Element(0x4833ec0b8b2273d975a591baa0ab6190f79b18b1889a0e04d74463a83f81d46)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 164, Column 2: Field Element(0xde8659b9185655abd5d71bc7a559b109b207bbfacf7acdbe0a8aacf44bfc5e)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 658: Field Element(0x3d8f3a729e2bab08bbab534fb01b01e87d5bad11662c3e687de8eb824d2007d)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 166, Column 2: Field Element(0x565bb69e5ad891a9f791d301a2f67780ebed52192ffad7e87fe921bd8183623)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 666: Field Element(0x7e0f5eb44f4b820eb4a2917dfc8f0c007f8d22437edb2db17f94f256af99a47)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 175, Column 1: Field Element(0x5bf55f9cf7366a462528198392c8ab8691774890c95cf9a676774e3473e2846)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 701: Field Element(0x71bd46ac61bb98fd2d70d3828aa8c7f4949dd2127aa92a2445c61fa2dee9ac7)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 202, Column 2: Field Element(0x7e4937aad9c8925e2f8594ef57b333c80f9a3f11c6a48fc89ae6d5b7f18e13)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 810: Field Element(0x348322dcf4063dbbef22a4fb92245c6cace9a6f89bc6856ff8075d671957c70)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 203, Column 1: Field Element(0xa115e625c6a0300a036e0fbcaa36ec75a81d9d622f489b6077e3cada4acfe6)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 813: Field Element(0x7cc5797561b2a673f23e3d687c3932257005f3fc99ad8c94fa0d929bbd66c2e)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 205, Column 0: Field Element(0x6d4131d0297db0c0d0a8e989a71aa332e87a212378fdd84a91bcb8e856d3121)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 820: Field Element(0x2fa9ff4cd829a703bd2909d6887350d82a60de3f04cf2beb2f278d8baffaf0d)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 207, Column 0: Field Element(0x49cdf161dd332d1340d5035f21bba89d4bd69bc0387d07a6f166e491b9ae35f)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 828: Field Element(0x389631a8f1971d87663b3185d4977f223efb0a4c9fb05500935571308a9b292)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 211, Column 2: Field Element(0x7ef6974aebf87d26a81fc2b1d79377b5fd808159e647b94a785a1805441f99b)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 846: Field Element(0x2cce7edab554f41939c56a0694dab8aa53a1f116c01f68dba56bb7565fb3033)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 216, Column 2: Field Element(0x1c4c908c14043c500c7d63fb5c8850934c700ad0e1e4fe4d40fecc64627385e)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 866: Field Element(0x7dcd4eea8fe36df7975e97b05e93aad2808dfac55f4bd24c13f89d0afb6c60e)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 218, Column 0: Field Element(0x58e8b4c332b2b477cbeeb0db14a908b9108628813b9bcade4101236c4af282b)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 872: Field Element(0x6e125da6effb3a15e44c7ef99fe8ef1444a7946d5650d0bb9a7702b3e496042)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 223, Column 2: Field Element(0x4bc5f480f1306a6f9c3736b19aa4c0a123bbf5bb947f5069aa68ac9019bdd17)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 894: Field Element(0x2ac74d2f4873d2e21862248e54223dde24a69c3f4b01f2e368090e047350601)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 237, Column 1: Field Element(0x121ea10b38381339a2791ddc7ccc9591cb62baaf40b23fe32955703395be5ab)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 949: Field Element(0x269815bc018f1f4e8bb9ac34c4ee91a23e4c1b1da5e6ac44122453341da13a2)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 240, Column 1: Field Element(0x66264f58a827c6fb121d3e206554b9251a4694669ac4557191ef9500412737c)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 961: Field Element(0x214d70ccc50365c2410595c46f34ec6b9ce75acbc664fa692ee15756caeea22)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 243, Column 2: Field Element(0x16dc2921d6774b34249ec57297f34f7cdc5dd49b855ea66aa6bb229e78260d6)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 974: Field Element(0x6b0232e31e6b7f148a860155a43115329ced501c0c8cc9640a15e94f62411a0)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: Row 254, Column 0: Field Element(0x877c137ef793297c7af356c8501882c32990f1f2018ec5e73c75361faf1295)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: xInv for index 1016: Field Element(0x2e472b9c4c5ddb43ea7f81fc8c4ffbbf64149bf6a137c84c1bb04bfb3c7ebf7)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 260: Hash(0x250bf8ec0905ac375f592e3e521f8af797c2cde39e29ef7fb01bd56bab86d27)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 262: Hash(0x724be40b4b8a0330918749211629d6b104f6c944343386de9e6677926817f5b)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 279: Hash(0x701fdd056cd49327d715161145c8961b36f73d82d833f3d8f4598407f7e36e)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 310: Hash(0x2a95bfcaacb3bc250178e1c9cde93f88d3a120de9d5513ec7dfeaa19c079229)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 352: Hash(0x51a575948fbf46ed552a974d4c7eb13d9adc62adec517d5e5315afb30e0ed61)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 357: Hash(0x32c452af05089fbcbe98cde6e51720fb0803d7f8db219c7d01b9213dd005699)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 360: Hash(0x2fe8b4a45f793fcd8a1a171edd5ccd9fab90ad3ee5b96bce021fa06e2f5656d)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 377: Hash(0x25a3ad86c1614bfd8f3c182abe3ca0f82fdd469d82bce202a58d9813efbfd8b)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 394: Hash(0x37b262708620efb795ccff21563d0eda3d5b894d6f5837279c36e1c8a63f0af)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 397: Hash(0x46cf3720c93b5f049a47de2022d7eb72849fb9a046d69df05cb8a239e96f8a)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 398: Hash(0x52f6256d1410edd4471689c1fbf274e3604ffd2d18b83958be93115ce78bc45)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 399: Hash(0x1d1d1c676a43ab32b37236bb09c68dcec18e002e33162a9008ca6006e97ed1a)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 400: Hash(0x4b3ca274fdf2c19353288a3ce4ec29364ccd26d247715dde8a34f8cb80966c7)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 404: Hash(0x544e43cc85e800129a4d7dd2e1a53b68dd807fa83c29190a8593c8cefe61237)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 411: Hash(0x6ec65e828f310c084d8a3abdef393f77cd3e15ef5f6cd23e932c7dabcb3c734)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 415: Hash(0x1cf19d677bff8d3b2db3eaf3b4c4067ca32b4418f148402c5df8c0ad3b376ab)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 420: Hash(0xb8d3afaa91046b4c74b81452b3b13c9970d486587429156c575137128c6b7f)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 422: Hash(0x6a6c017ebad5d65092df2cf2e3bc28d3305b60ddff490cc2b52d276ad468f86)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 431: Hash(0xe3b9a42ed1a730bf40356ebc342680af4386c1f28de8873e074802f5792ec7)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 458: Hash(0x378df2cf68c302c89a829f76812661198e84e2235b0663a28ecf22c49ee2a31)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 459: Hash(0x4b0ab4bdb3247e4be9a02a9944d0896dcdda5d39da36c9620dd8208d336c5c7)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 461: Hash(0x45289c7f91fa355504982894ee01a3a5eb9832de3a495f2aa934aaaeb5114a3)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 463: Hash(0x52b0d3483e7f2b179f9cf9703901d32f4da6439ec886ae31f4d6348cce5a972)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 467: Hash(0x2aa6ed625092acd40020a3972f0e4c12636e4b263591644a44725d69ddaab91)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 472: Hash(0x6b46b60f95b4343bf4d1a5e8c77bf1c29f6b68655cbd67eda4459ef33f9e226)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 474: Hash(0xdf1cb9f009e765e4505220cdad784740dc59050fc327ae31c29b53fe52978f)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 479: Hash(0x532f303a28f2b8a4c16515680e4ac3fe6f125ca3ff7458263b79275daf2cd07)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 493: Hash(0x569dd56d865d529a0a0467071f3ed2c5abbad388e09f7e5dfbc32eb028542a2)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 496: Hash(0x3bc43956f07635128f83dae130872315689d40a82b9ec7044f2766858a3fe25)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 499: Hash(0x58328b55f5e3e1446a0412df01c577237b7210d8d630f88858c30ec25c8fb46)",
+ "/cpu air/STARK/FRI/Decommitment/Layer 4: For node 510: Hash(0x14c253c29d2d2f31c42e8e0af61d882d69e13e99c42aa6a815ea6dea88f85ee)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 4, Column 0: Field Element(0x3d384e06255447ab854a72696234fa75bcd804c9cb7fc808f13672337576e86)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 4: Field Element(0x446ed3ce295dda2b5ea677394813e6eab8bfbc55397aacac8e6df6f4bc9ca34)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 6, Column 0: Field Element(0xfa98f294f24cd2f2d4c7571ed034c64a6b26e841e6c1eb8891813341bc1d10)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 6: Field Element(0x1cc9a01f2178b3736f524e1d06398916739deaa1bbed178c525a1e211901146)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 23, Column 0: Field Element(0x5d6f6811f3022f692cf8bd3e2a983cf9e5cf729c7e3275a8a094ed09520086)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 23: Field Element(0x2c226e9010da226650d4e831a8c21933d6d16ce5fad48839e202fdbb6c986d7)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 54, Column 0: Field Element(0x31df0cf634c4af7e293fbfbfb7a28f7da240001e63bf50e4f64777e0ac2048e)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 54: Field Element(0x45c40f3b789247e4cbd57c6c872ed46813ca2a448b41132c39e91b1cb30b703)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 96, Column 0: Field Element(0x2a86f6d8e298618c8a24f3cf07ea8231a60f5efd999f0ac27cb42db7e51e0d4)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 96: Field Element(0x68cd38db18764a1d8cf691ffea257660682d17527ebf948e631e8585b392cd2)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 101, Column 0: Field Element(0x556c09233ba1632a22b7e0faf20f545f715ad36d448863379e400ff7d52b5e9)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 101: Field Element(0x7df7e641e3c012025da5b5acd7a786a722caf636ac08ebbf3433e801331419b)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 104, Column 0: Field Element(0x7abff569562333a7e43e79fe54eff9b38d426d37df4abd420c6e36d3c084f4d)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 104: Field Element(0x61025a4cd5114ae8e97b67d62c778a3682f74ed8e3a3ef08619706ba77c5812)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 121, Column 0: Field Element(0x51be851f9aa320c51418fe1198d91f515b42f6347207091ae3e3489831422b1)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 121: Field Element(0x2ae2496e18df24a15e2c11ca28c377d42b5ca06da64a4cb383d8e6698a6d7f2)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 138, Column 0: Field Element(0x6fac89d83afe9ac37ab565b0ad563473388ac1e80fd855f70e075e0c8cb4c09)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 138: Field Element(0x7f2b4e7230c66f0d4b1e617fb92fb807801d0682485417238770bc9b95edfde)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 141, Column 0: Field Element(0x428122da74f17f4da3df7f339a3c5eaa701624160d54b1b6f252110790a472a)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 141: Field Element(0x1cf9097ab336d8ca53dfa25fc57cfb4de5daf5006f7aa89bfdd87332c790394)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 142, Column 0: Field Element(0x6d1f6ba70c9d6462597e4e5173c349b890dba0e5e5352f46803112ae9c8869f)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 142: Field Element(0x4a52b2f9ab5dde5d187e1f8dfe5f700e311ce2ed5408785cfc4d7578b341c53)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 143, Column 0: Field Element(0x3b38e8db7dc95fed6ffc106beebe1f61eb7961338279ec388515d17d79b5af4)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 143: Field Element(0x35ad4d0654a222b2e781e07201a08ff1cee31d12abf787a303b28a874cbe3ae)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 144, Column 0: Field Element(0x2d864623b5ffc20667ec896c91ad529b7b496050d49ab41a673091cadf44cdd)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 144: Field Element(0x5ac57c3163d3d47c0611555db94f507f4587629d280c95444364e895011e75e)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 148, Column 0: Field Element(0x20bb48d8158e102b90121e3eecbd25e716bd952e86ec45fa4c1b72305c23b06)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 148: Field Element(0x276af156eb7f3ff58672ddd89cf8624dc5ebaef0a929e7f17962594522cc52c)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 155, Column 0: Field Element(0x6f680f43244e3307f5823b5fd030621dada77d2ff82ae477f2f2aa1ed0bcfc4)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 155: Field Element(0x45dd101cbfaeabd0bed769ff1a33a749527154229885d29ccc3b7beae21a12e)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 159, Column 0: Field Element(0x7e4f0835d80549fc66253e9a438d0c4658dac78390500176bed9b0b832249ed)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 159: Field Element(0x51bde215b447cab2dbfe9f55c72aa7fae490861ce18a3ad599f8ebccb87faf9)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 164, Column 0: Field Element(0x15dd72b9492d575155f18215cdac831acf8268cac23bf6c80e9c893575cbf28)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 164: Field Element(0x22e30230c5f9e5042e6973df4a939323ce972532acb3db579084a2716967f9b)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 166, Column 0: Field Element(0x1bae5aab2f49e972f8243879d3cfe737efdd79b6b53acb5cca64e6091b2bbf5)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 166: Field Element(0x13f55a20a2ff3dcad5216f0522d07fee5c8a5bdf553ae62388ef9db007edd8f)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 175, Column 0: Field Element(0x3410ee0bfeb08f700640af71ca48ee10f880406e8ca3cdb036a29a2ab13938)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 175: Field Element(0x6ec50a9ff599872889a04c0806fdc002ede71b88bda8fbcc47a3de612095205)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 202, Column 0: Field Element(0x2c1c38763b8901d0b3a6665bb1c66d30cdd0a2c06512dc0499319a215ac4315)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 202: Field Element(0x6911ab4348dacec2658858bfc3af1e8873ad1c6be7097c9fc77002475d184c1)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 203, Column 0: Field Element(0x390fd80f8e9d85bfb24f54efee3346df7a38cf6d1ab74f8b4bf0fdbc04b2380)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 203: Field Element(0x16ee54bcb725324d9a77a7403c50e1778c52e39418f68360388ffdb8a2e7b40)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 205, Column 0: Field Element(0x2a6a71b8a88832d648a68c02148b5ab399e9919d9ba42688afeb63a55291dd8)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 205: Field Element(0x3c5f2b0df0708f08b757d25226e94e3ae600cf46b5c6f88e23f1af9987ccfb0)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 207, Column 0: Field Element(0x36b13b57d9ec809507dd68d7da8ec82ee1c2d560cb1c31425cb6177a09b4384)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 207: Field Element(0x53c6b609d1e19b74940a9d0a46d6410ff1b4f8e6fa1b2dd63f95627e8345153)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 211, Column 0: Field Element(0x56278609e48ab2dedfc4a3c1317ab76fcab22f12911c5716cf8f37507526468)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 211: Field Element(0x3c9db12f659cc547905186927968ead87d200629b7b155dd401021a1aab2342)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 216, Column 0: Field Element(0x56f0c9e4ab4a32db2e2bac29118997ba56c4e282f5712bb0716786e89eabbcf)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 216: Field Element(0x2ccba4668b17f0cc6cbad924797c33721dfe355661dcf31da6a2000adeb76ff)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 218, Column 0: Field Element(0x66e2639c7bd0b9c3d7e1a4ff09b7f300266f746fc7f50d7fbb107c65e10bb11)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 218: Field Element(0x527e5436bbbc0eb335e6443e4a35775596d21299a0dbde6557088294b1b8369)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 223, Column 0: Field Element(0x658e71d9ebf2d1b97f6e9adda4a01a68289ff91e2d0b4ff30c04664a63f70ae)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 223: Field Element(0x60c4b2b3e708d7cbd1334c8cd02a7844c40e38d09a21773912442e5b8763d98)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 237, Column 0: Field Element(0x128491238ae5ca75a0879e3785f93179803ca488c65b4e7dbb13b334bf1b6a5)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 237: Field Element(0x93aafbae9df677b02ab3e4c3bd958b028589eb43b4876f7e381abc4eb898aa)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 240, Column 0: Field Element(0x4e12a513415fa7e8c1dfc546449ac0fb4ab0b3f498c2ced8f9b15753d67031c)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 240: Field Element(0x6e6ae006fe34cbf9e7398dca24d5e9daa8ef2d9f1de87d34972a8be25cc27a2)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 243, Column 0: Field Element(0x5c0ec18e04a020942462030fae9059ff177a80b433f0ae4d0872b3ad40ee50c)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 243: Field Element(0x380d46d016f410bc593303d18770a601df1e141fb436c5f416c24e26a7ea7d3)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: Row 254, Column 0: Field Element(0x69155405cd1376feb09acb41b9f81b72991fc7d953ae06c5d7039c2b73c96c9)",
+ "/cpu air/STARK/FRI/Decommitment/Last Layer: xInv for index 254: Field Element(0x736d13402ede4b84386db2a22ae58e83b28766d2f17832a60e4372800f34cba)"
+ ]
+}
\ No newline at end of file
diff --git a/examples/proofs/recursive/cairo0_example_proof.json b/examples/proofs/recursive/cairo0_stone5_example_proof.json
similarity index 100%
rename from examples/proofs/recursive/cairo0_example_proof.json
rename to examples/proofs/recursive/cairo0_stone5_example_proof.json
diff --git a/examples/proofs/recursive_with_poseidon/cairo0_example_proof.json b/examples/proofs/recursive_with_poseidon/cairo0_stone5_example_proof.json
similarity index 100%
rename from examples/proofs/recursive_with_poseidon/cairo0_example_proof.json
rename to examples/proofs/recursive_with_poseidon/cairo0_stone5_example_proof.json
diff --git a/examples/proofs/small/cairo0_example_proof.json b/examples/proofs/small/cairo0_stone5_example_proof.json
similarity index 100%
rename from examples/proofs/small/cairo0_example_proof.json
rename to examples/proofs/small/cairo0_stone5_example_proof.json
diff --git a/examples/proofs/starknet/cairo0_example_proof.json b/examples/proofs/starknet/cairo0_stone5_example_proof.json
similarity index 100%
rename from examples/proofs/starknet/cairo0_example_proof.json
rename to examples/proofs/starknet/cairo0_stone5_example_proof.json
diff --git a/examples/proofs/starknet_with_keccak/cairo0_example_proof.json b/examples/proofs/starknet_with_keccak/cairo0_stone5_example_proof.json
similarity index 100%
rename from examples/proofs/starknet_with_keccak/cairo0_example_proof.json
rename to examples/proofs/starknet_with_keccak/cairo0_stone5_example_proof.json
diff --git a/proof_parser/Cargo.lock b/proof_parser/Cargo.lock
index b483d40..86cff86 100644
--- a/proof_parser/Cargo.lock
+++ b/proof_parser/Cargo.lock
@@ -2,12 +2,6 @@
# It is not intended for manual editing.
version = 3
-[[package]]
-name = "adler"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
-
[[package]]
name = "aho-corasick"
version = "1.1.3"
@@ -78,27 +72,6 @@ version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
-[[package]]
-name = "base64"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
-
-[[package]]
-name = "base64"
-version = "0.21.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
-
-[[package]]
-name = "blake2"
-version = "0.10.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe"
-dependencies = [
- "digest",
-]
-
[[package]]
name = "block-buffer"
version = "0.10.4"
@@ -114,21 +87,11 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-[[package]]
-name = "chrono"
-version = "0.4.38"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
-dependencies = [
- "num-traits",
- "serde",
-]
-
[[package]]
name = "clap"
-version = "4.5.11"
+version = "4.5.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35723e6a11662c2afb578bcf0b88bf6ea8e21282a953428f240574fcc3a2b5b3"
+checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019"
dependencies = [
"clap_builder",
"clap_derive",
@@ -136,9 +99,9 @@ dependencies = [
[[package]]
name = "clap_builder"
-version = "4.5.11"
+version = "4.5.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49eb96cbfa7cfa35017b7cd548c75b14c3118c98b423041d70562665e07fb0fa"
+checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6"
dependencies = [
"anstream",
"anstyle",
@@ -148,14 +111,14 @@ dependencies = [
[[package]]
name = "clap_derive"
-version = "4.5.11"
+version = "4.5.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d029b67f89d30bbb547c89fd5161293c0aec155fc691d7924b64550662db93e"
+checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0"
dependencies = [
"heck",
"proc-macro2",
"quote",
- "syn 2.0.72",
+ "syn",
]
[[package]]
@@ -172,22 +135,13 @@ checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0"
[[package]]
name = "cpufeatures"
-version = "0.2.12"
+version = "0.2.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
+checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad"
dependencies = [
"libc",
]
-[[package]]
-name = "crc32fast"
-version = "1.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
-dependencies = [
- "cfg-if",
-]
-
[[package]]
name = "crypto-bigint"
version = "0.5.5"
@@ -209,50 +163,6 @@ dependencies = [
"typenum",
]
-[[package]]
-name = "darling"
-version = "0.20.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989"
-dependencies = [
- "darling_core",
- "darling_macro",
-]
-
-[[package]]
-name = "darling_core"
-version = "0.20.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5"
-dependencies = [
- "fnv",
- "ident_case",
- "proc-macro2",
- "quote",
- "strsim",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "darling_macro"
-version = "0.20.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
-dependencies = [
- "darling_core",
- "quote",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "deranged"
-version = "0.3.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
-dependencies = [
- "powerfmt",
-]
-
[[package]]
name = "digest"
version = "0.10.7"
@@ -264,22 +174,6 @@ dependencies = [
"subtle",
]
-[[package]]
-name = "flate2"
-version = "1.0.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae"
-dependencies = [
- "crc32fast",
- "miniz_oxide",
-]
-
-[[package]]
-name = "fnv"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-
[[package]]
name = "generic-array"
version = "0.14.7"
@@ -311,12 +205,6 @@ dependencies = [
"digest",
]
-[[package]]
-name = "ident_case"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
-
[[package]]
name = "is_terminal_polyfill"
version = "1.70.1"
@@ -362,9 +250,9 @@ dependencies = [
[[package]]
name = "libc"
-version = "0.2.155"
+version = "0.2.158"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
+checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439"
[[package]]
name = "memchr"
@@ -372,15 +260,6 @@ version = "2.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
-[[package]]
-name = "miniz_oxide"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08"
-dependencies = [
- "adler",
-]
-
[[package]]
name = "num-bigint"
version = "0.4.6"
@@ -392,12 +271,6 @@ dependencies = [
"serde",
]
-[[package]]
-name = "num-conv"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
-
[[package]]
name = "num-integer"
version = "0.1.46"
@@ -416,12 +289,6 @@ dependencies = [
"autocfg",
]
-[[package]]
-name = "powerfmt"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
-
[[package]]
name = "proc-macro2"
version = "1.0.86"
@@ -433,18 +300,18 @@ dependencies = [
[[package]]
name = "quote"
-version = "1.0.36"
+version = "1.0.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
+checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
dependencies = [
"proc-macro2",
]
[[package]]
name = "regex"
-version = "1.10.5"
+version = "1.10.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f"
+checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619"
dependencies = [
"aho-corasick",
"memchr",
@@ -487,29 +354,29 @@ checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
[[package]]
name = "serde"
-version = "1.0.204"
+version = "1.0.209"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12"
+checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
-version = "1.0.204"
+version = "1.0.209"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222"
+checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.72",
+ "syn",
]
[[package]]
name = "serde_json"
-version = "1.0.121"
+version = "1.0.127"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ab380d7d9f22ef3f21ad3e6c1ebe8e4fc7a2000ccba2e4d71fc96f15b2cb609"
+checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad"
dependencies = [
"itoa",
"memchr",
@@ -517,67 +384,6 @@ dependencies = [
"serde",
]
-[[package]]
-name = "serde_json_pythonic"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62212da9872ca2a0cad0093191ee33753eddff9266cbbc1b4a602d13a3a768db"
-dependencies = [
- "itoa",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "serde_with"
-version = "2.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe"
-dependencies = [
- "base64 0.13.1",
- "chrono",
- "hex",
- "serde",
- "serde_json",
- "serde_with_macros 2.3.3",
- "time",
-]
-
-[[package]]
-name = "serde_with"
-version = "3.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857"
-dependencies = [
- "serde",
- "serde_derive",
- "serde_with_macros 3.9.0",
-]
-
-[[package]]
-name = "serde_with_macros"
-version = "2.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f"
-dependencies = [
- "darling",
- "proc-macro2",
- "quote",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "serde_with_macros"
-version = "3.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350"
-dependencies = [
- "darling",
- "proc-macro2",
- "quote",
- "syn 2.0.72",
-]
-
[[package]]
name = "sha2"
version = "0.10.8"
@@ -599,25 +405,6 @@ dependencies = [
"keccak",
]
-[[package]]
-name = "starknet-core"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d506e02a4083290d13b427dfe437fd95aa8b56315c455bb2f9cdeca76620d457"
-dependencies = [
- "base64 0.21.7",
- "crypto-bigint",
- "flate2",
- "hex",
- "serde",
- "serde_json",
- "serde_json_pythonic",
- "serde_with 2.3.3",
- "sha3",
- "starknet-crypto",
- "starknet-types-core",
-]
-
[[package]]
name = "starknet-crypto"
version = "0.7.1"
@@ -646,7 +433,7 @@ checksum = "2e179dedc3fa6da064e56811d3e05d446aa2f7459e4eb0e3e49378a337235437"
dependencies = [
"starknet-curve",
"starknet-types-core",
- "syn 2.0.72",
+ "syn",
]
[[package]]
@@ -684,65 +471,6 @@ version = "2.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
-[[package]]
-name = "swiftness_air"
-version = "0.0.8"
-dependencies = [
- "serde",
- "serde_with 3.9.0",
- "starknet-core",
- "starknet-crypto",
- "swiftness_commitment",
- "swiftness_transcript",
- "thiserror",
- "thiserror-no-std",
-]
-
-[[package]]
-name = "swiftness_commitment"
-version = "0.0.8"
-dependencies = [
- "blake2",
- "serde",
- "serde_with 3.9.0",
- "sha3",
- "starknet-core",
- "starknet-crypto",
- "starknet-types-core",
- "swiftness_transcript",
- "thiserror",
- "thiserror-no-std",
-]
-
-[[package]]
-name = "swiftness_fri"
-version = "0.0.8"
-dependencies = [
- "serde",
- "serde_with 3.9.0",
- "sha3",
- "starknet-core",
- "starknet-crypto",
- "swiftness_commitment",
- "swiftness_transcript",
- "thiserror",
- "thiserror-no-std",
-]
-
-[[package]]
-name = "swiftness_pow"
-version = "0.0.8"
-dependencies = [
- "blake2",
- "serde",
- "sha3",
- "starknet-crypto",
- "starknet-types-core",
- "swiftness_transcript",
- "thiserror",
- "thiserror-no-std",
-]
-
[[package]]
name = "swiftness_proof_parser"
version = "0.0.8"
@@ -753,56 +481,16 @@ dependencies = [
"regex",
"serde",
"serde_json",
- "starknet-types-core",
- "swiftness_air",
- "swiftness_commitment",
- "swiftness_fri",
- "swiftness_pow",
- "swiftness_stark",
- "swiftness_transcript",
- "thiserror",
-]
-
-[[package]]
-name = "swiftness_stark"
-version = "0.0.8"
-dependencies = [
- "serde",
- "serde_with 3.9.0",
- "starknet-core",
"starknet-crypto",
- "swiftness_air",
- "swiftness_commitment",
- "swiftness_fri",
- "swiftness_pow",
- "swiftness_transcript",
+ "starknet-types-core",
"thiserror",
- "thiserror-no-std",
-]
-
-[[package]]
-name = "swiftness_transcript"
-version = "0.0.8"
-dependencies = [
- "starknet-crypto",
]
[[package]]
name = "syn"
-version = "1.0.109"
+version = "2.0.77"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "syn"
-version = "2.0.72"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af"
+checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed"
dependencies = [
"proc-macro2",
"quote",
@@ -826,48 +514,9 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.72",
+ "syn",
]
-[[package]]
-name = "thiserror-impl-no-std"
-version = "2.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58e6318948b519ba6dc2b442a6d0b904ebfb8d411a3ad3e07843615a72249758"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "thiserror-no-std"
-version = "2.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3ad459d94dd517257cc96add8a43190ee620011bb6e6cdc82dafd97dfafafea"
-dependencies = [
- "thiserror-impl-no-std",
-]
-
-[[package]]
-name = "time"
-version = "0.3.36"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
-dependencies = [
- "deranged",
- "num-conv",
- "powerfmt",
- "serde",
- "time-core",
-]
-
-[[package]]
-name = "time-core"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
-
[[package]]
name = "typenum"
version = "1.17.0"
diff --git a/proof_parser/Cargo.toml b/proof_parser/Cargo.toml
index 94b9324..67d654b 100644
--- a/proof_parser/Cargo.toml
+++ b/proof_parser/Cargo.toml
@@ -5,41 +5,15 @@ edition = "2021"
license-file = "LICENSE"
readme = "README.md"
repository = "https://github.com/iosis-tech/swiftness"
-version = "0.0.8"
-
-[features]
-default = ["std", "keccak"]
-std = [
- "swiftness_air/std",
- "swiftness_commitment/std",
- "swiftness_fri/std",
- "swiftness_pow/std",
- "swiftness_stark/std",
- "swiftness_transcript/std",
-]
-keccak = [
- "swiftness_pow/keccak",
- "swiftness_commitment/keccak",
-]
-blake2s = [
- "swiftness_pow/blake2s",
- "swiftness_commitment/blake2s",
-]
-
+version = "0.0.9"
[dependencies]
-serde = "1.0"
-thiserror = "1.0.61"
-starknet-types-core = "0.1.5"
-num-bigint = { version = "0.4.4", features = ["serde"] }
anyhow = "1.0.80"
clap = { version = "4.5.1", features = ["derive"] }
+num-bigint = { version = "0.4.4", features = ["serde"] }
regex = "1.10.3"
+serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0.114"
-
-swiftness_air = { path = "../crates/air", default-features = false, version = "0.0.8" }
-swiftness_commitment = { path = "../crates/commitment", default-features = false, version = "0.0.8" }
-swiftness_fri = { path = "../crates/fri", default-features = false, version = "0.0.8" }
-swiftness_pow = { path = "../crates/pow", default-features = false, version = "0.0.8" }
-swiftness_stark = { path = "../crates/stark", default-features = false, version = "0.0.8" }
-swiftness_transcript = { path = "../crates/transcript", default-features = false, version = "0.0.8" }
+starknet-crypto = "0.7.1"
+starknet-types-core = "0.1.5"
+thiserror = "1.0.61"
\ No newline at end of file
diff --git a/proof_parser/src/annotations/extract.rs b/proof_parser/src/annotations/extract.rs
index 6e5040e..e06c80c 100644
--- a/proof_parser/src/annotations/extract.rs
+++ b/proof_parser/src/annotations/extract.rs
@@ -33,7 +33,7 @@ pub fn extract_z_and_alpha(annotations: &[&str]) -> anyhow::Result {
}
// Make sure the number of interaction_elements is as expected
- if ![3, 6].contains(&interaction_elements.len()) {
+ if ![3, 6, 8].contains(&interaction_elements.len()) {
anyhow::bail!("Unexpected number of interaction elements: {}", interaction_elements.len());
}
diff --git a/proof_parser/src/builtins.rs b/proof_parser/src/builtins.rs
index d62b9d2..2f7a895 100644
--- a/proof_parser/src/builtins.rs
+++ b/proof_parser/src/builtins.rs
@@ -1,6 +1,5 @@
-use std::collections::HashMap;
-
use crate::json_parser::MemorySegmentAddress;
+use std::{collections::BTreeMap, io, str::FromStr};
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum Builtin {
@@ -14,25 +13,13 @@ pub enum Builtin {
EcOp,
Keccak,
Poseidon,
+ RangeCheck96,
+ AddMod,
+ MulMod,
}
impl Builtin {
- pub fn from_str(s: &str) -> Option {
- match s {
- "program" => Some(Builtin::Program),
- "execution" => Some(Builtin::Execution),
- "output" => Some(Builtin::Output),
- "pedersen" => Some(Builtin::Pedersen),
- "range_check" => Some(Builtin::RangeCheck),
- "ecdsa" => Some(Builtin::Ecdsa),
- "bitwise" => Some(Builtin::Bitwise),
- "ec_op" => Some(Builtin::EcOp),
- "keccak" => Some(Builtin::Keccak),
- "poseidon" => Some(Builtin::Poseidon),
- _ => None,
- }
- }
- pub fn ordered() -> Vec {
+ fn ordered() -> Vec {
vec![
Builtin::Program,
Builtin::Execution,
@@ -44,19 +31,42 @@ impl Builtin {
Builtin::EcOp,
Builtin::Keccak,
Builtin::Poseidon,
+ Builtin::RangeCheck96,
+ Builtin::AddMod,
+ Builtin::MulMod,
]
}
pub fn sort_segments(
- memory_segments: HashMap,
+ memory_segments: BTreeMap,
) -> Vec {
let mut segments = memory_segments
.into_iter()
- .filter_map(|(k, v)| {
- let builtin = Builtin::from_str(&k)?;
- Some((builtin, v))
- })
+ .map(|(k, v)| (Builtin::from_str(&k).unwrap(), v))
.collect::>();
segments.sort_by_key(|(builtin, _)| Builtin::ordered().iter().position(|b| b == builtin));
segments.into_iter().map(|(_, segment)| segment).collect()
}
}
+
+impl FromStr for Builtin {
+ type Err = io::Error;
+
+ fn from_str(s: &str) -> Result {
+ match s {
+ "program" => Ok(Builtin::Program),
+ "execution" => Ok(Builtin::Execution),
+ "output" => Ok(Builtin::Output),
+ "pedersen" => Ok(Builtin::Pedersen),
+ "range_check" => Ok(Builtin::RangeCheck),
+ "ecdsa" => Ok(Builtin::Ecdsa),
+ "bitwise" => Ok(Builtin::Bitwise),
+ "ec_op" => Ok(Builtin::EcOp),
+ "keccak" => Ok(Builtin::Keccak),
+ "poseidon" => Ok(Builtin::Poseidon),
+ "range_check96" => Ok(Builtin::RangeCheck96),
+ "add_mod" => Ok(Builtin::AddMod),
+ "mul_mod" => Ok(Builtin::MulMod),
+ _ => Err(io::Error::new(io::ErrorKind::NotFound, "Builtin name not matched")),
+ }
+ }
+}
diff --git a/proof_parser/src/conversion.rs b/proof_parser/src/conversion.rs
deleted file mode 100644
index f9506fd..0000000
--- a/proof_parser/src/conversion.rs
+++ /dev/null
@@ -1,267 +0,0 @@
-use swiftness_air::{
- public_memory::PublicInput as PublicInputVerifier,
- trace::{
- config::Config as TraceConfigVerifier, Decommitment as TraceDecommitmentVerifier,
- UnsentCommitment as TraceUnsentCommitmentVerifier, Witness as TraceWitnessVerifier,
- },
- types::{AddrValue, Page, SegmentInfo as SegmentInfoVerifier},
-};
-use swiftness_commitment::{
- table::{
- config::Config as TableConfigVerifier,
- types::{
- Decommitment as TableDecommitmentVerifier, Witness as TableCommitmentWitnessVerifier,
- },
- },
- vector::{
- config::Config as VectorConfigVerifier, types::Witness as VectorCommitmentWitnessVerifier,
- },
-};
-use swiftness_fri::{
- config::Config as FriConfigVerifier,
- types::{
- LayerWitness, UnsentCommitment as FriUnsentCommitmentVerifier,
- Witness as FriWitnessVerifier,
- },
-};
-use swiftness_pow::{
- config::Config as PowConfigVerifier, pow::UnsentCommitment as PowUnsentCommitmentVerifier,
-};
-use swiftness_stark::{
- config::StarkConfig as StarkConfigVerifier,
- types::{
- StarkProof as StarkProofVerifier, StarkUnsentCommitment as StarkUnsentCommitmentVerifier,
- StarkWitness as StarkWitnessVerifier,
- },
-};
-
-use crate::stark_proof::*;
-
-impl From for StarkProofVerifier {
- fn from(proof: StarkProof) -> Self {
- StarkProofVerifier {
- config: proof.config.into(),
- public_input: proof.public_input.into(),
- unsent_commitment: proof.unsent_commitment.into(),
- witness: proof.witness.into(),
- }
- }
-}
-
-impl From for StarkConfigVerifier {
- fn from(config: StarkConfig) -> Self {
- StarkConfigVerifier {
- traces: config.traces.into(),
- composition: config.composition.into(),
- fri: config.fri.into(),
- proof_of_work: config.proof_of_work.into(),
- log_trace_domain_size: config.log_trace_domain_size.into(),
- n_queries: config.n_queries.into(),
- log_n_cosets: config.log_n_cosets.into(),
- n_verifier_friendly_commitment_layers: config
- .n_verifier_friendly_commitment_layers
- .into(),
- }
- }
-}
-
-impl From for PowConfigVerifier {
- fn from(pow: ProofOfWorkConfig) -> Self {
- PowConfigVerifier { n_bits: pow.n_bits as u8 }
- }
-}
-
-impl From for FriConfigVerifier {
- fn from(fri: FriConfig) -> Self {
- FriConfigVerifier {
- log_input_size: fri.log_input_size.into(),
- n_layers: fri.n_layers.into(),
- inner_layers: fri.inner_layers.into_iter().map(|x| x.into()).collect(),
- fri_step_sizes: fri.fri_step_sizes.into_iter().map(|x| x.into()).collect(),
- log_last_layer_degree_bound: fri.log_last_layer_degree_bound.into(),
- }
- }
-}
-
-impl From for TraceConfigVerifier {
- fn from(traces: TracesConfig) -> Self {
- TraceConfigVerifier {
- original: traces.original.into(),
- interaction: traces.interaction.into(),
- }
- }
-}
-
-impl From for TableConfigVerifier {
- fn from(config: TableCommitmentConfig) -> Self {
- TableConfigVerifier { n_columns: config.n_columns.into(), vector: config.vector.into() }
- }
-}
-
-impl From for VectorConfigVerifier {
- fn from(vector: VectorCommitmentConfig) -> Self {
- VectorConfigVerifier {
- height: vector.height.into(),
- n_verifier_friendly_commitment_layers: vector
- .n_verifier_friendly_commitment_layers
- .into(),
- }
- }
-}
-
-// ==================================================================================================
-
-impl From for PublicInputVerifier {
- fn from(public_input: CairoPublicInput) -> Self {
- PublicInputVerifier {
- log_n_steps: public_input.log_n_steps.into(),
- range_check_min: public_input.range_check_min.into(),
- range_check_max: public_input.range_check_max.into(),
- layout: public_input.layout.into(),
- dynamic_params: public_input.dynamic_params.values().map(|x| x.into()).collect(),
- segments: public_input.segments.into_iter().map(|x| x.into()).collect(),
- padding_addr: public_input.padding_addr.into(),
- padding_value: public_input.padding_value.into(),
- main_page: Page(public_input.main_page.into_iter().map(|x| x.into()).collect()),
- continuous_page_headers: vec![],
- }
- }
-}
-
-impl From for SegmentInfoVerifier {
- fn from(segment_info: SegmentInfo) -> Self {
- SegmentInfoVerifier {
- begin_addr: segment_info.begin_addr.into(),
- stop_ptr: segment_info.stop_ptr.into(),
- }
- }
-}
-
-impl From for AddrValue {
- fn from(cell: PubilcMemoryCell) -> Self {
- AddrValue { address: cell.address.into(), value: cell.value.into() }
- }
-}
-
-// =================================================================================================
-
-impl From for StarkUnsentCommitmentVerifier {
- fn from(unsent_commitment: StarkUnsentCommitment) -> Self {
- StarkUnsentCommitmentVerifier {
- traces: unsent_commitment.traces.into(),
- composition: unsent_commitment.composition.into(),
- oods_values: unsent_commitment.oods_values.into_iter().map(|x| x.into()).collect(),
- fri: unsent_commitment.fri.into(),
- proof_of_work: unsent_commitment.proof_of_work.into(),
- }
- }
-}
-
-impl From for TraceUnsentCommitmentVerifier {
- fn from(traces: TracesUnsentCommitment) -> Self {
- TraceUnsentCommitmentVerifier {
- original: traces.original.into(),
- interaction: traces.interaction.into(),
- }
- }
-}
-
-impl From for FriUnsentCommitmentVerifier {
- fn from(fri: FriUnsentCommitment) -> Self {
- FriUnsentCommitmentVerifier {
- last_layer_coefficients: fri
- .last_layer_coefficients
- .into_iter()
- .map(|x| x.into())
- .collect(),
- inner_layers: fri.inner_layers.into_iter().map(|x| x.into()).collect(),
- }
- }
-}
-
-impl From for PowUnsentCommitmentVerifier {
- fn from(pow: ProofOfWorkUnsentCommitment) -> Self {
- PowUnsentCommitmentVerifier { nonce: pow.nonce.to_u64_digits()[0] }
- }
-}
-
-// =================================================================================================
-
-impl From for StarkWitnessVerifier {
- fn from(witness: StarkWitness) -> Self {
- StarkWitnessVerifier {
- traces_decommitment: witness.traces_decommitment.into(),
- traces_witness: witness.traces_witness.into(),
- composition_decommitment: witness.composition_decommitment.into(),
- composition_witness: witness.composition_witness.into(),
- fri_witness: witness.fri_witness.into(),
- }
- }
-}
-
-impl From for TraceDecommitmentVerifier {
- fn from(traces: TracesDecommitment) -> Self {
- TraceDecommitmentVerifier {
- original: traces.original.into(),
- interaction: traces.interaction.into(),
- }
- }
-}
-
-impl From for TableDecommitmentVerifier {
- fn from(table: TableDecommitment) -> Self {
- TableDecommitmentVerifier { values: table.values.into_iter().map(|x| x.into()).collect() }
- }
-}
-
-impl From for TraceWitnessVerifier {
- fn from(traces: TracesWitness) -> Self {
- TraceWitnessVerifier {
- original: traces.original.into(),
- interaction: traces.interaction.into(),
- }
- }
-}
-
-impl From for TableCommitmentWitnessVerifier {
- fn from(table: TableCommitmentWitness) -> Self {
- TableCommitmentWitnessVerifier { vector: table.vector.into() }
- }
-}
-
-impl From for VectorCommitmentWitnessVerifier {
- fn from(vector: VectorCommitmentWitness) -> Self {
- VectorCommitmentWitnessVerifier {
- authentications: vector.authentications.into_iter().map(|x| x.into()).collect(),
- }
- }
-}
-
-impl From for FriWitnessVerifier {
- fn from(fri: FriWitness) -> Self {
- FriWitnessVerifier { layers: fri.layers.into_iter().map(|x| x.into()).collect() }
- }
-}
-
-impl From for LayerWitness {
- fn from(layer: FriLayerWitness) -> Self {
- LayerWitness {
- leaves: layer.leaves.into_iter().map(|x| x.into()).collect(),
- table_witness: layer.table_witness.into(),
- }
- }
-}
-
-impl From for TableCommitmentWitnessVerifier {
- fn from(table: TableCommitmentWitnessFlat) -> Self {
- TableCommitmentWitnessVerifier { vector: table.vector.into() }
- }
-}
-
-impl From for VectorCommitmentWitnessVerifier {
- fn from(vector: VectorCommitmentWitnessFlat) -> Self {
- VectorCommitmentWitnessVerifier {
- authentications: vector.authentications.into_iter().map(|x| x.into()).collect(),
- }
- }
-}
diff --git a/proof_parser/src/json_parser.rs b/proof_parser/src/json_parser.rs
index 6545bbb..efdb8e5 100644
--- a/proof_parser/src/json_parser.rs
+++ b/proof_parser/src/json_parser.rs
@@ -2,18 +2,18 @@ use crate::{
annotations::{extract::FromStrHex, Annotations},
builtins::Builtin,
layout::Layout,
- stark_proof::*,
- utils::log2_if_power_of_2,
+ stark_proof::{self, *},
};
use num_bigint::BigUint;
use serde::Deserialize;
+use starknet_crypto::{pedersen_hash, Felt};
use std::{
collections::{BTreeMap, HashMap},
convert::TryFrom,
};
#[derive(Deserialize, Debug, Clone, PartialEq)]
-pub struct ProofJSON {
+pub struct StarkProof {
proof_parameters: ProofParameters,
annotations: Vec,
public_input: PublicInput,
@@ -55,34 +55,26 @@ pub struct PublicMemoryElement {
#[derive(Deserialize, Debug, Clone, PartialEq)]
pub struct PublicInput {
- dynamic_params: Option>,
+ dynamic_params: Option>,
layout: Layout,
- memory_segments: HashMap,
+ memory_segments: BTreeMap,
n_steps: u32,
public_memory: Vec,
rc_min: u32,
rc_max: u32,
}
-impl ProofJSON {
+impl StarkProof {
const COMPONENT_HEIGHT: u32 = 16;
pub fn stark_config(&self) -> anyhow::Result {
let stark = &self.proof_parameters.stark;
let n_verifier_friendly_commitment_layers =
self.proof_parameters.n_verifier_friendly_commitment_layers;
- let consts = match self
- .public_input
- .layout
- .get_dynamics_or_consts(&self.public_input.dynamic_params)
- {
- Some(c) => c,
- None => anyhow::bail!(
- "There were some constant overrides in the dynamic params but couldn't be parsed!"
- ),
- };
+ let consts =
+ self.public_input.layout.get_dynamics_or_consts(&self.public_input.dynamic_params);
- let log_eval_domain_size = self.log_eval_damain_size()?;
+ let log_eval_domain_size = self.log_eval_damain_size(&self.public_input.dynamic_params)?;
let traces = TracesConfig {
original: TableCommitmentConfig {
n_columns: consts.num_columns_first,
@@ -113,7 +105,7 @@ impl ProofJSON {
let proof_of_work = ProofOfWorkConfig { n_bits: fri.proof_of_work_bits };
let n_queries = fri.n_queries;
- let layer_log_sizes = self.layer_log_sizes()?;
+ let layer_log_sizes = self.layer_log_sizes(&self.public_input.dynamic_params)?;
let fri_step_list = fri.fri_step_list;
let log_last_layer_degree_bound = log2_if_power_of_2(fri.last_layer_degree_bound)
@@ -141,23 +133,32 @@ impl ProofJSON {
composition,
fri,
proof_of_work,
- log_trace_domain_size: self.log_trace_domain_size()?,
+ log_trace_domain_size: self.log_trace_domain_size(&self.public_input.dynamic_params)?,
n_queries,
log_n_cosets: stark.log_n_cosets,
n_verifier_friendly_commitment_layers,
})
}
- fn log_trace_domain_size(&self) -> anyhow::Result {
- let consts = self.public_input.layout.get_consts();
+ fn log_trace_domain_size(
+ &self,
+ dynamic_params: &Option>,
+ ) -> anyhow::Result {
+ let consts = self.public_input.layout.get_dynamics_or_consts(dynamic_params);
let effective_component_height = Self::COMPONENT_HEIGHT * consts.cpu_component_step;
log2_if_power_of_2(effective_component_height * self.public_input.n_steps)
.ok_or(anyhow::anyhow!("Invalid cpu component step"))
}
- fn log_eval_damain_size(&self) -> anyhow::Result {
- Ok(self.log_trace_domain_size()? + self.proof_parameters.stark.log_n_cosets)
+ fn log_eval_damain_size(
+ &self,
+ dynamic_params: &Option>,
+ ) -> anyhow::Result {
+ Ok(self.log_trace_domain_size(dynamic_params)? + self.proof_parameters.stark.log_n_cosets)
}
- fn layer_log_sizes(&self) -> anyhow::Result> {
- let mut layer_log_sizes = vec![self.log_eval_damain_size()?];
+ fn layer_log_sizes(
+ &self,
+ dynamic_params: &Option>,
+ ) -> anyhow::Result> {
+ let mut layer_log_sizes = vec![self.log_eval_damain_size(dynamic_params)?];
for layer_step in &self.proof_parameters.stark.fri.fri_step_list {
layer_log_sizes.push(layer_log_sizes.last().unwrap() - layer_step);
}
@@ -167,9 +168,9 @@ impl ProofJSON {
public_input: PublicInput,
z: BigUint,
alpha: BigUint,
- ) -> anyhow::Result {
+ ) -> anyhow::Result {
let continuous_page_headers =
- Self::continuous_page_headers(&public_input.public_memory, z, alpha)?;
+ Self::continuous_page_headers(&public_input.public_memory, z, alpha);
let main_page = Self::main_page(&public_input.public_memory)?;
let dynamic_params = public_input.dynamic_params.unwrap_or_default();
let memory_segments = Builtin::sort_segments(public_input.memory_segments)
@@ -184,7 +185,7 @@ impl ProofJSON {
),
None => anyhow::bail!("Invalid public memory"),
};
- Ok(CairoPublicInput {
+ Ok(stark_proof::PublicInput {
log_n_steps: log2_if_power_of_2(public_input.n_steps)
.ok_or(anyhow::anyhow!("Invalid number of steps"))?,
range_check_min: public_input.rc_min,
@@ -198,7 +199,12 @@ impl ProofJSON {
main_page_len: main_page.len(),
main_page,
n_continuous_pages: continuous_page_headers.len(),
- continuous_page_headers,
+ continuous_page_headers: continuous_page_headers
+ .into_iter()
+ .flat_map(|x| {
+ vec![x.0.to_biguint(), x.1.to_biguint(), x.2.to_biguint(), x.3.to_biguint()]
+ })
+ .collect::>(),
})
}
fn main_page(public_memory: &[PublicMemoryElement]) -> anyhow::Result> {
@@ -214,13 +220,91 @@ impl ProofJSON {
})
.collect::>>()
}
- fn continuous_page_headers(
- _public_memory: &[PublicMemoryElement],
- _z: BigUint,
- _alpha: BigUint,
- ) -> anyhow::Result> {
- //TODO: Do it properly
- Ok(vec![])
+ pub fn continuous_page_headers(
+ public_memory: &[PublicMemoryElement],
+ z: BigUint,
+ alpha: BigUint,
+ ) -> Vec<(Felt, Felt, Felt, Felt)> {
+ let (_pages, page_prods) =
+ Self::get_pages_and_products(public_memory, z.clone(), alpha.clone());
+
+ let mut start_address: HashMap = HashMap::new();
+ let mut size: HashMap = HashMap::new();
+ let mut data: HashMap> = HashMap::new();
+
+ for access in public_memory {
+ let page_id = Felt::from(access.page);
+ let addr = Felt::from(access.address);
+ let val = Felt::from_hex(&access.value).unwrap();
+
+ start_address.entry(page_id).or_insert(addr);
+ if page_id == Felt::ZERO {
+ continue;
+ }
+
+ // Ensure the address is correct
+ let current_size = data.entry(page_id).or_default().len();
+ let expected_address = start_address.get(&page_id).unwrap() + Felt::from(current_size);
+ assert_eq!(addr, expected_address);
+
+ data.get_mut(&page_id).unwrap().push(val);
+ *size.entry(page_id).or_insert(Felt::ZERO) += Felt::ONE;
+ }
+
+ let n_pages = size.len() + 1; // +1 because size does not count page 0
+ assert_eq!(page_prods.len(), n_pages);
+
+ let mut headers = Vec::new();
+ let mut sorted_keys: Vec<_> = size.keys().collect();
+ sorted_keys.sort(); // Ensure keys are sorted
+
+ for (i, page_id) in sorted_keys.into_iter().enumerate() {
+ let page_index = i + 1;
+ assert_eq!(Felt::from(page_index), *page_id);
+ let hash_value = Self::compute_hash_on_elements(data.get(page_id).unwrap());
+ let header = (
+ *start_address.get(page_id).unwrap(),
+ *size.get(page_id).unwrap(),
+ hash_value,
+ *page_prods.get(page_id).unwrap(),
+ );
+ headers.push(header);
+ }
+
+ headers
+ }
+ fn compute_hash_on_elements(data: &[Felt]) -> Felt {
+ let hash = data.iter().fold(Felt::ZERO, |acc, value| pedersen_hash(&acc, value));
+ pedersen_hash(&hash, &Felt::from(data.len()))
+ }
+ fn get_pages_and_products(
+ public_memory: &[PublicMemoryElement],
+ z: BigUint,
+ alpha: BigUint,
+ ) -> (HashMap>, HashMap) {
+ let mut pages = HashMap::new();
+ let mut page_prods = HashMap::new();
+
+ let z = Felt::from(z);
+ let alpha = Felt::from(alpha);
+
+ for cell in public_memory {
+ let page_id = Felt::from(cell.page);
+ let addr = Felt::from(cell.address);
+ let val = Felt::from_hex(&cell.value).unwrap();
+
+ // Insert or get the vector for the current page_id
+ let page = pages.entry(page_id).or_insert_with(Vec::new);
+ page.push(addr);
+ page.push(val);
+
+ // Calculate the product for the current page_id
+ let product = z - (addr + alpha * val);
+ let page_prod = page_prods.entry(page_id).or_insert(Felt::ONE);
+ *page_prod *= product;
+ }
+
+ (pages, page_prods)
}
fn stark_unsent_commitment(&self, annotations: &Annotations) -> StarkUnsentCommitment {
StarkUnsentCommitment {
@@ -295,16 +379,16 @@ impl ProofJSON {
}
}
-impl TryFrom for StarkProof {
+impl TryFrom for stark_proof::StarkProof {
type Error = anyhow::Error;
- fn try_from(value: ProofJSON) -> anyhow::Result {
+ fn try_from(value: StarkProof) -> anyhow::Result {
let config = value.stark_config()?;
let annotations = Annotations::new(
&value.annotations.iter().map(String::as_str).collect::>(),
value.proof_parameters.stark.fri.fri_step_list.len(),
)?;
- let public_input = ProofJSON::public_input(
+ let public_input = StarkProof::public_input(
value.public_input.clone(),
annotations.z.clone(),
annotations.alpha.clone(),
@@ -312,6 +396,14 @@ impl TryFrom for StarkProof {
let unsent_commitment = value.stark_unsent_commitment(&annotations);
let witness = value.stark_witness(&annotations);
- Ok(StarkProof { config, public_input, unsent_commitment, witness })
+ Ok(stark_proof::StarkProof { config, public_input, unsent_commitment, witness })
+ }
+}
+
+pub fn log2_if_power_of_2(x: u32) -> Option {
+ if x != 0 && (x & (x - 1)) == 0 {
+ Some(f64::from(x).log2() as u32)
+ } else {
+ None
}
}
diff --git a/proof_parser/src/layout.rs b/proof_parser/src/layout.rs
index b8979a4..d5f5e7e 100644
--- a/proof_parser/src/layout.rs
+++ b/proof_parser/src/layout.rs
@@ -1,6 +1,5 @@
-use num_bigint::BigUint;
use serde::Deserialize;
-use std::{collections::BTreeMap, convert::TryInto, fmt::Display};
+use std::{collections::BTreeMap, fmt::Display};
// For now only the recursive and starknet layouts is supported
#[derive(Debug, Clone, PartialEq, Deserialize)]
@@ -13,6 +12,7 @@ pub enum Layout {
Small,
Starknet,
StarknetWithKeccak,
+ Dynamic,
}
impl Layout {
@@ -25,41 +25,30 @@ impl Layout {
Layout::Small => LayoutConstants::small(),
Layout::Starknet => LayoutConstants::starknet(),
Layout::StarknetWithKeccak => LayoutConstants::starknet_with_keccak(),
+ Layout::Dynamic => LayoutConstants::dynamic(),
}
}
pub fn get_dynamics_or_consts(
&self,
- dynamic_params: &Option>,
- ) -> Option {
+ dynamic_params: &Option>,
+ ) -> LayoutConstants {
let consts = self.get_consts();
- let dynamic_params = match dynamic_params {
- Some(dp) => dp,
- None => return Some(consts),
- };
-
- Some(LayoutConstants {
- cpu_component_step: dynamic_params
- .get("cpu_component_step")
- .map(<&BigUint>::try_into)
- .map(Result::ok)?
- .unwrap_or(consts.cpu_component_step),
- constraint_degree: dynamic_params
- .get("constraint_degree")
- .map(<&BigUint>::try_into)
- .map(Result::ok)?
- .unwrap_or(consts.constraint_degree),
- num_columns_first: dynamic_params
- .get("num_columns_first")
- .map(<&BigUint>::try_into)
- .map(Result::ok)?
- .unwrap_or(consts.num_columns_first),
- num_columns_second: dynamic_params
- .get("num_columns_second")
- .map(<&BigUint>::try_into)
- .map(Result::ok)?
- .unwrap_or(consts.num_columns_second),
- })
+ match dynamic_params {
+ Some(dynamic_params) => LayoutConstants {
+ cpu_component_step: *dynamic_params
+ .get("cpu_component_step")
+ .unwrap_or(&consts.cpu_component_step),
+ constraint_degree: consts.constraint_degree,
+ num_columns_first: *dynamic_params
+ .get("num_columns_first")
+ .unwrap_or(&consts.cpu_component_step),
+ num_columns_second: *dynamic_params
+ .get("num_columns_second")
+ .unwrap_or(&consts.cpu_component_step),
+ },
+ None => consts,
+ }
}
pub fn bytes_encode(&self) -> Vec {
self.to_string().as_bytes().to_vec()
@@ -76,11 +65,12 @@ impl Display for Layout {
Layout::Small => write!(f, "small"),
Layout::Starknet => write!(f, "starknet"),
Layout::StarknetWithKeccak => write!(f, "starknet_with_keccak"),
+ Layout::Dynamic => write!(f, "dynamic"),
}
}
}
-pub(crate) struct LayoutConstants {
+pub struct LayoutConstants {
pub cpu_component_step: u32,
pub constraint_degree: u32,
pub num_columns_first: u32,
@@ -144,4 +134,12 @@ impl LayoutConstants {
num_columns_second: 1,
}
}
+ pub fn dynamic() -> Self {
+ LayoutConstants {
+ constraint_degree: 2,
+ cpu_component_step: 4,
+ num_columns_first: 0,
+ num_columns_second: 0,
+ }
+ }
}
diff --git a/proof_parser/src/lib.rs b/proof_parser/src/lib.rs
index 3df3adb..1c15424 100644
--- a/proof_parser/src/lib.rs
+++ b/proof_parser/src/lib.rs
@@ -1,24 +1,13 @@
-mod annotations;
-mod builtins;
-mod conversion;
-mod json_parser;
-mod layout;
-mod stark_proof;
-mod utils;
-
-use crate::{json_parser::ProofJSON, stark_proof::StarkProof};
-use std::convert::TryFrom;
-extern crate clap;
-extern crate num_bigint;
-extern crate regex;
-extern crate serde;
-use swiftness_stark::types::StarkProof as StarkProofFromVerifier;
-
-pub fn parse(input: String) -> anyhow::Result {
- let proof_json = serde_json::from_str::(&input)?;
- let stark_proof = StarkProof::try_from(proof_json)?;
- let stark_proof_verifier: StarkProofFromVerifier = stark_proof.into();
- Ok(stark_proof_verifier)
+pub mod annotations;
+pub mod builtins;
+pub mod json_parser;
+pub mod layout;
+pub mod stark_proof;
+pub use stark_proof::*;
+
+pub fn parse(input: String) -> anyhow::Result {
+ let proof_json = serde_json::from_str::(&input)?;
+ stark_proof::StarkProof::try_from(proof_json)
}
#[cfg(test)]
@@ -26,10 +15,53 @@ mod tests {
use super::*;
#[test]
- fn test_parse() {
+ fn test_parse_dex() {
+ let input = include_str!("../../examples/proofs/dex/cairo0_example_proof.json");
+ let proof_json = serde_json::from_str::(input).unwrap();
+ stark_proof::StarkProof::try_from(proof_json).unwrap();
+ }
+
+ #[test]
+ fn test_parse_dynamic() {
+ let input = include_str!("../../examples/proofs/dynamic/cairo0_example_proof.json");
+ let proof_json = serde_json::from_str::(input).unwrap();
+ stark_proof::StarkProof::try_from(proof_json).unwrap();
+ }
+
+ #[test]
+ fn test_parse_recursive() {
let input = include_str!("../../examples/proofs/recursive/cairo0_example_proof.json");
- let proof_json = serde_json::from_str::(input).unwrap();
- let stark_proof = StarkProof::try_from(proof_json).unwrap();
- let _: StarkProofFromVerifier = stark_proof.into();
+ let proof_json = serde_json::from_str::(input).unwrap();
+ stark_proof::StarkProof::try_from(proof_json).unwrap();
+ }
+
+ #[test]
+ fn test_parse_recursive_with_poseidon() {
+ let input =
+ include_str!("../../examples/proofs/recursive_with_poseidon/cairo0_example_proof.json");
+ let proof_json = serde_json::from_str::(input).unwrap();
+ stark_proof::StarkProof::try_from(proof_json).unwrap();
+ }
+
+ #[test]
+ fn test_parse_small() {
+ let input = include_str!("../../examples/proofs/small/cairo0_example_proof.json");
+ let proof_json = serde_json::from_str::(input).unwrap();
+ stark_proof::StarkProof::try_from(proof_json).unwrap();
+ }
+
+ #[test]
+ fn test_parse_starknet() {
+ let input = include_str!("../../examples/proofs/starknet/cairo0_example_proof.json");
+ let proof_json = serde_json::from_str::(input).unwrap();
+ stark_proof::StarkProof::try_from(proof_json).unwrap();
+ }
+
+ #[test]
+ fn test_parse_starknet_with_keccak() {
+ let input =
+ include_str!("../../examples/proofs/starknet_with_keccak/cairo0_example_proof.json");
+ let proof_json = serde_json::from_str::(input).unwrap();
+ stark_proof::StarkProof::try_from(proof_json).unwrap();
}
}
diff --git a/proof_parser/src/stark_proof.rs b/proof_parser/src/stark_proof.rs
index 980cf69..f8a93af 100644
--- a/proof_parser/src/stark_proof.rs
+++ b/proof_parser/src/stark_proof.rs
@@ -4,7 +4,7 @@ use std::collections::BTreeMap;
#[derive(Debug, Clone, PartialEq)]
pub struct StarkProof {
pub config: StarkConfig,
- pub public_input: CairoPublicInput,
+ pub public_input: PublicInput,
pub unsent_commitment: StarkUnsentCommitment,
pub witness: StarkWitness,
}
@@ -135,12 +135,12 @@ pub struct FriLayerWitness {
}
#[derive(Debug, Clone, PartialEq)]
-pub struct CairoPublicInput {
+pub struct PublicInput {
pub log_n_steps: u32,
pub range_check_min: u32,
pub range_check_max: u32,
pub layout: BigUint,
- pub dynamic_params: BTreeMap,
+ pub dynamic_params: BTreeMap,
pub n_segments: usize,
pub segments: Vec,
pub padding_addr: u32,
diff --git a/proof_parser/src/utils.rs b/proof_parser/src/utils.rs
deleted file mode 100644
index 710ac42..0000000
--- a/proof_parser/src/utils.rs
+++ /dev/null
@@ -1,36 +0,0 @@
-pub fn log2_if_power_of_2(x: u32) -> Option {
- if x != 0 && (x & (x - 1)) == 0 {
- Some(f64::from(x).log2() as u32)
- } else {
- None
- }
-}
-
-#[cfg(test)]
-mod tests {
- use super::*;
-
- #[test]
- fn test_power_of_2() {
- assert_eq!(log2_if_power_of_2(1), Some(0));
- assert_eq!(log2_if_power_of_2(2), Some(1));
- assert_eq!(log2_if_power_of_2(4), Some(2));
- assert_eq!(log2_if_power_of_2(8), Some(3));
- assert_eq!(log2_if_power_of_2(16), Some(4));
- }
-
- #[test]
- fn test_not_power_of_2() {
- assert_eq!(log2_if_power_of_2(0), None);
- assert_eq!(log2_if_power_of_2(3), None);
- assert_eq!(log2_if_power_of_2(5), None);
- assert_eq!(log2_if_power_of_2(6), None);
- assert_eq!(log2_if_power_of_2(9), None);
- }
-
- #[test]
- fn test_large_power_of_2() {
- assert_eq!(log2_if_power_of_2(1024), Some(10));
- assert_eq!(log2_if_power_of_2(1 << 15), Some(15));
- }
-}
diff --git a/runtime.dockerfile b/runtime.dockerfile
index 177f1ba..624c35b 100644
--- a/runtime.dockerfile
+++ b/runtime.dockerfile
@@ -8,7 +8,7 @@ WORKDIR /swiftness
COPY . .
# Define build arguments for features
-ARG FEATURES="starknet_with_keccak,blake2s"
+ARG FEATURES="starknet_with_keccak,blake2s_160_lsb"
# Use the build arguments in the cargo install command
RUN cargo install -f --path cli/ --features $FEATURES --no-default-features
\ No newline at end of file
diff --git a/wasm_bindings/Cargo.lock b/wasm_bindings/Cargo.lock
index f1fe351..276bae3 100644
--- a/wasm_bindings/Cargo.lock
+++ b/wasm_bindings/Cargo.lock
@@ -724,14 +724,29 @@ version = "2.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
+[[package]]
+name = "swiftness"
+version = "0.0.9"
+dependencies = [
+ "clap",
+ "swiftness_air",
+ "swiftness_commitment",
+ "swiftness_fri",
+ "swiftness_pow",
+ "swiftness_proof_parser",
+ "swiftness_stark",
+]
+
[[package]]
name = "swiftness_air"
-version = "0.0.8"
+version = "0.0.9"
dependencies = [
+ "num-bigint",
"serde",
"serde_with 3.9.0",
"starknet-core",
"starknet-crypto",
+ "starknet-types-core",
"swiftness_commitment",
"swiftness_transcript",
"thiserror",
@@ -740,9 +755,10 @@ dependencies = [
[[package]]
name = "swiftness_commitment"
-version = "0.0.8"
+version = "0.0.9"
dependencies = [
"blake2",
+ "num-bigint",
"serde",
"serde_with 3.9.0",
"sha3",
@@ -756,8 +772,9 @@ dependencies = [
[[package]]
name = "swiftness_fri"
-version = "0.0.8"
+version = "0.0.9"
dependencies = [
+ "num-bigint",
"serde",
"serde_with 3.9.0",
"sha3",
@@ -771,7 +788,7 @@ dependencies = [
[[package]]
name = "swiftness_pow"
-version = "0.0.8"
+version = "0.0.9"
dependencies = [
"blake2",
"serde",
@@ -785,7 +802,7 @@ dependencies = [
[[package]]
name = "swiftness_proof_parser"
-version = "0.0.8"
+version = "0.0.9"
dependencies = [
"anyhow",
"clap",
@@ -793,19 +810,14 @@ dependencies = [
"regex",
"serde",
"serde_json",
+ "starknet-crypto",
"starknet-types-core",
- "swiftness_air",
- "swiftness_commitment",
- "swiftness_fri",
- "swiftness_pow",
- "swiftness_stark",
- "swiftness_transcript",
"thiserror",
]
[[package]]
name = "swiftness_stark"
-version = "0.0.8"
+version = "0.0.9"
dependencies = [
"serde",
"serde_with 3.9.0",
@@ -822,17 +834,18 @@ dependencies = [
[[package]]
name = "swiftness_transcript"
-version = "0.0.8"
+version = "0.0.9"
dependencies = [
"starknet-crypto",
]
[[package]]
name = "swiftness_wasm"
-version = "0.0.8"
+version = "0.0.9"
dependencies = [
"getrandom",
"serde_json",
+ "swiftness",
"swiftness_air",
"swiftness_proof_parser",
"swiftness_stark",
diff --git a/wasm_bindings/Cargo.toml b/wasm_bindings/Cargo.toml
index ae5a60f..1dfad05 100644
--- a/wasm_bindings/Cargo.toml
+++ b/wasm_bindings/Cargo.toml
@@ -5,21 +5,20 @@ edition = "2021"
license-file = "LICENSE"
readme = "README.md"
repository = "https://github.com/iosis-tech/swiftness"
-version = "0.0.8"
+version = "0.0.9"
[dependencies]
-wasm-bindgen = "0.2"
serde_json = "1.0.114"
+wasm-bindgen = "0.2"
+swiftness = { path = "../cli", default-features = false, version = "0.0.9" }
swiftness_air = { path = "../crates/air", default-features = false, features = [
"std",
-], version = "0.0.8" }
+], version = "0.0.9" }
swiftness_stark = { path = "../crates/stark", default-features = false, features = [
"std",
-], version = "0.0.8" }
-swiftness_proof_parser = { path = "../proof_parser", default-features = false, features = [
- "std",
-], version = "0.0.8" }
+], version = "0.0.9" }
+swiftness_proof_parser = { path = "../proof_parser", version = "0.0.9" }
[lib]
crate-type = ["cdylib", "rlib"]
@@ -28,25 +27,65 @@ crate-type = ["cdylib", "rlib"]
getrandom = { version = "0.2.15", features = ["js"] }
[features]
-default = ["recursive", "keccak"]
-dex = ["swiftness_air/dex", "swiftness_stark/dex"]
+default = ["recursive", "keccak_160_lsb", "stone5"]
+dex = [
+ "swiftness/dex",
+ "swiftness_air/dex",
+ "swiftness_stark/dex"
+]
recursive = [
+ "swiftness/recursive",
"swiftness_air/recursive",
"swiftness_stark/recursive",
]
recursive_with_poseidon = [
+ "swiftness/recursive_with_poseidon",
"swiftness_air/recursive_with_poseidon",
"swiftness_stark/recursive_with_poseidon",
]
-small = ["swiftness_air/small", "swiftness_stark/small"]
-starknet = ["swiftness_air/starknet", "swiftness_stark/starknet"]
+small = [
+ "swiftness/small",
+ "swiftness_air/small",
+ "swiftness_stark/small"
+]
+starknet = [
+ "swiftness/starknet",
+ "swiftness_air/starknet",
+ "swiftness_stark/starknet"
+]
starknet_with_keccak = [
+ "swiftness/starknet_with_keccak",
"swiftness_air/starknet_with_keccak",
"swiftness_stark/starknet_with_keccak",
]
-keccak = [
- "swiftness_stark/keccak",
+dynamic = [
+ "swiftness/dynamic",
+ "swiftness_air/dynamic",
+ "swiftness_stark/dynamic",
+]
+stone5 = [
+ "swiftness/stone5",
+ "swiftness_air/stone5",
+ "swiftness_stark/stone5",
+]
+stone6 = [
+ "swiftness/stone6",
+ "swiftness_air/stone6",
+ "swiftness_stark/stone6",
+]
+keccak_160_lsb = [
+ "swiftness/keccak_160_lsb",
+ "swiftness_stark/keccak_160_lsb",
+]
+keccak_248_lsb = [
+ "swiftness/keccak_248_lsb",
+ "swiftness_stark/keccak_248_lsb",
+]
+blake2s_160_lsb = [
+ "swiftness/blake2s_160_lsb",
+ "swiftness_stark/blake2s_160_lsb",
]
-blake2s = [
- "swiftness_stark/blake2s",
+blake2s_248_lsb = [
+ "swiftness/blake2s_248_lsb",
+ "swiftness_stark/blake2s_248_lsb",
]
\ No newline at end of file
diff --git a/wasm_bindings/README.md b/wasm_bindings/README.md
index 0c7db8f..27a49aa 100644
--- a/wasm_bindings/README.md
+++ b/wasm_bindings/README.md
@@ -2,7 +2,7 @@
-![Version](https://img.shields.io/badge/v0.0.8-green?style=flat-square&logo=git&logoColor=white&label=version)
+![Version](https://img.shields.io/badge/v0.0.9-green?style=flat-square&logo=git&logoColor=white&label=version)
![Continuous Integration](https://img.shields.io/github/actions/workflow/status/iosis-tech/swiftness/ci.yml?style=flat-square&logo=githubactions&logoColor=white&label=Continuous%20Integration)
[![Crates.io Version](https://img.shields.io/crates/v/swiftness?style=flat-square&logo=lootcrate)](https://crates.io/crates/swiftness)
diff --git a/wasm_bindings/src/lib.rs b/wasm_bindings/src/lib.rs
index 608d9fb..61681c9 100644
--- a/wasm_bindings/src/lib.rs
+++ b/wasm_bindings/src/lib.rs
@@ -1,5 +1,7 @@
#[cfg(feature = "dex")]
use swiftness_air::layout::dex::Layout;
+#[cfg(feature = "dynamic")]
+use swiftness_air::layout::dynamic::Layout;
#[cfg(feature = "recursive")]
use swiftness_air::layout::recursive::Layout;
#[cfg(feature = "recursive_with_poseidon")]
@@ -11,6 +13,7 @@ use swiftness_air::layout::starknet::Layout;
#[cfg(feature = "starknet_with_keccak")]
use swiftness_air::layout::starknet_with_keccak::Layout;
+use swiftness::transform::TransformTo;
use swiftness_proof_parser::parse;
use wasm_bindgen::prelude::*;
@@ -20,7 +23,7 @@ pub fn verify_proof(proof: JsValue) -> Result {
let proof_str: String = proof.as_string().ok_or_else(|| JsError::new("Invalid input"))?;
// Parse the proof
- let stark_proof = parse(proof_str).map_err(|e| JsError::new(&e.to_string()))?;
+ let stark_proof = parse(proof_str).map_err(|e| JsError::new(&e.to_string()))?.transform_to();
// Get security bits and verify
let security_bits = stark_proof.config.security_bits();