diff --git a/rustdoc/help.html b/rustdoc/help.html index 5f6a6e11c2..5b57a161fa 100644 --- a/rustdoc/help.html +++ b/rustdoc/help.html @@ -1 +1 @@ -
pub fn cannon_main(args: RunArgs)
pub fn cannon_main(args: RunArgs)
pub(crate) fn gen_state_json(arg: GenStateJsonArgs) -> Result<(), String>
pub(crate) fn gen_state_json(arg: GenStateJsonArgs) -> Result<(), String>
pub fn main() -> ExitCode
pub fn main() -> ExitCode
pub struct NullPreImageOracle;
cmd: Command
§oracle_client: RW
§oracle_server: RW
§hint_client: RW
§hint_server: RW
cmd: Command
§oracle_client: RW
§oracle_server: RW
§hint_client: RW
§hint_server: RW
Returns the argument unchanged.
diff --git a/rustdoc/o1vm/preimage_oracle/trait.PreImageOracleT.html b/rustdoc/o1vm/preimage_oracle/trait.PreImageOracleT.html index 9da918e494..0bee0f22a8 100644 --- a/rustdoc/o1vm/preimage_oracle/trait.PreImageOracleT.html +++ b/rustdoc/o1vm/preimage_oracle/trait.PreImageOracleT.html @@ -1,5 +1,5 @@ -pub trait PreImageOracleT {
+PreImageOracleT in o1vm::preimage_oracle - Rust Trait o1vm::preimage_oracle::PreImageOracleT
source · pub trait PreImageOracleT {
// Required methods
fn get_preimage(&mut self, key: [u8; 32]) -> Preimage;
fn hint(&mut self, hint: Hint);
-}
Required Methods§
Implementors§
source§impl PreImageOracleT for PreImageOracle
\ No newline at end of file
+}
pub fn cannon_main(args: RunArgs)
pub fn cannon_main(args: RunArgs)
pub(crate) fn gen_state_json(arg: GenStateJsonArgs) -> Result<(), String>
pub(crate) fn gen_state_json(arg: GenStateJsonArgs) -> Result<(), String>
pub fn main() -> ExitCode
pub fn main() -> ExitCode
pub fn absorb_commitment<Fq: Field, G: Clone, Fr: PrimeField, EFqSponge: FqSponge<Fq, G, Fr>>(
+absorb_commitment in poly_commitment::commitment - Rust Function poly_commitment::commitment::absorb_commitment
source · pub fn absorb_commitment<Fq: Field, G: Clone, Fr: PrimeField, EFqSponge: FqSponge<Fq, G, Fr>>(
sponge: &mut EFqSponge,
commitment: &PolyComm<G>
)
\ No newline at end of file
diff --git a/rustdoc/poly_commitment/commitment/fn.squeeze_challenge.html b/rustdoc/poly_commitment/commitment/fn.squeeze_challenge.html
index 234138913e..d1d24fbe8c 100644
--- a/rustdoc/poly_commitment/commitment/fn.squeeze_challenge.html
+++ b/rustdoc/poly_commitment/commitment/fn.squeeze_challenge.html
@@ -1,4 +1,4 @@
-squeeze_challenge in poly_commitment::commitment - Rust Function poly_commitment::commitment::squeeze_challenge
source · pub fn squeeze_challenge<Fq: Field, G, Fr: PrimeField, EFqSponge: FqSponge<Fq, G, Fr>>(
+squeeze_challenge in poly_commitment::commitment - Rust Function poly_commitment::commitment::squeeze_challenge
source · pub fn squeeze_challenge<Fq: Field, G, Fr: PrimeField, EFqSponge: FqSponge<Fq, G, Fr>>(
endo_r: &Fr,
sponge: &mut EFqSponge
) -> Fr
\ No newline at end of file
diff --git a/rustdoc/poly_commitment/commitment/fn.squeeze_prechallenge.html b/rustdoc/poly_commitment/commitment/fn.squeeze_prechallenge.html
index 5aee728f7f..8f3d834806 100644
--- a/rustdoc/poly_commitment/commitment/fn.squeeze_prechallenge.html
+++ b/rustdoc/poly_commitment/commitment/fn.squeeze_prechallenge.html
@@ -1,3 +1,3 @@
-squeeze_prechallenge in poly_commitment::commitment - Rust Function poly_commitment::commitment::squeeze_prechallenge
source · pub fn squeeze_prechallenge<Fq: Field, G, Fr: Field, EFqSponge: FqSponge<Fq, G, Fr>>(
+squeeze_prechallenge in poly_commitment::commitment - Rust Function poly_commitment::commitment::squeeze_prechallenge
source · pub fn squeeze_prechallenge<Fq: Field, G, Fr: Field, EFqSponge: FqSponge<Fq, G, Fr>>(
sponge: &mut EFqSponge
-) -> ScalarChallenge<Fr>
\ No newline at end of file
+) -> ScalarChallenge<Fr>
\ No newline at end of file
diff --git a/rustdoc/poly_commitment/commitment/struct.BatchEvaluationProof.html b/rustdoc/poly_commitment/commitment/struct.BatchEvaluationProof.html
index 7a2ec0ccf3..27bc6c4ea8 100644
--- a/rustdoc/poly_commitment/commitment/struct.BatchEvaluationProof.html
+++ b/rustdoc/poly_commitment/commitment/struct.BatchEvaluationProof.html
@@ -1,6 +1,6 @@
BatchEvaluationProof in poly_commitment::commitment - Rust Struct poly_commitment::commitment::BatchEvaluationProof
source · pub struct BatchEvaluationProof<'a, G, EFqSponge, OpeningProof>where
G: AffineRepr,
- EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>,{
+ EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>,{
pub sponge: EFqSponge,
pub evaluations: Vec<Evaluation<G>>,
pub evaluation_points: Vec<G::ScalarField>,
diff --git a/rustdoc/poly_commitment/commitment/trait.EndoCurve.html b/rustdoc/poly_commitment/commitment/trait.EndoCurve.html
index bd3cf988b9..2a252d2dfd 100644
--- a/rustdoc/poly_commitment/commitment/trait.EndoCurve.html
+++ b/rustdoc/poly_commitment/commitment/trait.EndoCurve.html
@@ -6,7 +6,7 @@
_endo_q: Self::BaseField,
g1: &[Self],
g2: &[Self],
- x2: ScalarChallenge<Self::ScalarField>
+ x2: ScalarChallenge<Self::ScalarField>
) -> Vec<Self> { ... }
fn combine(
g1: &[Self],
@@ -23,7 +23,7 @@
_endo_q: Self::BaseField,
g1: &[Self],
g2: &[Self],
- x2: ScalarChallenge<Self::ScalarField>
+ x2: ScalarChallenge<Self::ScalarField>
) -> Vec<Self>
Combine where x1 = one
sourcefn combine(
g1: &[Self],
@@ -35,7 +35,7 @@
endo_q: Self::BaseField,
g1: &[Self],
g2: &[Self],
- x2: ScalarChallenge<Self::ScalarField>
+ x2: ScalarChallenge<Self::ScalarField>
) -> Vec<Self>
source§fn combine(
g1: &[Self],
g2: &[Self],
diff --git a/rustdoc/poly_commitment/ipa/struct.OpeningProof.html b/rustdoc/poly_commitment/ipa/struct.OpeningProof.html
index 443159a03d..bd86a95420 100644
--- a/rustdoc/poly_commitment/ipa/struct.OpeningProof.html
+++ b/rustdoc/poly_commitment/ipa/struct.OpeningProof.html
@@ -6,12 +6,12 @@
pub sg: G,
}Fields§
§lr: Vec<(G, G)>
Vector of rounds of L & R commitments
§delta: G
§z1: G::ScalarField
§z2: G::ScalarField
§sg: G
A final folded commitment base
-Implementations§
source§impl<G: AffineRepr> OpeningProof<G>
sourcepub fn prechallenges<EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>>(
+
Implementations§
source§impl<G: AffineRepr> OpeningProof<G>
sourcepub fn prechallenges<EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>>(
&self,
sponge: &mut EFqSponge
-) -> Vec<ScalarChallenge<G::ScalarField>>
Computes a log-sized vector of scalar challenges for
+) -> Vec<ScalarChallenge<G::ScalarField>>
Computes a log-sized vector of scalar challenges for
recombining elements inside the IPA.
-sourcepub fn challenges<EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>>(
+
sourcepub fn challenges<EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>>(
&self,
endo_r: &G::ScalarField,
sponge: &mut EFqSponge
@@ -38,7 +38,7 @@
sponge: EFqSponge,
rng: &mut RNG
) -> Selfwhere
- EFqSponge: Clone + FqSponge<<G as AffineRepr>::BaseField, G, <G as AffineRepr>::ScalarField>,
+ EFqSponge: Clone + FqSponge<<G as AffineRepr>::BaseField, G, <G as AffineRepr>::ScalarField>,
RNG: RngCore + CryptoRng,
Create an opening proof for a batch of polynomials. The parameters are
the following: Read moresource§fn verify<EFqSponge, RNG>(
srs: &Self::SRS,
@@ -46,7 +46,7 @@
batch: &mut [BatchEvaluationProof<'_, G, EFqSponge, Self>],
rng: &mut RNG
) -> boolwhere
- EFqSponge: FqSponge<<G as AffineRepr>::BaseField, G, <G as AffineRepr>::ScalarField>,
+ EFqSponge: FqSponge<<G as AffineRepr>::BaseField, G, <G as AffineRepr>::ScalarField>,
RNG: RngCore + CryptoRng,
Verify the opening proofsource§impl<G: PartialEq + AffineRepr> PartialEq<OpeningProof<G>> for OpeningProof<G>where
G::ScalarField: PartialEq,
source§fn eq(&self, other: &OpeningProof<G>) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
.1.0.0 · source§fn ne(&self, other: &Rhs) -> bool
This method tests for !=
. The default implementation is almost always
diff --git a/rustdoc/poly_commitment/ipa/struct.SRS.html b/rustdoc/poly_commitment/ipa/struct.SRS.html
index aad24b7e38..75cb297cd5 100644
--- a/rustdoc/poly_commitment/ipa/struct.SRS.html
+++ b/rustdoc/poly_commitment/ipa/struct.SRS.html
@@ -13,7 +13,7 @@
batch: &mut [BatchEvaluationProof<'_, G, EFqSponge, OpeningProof<G>>],
rng: &mut RNG
) -> boolwhere
- EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>,
+ EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>,
RNG: RngCore + CryptoRng,
G::BaseField: PrimeField,This function verifies a batch of polynomial commitment opening proofs.
Return true
if the verification is successful, false
otherwise.
@@ -36,7 +36,7 @@ Safety
sponge: EFqSponge,
rng: &mut RNG
) -> OpeningProof<G>where
- EFqSponge: Clone + FqSponge<G::BaseField, G, G::ScalarField>,
+ EFqSponge: Clone + FqSponge<G::BaseField, G, G::ScalarField>,
RNG: RngCore + CryptoRng,
G::BaseField: PrimeField,
G: EndoCurve,Trait Implementations§
source§impl<'de, G> Deserialize<'de> for SRS<G>where
diff --git a/rustdoc/poly_commitment/kzg/struct.KZGProof.html b/rustdoc/poly_commitment/kzg/struct.KZGProof.html
index 42c500236b..8236d77c5d 100644
--- a/rustdoc/poly_commitment/kzg/struct.KZGProof.html
+++ b/rustdoc/poly_commitment/kzg/struct.KZGProof.html
@@ -41,7 +41,7 @@
_sponge: EFqSponge,
_rng: &mut RNG
) -> Selfwhere
- EFqSponge: Clone + FqSponge<<G as AffineRepr>::BaseField, G, F>,
+ EFqSponge: Clone + FqSponge<<G as AffineRepr>::BaseField, G, F>,
RNG: RngCore + CryptoRng,
Auto Trait Implementations§
§impl<Pair> RefUnwindSafe for KZGProof<Pair>where
diff --git a/rustdoc/poly_commitment/trait.OpenProof.html b/rustdoc/poly_commitment/trait.OpenProof.html
index 793f009e89..b6d4dd628c 100644
--- a/rustdoc/poly_commitment/trait.OpenProof.html
+++ b/rustdoc/poly_commitment/trait.OpenProof.html
@@ -12,7 +12,7 @@
sponge: EFqSponge,
rng: &mut RNG
) -> Self
- where EFqSponge: Clone + FqSponge<<G as AffineRepr>::BaseField, G, <G as AffineRepr>::ScalarField>,
+ where EFqSponge: Clone + FqSponge<<G as AffineRepr>::BaseField, G, <G as AffineRepr>::ScalarField>,
RNG: RngCore + CryptoRng;
fn verify<EFqSponge, RNG>(
srs: &Self::SRS,
@@ -20,7 +20,7 @@
batch: &mut [BatchEvaluationProof<'_, G, EFqSponge, Self>],
rng: &mut RNG
) -> bool
- where EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>,
+ where EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>,
RNG: RngCore + CryptoRng;
}Required Associated Types§
Required Methods§
sourcefn open<EFqSponge, RNG, D: EvaluationDomain<<G as AffineRepr>::ScalarField>>(
srs: &Self::SRS,
@@ -32,7 +32,7 @@
sponge: EFqSponge,
rng: &mut RNG
) -> Selfwhere
- EFqSponge: Clone + FqSponge<<G as AffineRepr>::BaseField, G, <G as AffineRepr>::ScalarField>,
+ EFqSponge: Clone + FqSponge<<G as AffineRepr>::BaseField, G, <G as AffineRepr>::ScalarField>,
RNG: RngCore + CryptoRng,
Create an opening proof for a batch of polynomials. The parameters are
the following:
Implementors§
source§impl<BaseField: PrimeField, G: AffineRepr<BaseField = BaseField> + CommitmentCurve + EndoCurve> OpenProof<G> for OpeningProof<G>
source§impl<F: PrimeField, G: CommitmentCurve<ScalarField = F>, G2: CommitmentCurve<ScalarField = F>, Pair: Pairing<G1Affine = G, G2Affine = G2>> OpenProof<G> for KZGProof<Pair>
§type SRS = PairingSRS<Pair>
\ No newline at end of file
diff --git a/rustdoc/search-index.js b/rustdoc/search-index.js
index cde2564d45..b025646434 100644
--- a/rustdoc/search-index.js
+++ b/rustdoc/search-index.js
@@ -17,7 +17,7 @@ var searchIndex = JSON.parse('{\
"mina_signer":{"doc":"Mina signer","t":"GCGCNECGCCCINLLLLFFLLLLLLLLAAAAKALLLLKLDENNGNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLMLLLLLLLLLLLLLLLNNNNNDNRNDEGNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLMDLLLLLLLLLLLLLLRGDENNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLMMLLLLLL","n":["BaseField","CompressedPubKey","CurvePoint","Keypair","MAINNET","NetworkId","PubKey","ScalarField","Schnorr","SecKey","Signature","Signer","TESTNET","borrow","borrow_mut","clone","clone_into","create_kimchi","create_legacy","deref","deref_mut","drop","fmt","from","init","into","into_bytes","keypair","pubkey","schnorr","seckey","sign","signature","to_owned","try_from","try_into","type_id","verify","vzip","Keypair","KeypairError","NonCurvePoint","PublicKey","Result","SecretKey","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref_mut","deref_mut","drop","drop","eq","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","from","from","from","from","from_bytes","from_hex","from_parts_unsafe","from_secret_key","get_address","init","init","into","into","provide","public","rand","secret","source","to_bytes","to_hex","to_owned","to_owned","to_string","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","AddressBase58","AddressChecksum","AddressLength","AddressRawByteLength","AddressVersion","CompressedPubKey","Hex","MINA_ADDRESS_LEN","NonCurvePoint","PubKey","PubKeyError","Result","SecKey","XCoordinate","XCoordinateBytes","YCoordinateBytes","YCoordinateParity","YCoordinateParityBytes","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","empty","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","from","from","from","from_address","from_address","from_bytes","from_bytes","from_hex","from_hex","from_point_unsafe","from_secret_key","from_secret_key","init","init","init","into","into","into","into_address","into_address","into_compressed","into_point","is_odd","point","provide","to_bytes","to_bytes","to_hex","to_hex","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","x","Schnorr","borrow","borrow_mut","deref","deref_mut","drop","from","init","into","sign","try_from","try_into","type_id","verify","vzip","MINA_SEC_KEY_LEN","Result","SecKey","SecKeyError","SecretKeyBase58","SecretKeyBytes","SecretKeyChecksum","SecretKeyHex","SecretKeyLength","SecretKeyVersion","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref_mut","deref_mut","drop","drop","eq","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from_base58","from_bytes","from_hex","init","init","into","into","into_scalar","new","provide","rand","scalar","to_base58","to_bytes","to_hex","to_owned","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Signature","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","eq","equivalent","equivalent","fmt","fmt","from","init","into","new","rx","s","to_owned","to_string","try_from","try_into","type_id","vzip"],"q":[[0,"mina_signer"],[39,"mina_signer::keypair"],[101,"mina_signer::pubkey"],[202,"mina_signer::schnorr"],[217,"mina_signer::seckey"],[278,"mina_signer::signature"]],"d":["Base field element type","","Affine curve point type","","Id for mainnet","Mina network (or blockchain) identifier","","Scalar field element type","","","","Interface for signed objects","Id for all testnets","","","","","Create an experimental kimchi signer context with domain …","Create a legacy signer context with domain parameters …","","","","","Returns the argument unchanged.","","Calls U::from(self)
.","","Keypair structures and algorithms","Public key structures and algorithms","Mina Schnorr signature scheme","Secret key structures and helpers","Sign input
(see Hashable
) using keypair kp
and return the …","Mina signature structure and associated helpers","","","","","Verify that the signature sig
on input
(see Hashable
) is …","","Keypair structure","Keypair error","point not on curve","Public key error","Keypair result","Invalid secret key","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","Deserialize keypair from secret key bytes","Deserialize keypair from secret key hex","Create keypair from scalar field secret
element and curve …","Create keypair from secret key","Obtain the Mina address corresponding to the keypair’s …","","","Calls U::from(self)
.","Calls U::from(self)
.","","Public key","Generate random keypair","Secret key","","Deserialize keypair into bytes","Deserialize keypair into hex","","","","","","","","","","","","","Invalid address base58","Invalid address checksum","Invalid address length","Invalid raw address bytes length","Invalid address version","Compressed public keys consist of x-coordinate and …","Invalid hex","Length of Mina addresses","Invalid y-coordinate parity","Public key","Public key errors","Public key Result","Invalid secret key","Invalid x-coordinate","Invalid x-coordinate bytes","Point not on curve","Invalid y-coordinate parity","Invalid y-coordinate","","","","","","","","","","","","","","","","","","","","","","The empty CompressedPubKey
value that is used as public_key
…","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Deserialize Mina address into public key","Deserialize Mina address into compressed public key (via …","Deserialize public key from bytes","Deserialize compressed public key from bytes","Deserialize public key from hex","Deserialize compressed public key from hex","Create public key from curve point Note: Does not check …","Create public key from a secret key","Create compressed public key from a secret key","","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Serialize public key into corresponding Mina address","Serialize compressed public key into corresponding Mina …","Convert public key into compressed public key","Convert public key into curve point","Parity of y-coordinate","Borrow public key as curve point","","Deserialize public key into bytes","Deserialize compressed public key into bytes","Deserialize public key into hex","Deserialize compressed public key into hex","","","","","","","","","","","","","","","","","","X-coordinate","Schnorr signer context for the Mina signature algorithm","","","","","","Returns the argument unchanged.","","Calls U::from(self)
.","","","","","","","Secret key length","Keypair result","Secret key","Keypair error","Invalid base58 secret key","Invalid secret key bytes","Invalid secret key checksum","Invalid secret key hex","Invalid secrey key length","Invalid secret key version","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Deserialize base58 encoded secret key","Deserialize secret key from bytes","Deserialize secret key from hex","","","Calls U::from(self)
.","Calls U::from(self)
.","Convert secret key into scalar field element","Create secret key from scalar field element","","Generate a random secret key","Borrows secret key as scalar field element","Deserialize secret key into base58","Deserialize secret key into bytes","Deserialize secret key into hex","","","","","","","","","","","","Signature structure","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self)
.","Create a new signature","Base field component","Scalar field component","","","","","",""],"i":[0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,3,0,1,1,1,1,3,1,0,0,15,15,0,15,15,9,15,9,15,9,15,9,15,9,15,9,15,9,15,9,15,15,9,9,15,15,9,9,15,15,15,9,9,9,9,9,9,15,9,15,9,15,9,9,9,15,9,9,15,9,15,9,15,9,15,9,15,9,15,9,17,17,17,17,17,0,17,0,17,0,0,0,17,17,17,17,17,17,17,13,30,17,13,30,17,13,30,17,13,30,17,13,30,17,13,30,17,13,30,30,17,13,30,17,17,13,13,30,30,17,17,13,13,30,17,13,30,13,30,13,30,13,30,13,13,30,17,13,30,17,13,30,13,30,13,13,30,13,17,13,30,13,30,17,13,30,17,13,17,13,30,17,13,30,17,13,30,17,13,30,30,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,0,0,0,16,16,16,16,16,16,16,23,16,23,16,23,16,23,16,23,16,23,16,23,16,23,16,16,23,23,16,16,23,16,23,23,23,23,16,23,16,23,23,23,16,23,23,23,23,23,16,23,16,16,23,16,23,16,23,16,23,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[1,1],[[]],[[],[[3,[2]]]],[[],[[3,[2]]]],[4],[4],[4],[[1,5],6],[[]],[[],4],[[]],[1,[[8,[7]]]],0,0,0,0,[9,10],0,[[]],[[],11],[[],11],[[],12],[[10,13],14],[[]],0,0,0,0,0,0,[[]],[[]],[[]],[[]],[15,15],[9,9],[[]],[[]],[4],[4],[4],[4],[4],[4],[[15,15],14],[[9,9],14],[[],14],[[],14],[[],14],[[],14],[[15,5],6],[[15,5],6],[[9,5],6],[[9,5],6],[16,15],[[]],[17,15],[[]],[[[18,[7]]],[[19,[9]]]],[20,[[19,[9]]]],[[21,22],9],[23,[[19,[9]]]],[9,24],[[],4],[[],4],[[]],[[]],[25],0,[[[0,[26,27]]],[[19,[9]]]],0,[15,[[29,[28]]]],[9,[[8,[7]]]],[9,24],[[]],[[]],[[],24],[[],24],[[],11],[[],11],[[],11],[[],11],[[],12],[[],12],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[17,17],[13,13],[30,30],[[]],[[]],[[]],[4],[4],[4],[4],[4],[4],[4],[4],[4],[[],30],[[17,17],14],[[13,13],14],[[30,30],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[17,5],6],[[17,5],6],[[13,5],6],[[13,5],6],[[30,5],6],[[]],[[]],[[]],[20,[[31,[13]]]],[20,[[31,[30]]]],[[[18,[7]]],[[31,[13]]]],[[[18,[7]]],[[31,[30]]]],[20,[[31,[13]]]],[20,[[31,[30]]]],[22,13],[23,[[31,[13]]]],[23,30],[[],4],[[],4],[[],4],[[]],[[]],[[]],[13,24],[30,24],[13,30],[13,22],0,[13,22],[25],[13,[[8,[7]]]],[30,[[8,[7]]]],[13,24],[30,24],[[]],[[]],[[]],[[],24],[[],24],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],12],[[],12],[[],12],[[]],[[]],[[]],0,0,[[]],[[]],[4],[4],[4],[[]],[[],4],[[]],[[[32,[2]],9,2],10],[[],11],[[],11],[[],12],[[[32,[2]],10,13,2],14],[[]],0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[16,16],[23,23],[[]],[[]],[4],[4],[4],[4],[4],[4],[[16,16],14],[[23,23],14],[[],14],[[],14],[[],14],[[],14],[[16,5],6],[[16,5],6],[[23,5],6],[[]],[[]],[20,[[33,[23]]]],[[[18,[7]]],[[33,[23]]]],[20,[[33,[23]]]],[[],4],[[],4],[[]],[[]],[23,21],[21,23],[25],[[[0,[26,27]]],23],[23,21],[23,24],[23,[[8,[7]]]],[23,24],[[]],[[]],[[],24],[[],11],[[],11],[[],11],[[],11],[[],12],[[],12],[[]],[[]],0,[[]],[[]],[10,10],[[]],[4],[4],[4],[[10,10],14],[[],14],[[],14],[[10,5],6],[[10,5],6],[[]],[[],4],[[]],[[34,21],10],0,0,[[]],[[],24],[[],11],[[],11],[[],12],[[]]],"c":[],"p":[[4,"NetworkId"],[8,"Hashable"],[8,"Signer"],[15,"usize"],[3,"Formatter"],[6,"Result"],[15,"u8"],[3,"Vec"],[3,"Keypair"],[3,"Signature"],[4,"Result"],[3,"TypeId"],[3,"PubKey"],[15,"bool"],[4,"KeypairError"],[4,"SecKeyError"],[4,"PubKeyError"],[15,"slice"],[6,"Result"],[15,"str"],[6,"ScalarField"],[6,"CurvePoint"],[3,"SecKey"],[3,"String"],[3,"Demand"],[8,"RngCore"],[8,"CryptoRng"],[8,"Error"],[4,"Option"],[3,"CompressedPubKey"],[6,"Result"],[3,"Schnorr"],[6,"Result"],[6,"BaseField"]]},\
"mvpoly":{"doc":"This module contains the definition of the MVPoly
trait, …","t":"IKFKKKKKLLKKKKKKAKAAKADLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDLLFFLLLLLLFLLLLLFLFLLLLLLL","n":["MVPoly","add_monomial","compute_combined_cross_terms","compute_cross_terms","compute_cross_terms_scaled","degree","double","eval","from_constant","from_expr","from_variable","homogeneous_eval","is_constant","is_homogeneous","is_multilinear","modify_monomial","monomials","mul_by_scalar","pbt","prime","random","utils","Sparse","add","add","add","add","add_monomial","borrow","borrow_mut","clone","clone_into","compute_cross_terms","compute_cross_terms_scaled","degree","deref","deref_mut","double","drop","eq","equivalent","equivalent","eval","fmt","from","from","from","from","from_variable","homogeneous_eval","init","into","is_constant","is_homogeneous","is_multilinear","is_zero","modify_monomial","monomials","mul","mul_by_scalar","neg","neg","one","random","sub","sub","sub","sub","to_owned","try_from","try_into","type_id","vzip","zero","test_add_monomial","test_add_zero","test_can_be_printed_with_debug","test_degree_constant","test_degree_random_degree","test_double_is_add_twice","test_eval_pbt_add","test_eval_pbt_mul_by_scalar","test_eval_pbt_neg","test_eval_pbt_sub","test_evaluation_constant_polynomial","test_evaluation_zero_polynomial","test_homogeneous_eval","test_is_constant","test_is_multilinear","test_is_zero","test_mul_by_one","test_mul_by_scalar","test_mul_by_scalar_with_one","test_mul_by_scalar_with_zero","test_mul_by_zero","test_mvpoly_add_degree_pbt","test_mvpoly_mul_by_scalar_degree_pbt","test_mvpoly_mul_degree_pbt","test_mvpoly_mul_eval_pbt","test_mvpoly_mul_pbt","test_mvpoly_neg_degree_pbt","test_mvpoly_sub_degree_pbt","test_neg","test_neg_ref","test_sub_zero","Dense","add","add","add","add","add_monomial","borrow","borrow_mut","clone","clone_into","compute_cross_terms","compute_cross_terms_scaled","compute_normalized_indices","default","degree","deref","deref_mut","dimension","double","drop","eq","equivalent","equivalent","eval","fmt","from","from","from","from_coeffs","from_variable","homogeneous_eval","increase_degree","index","index_mut","init","into","is_constant","is_homogeneous","is_multilinear","is_zero","iter","maximum_degree","modify_monomial","mul","mul_by_scalar","neg","neg","new","number_of_variables","one","random","sub","sub","sub","sub","to_owned","try_from","try_into","type_id","vzip","zero","PrimeNumberGenerator","borrow","borrow_mut","compute_all_two_factors_decomposition","compute_indices_nested_loop","default","deref","deref_mut","drop","from","get_first_nth_primes","get_mapping_with_primes","get_next_prime","get_nth_prime","init","into","into_iter","is_prime","is_prime","naive_prime_factors","new","next","par_bridge","try_from","try_into","type_id","vzip"],"q":[[0,"mvpoly"],[22,"mvpoly::monomials"],[74,"mvpoly::pbt"],[105,"mvpoly::prime"],[166,"mvpoly::utils"]],"d":["Generic trait to represent a multi-variate polynomial","Add the monomial coeff * x_1^{e_1} * ... * x_N^{e_N}
to the","Compute the cross terms of a list of polynomials. The …","Compute the cross-terms as described in Behind Nova: …","Compute the cross-terms of the given polynomial, scaled by …","Returns the degree of the polynomial.","","Evaluate the polynomial at the vector point x
.","","Build a value from an expression. This method aims to be …","Build the univariate polynomial x_i
from the variable i
. …","Evaluate the polynomial at the vector point x
and the …","","Returns true if the polynomial is homogeneous (of degree D
…","Return true if the multi-variate polynomial is …","Modify the monomial in the polynomial to the new value …","","","This module contains a list of property tests for the …","Multivariate polynomial dense representation using prime …","Generate a random polynomial of maximum degree max_degree
.","This module contains functions to work with prime numbers …","Represents a multivariate polynomial in N
variables with …","","","","","","","","","","","","Returns the degree of the polynomial.","","","","","","","","Evaluate the polynomial at the vector point x
.","","","Returns the argument unchanged.","","","","","","Calls U::from(self)
.","","","","","","","","","","","","Generate a random polynomial of maximum degree max_degree
.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Represents a multivariate polynomial of degree less than D
…","","","","","","","","","","","","Output example for N = 2 and D = 2:","","Returns the degree of the polynomial.","","","","","","","","","Evaluate the polynomial at the vector point x
.","","","Returns the argument unchanged.","","","","","","","","","Calls U::from(self)
.","","","","","","","","","","","","","","","Generate a random polynomial of maximum degree max_degree
.","","","","","","","","","","","","","","Compute all the possible two factors decomposition of a …","Compute the list of indices to perform N nested loops of …","","","","","Returns the argument unchanged.","","Build mapping from 1..N to the first N prime numbers. It …","Get the next prime number","Generate the nth prime number","","Calls U::from(self)
.","","Naive implementation checking if n is prime You can also …","Check if a number is prime using the list of prime numbers …","Given a number n, return the list of prime factors of n, …","","","","","","",""],"i":[0,4,0,4,4,4,4,4,4,4,4,4,4,4,4,4,0,4,0,0,4,0,0,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,0,25,25,0,0,25,25,25,25,25,25,0,25,25,25,25,25,0,25,0,25,25,25,25,25,25,25],"f":[0,[[[2,[1]]]],[[[5,[[4,[3]]]],[2,[3]],[2,[3]],3,3,3,3],[[6,[1,3]]]],[[2,2],[[6,[1]]]],[[2,2],[[6,[1]]]],[[],1],[[]],[2],[[[9,[[8,[7]]]]]],[[[12,[[10,[7]],[11,[1]]]],[13,[1]]]],[[[14,[[11,[1]]]],[13,[1]]]],[2],[[],15],[[],15],[[],15],[[[2,[1]]]],0,[[]],0,0,[[16,[13,[1]]]],0,0,[[[17,[3]],[17,[3]]]],[[[17,[3]],[17,[3]]]],[[[17,[3]],[17,[3]]]],[[[17,[3]],[17,[3]]],[[17,[3]]]],[[[17,[3]],[2,[1]],3]],[[]],[[]],[[[17,[[0,[7,3]]]]],[[17,[[0,[7,3]]]]]],[[]],[[[17,[3]],[2,[3]],[2,[3]],3,3],[[6,[1,3]]]],[[[17,[3]],[2,[3]],[2,[3]],3,3,3,3],[[6,[1,3]]]],[[[17,[3]]],1],[1],[1],[[[17,[3]]],[[17,[3]]]],[1],[[[17,[3]],[17,[3]]],15],[[],15],[[],15],[[[17,[3]],[2,[3]]],3],[[[17,[3]],18],19],[20],[[]],[3,[[17,[3]]]],[[[21,[3]]],[[17,[3]]]],[[[14,[[11,[1]]]],[13,[1]]],[[17,[3]]]],[[[17,[3]],[2,[3]],3],3],[[],1],[[]],[[[17,[3]]],15],[[[17,[3]]],15],[[[17,[3]]],15],[[[17,[3]]],15],[[[17,[3]],[2,[1]],3]],0,[[[17,[3]],[17,[3]]],[[17,[3]]]],[[[17,[3]],3],[[17,[3]]]],[[[17,[3]]]],[[[17,[3]]]],[[],[[17,[3]]]],[[16,[13,[1]]],[[17,[3]]]],[[[17,[3]],[17,[3]]]],[[[17,[3]],[17,[3]]]],[[[17,[3]],[17,[3]]]],[[[17,[3]],[17,[3]]]],[[]],[[],22],[[],22],[[],23],[[]],[[],[[17,[3]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[[21,[3]],[21,[3]]],[[21,[3]]]],[[[21,[3]],[21,[3]]],[[21,[3]]]],[[[21,[3]],[21,[3]]],[[21,[3]]]],[[[21,[3]],[21,[3]]],[[21,[3]]]],[[[21,[3]],[2,[1]],3]],[[]],[[]],[[[21,[[0,[7,3]]]]],[[21,[[0,[7,3]]]]]],[[]],[[[21,[3]],[2,[3]],[2,[3]],3,3],[[6,[1,3]]]],[[[21,[3]],[2,[3]],[2,[3]],3,3,3,3],[[6,[1,3]]]],[[],[[5,[1]]]],[[],[[21,[3]]]],[[[21,[3]]],1],[1],[1],[[],1],[[[21,[3]]],[[21,[3]]]],[1],[[[21,[3]],[21,[3]]],15],[[],15],[[],15],[[[21,[3]],[2,[3]]],3],[[[21,[3]],18],19],[20],[[]],[3,[[21,[3]]]],[[[5,[3]]],[[21,[3]]]],[[[14,[[11,[1]]]],[13,[1]]],[[21,[3]]]],[[[21,[3]],[2,[3]],3],3],[[[21,[3]]],[[21,[3]]]],[[[21,[3]],1]],[[[21,[3]],1]],[[],1],[[]],[[[21,[3]]],15],[[[21,[3]]],15],[[[21,[3]]],15],[[[21,[3]]],15],[[[21,[3]]],24],[[[21,[3]]],1],[[[21,[3]],[2,[1]],3]],[[[21,[3]],[21,[3]]],[[21,[3]]]],[[[21,[3]],3],[[21,[3]]]],[[[21,[3]]]],[[[21,[3]]]],[[],[[21,[3]]]],[[[21,[3]]],1],[[],[[21,[3]]]],[[16,[13,[1]]],[[21,[3]]]],[[[21,[3]],[21,[3]]],[[21,[3]]]],[[[21,[3]],[21,[3]]],[[21,[3]]]],[[[21,[3]],[21,[3]]],[[21,[3]]]],[[[21,[3]],[21,[3]]],[[21,[3]]]],[[]],[[],22],[[],22],[[],23],[[]],[[],[[21,[3]]]],0,[[]],[[]],[[1,[6,[1,5]],25],5],[[[5,[1]],[13,[1]]],[[5,[[5,[1]]]]]],[[],25],[1],[1],[1],[[]],[[25,1],[[5,[1]]]],[[],[[5,[1]]]],[25,1],[[25,1],1],[[],1],[[]],[[]],[1,15],[[25,1],15],[[1,25],5],[[],25],[25,13],[[],26],[[],22],[[],22],[[],23],[[]]],"c":[],"p":[[15,"usize"],[15,"array"],[8,"PrimeField"],[8,"MVPoly"],[3,"Vec"],[3,"HashMap"],[8,"Clone"],[4,"ConstantExprInner"],[4,"Operations"],[6,"ConstantExpr"],[8,"Into"],[6,"Expr"],[4,"Option"],[3,"Variable"],[15,"bool"],[8,"RngCore"],[3,"Sparse"],[3,"Formatter"],[6,"Result"],[15,"never"],[3,"Dense"],[4,"Result"],[3,"TypeId"],[8,"Iterator"],[3,"PrimeNumberGenerator"],[3,"IterBridge"]]},\
"o1_utils":{"doc":"A collection of utility functions and constants that can …","t":"CCCCCCCCCCAAAAOOAAAAAAAAAADLLLLLLLLLLLLLLLLFFFIKKIKKKDLLMLLLLLLLLLLMLLLLLDLLLLLLLLLLMMLLLLIKKKKIKKKKINNNIENIGIKLLLLLLLLLLLLLLKKKKKFLFLLFFLLLLKKKKLLLLKKLLDILLLLLLLLLLLLLLLLLLLMLLLLLLKLKLKLLLLISLFFDDLLLLLLLLLLLLLLLLLLALLFFLLLLLLLLFFF","n":["BigUintFieldHelpers","BigUintHelpers","BitwiseOps","ChunkedEvaluations","ExtendedDensePolynomial","ExtendedEvaluations","FieldHelpers","ForeignElement","RandomField","Two","adjacent_pairs","array","biguint_helpers","bitwise_operations","box_array","box_array2","chunked_evaluations","chunked_polynomial","dense_polynomial","evaluations","field_helpers","foreign_field","hasher","math","serialization","tests","AdjacentPairs","borrow","borrow_mut","deref","deref_mut","drop","from","from","from","init","into","into_iter","next","try_from","try_into","type_id","vzip","vec_to_boxed_array","vec_to_boxed_array2","vec_to_boxed_array3","BigUintHelpers","bitlen","from_hex","BitwiseOps","bitwise_and","bitwise_not","bitwise_xor","ChunkedEvaluations","borrow","borrow_mut","chunks","clone","clone_into","deref","deref_mut","deserialize","drop","from","init","into","serialize","size","to_owned","try_from","try_into","type_id","vzip","ChunkedPolynomial","borrow","borrow_mut","deref","deref_mut","drop","evaluate_chunks","from","init","into","linearize","polys","size","try_from","try_into","type_id","vzip","ExtendedDensePolynomial","eval_polynomial","scale","shiftr","to_chunked_polynomial","ExtendedEvaluations","pow","scale","shift","square","BigUintFieldHelpers","DecodeHex","DeserializeBits","DeserializeBytes","FieldHelpers","FieldHelpersError","FromBigToField","RandomField","Result","Two","bits_to_field","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","eq","equivalent","equivalent","fmt","fmt","from","from_biguint","from_bits","from_bytes","from_hex","gen","gen_field_with_bits","i32_to_field","init","inner_prod","into","modulus_biguint","pows","product","provide","size_in_bytes","to_bigint_positive","to_biguint","to_bits","to_bytes","to_field","to_hex","to_owned","to_string","try_from","try_into","two","two_pow","type_id","vzip","ForeignElement","ForeignFieldHelpers","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","eq","equivalent","equivalent","fmt","from","from_be","from_biguint","from_field","index","index_mut","init","into","limbs","neg","new","to_biguint","to_owned","try_from","try_into","two_to_2limb","two_to_2limb","two_to_3limb","two_to_3limb","two_to_limb","two_to_limb","type_id","vzip","zero","CryptoDigest","PREFIX","digest","ceil_log2","div_ceil","SerdeAs","SerdeAsUnchecked","borrow","borrow","borrow_mut","borrow_mut","deref","deref","deref_mut","deref_mut","deserialize_as","deserialize_as","drop","drop","from","from","init","init","into","into","ser","serialize_as","serialize_as","test_generic_serialization_regression_canonical","test_generic_serialization_regression_serde","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","deserialize","serialize","make_test_rng"],"q":[[0,"o1_utils"],[26,"o1_utils::adjacent_pairs"],[43,"o1_utils::array"],[46,"o1_utils::biguint_helpers"],[49,"o1_utils::bitwise_operations"],[53,"o1_utils::chunked_evaluations"],[73,"o1_utils::chunked_polynomial"],[90,"o1_utils::dense_polynomial"],[95,"o1_utils::evaluations"],[100,"o1_utils::field_helpers"],[153,"o1_utils::foreign_field"],[190,"o1_utils::hasher"],[193,"o1_utils::math"],[195,"o1_utils::serialization"],[228,"o1_utils::serialization::ser"],[230,"o1_utils::tests"]],"d":["","","","","","","","","","","This module hosts the AdjacentPairs type, which can be …","This module provides different helpers in creating …","This module provides a set of functions to perform bit …","This module provides a set of functions to perform bit …","A macro similar to vec![$elem; $size]
which returns a boxed","A macro similar to vec![vec![$elem; $size1]; $size2]
which …","This module contains a type ChunkedEvaluations,","This module contains a type ChunkedPolynomial, and a …","This adds a few utility functions for the DensePolynomial …","This adds a few utility functions for the Evaluations …","Useful helper methods to extend ark_ff::Field.","Describes helpers for foreign field arithmetics Generic …","This module provides the CryptoDigest trait, which …","This modules implements some math helper functions.","This adds a few utility functions for serializing and …","Utils only for testing","You can create a new AdjacentPairs from an iterator using:","","","","","","","Returns the argument unchanged.","","","Calls U::from(self)
.","","","","","","","Converts a vector of elements to a boxed one. Semantically …","Converts a two-dimensional vector to a constant sized …","Converts a three-dimensional vector to a constant sized …","Helpers for BigUint","Returns the minimum number of bits required to represent a …","Creates a BigUint from an hexadecimal string in big endian","Bitwise operations","Conjunction of the bits of two BigUint inputs for a given …","Negate the bits of a Self input If it provides a larger …","Bitwise XOR of two BigUint inputs","This struct contains multiple chunk evaluations.","","","The chunk evaluations.","","","","","","","Returns the argument unchanged.","","Calls U::from(self)
.","","Each chunk polynomial has degree size-1
.","","","","","","This struct contains multiple chunk polynomials with …","","","","","","This function evaluates polynomial in chunks.","Returns the argument unchanged.","","Calls U::from(self)
.","Multiplies the chunks of a polynomial with powers of …","The chunk polynomials.","Each chunk polynomial has degree size-1
.","","","","","An extension for the DensePolynomial type.","eval_polynomial(coeffs, x)
evaluates a polynomial given …","This function “scales” (multiplies all the …","Shifts all the coefficients to the right.","Convert a polynomial into chunks. Implementors must ensure …","An extension for the Evaluations type.","Raise each evaluation to some power pow
","This function “scales” (multiplies) a polynomial with …","Utility function for shifting poly along domain coordinate","Square each evaluation","Field element wrapper for BigUint","","","","Field element helpers Unless otherwise stated everything …","Field helpers error","","Helper to generate random field elements","Result alias using FieldHelpersError","Helper to obtain two","Create a new field element from this field elements bits","","","","","","","","","","","","","Returns the argument unchanged.","Deserialize from BigUint","Deserialize from bits","Deserialize from bytes","Deserialize from little-endian hex","Initialize a random input with a random value of given …","Generates a random field element of up to a given number …","Converts an i32 into a Field","","COmpute the inner product of two slices of field elements.","Calls U::from(self)
.","Get the modulus as BigUint
","pows(d, x)
returns a vector containing the first d
powers …","Returns the product of all the field elements belonging to …","","Field size in bytes","Serialize field element f to a (positive) BigInt directly.","Serialize field element to a BigUint","Serialize to bits","Serialize to bytes","Convert BigUint into PrimeField element","Serialize to hex","","","","","Value two","Power of two","","","Represents a foreign field element Represents a foreign …","Foreign field helpers for B
the limb size.","","","","","","","","","","","","Returns the argument unchanged.","Initializes a new foreign element from a set of bytes in …","Initializes a new foreign element from a big unsigned …","Initializes a new foreign element from an element in the …","","","","Calls U::from(self)
.","limbs in little endian order","Initializes a new foreign element from an absolute BigUint
…","Creates a new foreign element from an array containing N …","Obtains the big integer representation of the foreign …","","","","2^{2 * B}","","2^{3 * B}","","2^{B}","","","","Creates a new foreign element representing the value zero","This trait can be implemented on any type that implements …","The domain separation string to use in the hash. This is …","Returns the digest of self
. Note: this is implemented as …","Returns ceil(log2(d)) but panics if d = 0.","This function is bound to be stable soon. See …","You can use SerdeAs with serde_with in order to serialize …","Same as SerdeAs
but using unchecked and uncompressed …","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self)
.","Calls U::from(self)
.","You can use this module for serialization and …","","","A generic regression serialization test for serialization …","A generic regression serialization test for serialization …","","","","","","","","","You can use this to deserialize an arkworks type with …","You can use this to serialize an arkworks type with serde …","Create a new test rng with a random seed"],"i":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,45,45,0,46,46,46,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,0,47,47,47,47,0,48,48,48,48,0,24,24,24,0,0,24,0,0,0,49,24,24,24,24,24,24,24,24,24,24,24,24,24,49,49,49,49,50,50,0,24,0,24,49,0,0,24,49,49,49,49,49,51,49,24,24,24,24,52,52,24,24,0,0,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,53,37,53,37,53,37,37,37,37,0,54,54,0,0,0,0,55,56,55,56,55,56,55,56,55,56,55,56,55,56,55,56,55,56,0,55,56,0,0,55,56,55,56,55,56,55,56,0,0,0],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[1],[1],[1],[2,[[4,[3]]]],[[]],[5],[[],1],[[]],[[]],[[[4,[6,3]]],7],[[],8],[[],8],[[],9],[[]],[10,[[12,[11]]]],[[[10,[[10,[13]]]]],[[12,[[11,[[11,[13]]]]]]]],[[[10,[[10,[[10,[13]]]]]]],[[12,[[11,[[11,[[11,[13]]]]]]]]]],0,[[],1],[14],0,[1],[[[7,[1]]]],[[]],0,[[]],[[]],0,[[[16,[[0,[15,13]]]]],[[16,[[0,[15,13]]]]]],[[]],[1],[1],[17,[[8,[[16,[15]]]]]],[1],[[]],[[],1],[[]],[[[16,[15]],18],8],0,[[]],[[],8],[[],8],[[],9],[[]],0,[[]],[[]],[1],[1],[1],[[[20,[19]],19],[[10,[19]]]],[[]],[[],1],[[]],[[[20,[19]],19],[[21,[19]]]],0,0,[[],8],[[],8],[[],9],[[]],0,[22],[[]],[1],[[1,1],20],0,[1],[[]],[1],[[]],0,0,0,0,0,0,0,0,0,0,[[1,1],23],[[]],[[]],[24,24],[[]],[1],[1],[1],[[24,24],25],[[],25],[[],25],[[24,26],27],[[24,26],27],[[]],[28,[[23,[15]]]],[[[22,[25]]],23],[[[22,[29]]],23],[14,23],[[7,[7,[1]]]],[1],[30,[[0,[[32,[31]],33]]]],[[],1],[[[22,[19]],[22,[19]]],19],[[]],[[],28],[[1,19],[[10,[19]]]],[3,19],[34],[[],1],[[],35],[[],28],[[],[[10,[25]]]],[[],[[10,[29]]]],[[],[[23,[15]]]],[[],36],[[]],[[],36],[[],8],[[],8],[[]],[31],[[],9],[[]],0,0,[[]],[[]],[[[37,[[0,[13,19]]]]],[[37,[[0,[13,19]]]]]],[[]],[1],[1],[1],[[[37,[[0,[38,19]]]],[37,[[0,[38,19]]]]],25],[[],25],[[],25],[[[37,[19]],26],27],[[]],[[[22,[29]]],[[37,[19]]]],[28,[[37,[19]]]],[15,[[37,[15]]]],[[[37,[19]],1]],[[[37,[19]],1]],[[],1],[[]],0,[[[37,[19]],28],[[37,[19]]]],[[[11,[19]]],[[37,[19]]]],[[[37,[19]]],28],[[]],[[],8],[[],8],[[]],[[],19],[[]],[[],19],[[]],[[],19],[[],9],[[]],[[],[[37,[19]]]],0,0,[[],[[11,[29]]]],[1,1],[[1,1],1],0,0,[[]],[[]],[[]],[[]],[1],[1],[1],[1],[17,[[8,[39]]]],[17,[[8,[39]]]],[1],[1],[[]],[[]],[[],1],[[],1],[[]],[[]],0,[[40,18],8],[[40,18],8],[[[0,[40,39,38,41]],[10,[29]]]],[[[0,[42,43,38,41]],[10,[29]]]],[[],8],[[],8],[[],8],[[],8],[[],9],[[],9],[[]],[[]],[17,[[8,[39]]]],[[40,18],8],[[[7,[[11,[29]]]]],44]],"c":[],"p":[[15,"usize"],[8,"IntoIterator"],[8,"Iterator"],[3,"AdjacentPairs"],[15,"never"],[8,"Copy"],[4,"Option"],[4,"Result"],[3,"TypeId"],[3,"Vec"],[15,"array"],[3,"Box"],[8,"Clone"],[15,"str"],[8,"PrimeField"],[3,"ChunkedEvaluations"],[8,"Deserializer"],[8,"Serializer"],[8,"Field"],[3,"ChunkedPolynomial"],[3,"DensePolynomial"],[15,"slice"],[6,"Result"],[4,"FieldHelpersError"],[15,"bool"],[3,"Formatter"],[6,"Result"],[3,"BigUint"],[15,"u8"],[15,"i32"],[15,"u64"],[8,"From"],[8,"Neg"],[3,"Demand"],[3,"BigInt"],[3,"String"],[3,"ForeignElement"],[8,"PartialEq"],[8,"CanonicalDeserialize"],[8,"CanonicalSerialize"],[8,"Debug"],[8,"Serialize"],[8,"Deserialize"],[3,"StdRng"],[8,"BigUintHelpers"],[8,"BitwiseOps"],[8,"ExtendedDensePolynomial"],[8,"ExtendedEvaluations"],[8,"FieldHelpers"],[8,"RandomField"],[8,"BigUintFieldHelpers"],[8,"Two"],[8,"ForeignFieldHelpers"],[8,"CryptoDigest"],[3,"SerdeAs"],[3,"SerdeAsUnchecked"]]},\
-"o1vm":{"doc":"","t":"CCAAAAAAAAAAANNNRRDDDNRRRRRDDDDNDDEDDMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMLLLLLLLLLLLLMLLLLLLLLLLLLMMMMMMMMMMMMMMMMLLMMMMMMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNELLLLALLLLLLLLLLLLLLLLLLLLLENDDNDNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLMMLLLLLLLLLLLLLLLLLLLLLLLLMLLLLENNLLLLLLLLFFLLLLAAANNNNCNNNENENNNNNNNCNCNNNNLLLLLLLLAALLLLLLALLLLLLLLLLALLALLFFLLLLLLLLLLANEDNNNENNNGNNRRRNNNNNNNNNNNNNNNNNNNEDNNEDNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDLLLLLLLLMLLLLLLLLMLLLLLLLDLLLLMLLLLLLLLLLLLMLLLLLLMLLIIILLLLLLLLLLLLLLLLKLLLIIQKLLLKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLMMLLLLLLLMCCCCAAAAAENGRRRRRNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNRRRRRRRNEDEDINEDNNNNNNNNNNNNNNNNNNNNNNNNQNEDRRRRRRRNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQNNLLLKKKKKKKLLLKLLLLLLLLLLLLLLLLKKKLLLLLLLLLLLLLLLLLLLLKKKKALLLLLLLLLLLLLLLLLLLKKLLLLLLLLLLLLKLLLLLLLLKKKKLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLKFFFFLLLLLLLLLLLLLKLLLLLLLLLLLLLKKKLLLLLLLLKLLLLKLLLLLLLLKKLLKKLLLLLLKKKKKLLKKKLLLLLKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLKDLLLLLLLLLLLLLLLLMLLMMMMLMLLLLLRRRRRRRRRDLLLLMLLLLLLLMMMLLLLLMMMMLLLLLLDRRRRRRRDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLLMLLLMMMMMMLLLLLLLMMMMLLLLMMLLLLLLMMMMMLLLLLLMLLLLLLLLLLLLLLLLLLRRRRRAAAAAEGNNNLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLMMLLLLLLLLLLLLLLNNNNNNNNNNNNNNNEDNEDINNNNNNNNEDNNNNNNNQEDNNNEDNEDNNNNNNNNNNNNNNNEDNNEDEDNNQNNLLLKKKKKKKLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKKLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLKFFFFFFFFFLLLLLLLLLLLLLLLLLLLLLLLLLLLLKKLLLLLLLLLLLLLLLLLLLLLLLKKKKKKKKLLLLLLLLLLLLLLLLLLKLLLLLLLLLKLLLLLLLLLLLLLLLLLLKKLLKKLLLLLKKKLLKKKLLLLLLLLLLKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLKNNNNNNNNNNNNRNRRRNEDNNNNNNNNNNNNNNNNNNNNNNLLLLLLMLLLLLLLLLLLMMLLLLLLLMLLLLLLLLLLDRRRRRRRLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLMLLLMMMMLLLLLLLLLLLLLLLLMMLLLMMMLLLLLLLLLLLLLLLLLLLGGGGGGGAAANEDDDDDNNMMLLLLLLLLLLLLLLMLLLLLLLLLLLLMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLLLLLLALALLLLMMLLLLLLLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMDGGGLLLLLLLLLLLLLLLLLLLLLLLDGGGLLLLLLLLLLLLLLLLLLLLLLLFIDIQDILLLLLLLLMLLLLMMLLKLLLLLKLLLLLLAMAKLKLKLKLKKLLLKLLLMLLLLLLLLMGGLLLLLLLGGLLLLLLLNNNENNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLRRRAAAADLLMLMLLMLLFLLLLLLLMLLLLLMDDDLLLLLLMLLLLLLLLLMMLLLLLLLMLLLLMMMMMMLLLLLLLLLLLLMMNELLLLLLLLLLLLFLLLLLLLFDIDDLLLLLLMLFLLLLLLLLLLLLKLKLMMLLLLLLMMMLLLLLLLLLLLLLMEDNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFF","n":["RAMLookup","RAMLookupMode","cannon","cli","elf_loader","interpreters","legacy","lookups","pickles","preimage_oracle","ramlookup","test_preimage_read","utils","Always","Every","Exactly","HINT_CLIENT_READ_FD","HINT_CLIENT_WRITE_FD","Hint","HostProgram","Meta","Never","PAGE_ADDRESS_MASK","PAGE_ADDRESS_SIZE","PAGE_SIZE","PREIMAGE_CLIENT_READ_FD","PREIMAGE_CLIENT_WRITE_FD","Page","ParsePreimageKeyError","Preimage","PreimageKey","Range","Start","State","StepFrequency","Symbol","VmConfiguration","arguments","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","create","create","create","data","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","equivalent","equivalent","exit","exited","find_address_symbol","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from_str","from_str","get","get","heap","hi","host","index","info_at","init","init","init","init","init","init","init","init","init","init","init","init","input_state_file","into","into","into","into","into","into","into","into","into","into","into","into","last_hint","lo","memory","metadata_file","name","name","next_pc","output_state_file","pc","pprof_cpu","preimage","preimage_key","preimage_offset","proof_at","proof_fmt","registers","serialize","serialize","size","snapshot_fmt","snapshot_state_at","start","step","step","stop_at","symbols","time","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Cannon","Commands","augment_subcommands","augment_subcommands_for_update","borrow","borrow_mut","cannon","clone","clone_into","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","has_subcommand","init","into","to_owned","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","Cannon","GenStateJson","GenStateJsonArgs","MipsVmConfigurationArgs","Run","RunArgs","TestPreimageRead","augment_args","augment_args","augment_args","augment_args_for_update","augment_args_for_update","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","command","command","command","command_for_update","command_for_update","command_for_update","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","fmt","fmt","fmt","fmt","from","from","from","from","from_arg_matches","from_arg_matches","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","from_arg_matches_mut","from_arg_matches_mut","group_id","group_id","group_id","has_subcommand","init","init","init","init","input","into","into","into","into","output","preimage_db_dir","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","update_from_arg_matches_mut","update_from_arg_matches_mut","vm_cfg","vzip","vzip","vzip","vzip","Architecture","Mips","RiscV32","borrow","borrow_mut","deref","deref_mut","drop","from","init","into","make_state","parse_elf","try_from","try_into","type_id","vzip","keccak","mips","riscv32im","AbsorbRootZero","AbsorbShifts","AbsorbXor","AbsorbZeroPad","Absorbs","BooleanityPadding","ChiShiftsB","ChiShiftsSum","Constraint","Constraint","Error","IotaStateG","Lookup","PadAtEnd","PaddingSuffix","PiRhoRotatedE","PiRhoShiftsE","PiRhoWordE","Sponges","SqueezeShifts","Steps","ThetaQuotientC","ThetaRotatedC","ThetaShiftsC","ThetaWordC","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","column","constraints","deref","deref","deref_mut","deref_mut","drop","drop","environment","eq","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","helpers","init","init","interpreter","into","into","pad_blocks","standardize","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","witness","Absorb","Absorbs","AbsorbsIter","BlockIndex","ChiShiftsB","ChiShiftsSum","ColumnAlias","First","HashIndex","Input","KeccakWitness","Last","Middle","N_ZKVM_KECCAK_COLS","N_ZKVM_KECCAK_REL_COLS","N_ZKVM_KECCAK_SEL_COLS","Only","Output","PadBytesFlags","PadLength","PadSuffix","PiRhoDenseE","PiRhoDenseRotE","PiRhoExpandRotE","PiRhoQuotientE","PiRhoRemainderE","PiRhoShiftsE","Round","RoundConstants","RoundNumber","Sponge","SpongeBytes","SpongeNewState","SpongeShifts","SpongeZeros","Sponges","SpongesIter","Squeeze","StepIndex","Steps","StepsIter","ThetaDenseC","ThetaDenseRotC","ThetaExpandRotC","ThetaQuotientC","ThetaRemainderC","ThetaShiftsC","TwoToPad","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","default","default","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","hash","hash","hash","hash","index","index","index_mut","index_mut","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into_iter","into_iter","into_iter","into_iter","is_witness","iter","iter","iter","iter","len","len","len","len","next","next","next","next_back","next_back","next_back","nth","nth","nth","par_bridge","par_bridge","par_bridge","partial_cmp","partial_cmp","partial_cmp","partial_cmp","size_hint","size_hint","size_hint","to_column","to_column","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Env","add_lookup","borrow","borrow_mut","clone","clone_into","constant","constant_field","constrain","constraints","default","deref","deref_mut","drop","fmt","from","init","into","lookups","to_owned","try_from","try_into","two_pow","type_id","variable","vzip","KeccakEnv","borrow","borrow_mut","clone","clone_into","constraints_env","default","deref","deref_mut","drop","fmt","from","init","into","new","null_state","selector","step","step","to_owned","try_from","try_into","type_id","update_step","vzip","witness_env","write_column","write_column_field","ArithHelpers","BoolHelpers","LogupHelpers","either_zero","is_boolean","is_nonzero","is_one","is_zero","lookup_byte","lookup_pad","lookup_rc16","lookup_reset","lookup_round_constants","lookup_sparse","not","one","or","read_syscall","two","two_pow","write_syscall","xor","zero","Interpreter","KeccakInterpreter","Variable","add_lookup","block_in_padding","block_index","bytes_block","constant","constant_field","constrain","constrain_absorb","constrain_booleanity","constrain_chi","constrain_flags","constrain_iota","constrain_padding","constrain_pirho","constrain_round","constrain_sponge","constrain_squeeze","constrain_theta","constraints","dense_c","dense_e","dense_rot_c","dense_rot_e","expand_rot_c","expand_rot_e","flags_block","from_quarters","from_shifts","hash_index","in_padding","input","input_of_step","is_absorb","is_pad","is_root","is_round","is_sponge","is_squeeze","lookup_steps","lookup_syscall_hash","lookup_syscall_preimage","lookups","lookups_round_chi","lookups_round_iota","lookups_round_pirho","lookups_round_theta","lookups_sponge","mode_absorb","mode_pad","mode_root","mode_rootpad","mode_round","mode_squeeze","new_state","old_state","output","output_of_step","pad_bytes_flags","pad_length","pad_suffix","quotient_c","quotient_e","remainder_c","remainder_e","round","round_constants","shifts_b","shifts_c","shifts_e","shifts_sum","sponge_byte","sponge_bytes","sponge_shifts","sponge_zeros","state_a","state_g","step_index","two_to_pad","variable","vec_dense_c","vec_dense_e","vec_dense_rot_c","vec_dense_rot_e","vec_expand_rot_c","vec_expand_rot_e","vec_quotient_c","vec_quotient_e","vec_remainder_c","vec_remainder_e","vec_shifts_b","vec_shifts_c","vec_shifts_e","vec_shifts_sum","vec_sponge_shifts","xor_state","Env","add_lookup","borrow","borrow_mut","clone","clone_into","constant","constant_field","constrain","default","deref","deref_mut","drop","fmt","from","init","into","multiplicities","tables","to_owned","try_from","try_into","two_pow","type_id","variable","vzip","witness","ITypeInstruction","Instruction","JTypeInstruction","RTypeInstruction","column","constraints","interpreter","registers","witness","ColumnAlias","InstructionCounter","MIPSWitness","N_MIPS_COLS","N_MIPS_REL_COLS","N_MIPS_SEL_COLS","SCRATCH_SIZE","SCRATCH_SIZE_INVERSE","ScratchState","ScratchStateInverse","Selector","borrow","borrow_mut","clone","clone_into","cmp","deref","deref_mut","drop","eq","equivalent","equivalent","fmt","from","hash","index","index","index_mut","index_mut","init","into","is_witness","partial_cmp","to_column","to_owned","try_from","try_into","type_id","vzip","Env","activate_selector","add_constraint","add_lookup","add_witness","alloc_scratch","alloc_scratch_inverse","and_witness","bitmask","borrow","borrow_mut","check_boolean","check_equal","check_is_zero","constant","copy","count_leading_ones","count_leading_zeros","default","deref","deref_mut","divmod","divmod_signed","drop","equal","fetch_memory","fetch_memory_access","fetch_register","fetch_register_access","from","get_all_constraints","get_constraints","get_lookups","get_selector","get_selector_constraints","increase_instruction_counter","init","instruction_counter","into","is_zero","mul_hi_lo","mul_hi_lo_signed","mul_signed_witness","nor_witness","or_witness","push_memory","push_memory_access","push_register_access_if","push_register_if","report_exit","request_hint_write","request_preimage_write","reset","set_halted","shift_left","shift_right","shift_right_arithmetic","sub_witness","test_less_than","test_less_than_signed","test_zero","try_from","try_into","type_id","variable","vzip","xor_witness","Add","AddImmediate","AddImmediateUnsigned","AddUnsigned","And","AndImmediate","BranchEq","BranchGeqZero","BranchGtZero","BranchLeqZero","BranchLtZero","BranchNeq","CountLeadingOnes","CountLeadingZeros","Div","DivUnsigned","FD_HINT_READ","FD_HINT_WRITE","FD_PREIMAGE_READ","FD_PREIMAGE_WRITE","FD_STDERR","FD_STDIN","FD_STDOUT","IType","ITypeInstruction","ITypeInstructionIter","Instruction","InstructionIter","InterpreterEnv","JType","JTypeInstruction","JTypeInstructionIter","Jump","JumpAndLink","JumpAndLinkRegister","JumpRegister","Load16","Load16Unsigned","Load32","Load8","Load8Unsigned","LoadUpperImmediate","LoadWordLeft","LoadWordRight","MoveFromHi","MoveFromLo","MoveNonZero","MoveToHi","MoveToLo","MoveZero","Multiply","MultiplyToRegister","MultiplyUnsigned","Nor","Or","OrImmediate","Position","RType","RTypeInstruction","RTypeInstructionIter","SYSCALL_BRK","SYSCALL_CLONE","SYSCALL_EXIT_GROUP","SYSCALL_FCNTL","SYSCALL_MMAP","SYSCALL_READ","SYSCALL_WRITE","SetLessThan","SetLessThanImmediate","SetLessThanImmediateUnsigned","SetLessThanUnsigned","ShiftLeftLogical","ShiftLeftLogicalVariable","ShiftRightArithmetic","ShiftRightArithmeticVariable","ShiftRightLogical","ShiftRightLogicalVariable","Store16","Store32","Store32Conditional","Store8","StoreWordLeft","StoreWordRight","Sub","SubUnsigned","Sync","SyscallExitGroup","SyscallFcntl","SyscallMmap","SyscallOther","SyscallReadHint","SyscallReadOther","SyscallReadPreimage","SyscallWriteHint","SyscallWriteOther","SyscallWritePreimage","Variable","Xor","XorImmediate","access_memory","access_register","access_register_if","activate_selector","add_constraint","add_lookup","add_witness","alloc_scratch","alloc_scratch_inverse","and_witness","assert_boolean","assert_equal","assert_is_zero","bitmask","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","check_boolean","check_equal","check_is_zero","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","constant","copy","count_leading_ones","count_leading_zeros","debugging","default","default","default","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","divmod","divmod_signed","drop","drop","drop","drop","drop","drop","drop","drop","eq","eq","eq","eq","equal","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fetch_memory","fetch_memory_access","fetch_register","fetch_register_access","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","get_instruction_pointer","get_next_instruction_pointer","hash","hash","hash","hash","increase_heap_pointer","increase_instruction_counter","init","init","init","init","init","init","init","init","instruction_counter","interpret_instruction","interpret_itype","interpret_jtype","interpret_rtype","into","into","into","into","into","into","into","into","into_iter","into_iter","into_iter","into_iter","into_iter","is_zero","iter","iter","iter","iter","iter","len","len","len","len","len","lookup_16bits","lookup_2bits","lookup_8bits","mul_hi_lo","mul_hi_lo_signed","mul_signed_witness","next","next","next","next","next_back","next_back","next_back","next_back","nor_witness","nth","nth","nth","nth","or_witness","par_bridge","par_bridge","par_bridge","par_bridge","partial_cmp","partial_cmp","partial_cmp","partial_cmp","push_memory","push_memory_access","push_register","push_register_access","push_register_access_if","push_register_if","range_check16","range_check2","range_check64","range_check8","read_memory","read_register","report_exit","request_hint_write","request_preimage_write","reset","set_halted","set_instruction_pointer","set_next_instruction_pointer","shift_left","shift_right","shift_right_arithmetic","sign_extend","size_hint","size_hint","size_hint","size_hint","sub_witness","test_less_than","test_less_than_signed","test_zero","to_column","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","variable","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","write_memory","write_register","write_register_if","xor_witness","InstructionParts","borrow","borrow_mut","clone","clone_into","decode","default","deref","deref_mut","deserialize","drop","encode","eq","equivalent","equivalent","fmt","from","funct","init","into","op_code","rd","rs","rt","serialize","shamt","to_owned","try_from","try_into","type_id","vzip","NUM_REGISTERS","REGISTER_CURRENT_IP","REGISTER_HEAP_POINTER","REGISTER_HI","REGISTER_LO","REGISTER_NEXT_IP","REGISTER_PREIMAGE_KEY_END","REGISTER_PREIMAGE_KEY_START","REGISTER_PREIMAGE_OFFSET","Registers","borrow","borrow_mut","clone","clone_into","current_instruction_pointer","default","deref","deref_mut","deserialize","drop","fmt","from","general_purpose","heap_pointer","hi","index","index_mut","init","into","iter","lo","next_instruction_pointer","preimage_key","preimage_offset","serialize","to_owned","try_from","try_into","type_id","vzip","Env","MAX_ACC","MAX_NB_MEM_ACC","MAX_NB_REG_ACC","NUM_DECODING_LOOKUP_TERMS","NUM_GLOBAL_LOOKUP_TERMS","NUM_INSTRUCTION_LOOKUP_TERMS","NUM_LOOKUP_TERMS","SyscallEnv","activate_selector","add_constraint","add_lookup","add_witness","alloc_scratch","alloc_scratch_inverse","and_witness","bitmask","borrow","borrow","borrow_mut","borrow_mut","check_boolean","check_equal","check_is_zero","clone","clone_into","constant","copy","count_leading_ones","count_leading_zeros","create","create","decode_instruction","default","deref","deref","deref_mut","deref_mut","divmod","divmod_signed","drop","drop","equal","fetch_memory","fetch_memory_access","fetch_register","fetch_register_access","from","from","get_memory_access_page_index","get_memory_direct","get_memory_page_index","halt","hash_counter","increase_instruction_counter","init","init","instruction_counter","instruction_counter","into","into","is_zero","keccak_env","last_hint","last_memory_accesses","last_memory_write_index_accesses","memory","memory_write_index","mul_hi_lo","mul_hi_lo_signed","mul_signed_witness","next_instruction_counter","nor_witness","normalized_instruction_counter","or_witness","preimage","preimage_bytes_read","preimage_key","preimage_oracle","push_memory","push_memory_access","push_register_access_if","push_register_if","registers","registers_write_index","report_exit","request_hint_write","request_preimage_write","reset","reset_scratch_state","reset_scratch_state_inverse","scratch_state","scratch_state_idx","scratch_state_idx_inverse","scratch_state_inverse","selector","set_halted","shift_left","shift_right","shift_right_arithmetic","step","sub_witness","syscall_env","test_less_than","test_less_than_signed","test_zero","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","update_last_memory_access","update_last_memory_write_index_access","variable","vzip","vzip","write_column","write_field_column","xor_witness","INSTRUCTION_SET_SIZE","PAGE_ADDRESS_MASK","PAGE_ADDRESS_SIZE","PAGE_SIZE","SCRATCH_SIZE","column","constraints","interpreter","registers","witness","Column","E","InstructionCounter","ScratchState","Selector","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","eq","equivalent","equivalent","fmt","from","init","into","to_owned","try_from","try_into","type_id","vzip","Env","activate_selector","add_constraint","add_lookup","add_witness","alloc_scratch","and_witness","assert_boolean","bitmask","borrow","borrow_mut","check_equal","check_is_zero","constant","constraints","copy","count_leading_ones","count_leading_zeros","default","deref","deref_mut","div","div_signed","drop","equal","fetch_memory","fetch_memory_access","fetch_register","fetch_register_access","from","get_constraints","get_lookups","get_selector","get_selector_constraints","increase_instruction_counter","init","instruction_counter","into","inverse_or_zero","is_zero","lookups","mod_signed","mod_unsigned","mul_hi","mul_hi_signed","mul_hi_signed_unsigned","mul_lo","mul_lo_signed","mul_signed_witness","nor_witness","or_witness","push_memory","push_memory_access","push_register_access_if","push_register_if","report_exit","reset","scratch_state_idx","selector","set_halted","shift_left","shift_right","shift_right_arithmetic","sub_witness","test_less_than","test_less_than_signed","test_zero","try_from","try_into","type_id","variable","vzip","xor_witness","Add","AddImmediate","AddUpperImmediate","And","AndImmediate","BranchEq","BranchGreaterThanEqual","BranchGreaterThanEqualUnsigned","BranchLessThan","BranchLessThanUnsigned","BranchNeq","Div","Divu","Fence","FenceI","IInstruction","IInstructionIter","IType","Instruction","InstructionIter","InterpreterEnv","JumpAndLink","JumpAndLinkRegister","LoadByte","LoadByteUnsigned","LoadHalf","LoadHalfUnsigned","LoadUpperImmediate","LoadWord","MInstruction","MInstructionIter","MType","Mul","Mulh","Mulhsu","Mulhu","Or","OrImmediate","Position","RInstruction","RInstructionIter","RType","Rem","Remu","SBInstruction","SBInstructionIter","SBType","SInstruction","SInstructionIter","SType","SetLessThan","SetLessThanImmediate","SetLessThanImmediateUnsigned","SetLessThanUnsigned","ShiftLeftLogical","ShiftLeftLogicalImmediate","ShiftRightArithmetic","ShiftRightArithmeticImmediate","ShiftRightLogical","ShiftRightLogicalImmediate","StoreByte","StoreHalf","StoreWord","Sub","SyscallInstruction","SyscallInstructionIter","SyscallSuccess","SyscallType","UInstruction","UInstructionIter","UJInstruction","UJInstructionIter","UJType","UType","Variable","Xor","XorImmediate","access_memory","access_register","access_register_if","activate_selector","add_constraint","add_lookup","add_witness","alloc_scratch","and_witness","assert_boolean","assert_equal","assert_is_zero","bitmask","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","check_equal","check_is_zero","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","constant","copy","count_leading_ones","count_leading_zeros","default","default","default","default","default","default","default","default","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","div","div_signed","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","eq","eq","eq","eq","equal","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fetch_memory","fetch_memory_access","fetch_register","fetch_register_access","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_instruction_pointer","get_next_instruction_pointer","hash","hash","hash","hash","hash","hash","hash","hash","hash","increase_heap_pointer","increase_instruction_counter","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","instruction_counter","interpret_instruction","interpret_itype","interpret_mtype","interpret_rtype","interpret_sbtype","interpret_stype","interpret_syscall","interpret_ujtype","interpret_utype","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_iter","into_iter","into_iter","into_iter","into_iter","into_iter","into_iter","into_iter","into_iter","into_iter","inverse_or_zero","is_zero","iter","iter","iter","iter","iter","iter","iter","iter","iter","iter","len","len","len","len","len","len","len","len","len","len","lookup_16bits","lookup_2bits","lookup_8bits","mod_signed","mod_unsigned","mul_hi","mul_hi_signed","mul_hi_signed_unsigned","mul_lo","mul_lo_signed","mul_signed_witness","next","next","next","next","next","next","next","next","next","next_back","next_back","next_back","next_back","next_back","next_back","next_back","next_back","next_back","nor_witness","nth","nth","nth","nth","nth","nth","nth","nth","nth","or_witness","par_bridge","par_bridge","par_bridge","par_bridge","par_bridge","par_bridge","par_bridge","par_bridge","par_bridge","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","push_memory","push_memory_access","push_register","push_register_access","push_register_access_if","push_register_if","range_check16","range_check64","range_check8","read_memory","read_register","report_exit","reset","set_halted","set_instruction_pointer","set_next_instruction_pointer","shift_left","shift_right","shift_right_arithmetic","sign_extend","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","sub_witness","test_less_than","test_less_than_signed","test_zero","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","variable","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","write_memory","write_register","write_register_if","xor_witness","A0","A1","A2","A3","A4","A5","A6","A7","Fp","Gp","HeapPointer","Ip","N_GP_REGISTERS","NextIp","REGISTER_CURRENT_IP","REGISTER_HEAP_POINTER","REGISTER_NEXT_IP","Ra","RegisterAlias","Registers","S0","S1","S10","S11","S2","S3","S4","S5","S6","S7","S8","S9","Sp","T0","T1","T2","T3","T4","T5","T6","Tp","Zero","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","current_instruction_pointer","default","deref","deref","deref_mut","deref_mut","deserialize","drop","drop","fmt","from","from","general_purpose","heap_pointer","index","index","index_mut","init","init","into","into","next_instruction_pointer","serialize","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Env","MAX_ACC","MAX_NB_MEM_ACC","MAX_NB_REG_ACC","NUM_DECODING_LOOKUP_TERMS","NUM_GLOBAL_LOOKUP_TERMS","NUM_INSTRUCTION_LOOKUP_TERMS","NUM_LOOKUP_TERMS","activate_selector","add_constraint","add_lookup","add_witness","alloc_scratch","and_witness","assert_boolean","bitmask","borrow","borrow_mut","check_equal","check_is_zero","constant","copy","count_leading_ones","count_leading_zeros","create","decode_instruction","deref","deref_mut","div","div_signed","drop","equal","fetch_memory","fetch_memory_access","fetch_register","fetch_register_access","from","get_memory_access_page_index","get_memory_direct","get_memory_page_index","halt","increase_instruction_counter","init","instruction_counter","instruction_counter","into","inverse_or_zero","is_zero","last_memory_accesses","last_memory_write_index_accesses","memory","memory_write_index","mod_signed","mod_unsigned","mul_hi","mul_hi_signed","mul_hi_signed_unsigned","mul_lo","mul_lo_signed","mul_signed_witness","next_instruction_counter","nor_witness","normalized_instruction_counter","or_witness","push_memory","push_memory_access","push_register_access_if","push_register_if","registers","registers_write_index","report_exit","reset","reset_scratch_state","scratch_state","scratch_state_idx","selector","set_halted","shift_left","shift_right","shift_right_arithmetic","step","sub_witness","test_less_than","test_less_than_signed","test_zero","try_from","try_into","type_id","update_last_memory_access","update_last_memory_write_index_access","variable","vzip","write_column","write_field_column","xor_witness","BaseSponge","Curve","Fp","OpeningProof","Pairing","ScalarSponge","SpongeParams","folding","proof","trace","Beta","Challenge","ChallengeIter","DecomposedFoldingEnvironment","FoldingEnvironment","FoldingInstance","FoldingWitness","Gamma","JointCombiner","alphas","blinder","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","challenge","challenge","challenges","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","col","col","combine","combine","commitments","curr_witnesses","curr_witnesses","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","eq","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","get_alphas","get_blinder","hash","hash","index","index","init","init","init","init","init","init","instances","instances","into","into","into","into","into","into","into_iter","iter","keccak","len","mips","new","new","next","next_back","next_witnesses","next_witnesses","nth","par_bridge","relax","relax","selector","selector","size_hint","structure","structure","to_absorb","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","witness","KeccakConfig","KeccakFoldingEnvironment","KeccakFoldingInstance","KeccakFoldingWitness","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","eq","equivalent","equivalent","fmt","from","hash","index","index","index","init","into","to_owned","try_from","try_into","type_id","vzip","DecomposableMIPSFoldingConfig","DecomposableMIPSFoldingEnvironment","MIPSFoldingInstance","MIPSFoldingWitness","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","eq","equivalent","equivalent","fmt","from","hash","index","index","index","init","into","to_owned","try_from","try_into","type_id","vzip","fold","DecomposableTracer","DecomposedTrace","Foldable","Selector","Trace","Tracer","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","constraints","deref","deref","deref_mut","deref_mut","domain_size","domain_size","drop","drop","folding_constraints","folding_constraints","from","from","in_circuit","index","init","init","init","init","into","into","is_full","keccak","lookups","mips","new","number_of_rows","pad_dummy","pad_dummy","pad_with_row","pad_with_row","pad_with_zeros","pad_with_zeros","pad_witnesses","push_row","push_row","reset","set_selector_column","to_folding_pair","to_folding_pair","to_owned","to_owned","trace","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","witness","DecomposedKeccakTrace","KeccakTrace","init","new","pad_dummy","pad_with_row","pad_with_zeros","pad_witnesses","push_row","DecomposedMIPSTrace","MIPSTrace","init","new","pad_dummy","pad_with_row","pad_with_zeros","pad_witnesses","push_row","AtMost4Lookup","ByteLookup","KeccakStepLookup","LookupTableIDs","MemoryLookup","PadLookup","RangeCheck16Lookup","RegisterLookup","ResetLookup","RoundConstantsLookup","SparseLookup","SyscallLookup","all_variants","borrow","borrow_mut","clone","clone_into","cmp","deref","deref_mut","drop","eq","equivalent","equivalent","fmt","from","from_u32","hash","init","into","is_fixed","ix_by_value","length","partial_cmp","runtime_create_column","to_owned","to_u32","try_from","try_into","type_id","vzip","DEGREE_QUOTIENT_POLYNOMIAL","MAXIMUM_DEGREE_CONSTRAINTS","TOTAL_NUMBER_OF_CONSTRAINTS","column_env","proof","prover","verifier","ColumnEnvironment","borrow","borrow_mut","challenges","column_domain","constants","deref","deref_mut","domain","drop","from","get_all_columns","get_challenges","get_column","get_constants","get_domain","init","into","l0_1","l0_1","try_from","try_into","type_id","vanishes_on_zero_knowledge_and_previous_rows","vzip","witness","Proof","ProofInputs","WitnessColumns","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","commitments","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","error","evaluations","from","from","from","get_column","init","init","init","instruction_counter","into","into","into","new","opening_proof","quotient_commitment","quotient_evaluations","scratch","scratch_inverse","selector","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","zeta_evaluations","zeta_omega_evaluations","ConstraintDegreeTooHigh","ProverError","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","fmt","fmt","from","init","into","prove","provide","to_owned","to_string","try_from","try_into","type_id","vzip","verify","PreImageOracle","PreImageOracleT","RW","ReadWrite","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cmd","create","create_bidirectional_channel","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","from","from","from","get_preimage","get_preimage","hint","hint","hint_client","hint_server","init","init","init","into","into","into","oracle_client","oracle_server","reader","start","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","writer","LookupMode","RAMLookup","Read","Write","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","fmt","from","from","init","init","into","into","into_logup","new","numerator","read_if","read_one","to_owned","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","write_if","write_one","main","memory_size"],"q":[[0,"o1vm"],[13,"o1vm::cannon"],[267,"o1vm::cli"],[295,"o1vm::cli::cannon"],[404,"o1vm::elf_loader"],[421,"o1vm::interpreters"],[424,"o1vm::interpreters::keccak"],[495,"o1vm::interpreters::keccak::column"],[715,"o1vm::interpreters::keccak::constraints"],[741,"o1vm::interpreters::keccak::environment"],[769,"o1vm::interpreters::keccak::helpers"],[792,"o1vm::interpreters::keccak::interpreter"],[890,"o1vm::interpreters::keccak::witness"],[917,"o1vm::interpreters::mips"],[926,"o1vm::interpreters::mips::column"],[965,"o1vm::interpreters::mips::constraints"],[1032,"o1vm::interpreters::mips::interpreter"],[1401,"o1vm::interpreters::mips::interpreter::debugging"],[1432,"o1vm::interpreters::mips::registers"],[1472,"o1vm::interpreters::mips::witness"],[1593,"o1vm::interpreters::riscv32im"],[1603,"o1vm::interpreters::riscv32im::column"],[1627,"o1vm::interpreters::riscv32im::constraints"],[1700,"o1vm::interpreters::riscv32im::interpreter"],[2302,"o1vm::interpreters::riscv32im::registers"],[2382,"o1vm::interpreters::riscv32im::witness"],[2477,"o1vm::legacy"],[2487,"o1vm::legacy::folding"],[2633,"o1vm::legacy::folding::keccak"],[2660,"o1vm::legacy::folding::mips"],[2687,"o1vm::legacy::proof"],[2688,"o1vm::legacy::trace"],[2754,"o1vm::legacy::trace::keccak"],[2763,"o1vm::legacy::trace::mips"],[2772,"o1vm::lookups"],[2813,"o1vm::pickles"],[2820,"o1vm::pickles::column_env"],[2846,"o1vm::pickles::proof"],[2899,"o1vm::pickles::prover"],[2921,"o1vm::pickles::verifier"],[2922,"o1vm::preimage_oracle"],[2976,"o1vm::ramlookup"],[3021,"o1vm::test_preimage_read"],[3022,"o1vm::utils"]],"d":["","","Modules mimicking the defined structures used by Cannon …","","A module to load ELF files.","","Legacy implementation of the recursive proof composition. …","Instantiation of the lookups for the VM project. …","Pickles flavor of the o1vm. This is the pickles flavor of …","Preimage oracle interface used by the zkVM.","The RAM lookup argument.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","","","","","","","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","Calls U::from(self)
.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self)
.","","","","","","","An interpreter for an optimised version of Keccak","An interpreter for the MIPS instruction set. This module …","An interpreter for the RISC-V 32IM instruction set, …","","","","","","","","","All the names for constraints involved in the Keccak …","","Errors that can occur during the check of the witness","","","","","","","","","","","","","","","","","","","","","","","This module defines the custom columns used in the Keccak …","This module contains the constraints for one Keccak step.","","","","","","","This module contains the definition and implementation of …","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","This module defines the Keccak interpreter in charge of …","Calls U::from(self)
.","Calls U::from(self)
.","This function returns a vector of field elements that …","Standardizes a Keccak step to a common opcode","","","","","","","","","","","This file contains the witness for the Keccak hash …","","Order of absorb steps in the computation depending on the …","An iterator over the variants of Absorbs","Block index inside the hash to enumerate preimage bytes","","","Column aliases used by the Keccak circuit. The number of …","","Hash identifier to distinguish inside the syscalls …","","The witness columns used by the Keccak circuit. The Keccak …","","","Total number of columns used in Keccak, including relation …","The maximum total number of witness columns used by the …","The number of columns required for the Keccak selectors. …","","","","","","","","","","","","Current step performs a round of the permutation. The …","","","Current step is a sponge","","","","","Variants of Keccak sponges","An iterator over the variants of Sponges","","Hash step identifier to distinguish inside interstep …","Variants of Keccak steps available for the interpreter. …","An iterator over the variants of Steps","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Map the column alias to the actual column index. Note that …","Map the column alias to the actual column index. Note that …","","","","","","","","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Iterate over the instruction variants","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","This struct contains all that needs to be kept track of …","","","","","","","","","Constraints that are added to the circuit","","","","","","Returns the argument unchanged.","","Calls U::from(self)
.","Variables that are looked up in the circuit","","","","","","","","This struct contains all that needs to be kept track of …","","","","","Environment for the constraints (includes lookups). The …","","","","","","Returns the argument unchanged.","","Calls U::from(self)
.","Starts a new Keccak environment for a given hash index and …","Nullifies the Witness and Constraint environments by …","Returns the selector of the current step in standardized …","Entrypoint for the interpreter. It executes one step of …","Current step","","","","","This function updates the next step of the environment …","","Environment for the witness (includes multiplicities)","Writes an integer value to a column of the Keccak witness","Writes a field value to a column of the Keccak witness","This trait contains helper functions for arithmetic …","This trait contains helper functions for boolean …","This trait contains helper functions for the lookups used …","Degree-2 variable encoding whether at least one of the two …","Degree-2 variable encoding whether the input is a boolean …","Degree-2 variable encoding whether the first input is …","Degree-1 variable encoding whether the input is the value …","","Adds a lookup to the Byte table","Adds a lookup to the Pad table","Adds a lookup to the RangeCheck16 table","Adds a lookup to the Reset table","Adds a lookup to the RoundConstants table","Adds a lookup to the Shift table","Degree-1 variable encoding the negation of the input Note: …","Returns a variable representing the value one","Degree-2 variable encoding the OR of two variables, which …","","Returns a variable representing the value two","Returns a variable representing the value 2^x","","Degree-2 variable encoding the XOR of two variables which …","Returns a variable representing the value zero","This trait includes functionalities needed to obtain the …","","","Adds a given Lookup to the environment if the condition …","This function returns a degree-2 variable that is computed …","Returns the block index as a variable","Returns a variable that encodes the idx
-th block of bytes …","Creates a variable from a constant integer","Creates a variable from a constant field element","Adds one KeccakConstraint to the environment if the …","Constrains 332 checks of absorb sponges","Constrains 136 checks of booleanity for some mode flags.","Constrains 200 checks of the chi algorithm in round steps","Constrains 136 checks of correctness of mode flags","Constrains 4 checks of the iota algorithm in round steps","Constrains 6 checks of padding absorb sponges","Constrains 150 checks of the pirho algorithm in round steps","Constrains 389 checks of round steps","Constrains 354 checks of sponge steps","Constrains 16 checks of squeeze sponges","Constrains 35 checks of the theta algorithm in round steps","Creates all 879 constraints/checks to the environment:","Returns the (x,q)-th term of ThetaDenseC, as a variable","Returns the (y,x,q)-th variable of PiRhoDenseE","Returns the (x,q)-th variable of ThetaDenseRotC","Returns the (y,x,q)-th variable of PiRhoDenseRotE","Returns the (x,q)-th variable of ThetaExpandRotC","Returns the (y,x,q)-th variable of PiRhoExpandRotE","Returns a vector of pad bytes flags as variables, with idx
…","This function returns the composed variable from dense …","COLUMN OPERATIONS /// This function returns the composed …","Returns the hash index as a variable","Returns a variable that encodes whether the idx
-th byte of …","Returns the 100 step input variables, which correspond to …","Returns a slice of the input variables of the current step …","Returns a variable that encodes whether the current step …","Returns a degree-1 variable that encodes whether the …","Returns a variable that encodes whether the current step …","Returns a variable that encodes whether the current step …","SELECTOR OPERATIONS /// Returns a degree-2 variable that …","Returns a variable that encodes whether the current step …","Reads a Lookup containing the input of a step and writes a …","When in Squeeze mode, writes a Lookup containing the …","When in Absorb mode, reads Lookups containing the 136 …","Creates all possible lookups to the Keccak constraints …","Adds the 800 lookups required for Chi in the round","Adds the 1 lookup required for Iota in the round","Adds the 700 lookups required for PiRho in the round","Adds the 120 lookups required for Theta in the round","Adds the 601 lookups required for the sponge","Returns a variable that encodes whether the current step …","Returns a degree-1 variable that encodes whether the …","Returns a variable that encodes whether the current step …","Returns a degree-1 variable that encodes whether the …","Returns a variable that encodes whether the current step …","Returns a variable that encodes whether the current step …","Returns the idx
-th new state expanded quarter, as a …","Returns the idx
-th old state expanded quarter, as a …","Returns the 100 step output variables, which correspond to …","Returns a slice of the output variables of the current …","Returns the 136 flags indicating which bytes of the new …","Returns a variable that encodes the bytelength of the …","Returns a variable that encodes the idx
-th chunk of the …","Returns the (x)-th term of ThetaQuotientC, as a variable","Returns the (y,x,q)-th variable of PiRhoQuotientE","Returns the (x,q)-th variable of ThetaRemainderC","Returns the (y,x,q)-th variable of PiRhoRemainderE","Returns a variable that encodes the current round number […","Returns the 4 expanded quarters that encode the round …","Returns the (i,y,x,q)-th variable of ChiShiftsB","Returns the (i,x,q)-th variable of ThetaShiftsC","Returns the (i,y,x,q)-th variable of PiRhoShiftsE","Returns the (i,y,x,q)-th variable of ChiShiftsSum","Returns the idx
-th byte of the sponge, as a variable","Returns the 200 bytes of the sponge, as variables","Returns the idx
-th term of the shifts of the sponge, as a …","Returns the last 32 terms that are added to the new block …","Returns the (y,x,q)-th input of the theta algorithm, as a …","Returns the idx
-th output of a round step as a variable","Returns the step index as a variable","Returns a variable that encodes the value 2^pad_length","Returns the variable corresponding to a given column alias.","Returns the 20 variables corresponding to ThetaDenseC","Returns the 100 variables corresponding to PiRhoDenseE","Returns the 20 variables corresponding to ThetaDenseRotC","Returns the 100 variables corresponding to PiRhoDenseRotE","Returns the 20 variables corresponding to ThetaExpandRotC","Returns the 100 variables corresponding to PiRhoExpandRotE","Returns the 5 variables corresponding to ThetaQuotientC","Returns the 100 variables corresponding to PiRhoQuotientE","Returns the 20 variables corresponding to ThetaRemainderC","Returns the 100 variables corresponding to PiRhoRemainderE","Returns the 400 variables corresponding to ChiShiftsB","Returns the 80 variables corresponding to ThetaShiftsC","Returns the 400 variables corresponding to PiRhoShiftsE","Returns the 400 variables corresponding to ChiShiftsSum","Returns the 400 terms that compose the shifts of the …","Returns the output of an absorb sponge, which is the XOR …","This struct contains all that needs to be kept track of …","","","","","","","","Checks the constraint tag
by checking that the input x
is …","","","","","","Returns the argument unchanged.","","Calls U::from(self)
.","The multiplicities of each lookup entry. Should not be …","The fixed tables used in the Keccak gate","","","","","","","","The full state of the Keccak gate (witness)","","","","","","","","","","Abstract columns (or variables of our multi-variate …","","Represents one line of the execution trace of the virtual …","All the witness columns used in MIPS","The number of columns used for relation witness in the …","The number of witness columns used to store the …","","Number of columns used by the MIPS interpreter to keep …","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Map the column alias to the actual column index.","Map the column alias to the actual column index.","","","","Calls U::from(self)
.","","","","","","","","","The environment keeping the constraints between the …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Return the constraints for the current instruction, …","","","Return the constraints for the selector. Each selector …","","","","Calls U::from(self)
.","","","","","","","","","","","","","This function checks that the preimage is read correctly. …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","An iterator over the variants of ITypeInstruction","","An iterator over the variants of Instruction","","","","An iterator over the variants of JTypeInstruction","","","","","","","","","","","","","","","","","","","","","","","","","A position can be seen as an indexed variable","","","An iterator over the variants of RTypeInstruction","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Access the memory address addr
, adding constraints …","Access the general purpose register with index idx
, adding …","Access the general purpose register with index idx
, adding …","Activate the selector for the given instruction.","Add a constraint to the proof system, asserting that …","","Returns x + y
and the overflow bit, storing the results in …","Allocate a new abstract variable for the current step. The …","","Returns x or y
, storing the result in position
.","Assert that the value x
is boolean, and add a constraint …","Assert that the values x
and y
are equal, and add a …","Assert that the value assert_equals_zero
is 0, and add a …","Extract the bits from the variable x
between highest_bit
…","","","","","","","","","","","","","","","","","Check that the witness value x
is a boolean (0
or 1
); …","Check that the witness values in x
and y
are equal; …","Check that the witness value in assert_equals_zero
is 0; …","","","","","","","","","","","","","","","","","","","","","","","Returns the number of leading 1s in x
, storing the result …","Returns the number of leading 0s in x
, storing the result …","","","","","","","","","","","","","","","","","","","","","Returns (x / y, x % y)
, storing the results in …","Returns (x / y, x % y)
, storing the results in …","","","","","","","","","","","","","Returns 1 if x
is equal to y
, or 0 otherwise, storing the …","","","","","","","","","Fetch the memory value at address addr
and store it in …","Fetch the last ‘access index’ that the memory at …","Fetch the value of the general purpose register with index …","Fetch the last ‘access index’ for the general purpose …","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","Increases the heap pointer by by_amount
if if_is_true
is 1
…","","","","","","","","","","","","","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Iterate over the instruction variants","","","","","","","","","","","","","","","","Adds a lookup to the RangeCheck16Lookup table","Adds a lookup to the AtMost4Lookup table","Adds a lookup to the ByteLookup table","Returns ((x * y) >> 32, (x * y) & ((1 << 32) - 1))
, …","Returns ((x * y) >> 32, (x * y) & ((1 << 32) - 1))
, …","Returns x * y
, where x
and y
are treated as integers, …","","","","","","","","","Returns x nor y
, storing the result in position
.","","","","","Returns x or y
, storing the result in position
.","","","","","","","","","Set the memory value at address addr
to value
.","Set the last ‘access index’ for the memory at address …","Set the general purpose register with index idx
to value
.","Set the last ‘access index’ for the general purpose …","Set the last ‘access index’ for the general purpose …","Set the general purpose register with index idx
to value
…","Range checks with 2 lookups to the RangeCheck16Lookup …","Range checks with 1 lookup to the AtMost4Lookup table 0 <= …","","Range checks with 2 lookups to the ByteLookup table that a …","","","","","Request the preimage oracle for len
bytes and store the …","Reset the environment to handle the next instruction","","","","Return the result of shifting x
by by
, storing the result …","Return the result of shifting x
by by
, storing the result …","Return the result of shifting x
by by
, storing the result …","Given a variable x
, this function extends it to a signed …","","","","","Returns x + y
and the underflow bit, storing the results …","Returns 1 if x < y
as unsigned integers, or 0 otherwise, …","Returns 1 if x < y
as signed integers, or 0 otherwise, …","Returns 1 if x
is 0, or 0 otherwise, storing the result in …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns x xor y
, storing the result in position
.","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self)
.","","","","","","","","","","","","","","","","","","","","","This represents the internal state of the virtual machine.","","","","","","","","","","","","Returns the argument unchanged.","","","","","","","Calls U::from(self)
.","","","","","","","","","","","","This structure represents the environment the virtual …","Maximum number of memory or register accesses per …","Maximum number of memory accesses per instruction (based …","Maximum number of register accesses per instruction (based …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","Calls U::from(self)
.","Calls U::from(self)
.","","","","","","","","","","","Computes what is the non-normalized next instruction …","","The actual number of instructions executed results from …","","","","","","","","","","","","","","","","","","","","","","","","","","","Execute a single step of the MIPS program. Returns the …","","","","","","","","","","","","","","","","","","","","","Number of instructions in the ISA","","","","The minimal number of columns required for the VM","List all columns used by the interpreter","","This module implement an interpreter for the RISCV32 IM …","All the registers used by the ISA","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self)
.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Return the constraints for the current instruction, …","","","Return the constraints for the selector. Each selector …","","","","Calls U::from(self)
.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Format: add rd, rs1, rs2
","Format: addi rd, rs1, imm
","Format: auipc rd,imm
","Format: and rd, rs1, rs2
","Format: andi rd, rs1, imm
","Format: beq rs1, rs2, offset
","Format: bge rs1, rs2, offset
","Format: bgeu rs1, rs2, offset
","Format: blt rs1, rs2, offset
","Format: bltu rs1, rs2, offset
","Format: bne rs1, rs2, offset
","Format: div rd, rs1, rs2
","Format: divu rd, rs1, rs2
","Format: fence
","Format: fence.i
","","An iterator over the variants of IInstruction","","","An iterator over the variants of Instruction","","Format: jal rd,imm
","Format: jalr rd, rs1, imm
","Format: lb rd, offset(rs1)
","Format: lbu rd, offset(rs1)
","Format: lh rd, offset(rs1)
","Format: lhu rd, offset(rs1)
","Format: lui rd,imm
","Format: lw rd, offset(rs1)
","M extension instructions Following …","An iterator over the variants of MInstruction","","Format: mul rd, rs1, rs2
","Format: mulh rd, rs1, rs2
","Format: mulhsu rd, rs1, rs2
","Format: mulhu rd, rs1, rs2
","Format: or rd, rs1, rs2
","Format: ori rd, rs1, imm
","A position can be seen as an indexed variable","","An iterator over the variants of RInstruction","","Format: rem rd, rs1, rs2
","Format: remu rd, rs1, rs2
","","An iterator over the variants of SBInstruction","","","An iterator over the variants of SInstruction","","Format: slt rd, rs1, rs2
","Format: slti rd, rs1, imm
","Format: sltiu rd, rs1, imm
","Format: sltu rd, rs1, rs2
","Format: sll rd, rs1, rs2
","Format: slli rd, rs1, shamt
","Format: sra rd, rs1, rs2
","Format: srai rd, rs1, shamt
","Format: srl rd, rs1, rs2
","Format: srli rd, rs1, shamt
","Format: sb rs2, offset(rs1)
","Format: sh rs2, offset(rs1)
","Format: sw rs2, offset(rs1)
","Format: sub rd, rs1, rs2
","","An iterator over the variants of SyscallInstruction","","","","An iterator over the variants of UInstruction","","An iterator over the variants of UJInstruction","","","","Format: xor rd, rs1, rs2
","Format: xori rd, rs1, imm
","Access the memory address addr
, adding constraints …","Access the general purpose register with index idx
, adding …","Access the general purpose register with index idx
, adding …","Activate the selector for the given instruction.","Add a constraint to the proof system, asserting that …","","Returns x + y
and the overflow bit, storing the results in …","Allocate a new abstract variable for the current step. The …","Returns x or y
, storing the result in position
.","Assert that the value x
is boolean, and add a constraint …","Assert that the values x
and y
are equal, and add a …","Assert that the value assert_equals_zero
is 0, and add a …","Extract the bits from the variable x
between highest_bit
…","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Check that the witness values in x
and y
are equal; …","Check that the witness value in assert_equals_zero
is 0; …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the number of leading 1s in x
, storing the result …","Returns the number of leading 0s in x
, storing the result …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns x / y
, storing the results in position
.","Returns x / y
, storing the results in position
.","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns 1 if x
is equal to y
, or 0 otherwise, storing the …","","","","","","","","","","","","","","","","","","","Fetch the memory value at address addr
and store it in …","Fetch the last ‘access index’ that the memory at …","Fetch the value of the general purpose register with index …","Fetch the last ‘access index’ for the general purpose …","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","Increases the heap pointer by by_amount
if if_is_true
is 1
…","","","","","","","","","","","","","","","","","","","","","","Interpret an I-type instruction. The encoding of an I-type …","Interpret an M-type instruction. The encoding of an M-type …","Interpret an R-type instruction. The encoding of an R-type …","Interpret an SB-type instruction. The encoding of an …","Interpret an S-type instruction. The encoding of an S-type …","","Interpret an UJ-type instruction. The encoding of an …","Interpret an U-type instruction. The encoding of an U-type …","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","","","","","","","","","","","Returns x^(-1)
, or 0
if x
is 0
, storing the result in …","","","","","","","","","","","","","","","","","","","","","","Adds a lookup to the RangeCheck16Lookup table","Adds a lookup to the AtMost4Lookup table","Adds a lookup to the ByteLookup table","Returns x % y
, storing the results in position
.","Returns x % y
, storing the results in position
.","Returns ((x * y) >> 32
, storing the results in position
.","Returns ((x * y) >> 32
, storing the results in position
.","Returns ((x * y) >> 32
, storing the results in position
.","Returns (x * y) & ((1 << 32) - 1))
, storing the results in …","Returns (x * y) & ((1 << 32) - 1))
, storing the results in …","Returns x * y
, where x
and y
are treated as integers, …","","","","","","","","","","","","","","","","","","","Returns x nor y
, storing the result in position
.","","","","","","","","","","Returns x or y
, storing the result in position
.","","","","","","","","","","","","","","","","","","","Set the memory value at address addr
to value
.","Set the last ‘access index’ for the memory at address …","Set the general purpose register with index idx
to value
.","Set the last ‘access index’ for the general purpose …","Set the last ‘access index’ for the general purpose …","Set the general purpose register with index idx
to value
…","Range checks with 2 lookups to the RangeCheck16Lookup …","","Range checks with 2 lookups to the ByteLookup table that a …","","","","","","","","Return the result of shifting x
by by
, storing the result …","Return the result of shifting x
by by
, storing the result …","Return the result of shifting x
by by
, storing the result …","Given a variable x
, this function extends it to a signed …","","","","","","","","","","Returns x + y
and the underflow bit, storing the results …","Returns 1 if x < y
as unsigned integers, or 0 otherwise, …","Returns 1 if x < y
as signed integers, or 0 otherwise, …","Returns 1 if x
is 0, or 0 otherwise, storing the result in …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns x xor y
, storing the result in position
.","Function arguments/results","","","","","","","","Frame pointer/saved register. This is the same register.","Global pointer","","Current instruction pointer","","Next instruction pointer","","","","Return address","This enum provides aliases for the registers. This is …","This represents the internal state of the virtual machine.","","Saved registers","","","","","","","","","","","Stack pointer","Temporary/alternate register","Temporaries","","","","","","Thread pointer","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","There are 32 general purpose registers.","","","","","","","Calls U::from(self)
.","Calls U::from(self)
.","","","","","","","","","","","","This structure represents the environment the virtual …","Maximum number of memory or register accesses per …","Maximum number of memory accesses per instruction (based …","Maximum number of register accesses per instruction (based …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","","","","","Calls U::from(self)
.","","","","","","","","","","","","","","","","","The actual number of instructions executed results from …","","","","","","","","","","","","","","","","","","Execute a single step in the RISCV32i program","","","","","","","","","","","","","","","","Elliptic curve group of BN254","Scalar field of BN254","","","","","","","This module defines structures and traits to build and …","","","An iterator over the variants of Challenge","Environment for the decomposable folding protocol, for a …","","Folding instance containing the commitment to a witness of …","Includes the data witness columns and also the dynamic …","","","Reuses the Alphas defined in the example of folding","Blinder used in the polynomial commitment scheme","","","","","","","","","","","","","","","Challenges for the proof. We do use 3 challenges:","","","","","","","","","","","","","Commitments to the witness columns, including the dynamic …","Corresponds to the omega evaluations, for both sides","Corresponds to the evaluations at ω, for both sides","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","Commitments to the witness columns, for both sides","Commitments to the witness columns, for both sides","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","","","","","","","","","","Corresponds to the zeta*omega evaluations, for both sides …","Corresponds to the evaluations at ζω, for both sides …","","","This method takes an Instance and a commitment to zero and …","This method takes a witness and a vector of evaluations to …","","","","","Structure of the folded circuit","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Map a selector column to the corresponding witness column.","Map a column alias to the corresponding witness column.","","Calls U::from(self)
.","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Map a column alias to the corresponding witness column.","","Map a selector column to the corresponding witness column.","","Calls U::from(self)
.","","","","","","FIXME: DUMMY FOLD FUNCTION THAT ONLY KEEPS THE LAST …","DecomposableTracer builds traces for some program …","Struct representing a circuit execution trace which is …","The trait Foldable describes structures that can be folded.","","Implement a trace for a single instruction.","Tracer builds traces for some program executions. The …","","","","","","","","","","","","","","","The domain size of the circuit (should coincide with that …","","","Returns a map of constraints that are compatible with …","","Returns the argument unchanged.","Returns the argument unchanged.","Returns a boolean indicating whether the witness for the …","","Initialize a new trace with the given domain size, …","","","","Calls U::from(self)
.","Calls U::from(self)
.","Returns whether the witness for the given selector has …","","","","Create a new decomposable trace with the given domain …","Returns the number of rows that have been instantiated for …","Pad the rows of one opcode with the first row until …","","Pad the rows of one opcode with the given row until …","","Pads the rows of one opcode with zero rows until reaching …","","Pads the rows of the witnesses until reaching the domain …","Add a witness row to the circuit (only for relation …","","Resets the witness after folding","Sets the selector column to all ones, and the rest to all …","Returns the witness for the given selector as a folding …","","","","The traces are indexed by the selector Inside the witness …","","","","","","","","","","The Keccak circuit trace","A Keccak instruction trace","","","","","","","","The MIPS circuit trace","The MIPS instruction trace","","","","","","","","Values from 0 to 4 to check the number of bytes read from …","All values that can be stored in a byte (amortized table, …","Input/Output of Keccak steps","All of the possible lookup table IDs used in the zkVM","","All [1..136] values of possible padding lengths, the value …","Single-column table of all values in the range [0, 2^16)","","Dual-column table of all values in the range [0, 2^16) and …","24-row table with all possible values for round and their …","Single-column table of 2^16 entries with the sparse …","Syscalls communication channel","","","","","","","","","","","","","","Returns the argument unchanged.","","","","Calls U::from(self)
.","","","","","","","","","","","","Degree of the quotient polynomial. We do evaluate all …","Maximum degree of the constraints. It does include the …","Total number of constraints for all instructions, …","","","","","The collection of polynomials (all in evaluation form) and …","","","Challenges from the IOP.","","Constant values required","","","The domains used in the PLONK argument.","","Returns the argument unchanged.","","","","","","","Calls U::from(self)
.","","The value prod_{j != 1} (1 - ω^j)
, used for efficiently …","","","","","","The witness column polynomials. Includes relation columns …","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","","IPA opening proof","","","","","","","","","","","","","","","","","","","","","Errors that can arise when creating a proof","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self)
.","Make a PlonKish proof for the given circuit. As inputs, we …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","","","","","","","","","","","","","","","","","","Enum representing the two different modes of a RAMLookup","Struct containing a RAMLookup","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self)
.","Calls U::from(self)
.","Transforms the current RAMLookup into an equivalent Logup","Creates a new RAMLookup from a mode, a table ID, a …","Returns the numerator corresponding to this lookup in the …","Reads one value when if_is_true
is 1.","Reads one value from a table.","","","","","","","","","","","","Writes one value when if_is_true
is 1.","Writes one value to a table.","",""],"i":[0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,2,9,10,13,15,16,18,1,2,3,4,5,6,9,10,13,15,16,18,1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6,9,10,4,13,9,10,13,15,16,18,1,2,3,4,5,6,9,10,13,15,16,18,1,2,3,4,5,6,13,15,5,6,9,10,13,15,16,18,1,2,3,4,5,6,16,18,1,5,6,16,16,15,15,6,13,15,16,18,1,2,3,4,5,6,9,10,13,15,16,18,1,2,3,3,4,5,6,18,1,9,10,15,15,3,13,3,9,10,13,15,16,18,1,2,3,4,5,6,3,9,10,13,15,16,18,1,2,3,4,5,6,15,15,15,3,2,5,15,3,15,3,15,15,15,3,3,15,13,15,5,3,3,5,15,4,3,6,4,1,2,3,4,5,6,15,9,10,13,15,16,18,1,2,3,4,5,6,9,10,13,15,16,18,1,2,3,4,5,6,9,10,13,15,16,18,1,2,3,4,5,6,9,10,13,15,16,18,1,2,3,4,5,6,29,0,29,29,29,29,0,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,0,34,0,0,34,0,34,24,32,33,24,32,33,34,34,24,32,33,34,24,32,33,34,24,32,33,34,24,32,33,34,24,32,33,24,32,33,24,32,33,34,24,32,33,34,24,32,33,34,24,32,33,34,24,32,33,34,24,32,33,34,24,32,33,34,24,32,33,34,24,32,33,34,33,24,32,33,34,33,32,24,32,33,34,24,32,33,34,24,32,33,34,24,32,33,34,24,32,33,34,24,32,33,34,32,24,32,33,34,0,38,38,38,38,38,38,38,38,38,38,0,0,38,38,38,38,0,0,0,41,41,41,41,0,41,41,41,0,40,0,41,40,41,41,41,41,41,0,41,0,41,41,41,41,40,41,40,41,40,41,40,41,0,0,40,41,40,41,40,41,0,40,41,40,40,41,41,40,41,40,41,0,40,41,0,40,41,0,0,40,41,40,41,40,41,40,41,40,41,0,47,0,0,45,45,45,0,49,45,45,0,49,49,0,0,0,49,45,45,45,45,45,45,45,45,45,45,44,45,45,44,45,45,45,45,0,0,47,45,0,0,45,45,45,45,45,45,45,45,44,46,47,48,49,50,45,44,46,47,48,49,50,45,44,46,47,48,49,50,45,44,46,47,48,49,50,45,44,47,49,47,49,45,44,46,47,48,49,50,45,44,46,47,48,49,50,45,44,46,47,48,49,50,45,44,47,49,45,45,44,44,47,47,49,49,45,44,46,47,48,49,50,45,44,46,47,48,49,50,45,44,47,49,54,54,54,54,45,44,46,47,48,49,50,45,44,46,47,48,49,50,44,46,48,50,45,44,44,47,49,44,46,48,50,46,48,50,46,48,50,46,48,50,46,48,50,45,44,47,49,46,48,50,45,44,45,44,46,47,48,49,50,45,44,46,47,48,49,50,45,44,46,47,48,49,50,45,44,46,47,48,49,50,45,44,46,47,48,49,50,0,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,0,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,0,0,0,178,178,178,178,178,179,179,179,179,179,179,178,180,178,179,180,180,179,178,180,0,0,64,64,181,181,181,64,64,64,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,64,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,0,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,0,0,0,0,0,0,0,0,0,0,66,0,0,0,0,0,0,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,67,67,67,67,66,66,66,66,66,66,66,66,66,66,0,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,0,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,74,78,78,74,74,78,78,78,78,78,78,78,74,74,74,74,0,0,0,0,0,0,0,68,0,0,0,0,0,68,0,0,76,76,74,74,78,78,78,78,78,78,78,78,74,74,74,74,74,74,74,74,74,74,74,78,80,68,0,0,0,0,0,0,0,0,0,74,78,78,74,74,74,74,74,74,74,78,78,78,78,78,78,74,74,74,74,74,74,74,74,74,74,74,74,74,80,74,78,80,80,80,80,80,80,80,80,80,80,80,80,80,80,68,73,74,75,76,77,78,79,68,73,74,75,76,77,78,79,80,80,80,68,73,74,75,76,77,78,79,68,73,74,75,76,77,78,79,68,74,76,78,80,80,80,80,0,74,76,78,68,73,74,75,76,77,78,79,68,73,74,75,76,77,78,79,80,80,68,73,74,75,76,77,78,79,68,74,76,78,80,68,68,74,74,76,76,78,78,80,80,80,80,68,73,74,75,76,77,78,79,68,73,74,75,76,77,78,79,80,80,68,74,76,78,80,80,68,73,74,75,76,77,78,79,80,0,0,0,0,68,73,74,75,76,77,78,79,68,73,75,77,79,80,68,68,74,76,78,68,73,75,77,79,80,80,80,80,80,80,73,75,77,79,73,75,77,79,80,73,75,77,79,80,73,75,77,79,68,74,76,78,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,73,75,77,79,80,80,80,80,68,68,73,74,75,76,77,78,79,68,73,74,75,76,77,78,79,68,73,74,75,76,77,78,79,68,73,74,75,76,77,78,79,80,68,73,74,75,76,77,78,79,80,80,80,80,0,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,0,0,0,0,0,0,0,0,0,0,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,0,0,0,0,0,0,0,0,0,88,88,88,88,88,88,88,88,88,89,88,89,88,88,88,89,89,88,88,88,88,88,89,88,89,88,89,88,89,88,88,88,89,88,88,88,88,88,88,89,88,88,88,88,88,88,88,89,88,88,88,89,88,88,89,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,89,88,89,88,89,88,89,88,88,88,88,89,88,88,88,0,0,0,0,0,0,0,0,0,0,0,0,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,0,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,95,97,103,95,97,101,101,101,101,101,101,109,109,95,95,0,0,92,0,0,0,105,97,97,97,97,97,103,97,0,0,92,109,109,109,109,95,97,111,0,0,92,109,109,0,0,92,0,0,92,95,97,97,95,95,97,95,97,95,97,99,99,99,95,0,0,107,92,0,0,0,0,92,92,111,95,97,111,111,111,111,111,111,111,111,111,111,111,111,111,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,111,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,92,95,97,99,101,103,105,107,109,111,111,111,111,95,97,99,101,103,105,107,109,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,111,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,92,95,97,99,101,103,105,107,109,111,92,92,95,95,97,97,99,99,101,101,103,103,105,105,107,107,109,109,111,111,111,111,92,92,94,95,95,96,97,97,98,99,99,100,101,101,102,103,103,104,105,105,106,107,108,109,109,110,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,111,92,95,97,99,101,103,105,107,109,111,111,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,0,0,0,0,0,0,0,0,0,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,92,94,96,98,100,102,104,106,108,110,111,111,92,92,95,97,99,101,103,105,107,109,92,94,96,98,100,102,104,106,108,110,111,111,111,111,111,111,111,111,111,111,111,94,96,98,100,102,104,106,108,110,94,96,98,100,102,104,106,108,110,111,94,96,98,100,102,104,106,108,110,111,94,96,98,100,102,104,106,108,110,92,95,97,99,101,103,105,107,109,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,94,96,98,100,102,104,106,108,110,111,111,111,111,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,92,95,97,99,101,103,105,109,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,111,111,111,113,113,113,113,113,113,113,113,113,113,113,113,0,113,0,0,0,113,0,0,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,112,113,112,112,112,112,112,113,112,113,112,112,113,112,112,113,112,112,112,112,112,112,113,112,113,112,112,112,112,113,112,113,112,113,112,113,112,0,0,0,0,0,0,0,0,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,0,0,0,0,0,0,0,0,0,0,117,0,0,0,0,0,0,117,117,122,122,116,119,117,120,122,124,116,119,117,120,122,124,116,119,122,117,120,122,124,117,120,122,124,116,119,122,124,122,116,119,116,119,117,120,122,124,116,119,117,120,122,124,116,119,117,120,122,124,117,124,117,117,124,124,117,120,122,124,116,119,117,117,120,122,124,122,122,117,124,122,124,116,119,117,120,122,124,116,119,116,119,117,120,122,124,120,117,0,120,0,116,119,120,120,116,119,120,120,122,124,116,119,120,116,119,122,117,120,122,124,116,119,117,120,122,124,116,119,117,120,122,124,116,119,117,120,122,124,116,119,117,120,122,124,124,0,0,0,0,134,134,134,134,134,134,134,134,134,134,134,134,134,135,135,135,134,134,134,134,134,134,134,0,0,0,0,136,136,136,136,136,136,136,136,136,136,136,136,136,137,137,137,136,136,136,136,136,136,136,0,0,0,0,182,0,0,141,142,141,142,141,142,141,142,141,141,142,141,142,141,142,141,142,183,142,141,142,142,142,182,141,142,142,141,142,142,0,141,0,184,142,182,142,182,142,182,142,184,182,142,142,142,183,142,141,142,142,141,142,141,142,141,142,141,142,141,0,0,148,149,148,148,148,149,148,0,0,150,151,150,150,150,151,150,58,58,58,0,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,0,0,0,0,0,0,0,0,153,153,153,153,153,153,153,153,153,153,0,153,153,153,153,153,153,153,153,153,153,153,153,153,153,0,0,0,157,159,164,157,159,164,164,157,159,164,157,159,164,157,159,164,157,159,157,159,164,157,157,159,164,157,157,159,164,159,164,164,164,157,157,157,157,159,164,157,159,164,157,159,164,157,159,164,164,164,160,0,160,160,160,160,160,160,160,160,160,160,160,160,0,160,160,160,160,160,160,160,0,0,0,0,0,166,185,186,166,185,186,166,166,0,166,185,186,166,185,186,166,185,186,166,185,186,87,166,87,166,166,166,166,185,186,166,185,186,166,166,185,166,166,185,186,166,185,186,166,185,186,166,185,186,185,0,0,168,168,168,59,168,59,168,59,168,59,168,59,168,59,168,59,168,59,59,168,59,168,59,168,59,59,59,59,59,59,168,59,59,168,59,168,59,168,59,168,59,59,59,0,0],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[[]],[[]],[[]],[[]],[[]],[[]],[[[8,[7]]],9],[[[8,[7]]],10],[11,4],0,[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[12,[[14,[13]]]],[12,[[14,[15]]]],[12,[[14,[5]]]],[12,[[14,[6]]]],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[[16,16],17],[[18,18],17],[[1,1],17],[[5,5],17],[[6,6],17],[[],17],[[],17],0,0,[[6,19],[[21,[20]]]],[[13,22],23],[[15,22],23],[[16,22],23],[[18,22],23],[[1,22],23],[[2,22],23],[[3,22],23],[[4,22],23],[[5,22],23],[[6,22],23],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[24,3],[[]],[[]],[[]],[25,[[14,[18]]]],[25,[[14,[1,20]]]],[9,[[8,[7]]]],[10,[[8,[7]]]],0,0,0,0,0,[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[13,26],14],[[15,26],14],0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[15,20],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[28,28],[28,28],[[]],[[]],0,[29,29],[[]],[[],28],[[],28],[11],[11],[11],[[29,22],23],[[]],[30,[[14,[29,31]]]],[30,[[14,[29,31]]]],[25,17],[[],11],[[]],[[]],[[],14],[[],14],[[],27],[[29,30],[[14,[31]]]],[[29,30],[[14,[31]]]],[[]],0,0,0,0,0,0,0,[28,28],[28,28],[28,28],[28,28],[28,28],[28,28],[28,28],[28,28],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[24,24],[32,32],[33,33],[34,34],[[]],[[]],[[]],[[]],[[],28],[[],28],[[],28],[[],28],[[],28],[[],28],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[[24,22],23],[[32,22],23],[[33,22],23],[[34,22],23],[[]],[[]],[[]],[[]],[30,[[14,[24,31]]]],[30,[[14,[32,31]]]],[30,[[14,[33,31]]]],[30,[[14,[34,31]]]],[30,[[14,[24,31]]]],[30,[[14,[32,31]]]],[30,[[14,[33,31]]]],[30,[[14,[34,31]]]],[[],[[21,[35]]]],[[],[[21,[35]]]],[[],[[21,[35]]]],[25,17],[[],11],[[],11],[[],11],[[],11],0,[[]],[[]],[[]],[[]],0,0,[[]],[[]],[[]],[[]],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],27],[[],27],[[],27],[[],27],[[24,30],[[14,[31]]]],[[32,30],[[14,[31]]]],[[33,30],[[14,[31]]]],[[34,30],[[14,[31]]]],[[24,30],[[14,[31]]]],[[32,30],[[14,[31]]]],[[33,30],[[14,[31]]]],[[34,30],[[14,[31]]]],0,[[]],[[]],[[]],[[]],0,0,0,[[]],[[]],[11],[11],[11],[[]],[[],11],[[]],[[[37,[36]]],[[14,[15,20]]]],[[38,39],[[14,[15,20]]]],[[],14],[[],14],[[],27],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[40,40],[41,41],[[]],[[]],0,0,[11],[11],[11],[11],[11],[11],0,[[40,40],17],[[41,41],17],[[],17],[[],17],[[],17],[[],17],[[40,22],23],[[41,22],23],[[]],[[]],0,[[],11],[[],11],0,[[]],[[]],[11,[[43,[42]]]],[44,44],[[]],[[]],[[],14],[[],14],[[],14],[[],14],[[],27],[[],27],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[45,45],[44,44],[46,46],[47,47],[48,48],[49,49],[50,50],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[45,45],51],[[44,44],51],[[47,47],51],[[49,49],51],[[],47],[[],49],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[[45,45],17],[[44,44],17],[[47,47],17],[[49,49],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[45,22],23],[[44,22],23],[[46,22],23],[[47,22],23],[[48,22],23],[[49,22],23],[[50,22],23],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[45,52]],[[44,52]],[[47,52]],[[49,52]],[[[54,[53]],44]],[[[54,[53]],45]],[[[54,[53]],45]],[[[54,[53]],44]],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[44],[[]],[[]],[[]],[45,17],[[],46],[[]],[[],48],[[],50],[[],11],[46,11],[48,11],[50,11],[46,21],[48,21],[50,21],[46,21],[48,21],[50,21],[[46,11],21],[[48,11],21],[[50,11],21],[[],55],[[],55],[[],55],[[45,45],[[21,[51]]]],[[44,44],[[21,[51]]]],[[47,47],[[21,[51]]]],[[49,49],[[21,[51]]]],[46],[48],[50],[45,56],[44,56],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[[57,[42]],[59,[58]]]],[[]],[[]],[[[57,[53]]],[[57,[53]]]],[[]],[60],[42],[[[57,[42]],41]],0,[[],[[57,[42]]]],[11],[11],[11],[[[57,[61]],22],23],[[]],[[],11],[[]],0,[[]],[[],14],[[],14],[60],[[],27],[[[57,[42]],45]],[[]],0,[[]],[[]],[[[62,[53]]],[[62,[53]]]],[[]],0,[[],[[62,[42]]]],[11],[11],[11],[[[62,[61]],22],23],[[]],[[],11],[[]],[[60,[63,[7]]],[[62,[42]]]],[[[62,[42]]]],[[[62,[42]]],44],[[[62,[42]]]],0,[[]],[[],14],[[],14],[[],27],[[[62,[42]]]],[[]],0,[[[62,[42]],45,60]],[[[62,[42]],45,42]],0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[8],[[]],[[]],[8],[[]],[[]],[[]],[[]],[8],[[]],[60],[8],[[]],[[]],0,0,0,[[[59,[58]]]],[11],[[]],[11,8],[60],[[]],[41],[44],[[64,44]],[[44,[8,[[8,[8]]]]],[[8,[[8,[8]]]]]],[[64,44]],[[44,[8,[[8,[8]]]]]],[44],[[44,[8,[[8,[8]]]]],[[8,[[8,[8]]]]]],[44],[44],[44],[44,[[8,[[8,[8]]]]]],[44],[[11,11]],[[11,11,11]],[[11,11]],[[11,11,11]],[[11,11]],[[11,11,11]],[11,8],[[63,[21,[11]],11]],[[63,[21,[11]],[21,[11]],[21,[11]],[21,[11]]]],[[]],[11],[[],43],[[],8],[44],[44],[44],[44],[44],[44],[44],[44],[44],[44],[44],[44],[44],[44],[44],[44],[44],[44],[44],[44],[44],[11],[11],[[],43],[[],8],[[],43],[[]],[11],[11],[[11,11,11]],[[11,11]],[[11,11,11]],[[]],[[],43],[[11,11,11,11]],[[11,11,11]],[[11,11,11,11]],[[11,11,11,11]],[11],[[],43],[11],[[],43],[[11,11,11]],[11],[[]],[[]],[45],[[],43],[[],43],[[],43],[[],43],[[],43],[[],43],[[],43],[[],43],[[],43],[[],43],[[],43],[[],43],[[],43],[[],43],[[],43],[11],0,[[[65,[42]],[59,[58]]]],[[]],[[]],[[[65,[53]]],[[65,[53]]]],[[]],[60],[42],[[[65,[42]],41]],[[],[[65,[42]]]],[11],[11],[11],[[[65,[61]],22],23],[[]],[[],11],[[]],0,0,[[]],[[],14],[[],14],[60],[[],27],[[[65,[42]],45]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[66,66],[[]],[[66,66],51],[11],[11],[11],[[66,66],17],[[],17],[[],17],[[66,22],23],[[]],[[66,52]],[[[67,[53]],66]],[[[67,[53]],68]],[[[67,[53]],66]],[[[67,[53]],68]],[[],11],[[]],[66,17],[[66,66],[[21,[51]]]],[66,56],[[]],[[],14],[[],14],[[],27],[[]],0,[[[69,[42]],68]],[[[69,[42]]]],[[[69,[42]],[59,[58]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]],19,19]],[[]],[[]],[[]],[[]],[[]],[19],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[],[[69,[42]]]],[11],[11],[[[69,[42]]]],[[[69,[42]]]],[11],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[]],[[],[[8,[[72,[[71,[42,70]],56]]]]]],[[[69,[42]]],[[8,[[72,[[71,[42,70]],56]]]]]],[[[69,[42]]],[[8,[[59,[[72,[[71,[42,70]],56]],58]]]]]],[[[69,[42]]],[[72,[[71,[42,70]],56]]]],[[[69,[42]]],[[8,[[72,[[71,[42,70]],56]]]]]],[[[69,[42]]]],[[],11],[[[69,[42]]]],[[]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[],14],[[],14],[[],27],[[[69,[42]]]],[[]],[[[69,[42]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[68],[[]],[[[59,[58]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[19,19]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[68,68],[73,73],[74,74],[75,75],[76,76],[77,77],[78,78],[79,79],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[68,68],51],[[74,74],51],[[76,76],51],[[78,78],51],[19],[[]],[[]],[[]],0,[[],74],[[],76],[[],78],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[[]],[[]],[11],[11],[11],[11],[11],[11],[11],[11],[[68,68],17],[[74,74],17],[[76,76],17],[[78,78],17],[[]],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[]],[[]],[[]],[[]],[[68,22],23],[[73,22],23],[[74,22],23],[[75,22],23],[[76,22],23],[[77,22],23],[[78,22],23],[[79,22],23],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[68,52]],[[74,52]],[[76,52]],[[78,52]],[[]],[[]],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[]],[[80,68]],[[80,78]],[[80,76]],[[80,74]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[68],[[]],[[]],[[]],[[]],[[]],[[],73],[[]],[[],75],[[],77],[[],79],[[],11],[73,11],[75,11],[77,11],[79,11],[[]],[[]],[[]],[[]],[[]],[[]],[73,21],[75,21],[77,21],[79,21],[73,21],[75,21],[77,21],[79,21],[[]],[[73,11],21],[[75,11],21],[[77,11],21],[[79,11],21],[[]],[[],55],[[],55],[[],55],[[],55],[[68,68],[[21,[51]]]],[[74,74],[[21,[51]]]],[[76,76],[[21,[51]]]],[[78,78],[[21,[51]]]],[[]],[[]],[[]],[[]],[[]],[[]],[19],[[]],[[]],[19],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[19],[73],[75],[77],[79],[[]],[[]],[[]],[[]],[68,56],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[]],[[]],[81,81],[[]],[19,81],[[],81],[11],[11],[12,[[14,[81]]]],[11],[81,19],[[81,81],17],[[],17],[[],17],[[81,22],23],[[]],0,[[],11],[[]],0,0,0,0,[[81,26],14],0,[[]],[[],14],[[],14],[[],27],[[]],0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[[82,[53]]],[[82,[53]]]],[[]],0,[[],[[82,[83]]]],[11],[11],[12,[[14,[[82,[84]]]]]],[11],[[[82,[61]],22],23],[[]],0,0,0,[[[82,[53]],11]],[[[82,[53]],11]],[[],11],[[]],[82,85],0,0,0,0,[[[82,[86]],26],14],[[]],[[],14],[[],14],[[],27],[[]],0,0,0,0,0,0,0,0,0,[[[88,[42,87]],68]],[[[88,[42,87]]]],[[[88,[42,87]],[59,[58]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]],19,19]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[89,89],[[]],[19],[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],[[11,15,87],[[88,[42,87]]]],[15,89],[[[88,[42,87]]]],[[],89],[11],[11],[11],[11],[[[88,[42,87]]]],[[[88,[42,87]]]],[11],[11],[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],[[]],[[]],[[[88,[42,87]],19],11],[[[88,[42,87]],19],7],[[[88,[42,87]],19],11],0,0,[[[88,[42,87]]]],[[],11],[[],11],[[[88,[42,87]]]],0,[[]],[[]],[[[88,[42,87]]]],0,0,0,0,0,0,[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]],60],[[[88,[42,87]]]],[[[88,[42,87]]],60],[[[88,[42,87]]]],0,0,0,0,[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],0,0,[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],0,0,0,0,0,[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]],3,[21,[6]],4],68],[[[88,[42,87]]]],0,[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],[[]],[[],14],[[],14],[[],14],[[],14],[[],27],[[],27],[[[88,[42,87]],11]],[[[88,[42,87]],11]],[[[88,[42,87]]]],[[]],[[]],[[[88,[42,87]],66,60]],[[[88,[42,87]],66,42]],[[[88,[42,87]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[90,90],[[]],[11],[11],[11],[[90,90],17],[[],17],[[],17],[[90,22],23],[[]],[[],11],[[]],[[]],[[],14],[[],14],[[],27],[[]],0,[[[91,[42]],92]],[[[91,[42]]]],[[[91,[42]],[59,[58]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]],19,19]],[[]],[[]],[[]],[[]],[19],0,[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[],[[91,[42]]]],[11],[11],[[[91,[42]]]],[[[91,[42]]]],[11],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[]],[[[91,[42]]],[[8,[[93,[42]]]]]],[[[91,[42]]],[[8,[[59,[[93,[42]],58]]]]]],[[[91,[42]]],[[93,[42]]]],[[[91,[42]]],[[8,[[93,[42]]]]]],[[[91,[42]]]],[[],11],[[[91,[42]]]],[[]],[[[91,[42]]]],[[[91,[42]]]],0,[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],0,0,[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[],14],[[],14],[[],27],[[[91,[42]]]],[[]],[[[91,[42]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[92],[[]],[[[59,[58]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[19,19]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[92,92],[94,94],[95,95],[96,96],[97,97],[98,98],[99,99],[100,100],[101,101],[102,102],[103,103],[104,104],[105,105],[106,106],[107,107],[108,108],[109,109],[110,110],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[92,92],51],[[95,95],51],[[97,97],51],[[99,99],51],[[101,101],51],[[103,103],51],[[105,105],51],[[107,107],51],[[109,109],51],[19],[[]],[[]],[[]],[[],95],[[],97],[[],99],[[],101],[[],103],[[],105],[[],107],[[],109],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[[]],[[]],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[[92,92],17],[[95,95],17],[[97,97],17],[[99,99],17],[[101,101],17],[[103,103],17],[[105,105],17],[[107,107],17],[[109,109],17],[[]],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[]],[[]],[[]],[[]],[[92,22],23],[[92,22],23],[[94,22],23],[[95,22],23],[[95,22],23],[[96,22],23],[[97,22],23],[[97,22],23],[[98,22],23],[[99,22],23],[[99,22],23],[[100,22],23],[[101,22],23],[[101,22],23],[[102,22],23],[[103,22],23],[[103,22],23],[[104,22],23],[[105,22],23],[[105,22],23],[[106,22],23],[[107,22],23],[[108,22],23],[[109,22],23],[[109,22],23],[[110,22],23],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[92,52]],[[95,52]],[[97,52]],[[99,52]],[[101,52]],[[103,52]],[[105,52]],[[107,52]],[[109,52]],[[]],[[]],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[]],[[111,92]],[[111,97]],[[111,109]],[[111,95]],[[111,101]],[[111,99]],[[111,107]],[[111,105]],[[111,103]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[92],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],94],[[]],[[],96],[[],98],[[],100],[[],102],[[],104],[[],106],[[],108],[[],110],[[],11],[94,11],[96,11],[98,11],[100,11],[102,11],[104,11],[106,11],[108,11],[110,11],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[94,21],[96,21],[98,21],[100,21],[102,21],[104,21],[106,21],[108,21],[110,21],[94,21],[96,21],[98,21],[100,21],[102,21],[104,21],[106,21],[108,21],[110,21],[[]],[[94,11],21],[[96,11],21],[[98,11],21],[[100,11],21],[[102,11],21],[[104,11],21],[[106,11],21],[[108,11],21],[[110,11],21],[[]],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[92,92],[[21,[51]]]],[[95,95],[[21,[51]]]],[[97,97],[[21,[51]]]],[[99,99],[[21,[51]]]],[[101,101],[[21,[51]]]],[[103,103],[[21,[51]]]],[[105,105],[[21,[51]]]],[[107,107],[[21,[51]]]],[[109,109],[[21,[51]]]],[[]],[[]],[[]],[[]],[[]],[[]],[19],[[]],[19],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[19],[94],[96],[98],[100],[102],[104],[106],[108],[110],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[[112,[53]]],[[112,[53]]]],[[]],0,[[],[[112,[83]]]],[11],[11],[11],[11],[12,[[14,[[112,[84]]]]]],[11],[11],[[[112,[61]],22],23],[[]],[[]],0,0,[[[112,[53]],113]],[[[112,[53]],11]],[[[112,[53]],11]],[[],11],[[],11],[[]],[[]],0,[[[112,[86]],26],14],[[]],[[],14],[[],14],[[],14],[[],14],[[],27],[[],27],[[]],[[]],0,0,0,0,0,0,0,0,[[[114,[42]],92]],[[[114,[42]]]],[[[114,[42]],[59,[58]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]],19,19]],[[]],[[]],[[]],[[]],[19],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[11,15],[[114,[42]]]],[[[114,[42]]]],[11],[11],[[[114,[42]]]],[[[114,[42]]]],[11],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[]],[[[114,[42]],19],11],[[[114,[42]],19],7],[[[114,[42]],19],11],0,[[[114,[42]]]],[[],11],[[[114,[42]]]],0,[[]],[[[114,[42]]]],[[[114,[42]]]],0,0,0,0,[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]],60],[[[114,[42]]]],[[[114,[42]]],60],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],0,0,[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],0,0,0,[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]],92],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[],14],[[],14],[[],27],[[[114,[42]],11]],[[[114,[42]],11]],[[[114,[42]]]],[[]],[[[114,[42]],90,60]],[[[114,[42]],90,42]],[[[114,[42]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[116,[115,53]],117,118]],[[[119,[115,53]],117,118]],0,[117,117],[120,120],[[[122,[[0,[53,121]]]]],[[122,[[0,[53,121]]]]]],[[[124,[[0,[53,123]]]]],[[124,[[0,[53,123]]]]]],[[]],[[]],[[]],[[]],[[[116,[115,53]],125,118],63],[[[119,[115,53]],125,118],63],[[[122,[121]],[122,[121]]],[[122,[121]]]],[[[124,[123]],[124,[123]],123],[[124,[123]]]],0,0,0,[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[[117,117],17],[[[124,[[0,[126,123]]]],[124,[[0,[126,123]]]]],17],[[],17],[[],17],[[],17],[[],17],[[117,22],23],[[120,22],23],[[[122,[[0,[61,121]]]],22],23],[[[124,[[0,[61,123]]]],22],23],[[]],[[]],[70,117],[[]],[[]],[[]],[[]],[[[122,[121]]],127],[[[122,[121]]]],[[117,52]],[[[124,[[0,[128,123]]]],52]],[[[122,[121]],117]],[[[124,[129]],56]],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],120],0,[120,11],0,[[[43,[122]],[43,[124]]],[[116,[115,53]]]],[[[43,[122]],[43,[124]]],[[119,[115,53]]]],[120,21],[120,21],0,0,[[120,11],21],[[],55],[[],130],[[[132,[131]]],133],[[[116,[115,53]],118],63],[[[119,[115,53]],118],63],[120],0,0,[[[122,[121]]]],[[]],[[]],[[]],[[]],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,[[]],[[]],[134,134],[[]],[11],[11],[11],[[134,134],17],[[],17],[[],17],[[134,22],23],[[]],[[134,52]],[[135,45]],[[135,44]],[[135,56]],[[],11],[[]],[[]],[[],14],[[],14],[[],27],[[]],0,0,0,0,[[]],[[]],[136,136],[[]],[11],[11],[11],[[136,136],17],[[],17],[[],17],[[136,22],23],[[]],[[136,52]],[[137,56]],[[137,66]],[[137,68]],[[],11],[[]],[[]],[[],14],[[],14],[[],27],[[]],[[138,[139,[58]],[140,[8]]]],0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[[141,[[0,[53,115]]]]],[[141,[[0,[53,115]]]]]],[[[142,[[0,[53,115]]]]],[[142,[[0,[53,115]]]]]],[[]],[[]],0,[11],[11],[11],[11],0,0,[11],[11],[[],[[144,[[8,[143]]]]]],[[[142,[115]]],[[144,[[8,[[143,[115]]]]]]]],[[]],[[]],[[[142,[115]]],17],[[[142,[115]]]],[11],[[],11],[11,[[142,[115]]]],[[],11],[[]],[[]],[[[142,[115]]],17],0,0,0,[11],[[[142,[115]]],11],[[],11],[[[142,[115]]],11],[43,11],[[[142,[115]],43],11],[[],11],[[[142,[115]]],11],[[]],[43],[[[142,[115]],43]],[[[142,[115]]]],[[[142,[115]],11]],[[131,[146,[145]]]],[[[142,[115]],147,131,[146,[145]]]],[[]],[[]],0,[[],14],[[],14],[[],14],[[],14],[[],27],[[],27],[[]],[[]],0,0,0,[[11,44,62],148],[[11,62],149],[148,11],[[148,43],11],[148,11],[149],[[148,43]],0,0,[[11,68,69],150],[[11,69],151],[150,11],[[150,43],11],[150,11],[151],[[150,43]],0,0,0,0,0,0,0,0,0,0,0,0,[[],[[8,[58]]]],[[]],[[]],[58,58],[[]],[[58,58],51],[11],[11],[11],[[58,58],17],[[],17],[[],17],[[58,22],23],[[]],[19,58],[[58,52]],[[],11],[[]],[58,17],[[58,[63,[152]]],[[21,[11]]]],[58,11],[[58,58],[[21,[51]]]],[58,17],[[]],[58,19],[[],14],[[],14],[[],27],[[]],0,0,0,0,0,0,0,0,[[]],[[]],0,[[[153,[123]]],154],0,[11],[11],0,[11],[[]],[[],[[8,[56]]]],[[[153,[123]]],[[155,[123]]]],[[[153,[123]]],[[21,[[132,[123,[131,[123]]]]]]]],[[[153,[123]]],[[156,[123]]]],[[[153,[123]],154],[[131,[123]]]],[[],11],[[]],[[[153,[123]]],123],0,[[],14],[[],14],[[],27],[[[153,[123]]],[[132,[123,[131,[123]]]]]],[[]],0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],0,[11],[11],[11],[11],[11],[11],[11],[11],[11],0,0,[[]],[[]],[[]],[[[157,[43]],56],21],[[],11],[[],11],[[],11],0,[[]],[[]],[[]],[11,[[159,[158]]]],0,0,0,0,0,0,[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],27],[[],27],[[],27],[[]],[[]],[[]],0,0,0,0,[[]],[[]],[160,160],[[]],[11],[11],[11],[[160,22],23],[[160,22],23],[[]],[[],11],[[]],[[138,[161,[158]],[159,[158]],[63,[[72,[[71,[70]],56]]]],[0,[162,163]]],[[14,[[164,[158]],160]]]],[165],[[]],[[],20],[[],14],[[],14],[[],27],[[]],[[138,[63,[[72,[[71,[70]],56]]]],[164,[158]]],17],0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],0,[[[21,[2]]],166],[[],21],[11],[11],[11],[11],[11],[11],[11],[11],[11],[[]],[[]],[[]],[[[43,[7]]],9],[[166,[43,[7]]],9],[10],[[166,10]],0,0,[[],11],[[],11],[[],11],[[]],[[]],[[]],0,0,0,[166,167],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],27],[[],27],[[],27],[[]],[[]],[[]],0,0,0,0,0,[[]],[[]],[[]],[[]],[168,168],[[[59,[53,[0,[53,169]]]]],[[59,[53,[0,[53,169]]]]]],[[]],[[]],[11],[11],[11],[11],[11],[11],[[168,22],23],[[[59,[61,[0,[61,169]]]],22],23],[[[59,[[0,[170,42]],169]],22],23],[[]],[[]],[[],11],[[],11],[[]],[[]],[[[59,[[0,[53,[171,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],61,174,175]],169]]],[[176,[[0,[53,[171,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],61,174,175]],169]]]],[[168,169,[0,[53,[171,[[0,[53,[171,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],61,174,175]]]],61,174,175]],[63,[[0,[53,[171,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],61,174,175]]]]],[[59,[[0,[53,[171,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],61,174,175]],169]]]],[[[59,[[0,[53,[171,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],61,174,175]],169]]],[[0,[53,[171,[[0,[53,[171,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],61,174,175]]]],61,174,175]]]],[[[0,[53,[171,[[0,[53,[171,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],61,174,175]]]],61,174,175]],169,[8,[[0,[53,[171,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],61,174,175]]]]],[[59,[[0,[53,[171,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],61,174,175]],169]]]],[[169,[8,[[0,[53,[171,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],61,174,175]]]]],[[59,[[0,[53,[171,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],61,174,175]],169]]]],[[]],[[]],[[],20],[[],14],[[],14],[[],14],[[],14],[[],27],[[],27],[[]],[[]],[[[0,[53,[171,[[0,[53,[171,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],61,174,175]]]],61,174,175]],169,[8,[[0,[53,[171,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],61,174,175]]]]],[[59,[[0,[53,[171,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],61,174,175]],169]]]],[[169,[8,[[0,[53,[171,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],61,174,175]]]]],[[59,[[0,[53,[171,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[172,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],[173,[[0,[53,[171,[[0,[53,171,172,173,61,174,175]]]],[172,[[0,[53,171,172,173,61,174,175]]]],[173,[[0,[53,171,172,173,61,174,175]]]],61,174,175]]]],61,174,175]]]],61,174,175]],169]]]],[32,177],[11,20]],"c":[],"p":[[4,"StepFrequency"],[3,"HostProgram"],[3,"VmConfiguration"],[3,"Start"],[3,"Symbol"],[3,"Meta"],[15,"u8"],[3,"Vec"],[3,"Preimage"],[3,"Hint"],[15,"usize"],[8,"Deserializer"],[3,"Page"],[4,"Result"],[3,"State"],[3,"ParsePreimageKeyError"],[15,"bool"],[3,"PreimageKey"],[15,"u32"],[3,"String"],[4,"Option"],[3,"Formatter"],[6,"Result"],[3,"MipsVmConfigurationArgs"],[15,"str"],[8,"Serializer"],[3,"TypeId"],[3,"Command"],[4,"Commands"],[3,"ArgMatches"],[6,"Error"],[3,"RunArgs"],[3,"GenStateJsonArgs"],[4,"Cannon"],[3,"Id"],[8,"EndianParse"],[3,"ElfBytes"],[4,"Architecture"],[3,"Path"],[4,"Error"],[4,"Constraint"],[8,"Field"],[15,"array"],[4,"Steps"],[4,"ColumnAlias"],[3,"StepsIter"],[4,"Sponges"],[3,"SpongesIter"],[4,"Absorbs"],[3,"AbsorbsIter"],[4,"Ordering"],[8,"Hasher"],[8,"Clone"],[6,"KeccakWitness"],[3,"IterBridge"],[4,"Column"],[3,"Env"],[4,"LookupTableIDs"],[3,"RAMLookup"],[15,"u64"],[8,"Debug"],[3,"KeccakEnv"],[15,"slice"],[8,"Interpreter"],[3,"Env"],[4,"ColumnAlias"],[6,"MIPSWitness"],[4,"Instruction"],[3,"Env"],[4,"BerkeleyChallengeTerm"],[6,"ConstantExpr"],[6,"Expr"],[3,"InstructionIter"],[4,"RTypeInstruction"],[3,"RTypeInstructionIter"],[4,"JTypeInstruction"],[3,"JTypeInstructionIter"],[4,"ITypeInstruction"],[3,"ITypeInstructionIter"],[8,"InterpreterEnv"],[3,"InstructionParts"],[3,"Registers"],[8,"Default"],[8,"Deserialize"],[8,"Iterator"],[8,"Serialize"],[8,"PreImageOracleT"],[3,"Env"],[3,"SyscallEnv"],[4,"Column"],[3,"Env"],[4,"Instruction"],[6,"E"],[3,"InstructionIter"],[4,"RInstruction"],[3,"RInstructionIter"],[4,"IInstruction"],[3,"IInstructionIter"],[4,"SInstruction"],[3,"SInstructionIter"],[4,"SBInstruction"],[3,"SBInstructionIter"],[4,"UInstruction"],[3,"UInstructionIter"],[4,"UJInstruction"],[3,"UJInstructionIter"],[4,"SyscallInstruction"],[3,"SyscallInstructionIter"],[4,"MInstruction"],[3,"MInstructionIter"],[8,"InterpreterEnv"],[3,"Registers"],[4,"RegisterAlias"],[3,"Env"],[8,"FoldingConfig"],[3,"DecomposedFoldingEnvironment"],[4,"Challenge"],[4,"Side"],[3,"FoldingEnvironment"],[3,"ChallengeIter"],[8,"CommitmentCurve"],[3,"FoldingInstance"],[8,"FftField"],[3,"FoldingWitness"],[4,"CurrOrNext"],[8,"PartialEq"],[4,"Alphas"],[8,"Hash"],[6,"Fp"],[3,"RelaxedInstance"],[3,"Radix2EvaluationDomain"],[3,"Evaluations"],[3,"RelaxedWitness"],[3,"KeccakConfig"],[6,"KeccakFoldingWitness"],[3,"DecomposableMIPSFoldingConfig"],[6,"MIPSFoldingWitness"],[3,"EvaluationDomains"],[3,"ProofInputs"],[3,"Witness"],[3,"Trace"],[3,"DecomposedTrace"],[4,"FoldingCompatibleExpr"],[3,"BTreeMap"],[6,"Pairing"],[3,"PairingSRS"],[8,"FqSponge"],[6,"KeccakTrace"],[6,"DecomposedKeccakTrace"],[6,"MIPSTrace"],[6,"DecomposedMIPSTrace"],[8,"PrimeField"],[3,"ColumnEnvironment"],[4,"Domain"],[3,"BerkeleyChallenges"],[3,"Constants"],[3,"WitnessColumns"],[8,"KimchiCurve"],[3,"ProofInputs"],[4,"ProverError"],[3,"SRS"],[8,"RngCore"],[8,"CryptoRng"],[3,"Proof"],[3,"Demand"],[3,"PreImageOracle"],[3,"Child"],[4,"LookupMode"],[8,"LookupTableID"],[8,"Display"],[8,"Add"],[8,"Sub"],[8,"Mul"],[8,"One"],[8,"Zero"],[3,"Logup"],[3,"ExitCode"],[8,"BoolHelpers"],[8,"LogupHelpers"],[8,"ArithHelpers"],[8,"KeccakInterpreter"],[8,"Tracer"],[8,"Foldable"],[8,"DecomposableTracer"],[3,"ReadWrite"],[3,"RW"]]},\
+"o1vm":{"doc":"","t":"CCAAAAAAAAAAANNNRRDDDNRRRRRDDDDNDDEDDMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMLLLLLLLLLLLLMLLLLLLLLLLLLMMMMMMMMMMMMMMMMLLMMMMMMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNELLLLALLLLLLLLLLLLLLLLLLLLLENDDNDNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLMMLLLLLLLLLLLLLLLLLLLLLLLLMLLLLENNLLLLLLLLFFLLLLAAANNNNCNNNENENNNNNNNCNCNNNNLLLLLLLLAALLLLLLALLLLLLLLLLALLALLFFLLLLLLLLLLANEDNNNENNNGNNRRRNNNNNNNNNNNNNNNNNNNEDNNEDNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDLLLLLLLLMLLLLLLLLMLLLLLLLDLLLLMLLLLLLLLLLLLMLLLLLLMLLIIILLLLLLLLLLLLLLLLKLLLIIQKLLLKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLMMLLLLLLLMCCCCAAAAAENGRRRRRNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNRRRRRRRNEDEDINEDNNNNNNNNNNNNNNNNNNNNNNNNQNEDRRRRRRRNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQNNLLLKKKKKKKLLLKLLLLLLLLLLLLLLLLKKKLLLLLLLLLLLLLLLLLLLLKKKKALLLLLLLLLLLLLLLLLLLKKLLLLLLLLLLLLKLLLLLLLLKKKKLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLKFFFFLLLLLLLLLLLLLKLLLLLLLLLLLLLKKKLLLLLLLLKLLLLKLLLLLLLLKKLLKKLLLLLLKKKKKLLKKKLLLLLKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLKDLLLLLLLLLLLLLLLLMLLMMMMLMLLLLLRRRRRRRRRDLLLLMLLLLLLLMMMLLLLLMMMMLLLLLLDRRRRRRRDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLLMLLLMMMMMMLLLLLLLMMMMLLLLMMLLLLLLMMMMMLLLLLLMLLLLLLLLLLLLLLLLLLRRRRRAAAAAEGNNNLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLMMLLLLLLLLLLLLLLNNNNNNNNNNNNNNNEDNEDINNNNNNNNEDNNNNNNNQEDNNNEDNEDNNNNNNNNNNNNNNNEDNNEDEDNNQNNLLLKKKKKKKLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKKLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLKFFFFFFFFFLLLLLLLLLLLLLLLLLLLLLLLLLLLLKKLLLLLLLLLLLLLLLLLLLLLLLKKKKKKKKLLLLLLLLLLLLLLLLLLKLLLLLLLLLKLLLLLLLLLLLLLLLLLLKKLLKKLLLLLKKKLLKKKLLLLLLLLLLKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLKNNNNNNNNNNNNRNRRRNEDNNNNNNNNNNNNNNNNNNNNNNLLLLLLMLLLLLLLLLLLMMLLLLLLLMLLLLLLLLLLDRRRRRRRLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLMLLLMMMMLLLLLLLLLLLLLLLLMMLLLMMMLLLLLLLLLLLLLLLLLLLGGGGGGGAAANEDDDDDNNMMLLLLLLLLLLLLLLMLLLLLLLLLLLLMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLLLLLLALALLLLMMLLLLLLLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMDGGGLLLLLLLLLLLLLLLLLLLLLLLDGGGLLLLLLLLLLLLLLLLLLLLLLLFIDIQDILLLLLLLLMLLLLMMLLKLLLLLKLLLLLLAMAKLKLKLKLKKLLLKLLLMLLLLLLLLMGGLLLLLLLGGLLLLLLLNNNENNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLRRRAAAADLLMLMLLMLLFLLLLLLLMLLLLLMDDDLLLLLLMLLLLLLLLLMMLLLLLLLMLLLLMMMMMMLLLLLLLLLLLLMMNELLLLLLLLLLLLFLLLLLLLFDDIDDLLLLLLLLMLFLLLLLLLLLLLLLLLLKLLKLLMMLLLLLLLLMMMLLLLLLLLLLLLLLLLLMEDNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFF","n":["RAMLookup","RAMLookupMode","cannon","cli","elf_loader","interpreters","legacy","lookups","pickles","preimage_oracle","ramlookup","test_preimage_read","utils","Always","Every","Exactly","HINT_CLIENT_READ_FD","HINT_CLIENT_WRITE_FD","Hint","HostProgram","Meta","Never","PAGE_ADDRESS_MASK","PAGE_ADDRESS_SIZE","PAGE_SIZE","PREIMAGE_CLIENT_READ_FD","PREIMAGE_CLIENT_WRITE_FD","Page","ParsePreimageKeyError","Preimage","PreimageKey","Range","Start","State","StepFrequency","Symbol","VmConfiguration","arguments","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","create","create","create","data","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","equivalent","equivalent","exit","exited","find_address_symbol","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from_str","from_str","get","get","heap","hi","host","index","info_at","init","init","init","init","init","init","init","init","init","init","init","init","input_state_file","into","into","into","into","into","into","into","into","into","into","into","into","last_hint","lo","memory","metadata_file","name","name","next_pc","output_state_file","pc","pprof_cpu","preimage","preimage_key","preimage_offset","proof_at","proof_fmt","registers","serialize","serialize","size","snapshot_fmt","snapshot_state_at","start","step","step","stop_at","symbols","time","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Cannon","Commands","augment_subcommands","augment_subcommands_for_update","borrow","borrow_mut","cannon","clone","clone_into","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","has_subcommand","init","into","to_owned","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","Cannon","GenStateJson","GenStateJsonArgs","MipsVmConfigurationArgs","Run","RunArgs","TestPreimageRead","augment_args","augment_args","augment_args","augment_args_for_update","augment_args_for_update","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","command","command","command","command_for_update","command_for_update","command_for_update","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","fmt","fmt","fmt","fmt","from","from","from","from","from_arg_matches","from_arg_matches","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","from_arg_matches_mut","from_arg_matches_mut","group_id","group_id","group_id","has_subcommand","init","init","init","init","input","into","into","into","into","output","preimage_db_dir","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","update_from_arg_matches_mut","update_from_arg_matches_mut","vm_cfg","vzip","vzip","vzip","vzip","Architecture","Mips","RiscV32","borrow","borrow_mut","deref","deref_mut","drop","from","init","into","make_state","parse_elf","try_from","try_into","type_id","vzip","keccak","mips","riscv32im","AbsorbRootZero","AbsorbShifts","AbsorbXor","AbsorbZeroPad","Absorbs","BooleanityPadding","ChiShiftsB","ChiShiftsSum","Constraint","Constraint","Error","IotaStateG","Lookup","PadAtEnd","PaddingSuffix","PiRhoRotatedE","PiRhoShiftsE","PiRhoWordE","Sponges","SqueezeShifts","Steps","ThetaQuotientC","ThetaRotatedC","ThetaShiftsC","ThetaWordC","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","column","constraints","deref","deref","deref_mut","deref_mut","drop","drop","environment","eq","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","helpers","init","init","interpreter","into","into","pad_blocks","standardize","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","witness","Absorb","Absorbs","AbsorbsIter","BlockIndex","ChiShiftsB","ChiShiftsSum","ColumnAlias","First","HashIndex","Input","KeccakWitness","Last","Middle","N_ZKVM_KECCAK_COLS","N_ZKVM_KECCAK_REL_COLS","N_ZKVM_KECCAK_SEL_COLS","Only","Output","PadBytesFlags","PadLength","PadSuffix","PiRhoDenseE","PiRhoDenseRotE","PiRhoExpandRotE","PiRhoQuotientE","PiRhoRemainderE","PiRhoShiftsE","Round","RoundConstants","RoundNumber","Sponge","SpongeBytes","SpongeNewState","SpongeShifts","SpongeZeros","Sponges","SpongesIter","Squeeze","StepIndex","Steps","StepsIter","ThetaDenseC","ThetaDenseRotC","ThetaExpandRotC","ThetaQuotientC","ThetaRemainderC","ThetaShiftsC","TwoToPad","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","default","default","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","hash","hash","hash","hash","index","index","index_mut","index_mut","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into_iter","into_iter","into_iter","into_iter","is_witness","iter","iter","iter","iter","len","len","len","len","next","next","next","next_back","next_back","next_back","nth","nth","nth","par_bridge","par_bridge","par_bridge","partial_cmp","partial_cmp","partial_cmp","partial_cmp","size_hint","size_hint","size_hint","to_column","to_column","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Env","add_lookup","borrow","borrow_mut","clone","clone_into","constant","constant_field","constrain","constraints","default","deref","deref_mut","drop","fmt","from","init","into","lookups","to_owned","try_from","try_into","two_pow","type_id","variable","vzip","KeccakEnv","borrow","borrow_mut","clone","clone_into","constraints_env","default","deref","deref_mut","drop","fmt","from","init","into","new","null_state","selector","step","step","to_owned","try_from","try_into","type_id","update_step","vzip","witness_env","write_column","write_column_field","ArithHelpers","BoolHelpers","LogupHelpers","either_zero","is_boolean","is_nonzero","is_one","is_zero","lookup_byte","lookup_pad","lookup_rc16","lookup_reset","lookup_round_constants","lookup_sparse","not","one","or","read_syscall","two","two_pow","write_syscall","xor","zero","Interpreter","KeccakInterpreter","Variable","add_lookup","block_in_padding","block_index","bytes_block","constant","constant_field","constrain","constrain_absorb","constrain_booleanity","constrain_chi","constrain_flags","constrain_iota","constrain_padding","constrain_pirho","constrain_round","constrain_sponge","constrain_squeeze","constrain_theta","constraints","dense_c","dense_e","dense_rot_c","dense_rot_e","expand_rot_c","expand_rot_e","flags_block","from_quarters","from_shifts","hash_index","in_padding","input","input_of_step","is_absorb","is_pad","is_root","is_round","is_sponge","is_squeeze","lookup_steps","lookup_syscall_hash","lookup_syscall_preimage","lookups","lookups_round_chi","lookups_round_iota","lookups_round_pirho","lookups_round_theta","lookups_sponge","mode_absorb","mode_pad","mode_root","mode_rootpad","mode_round","mode_squeeze","new_state","old_state","output","output_of_step","pad_bytes_flags","pad_length","pad_suffix","quotient_c","quotient_e","remainder_c","remainder_e","round","round_constants","shifts_b","shifts_c","shifts_e","shifts_sum","sponge_byte","sponge_bytes","sponge_shifts","sponge_zeros","state_a","state_g","step_index","two_to_pad","variable","vec_dense_c","vec_dense_e","vec_dense_rot_c","vec_dense_rot_e","vec_expand_rot_c","vec_expand_rot_e","vec_quotient_c","vec_quotient_e","vec_remainder_c","vec_remainder_e","vec_shifts_b","vec_shifts_c","vec_shifts_e","vec_shifts_sum","vec_sponge_shifts","xor_state","Env","add_lookup","borrow","borrow_mut","clone","clone_into","constant","constant_field","constrain","default","deref","deref_mut","drop","fmt","from","init","into","multiplicities","tables","to_owned","try_from","try_into","two_pow","type_id","variable","vzip","witness","ITypeInstruction","Instruction","JTypeInstruction","RTypeInstruction","column","constraints","interpreter","registers","witness","ColumnAlias","InstructionCounter","MIPSWitness","N_MIPS_COLS","N_MIPS_REL_COLS","N_MIPS_SEL_COLS","SCRATCH_SIZE","SCRATCH_SIZE_INVERSE","ScratchState","ScratchStateInverse","Selector","borrow","borrow_mut","clone","clone_into","cmp","deref","deref_mut","drop","eq","equivalent","equivalent","fmt","from","hash","index","index","index_mut","index_mut","init","into","is_witness","partial_cmp","to_column","to_owned","try_from","try_into","type_id","vzip","Env","activate_selector","add_constraint","add_lookup","add_witness","alloc_scratch","alloc_scratch_inverse","and_witness","bitmask","borrow","borrow_mut","check_boolean","check_equal","check_is_zero","constant","copy","count_leading_ones","count_leading_zeros","default","deref","deref_mut","divmod","divmod_signed","drop","equal","fetch_memory","fetch_memory_access","fetch_register","fetch_register_access","from","get_all_constraints","get_constraints","get_lookups","get_selector","get_selector_constraints","increase_instruction_counter","init","instruction_counter","into","is_zero","mul_hi_lo","mul_hi_lo_signed","mul_signed_witness","nor_witness","or_witness","push_memory","push_memory_access","push_register_access_if","push_register_if","report_exit","request_hint_write","request_preimage_write","reset","set_halted","shift_left","shift_right","shift_right_arithmetic","sub_witness","test_less_than","test_less_than_signed","test_zero","try_from","try_into","type_id","variable","vzip","xor_witness","Add","AddImmediate","AddImmediateUnsigned","AddUnsigned","And","AndImmediate","BranchEq","BranchGeqZero","BranchGtZero","BranchLeqZero","BranchLtZero","BranchNeq","CountLeadingOnes","CountLeadingZeros","Div","DivUnsigned","FD_HINT_READ","FD_HINT_WRITE","FD_PREIMAGE_READ","FD_PREIMAGE_WRITE","FD_STDERR","FD_STDIN","FD_STDOUT","IType","ITypeInstruction","ITypeInstructionIter","Instruction","InstructionIter","InterpreterEnv","JType","JTypeInstruction","JTypeInstructionIter","Jump","JumpAndLink","JumpAndLinkRegister","JumpRegister","Load16","Load16Unsigned","Load32","Load8","Load8Unsigned","LoadUpperImmediate","LoadWordLeft","LoadWordRight","MoveFromHi","MoveFromLo","MoveNonZero","MoveToHi","MoveToLo","MoveZero","Multiply","MultiplyToRegister","MultiplyUnsigned","Nor","Or","OrImmediate","Position","RType","RTypeInstruction","RTypeInstructionIter","SYSCALL_BRK","SYSCALL_CLONE","SYSCALL_EXIT_GROUP","SYSCALL_FCNTL","SYSCALL_MMAP","SYSCALL_READ","SYSCALL_WRITE","SetLessThan","SetLessThanImmediate","SetLessThanImmediateUnsigned","SetLessThanUnsigned","ShiftLeftLogical","ShiftLeftLogicalVariable","ShiftRightArithmetic","ShiftRightArithmeticVariable","ShiftRightLogical","ShiftRightLogicalVariable","Store16","Store32","Store32Conditional","Store8","StoreWordLeft","StoreWordRight","Sub","SubUnsigned","Sync","SyscallExitGroup","SyscallFcntl","SyscallMmap","SyscallOther","SyscallReadHint","SyscallReadOther","SyscallReadPreimage","SyscallWriteHint","SyscallWriteOther","SyscallWritePreimage","Variable","Xor","XorImmediate","access_memory","access_register","access_register_if","activate_selector","add_constraint","add_lookup","add_witness","alloc_scratch","alloc_scratch_inverse","and_witness","assert_boolean","assert_equal","assert_is_zero","bitmask","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","check_boolean","check_equal","check_is_zero","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","constant","copy","count_leading_ones","count_leading_zeros","debugging","default","default","default","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","divmod","divmod_signed","drop","drop","drop","drop","drop","drop","drop","drop","eq","eq","eq","eq","equal","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fetch_memory","fetch_memory_access","fetch_register","fetch_register_access","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","get_instruction_pointer","get_next_instruction_pointer","hash","hash","hash","hash","increase_heap_pointer","increase_instruction_counter","init","init","init","init","init","init","init","init","instruction_counter","interpret_instruction","interpret_itype","interpret_jtype","interpret_rtype","into","into","into","into","into","into","into","into","into_iter","into_iter","into_iter","into_iter","into_iter","is_zero","iter","iter","iter","iter","iter","len","len","len","len","len","lookup_16bits","lookup_2bits","lookup_8bits","mul_hi_lo","mul_hi_lo_signed","mul_signed_witness","next","next","next","next","next_back","next_back","next_back","next_back","nor_witness","nth","nth","nth","nth","or_witness","par_bridge","par_bridge","par_bridge","par_bridge","partial_cmp","partial_cmp","partial_cmp","partial_cmp","push_memory","push_memory_access","push_register","push_register_access","push_register_access_if","push_register_if","range_check16","range_check2","range_check64","range_check8","read_memory","read_register","report_exit","request_hint_write","request_preimage_write","reset","set_halted","set_instruction_pointer","set_next_instruction_pointer","shift_left","shift_right","shift_right_arithmetic","sign_extend","size_hint","size_hint","size_hint","size_hint","sub_witness","test_less_than","test_less_than_signed","test_zero","to_column","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","variable","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","write_memory","write_register","write_register_if","xor_witness","InstructionParts","borrow","borrow_mut","clone","clone_into","decode","default","deref","deref_mut","deserialize","drop","encode","eq","equivalent","equivalent","fmt","from","funct","init","into","op_code","rd","rs","rt","serialize","shamt","to_owned","try_from","try_into","type_id","vzip","NUM_REGISTERS","REGISTER_CURRENT_IP","REGISTER_HEAP_POINTER","REGISTER_HI","REGISTER_LO","REGISTER_NEXT_IP","REGISTER_PREIMAGE_KEY_END","REGISTER_PREIMAGE_KEY_START","REGISTER_PREIMAGE_OFFSET","Registers","borrow","borrow_mut","clone","clone_into","current_instruction_pointer","default","deref","deref_mut","deserialize","drop","fmt","from","general_purpose","heap_pointer","hi","index","index_mut","init","into","iter","lo","next_instruction_pointer","preimage_key","preimage_offset","serialize","to_owned","try_from","try_into","type_id","vzip","Env","MAX_ACC","MAX_NB_MEM_ACC","MAX_NB_REG_ACC","NUM_DECODING_LOOKUP_TERMS","NUM_GLOBAL_LOOKUP_TERMS","NUM_INSTRUCTION_LOOKUP_TERMS","NUM_LOOKUP_TERMS","SyscallEnv","activate_selector","add_constraint","add_lookup","add_witness","alloc_scratch","alloc_scratch_inverse","and_witness","bitmask","borrow","borrow","borrow_mut","borrow_mut","check_boolean","check_equal","check_is_zero","clone","clone_into","constant","copy","count_leading_ones","count_leading_zeros","create","create","decode_instruction","default","deref","deref","deref_mut","deref_mut","divmod","divmod_signed","drop","drop","equal","fetch_memory","fetch_memory_access","fetch_register","fetch_register_access","from","from","get_memory_access_page_index","get_memory_direct","get_memory_page_index","halt","hash_counter","increase_instruction_counter","init","init","instruction_counter","instruction_counter","into","into","is_zero","keccak_env","last_hint","last_memory_accesses","last_memory_write_index_accesses","memory","memory_write_index","mul_hi_lo","mul_hi_lo_signed","mul_signed_witness","next_instruction_counter","nor_witness","normalized_instruction_counter","or_witness","preimage","preimage_bytes_read","preimage_key","preimage_oracle","push_memory","push_memory_access","push_register_access_if","push_register_if","registers","registers_write_index","report_exit","request_hint_write","request_preimage_write","reset","reset_scratch_state","reset_scratch_state_inverse","scratch_state","scratch_state_idx","scratch_state_idx_inverse","scratch_state_inverse","selector","set_halted","shift_left","shift_right","shift_right_arithmetic","step","sub_witness","syscall_env","test_less_than","test_less_than_signed","test_zero","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","update_last_memory_access","update_last_memory_write_index_access","variable","vzip","vzip","write_column","write_field_column","xor_witness","INSTRUCTION_SET_SIZE","PAGE_ADDRESS_MASK","PAGE_ADDRESS_SIZE","PAGE_SIZE","SCRATCH_SIZE","column","constraints","interpreter","registers","witness","Column","E","InstructionCounter","ScratchState","Selector","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","eq","equivalent","equivalent","fmt","from","init","into","to_owned","try_from","try_into","type_id","vzip","Env","activate_selector","add_constraint","add_lookup","add_witness","alloc_scratch","and_witness","assert_boolean","bitmask","borrow","borrow_mut","check_equal","check_is_zero","constant","constraints","copy","count_leading_ones","count_leading_zeros","default","deref","deref_mut","div","div_signed","drop","equal","fetch_memory","fetch_memory_access","fetch_register","fetch_register_access","from","get_constraints","get_lookups","get_selector","get_selector_constraints","increase_instruction_counter","init","instruction_counter","into","inverse_or_zero","is_zero","lookups","mod_signed","mod_unsigned","mul_hi","mul_hi_signed","mul_hi_signed_unsigned","mul_lo","mul_lo_signed","mul_signed_witness","nor_witness","or_witness","push_memory","push_memory_access","push_register_access_if","push_register_if","report_exit","reset","scratch_state_idx","selector","set_halted","shift_left","shift_right","shift_right_arithmetic","sub_witness","test_less_than","test_less_than_signed","test_zero","try_from","try_into","type_id","variable","vzip","xor_witness","Add","AddImmediate","AddUpperImmediate","And","AndImmediate","BranchEq","BranchGreaterThanEqual","BranchGreaterThanEqualUnsigned","BranchLessThan","BranchLessThanUnsigned","BranchNeq","Div","Divu","Fence","FenceI","IInstruction","IInstructionIter","IType","Instruction","InstructionIter","InterpreterEnv","JumpAndLink","JumpAndLinkRegister","LoadByte","LoadByteUnsigned","LoadHalf","LoadHalfUnsigned","LoadUpperImmediate","LoadWord","MInstruction","MInstructionIter","MType","Mul","Mulh","Mulhsu","Mulhu","Or","OrImmediate","Position","RInstruction","RInstructionIter","RType","Rem","Remu","SBInstruction","SBInstructionIter","SBType","SInstruction","SInstructionIter","SType","SetLessThan","SetLessThanImmediate","SetLessThanImmediateUnsigned","SetLessThanUnsigned","ShiftLeftLogical","ShiftLeftLogicalImmediate","ShiftRightArithmetic","ShiftRightArithmeticImmediate","ShiftRightLogical","ShiftRightLogicalImmediate","StoreByte","StoreHalf","StoreWord","Sub","SyscallInstruction","SyscallInstructionIter","SyscallSuccess","SyscallType","UInstruction","UInstructionIter","UJInstruction","UJInstructionIter","UJType","UType","Variable","Xor","XorImmediate","access_memory","access_register","access_register_if","activate_selector","add_constraint","add_lookup","add_witness","alloc_scratch","and_witness","assert_boolean","assert_equal","assert_is_zero","bitmask","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","check_equal","check_is_zero","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","constant","copy","count_leading_ones","count_leading_zeros","default","default","default","default","default","default","default","default","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","div","div_signed","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","eq","eq","eq","eq","equal","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fetch_memory","fetch_memory_access","fetch_register","fetch_register_access","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_instruction_pointer","get_next_instruction_pointer","hash","hash","hash","hash","hash","hash","hash","hash","hash","increase_heap_pointer","increase_instruction_counter","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","instruction_counter","interpret_instruction","interpret_itype","interpret_mtype","interpret_rtype","interpret_sbtype","interpret_stype","interpret_syscall","interpret_ujtype","interpret_utype","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_iter","into_iter","into_iter","into_iter","into_iter","into_iter","into_iter","into_iter","into_iter","into_iter","inverse_or_zero","is_zero","iter","iter","iter","iter","iter","iter","iter","iter","iter","iter","len","len","len","len","len","len","len","len","len","len","lookup_16bits","lookup_2bits","lookup_8bits","mod_signed","mod_unsigned","mul_hi","mul_hi_signed","mul_hi_signed_unsigned","mul_lo","mul_lo_signed","mul_signed_witness","next","next","next","next","next","next","next","next","next","next_back","next_back","next_back","next_back","next_back","next_back","next_back","next_back","next_back","nor_witness","nth","nth","nth","nth","nth","nth","nth","nth","nth","or_witness","par_bridge","par_bridge","par_bridge","par_bridge","par_bridge","par_bridge","par_bridge","par_bridge","par_bridge","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","push_memory","push_memory_access","push_register","push_register_access","push_register_access_if","push_register_if","range_check16","range_check64","range_check8","read_memory","read_register","report_exit","reset","set_halted","set_instruction_pointer","set_next_instruction_pointer","shift_left","shift_right","shift_right_arithmetic","sign_extend","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","sub_witness","test_less_than","test_less_than_signed","test_zero","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","variable","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","write_memory","write_register","write_register_if","xor_witness","A0","A1","A2","A3","A4","A5","A6","A7","Fp","Gp","HeapPointer","Ip","N_GP_REGISTERS","NextIp","REGISTER_CURRENT_IP","REGISTER_HEAP_POINTER","REGISTER_NEXT_IP","Ra","RegisterAlias","Registers","S0","S1","S10","S11","S2","S3","S4","S5","S6","S7","S8","S9","Sp","T0","T1","T2","T3","T4","T5","T6","Tp","Zero","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","current_instruction_pointer","default","deref","deref","deref_mut","deref_mut","deserialize","drop","drop","fmt","from","from","general_purpose","heap_pointer","index","index","index_mut","init","init","into","into","next_instruction_pointer","serialize","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Env","MAX_ACC","MAX_NB_MEM_ACC","MAX_NB_REG_ACC","NUM_DECODING_LOOKUP_TERMS","NUM_GLOBAL_LOOKUP_TERMS","NUM_INSTRUCTION_LOOKUP_TERMS","NUM_LOOKUP_TERMS","activate_selector","add_constraint","add_lookup","add_witness","alloc_scratch","and_witness","assert_boolean","bitmask","borrow","borrow_mut","check_equal","check_is_zero","constant","copy","count_leading_ones","count_leading_zeros","create","decode_instruction","deref","deref_mut","div","div_signed","drop","equal","fetch_memory","fetch_memory_access","fetch_register","fetch_register_access","from","get_memory_access_page_index","get_memory_direct","get_memory_page_index","halt","increase_instruction_counter","init","instruction_counter","instruction_counter","into","inverse_or_zero","is_zero","last_memory_accesses","last_memory_write_index_accesses","memory","memory_write_index","mod_signed","mod_unsigned","mul_hi","mul_hi_signed","mul_hi_signed_unsigned","mul_lo","mul_lo_signed","mul_signed_witness","next_instruction_counter","nor_witness","normalized_instruction_counter","or_witness","push_memory","push_memory_access","push_register_access_if","push_register_if","registers","registers_write_index","report_exit","reset","reset_scratch_state","scratch_state","scratch_state_idx","selector","set_halted","shift_left","shift_right","shift_right_arithmetic","step","sub_witness","test_less_than","test_less_than_signed","test_zero","try_from","try_into","type_id","update_last_memory_access","update_last_memory_write_index_access","variable","vzip","write_column","write_field_column","xor_witness","BaseSponge","Curve","Fp","OpeningProof","Pairing","ScalarSponge","SpongeParams","folding","proof","trace","Beta","Challenge","ChallengeIter","DecomposedFoldingEnvironment","FoldingEnvironment","FoldingInstance","FoldingWitness","Gamma","JointCombiner","alphas","blinder","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","challenge","challenge","challenges","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","col","col","combine","combine","commitments","curr_witnesses","curr_witnesses","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","eq","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","get_alphas","get_blinder","hash","hash","index","index","init","init","init","init","init","init","instances","instances","into","into","into","into","into","into","into_iter","iter","keccak","len","mips","new","new","next","next_back","next_witnesses","next_witnesses","nth","par_bridge","relax","relax","selector","selector","size_hint","structure","structure","to_absorb","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","witness","KeccakConfig","KeccakFoldingEnvironment","KeccakFoldingInstance","KeccakFoldingWitness","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","eq","equivalent","equivalent","fmt","from","hash","index","index","index","init","into","to_owned","try_from","try_into","type_id","vzip","DecomposableMIPSFoldingConfig","DecomposableMIPSFoldingEnvironment","MIPSFoldingInstance","MIPSFoldingWitness","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","eq","equivalent","equivalent","fmt","from","hash","index","index","index","init","into","to_owned","try_from","try_into","type_id","vzip","fold","DecomposableTracer","DecomposedTrace","Foldable","Selector","Trace","Tracer","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","constraints","deref","deref","deref_mut","deref_mut","domain_size","domain_size","drop","drop","folding_constraints","folding_constraints","from","from","in_circuit","index","init","init","init","init","into","into","is_full","keccak","lookups","mips","new","number_of_rows","pad_dummy","pad_dummy","pad_with_row","pad_with_row","pad_with_zeros","pad_with_zeros","pad_witnesses","push_row","push_row","reset","set_selector_column","to_folding_pair","to_folding_pair","to_owned","to_owned","trace","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","witness","DecomposedKeccakTrace","KeccakTrace","init","new","pad_dummy","pad_with_row","pad_with_zeros","pad_witnesses","push_row","DecomposedMIPSTrace","MIPSTrace","init","new","pad_dummy","pad_with_row","pad_with_zeros","pad_witnesses","push_row","AtMost4Lookup","ByteLookup","KeccakStepLookup","LookupTableIDs","MemoryLookup","PadLookup","RangeCheck16Lookup","RegisterLookup","ResetLookup","RoundConstantsLookup","SparseLookup","SyscallLookup","all_variants","borrow","borrow_mut","clone","clone_into","cmp","deref","deref_mut","drop","eq","equivalent","equivalent","fmt","from","from_u32","hash","init","into","is_fixed","ix_by_value","length","partial_cmp","runtime_create_column","to_owned","to_u32","try_from","try_into","type_id","vzip","DEGREE_QUOTIENT_POLYNOMIAL","MAXIMUM_DEGREE_CONSTRAINTS","TOTAL_NUMBER_OF_CONSTRAINTS","column_env","proof","prover","verifier","ColumnEnvironment","borrow","borrow_mut","challenges","column_domain","constants","deref","deref_mut","domain","drop","from","get_all_columns","get_challenges","get_column","get_constants","get_domain","init","into","l0_1","l0_1","try_from","try_into","type_id","vanishes_on_zero_knowledge_and_previous_rows","vzip","witness","Proof","ProofInputs","WitnessColumns","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","commitments","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","error","evaluations","from","from","from","get_column","init","init","init","instruction_counter","into","into","into","new","opening_proof","quotient_commitment","quotient_evaluations","scratch","scratch_inverse","selector","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","zeta_evaluations","zeta_omega_evaluations","ConstraintDegreeTooHigh","ProverError","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","fmt","fmt","from","init","into","prove","provide","to_owned","to_string","try_from","try_into","type_id","vzip","verify","NullPreImageOracle","PreImageOracle","PreImageOracleT","RW","ReadWrite","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cmd","create","create_bidirectional_channel","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","from","from","from","from","get_preimage","get_preimage","get_preimage","hint","hint","hint","hint_client","hint_server","init","init","init","init","into","into","into","into","oracle_client","oracle_server","reader","start","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","writer","LookupMode","RAMLookup","Read","Write","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","fmt","from","from","init","init","into","into","into_logup","new","numerator","read_if","read_one","to_owned","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","write_if","write_one","main","memory_size"],"q":[[0,"o1vm"],[13,"o1vm::cannon"],[267,"o1vm::cli"],[295,"o1vm::cli::cannon"],[404,"o1vm::elf_loader"],[421,"o1vm::interpreters"],[424,"o1vm::interpreters::keccak"],[495,"o1vm::interpreters::keccak::column"],[715,"o1vm::interpreters::keccak::constraints"],[741,"o1vm::interpreters::keccak::environment"],[769,"o1vm::interpreters::keccak::helpers"],[792,"o1vm::interpreters::keccak::interpreter"],[890,"o1vm::interpreters::keccak::witness"],[917,"o1vm::interpreters::mips"],[926,"o1vm::interpreters::mips::column"],[965,"o1vm::interpreters::mips::constraints"],[1032,"o1vm::interpreters::mips::interpreter"],[1401,"o1vm::interpreters::mips::interpreter::debugging"],[1432,"o1vm::interpreters::mips::registers"],[1472,"o1vm::interpreters::mips::witness"],[1593,"o1vm::interpreters::riscv32im"],[1603,"o1vm::interpreters::riscv32im::column"],[1627,"o1vm::interpreters::riscv32im::constraints"],[1700,"o1vm::interpreters::riscv32im::interpreter"],[2302,"o1vm::interpreters::riscv32im::registers"],[2382,"o1vm::interpreters::riscv32im::witness"],[2477,"o1vm::legacy"],[2487,"o1vm::legacy::folding"],[2633,"o1vm::legacy::folding::keccak"],[2660,"o1vm::legacy::folding::mips"],[2687,"o1vm::legacy::proof"],[2688,"o1vm::legacy::trace"],[2754,"o1vm::legacy::trace::keccak"],[2763,"o1vm::legacy::trace::mips"],[2772,"o1vm::lookups"],[2813,"o1vm::pickles"],[2820,"o1vm::pickles::column_env"],[2846,"o1vm::pickles::proof"],[2899,"o1vm::pickles::prover"],[2921,"o1vm::pickles::verifier"],[2922,"o1vm::preimage_oracle"],[2991,"o1vm::ramlookup"],[3036,"o1vm::test_preimage_read"],[3037,"o1vm::utils"]],"d":["","","Modules mimicking the defined structures used by Cannon …","","A module to load ELF files.","","Legacy implementation of the recursive proof composition. …","Instantiation of the lookups for the VM project. …","Pickles flavor of the o1vm. This is the pickles flavor of …","Preimage oracle interface used by the zkVM.","The RAM lookup argument.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","","","","","","","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","Calls U::from(self)
.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self)
.","","","","","","","An interpreter for an optimised version of Keccak","An interpreter for the MIPS instruction set. This module …","An interpreter for the RISC-V 32IM instruction set, …","","","","","","","","","All the names for constraints involved in the Keccak …","","Errors that can occur during the check of the witness","","","","","","","","","","","","","","","","","","","","","","","This module defines the custom columns used in the Keccak …","This module contains the constraints for one Keccak step.","","","","","","","This module contains the definition and implementation of …","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","This module defines the Keccak interpreter in charge of …","Calls U::from(self)
.","Calls U::from(self)
.","This function returns a vector of field elements that …","Standardizes a Keccak step to a common opcode","","","","","","","","","","","This file contains the witness for the Keccak hash …","","Order of absorb steps in the computation depending on the …","An iterator over the variants of Absorbs","Block index inside the hash to enumerate preimage bytes","","","Column aliases used by the Keccak circuit. The number of …","","Hash identifier to distinguish inside the syscalls …","","The witness columns used by the Keccak circuit. The Keccak …","","","Total number of columns used in Keccak, including relation …","The maximum total number of witness columns used by the …","The number of columns required for the Keccak selectors. …","","","","","","","","","","","","Current step performs a round of the permutation. The …","","","Current step is a sponge","","","","","Variants of Keccak sponges","An iterator over the variants of Sponges","","Hash step identifier to distinguish inside interstep …","Variants of Keccak steps available for the interpreter. …","An iterator over the variants of Steps","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Map the column alias to the actual column index. Note that …","Map the column alias to the actual column index. Note that …","","","","","","","","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Iterate over the instruction variants","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","This struct contains all that needs to be kept track of …","","","","","","","","","Constraints that are added to the circuit","","","","","","Returns the argument unchanged.","","Calls U::from(self)
.","Variables that are looked up in the circuit","","","","","","","","This struct contains all that needs to be kept track of …","","","","","Environment for the constraints (includes lookups). The …","","","","","","Returns the argument unchanged.","","Calls U::from(self)
.","Starts a new Keccak environment for a given hash index and …","Nullifies the Witness and Constraint environments by …","Returns the selector of the current step in standardized …","Entrypoint for the interpreter. It executes one step of …","Current step","","","","","This function updates the next step of the environment …","","Environment for the witness (includes multiplicities)","Writes an integer value to a column of the Keccak witness","Writes a field value to a column of the Keccak witness","This trait contains helper functions for arithmetic …","This trait contains helper functions for boolean …","This trait contains helper functions for the lookups used …","Degree-2 variable encoding whether at least one of the two …","Degree-2 variable encoding whether the input is a boolean …","Degree-2 variable encoding whether the first input is …","Degree-1 variable encoding whether the input is the value …","","Adds a lookup to the Byte table","Adds a lookup to the Pad table","Adds a lookup to the RangeCheck16 table","Adds a lookup to the Reset table","Adds a lookup to the RoundConstants table","Adds a lookup to the Shift table","Degree-1 variable encoding the negation of the input Note: …","Returns a variable representing the value one","Degree-2 variable encoding the OR of two variables, which …","","Returns a variable representing the value two","Returns a variable representing the value 2^x","","Degree-2 variable encoding the XOR of two variables which …","Returns a variable representing the value zero","This trait includes functionalities needed to obtain the …","","","Adds a given Lookup to the environment if the condition …","This function returns a degree-2 variable that is computed …","Returns the block index as a variable","Returns a variable that encodes the idx
-th block of bytes …","Creates a variable from a constant integer","Creates a variable from a constant field element","Adds one KeccakConstraint to the environment if the …","Constrains 332 checks of absorb sponges","Constrains 136 checks of booleanity for some mode flags.","Constrains 200 checks of the chi algorithm in round steps","Constrains 136 checks of correctness of mode flags","Constrains 4 checks of the iota algorithm in round steps","Constrains 6 checks of padding absorb sponges","Constrains 150 checks of the pirho algorithm in round steps","Constrains 389 checks of round steps","Constrains 354 checks of sponge steps","Constrains 16 checks of squeeze sponges","Constrains 35 checks of the theta algorithm in round steps","Creates all 879 constraints/checks to the environment:","Returns the (x,q)-th term of ThetaDenseC, as a variable","Returns the (y,x,q)-th variable of PiRhoDenseE","Returns the (x,q)-th variable of ThetaDenseRotC","Returns the (y,x,q)-th variable of PiRhoDenseRotE","Returns the (x,q)-th variable of ThetaExpandRotC","Returns the (y,x,q)-th variable of PiRhoExpandRotE","Returns a vector of pad bytes flags as variables, with idx
…","This function returns the composed variable from dense …","COLUMN OPERATIONS /// This function returns the composed …","Returns the hash index as a variable","Returns a variable that encodes whether the idx
-th byte of …","Returns the 100 step input variables, which correspond to …","Returns a slice of the input variables of the current step …","Returns a variable that encodes whether the current step …","Returns a degree-1 variable that encodes whether the …","Returns a variable that encodes whether the current step …","Returns a variable that encodes whether the current step …","SELECTOR OPERATIONS /// Returns a degree-2 variable that …","Returns a variable that encodes whether the current step …","Reads a Lookup containing the input of a step and writes a …","When in Squeeze mode, writes a Lookup containing the …","When in Absorb mode, reads Lookups containing the 136 …","Creates all possible lookups to the Keccak constraints …","Adds the 800 lookups required for Chi in the round","Adds the 1 lookup required for Iota in the round","Adds the 700 lookups required for PiRho in the round","Adds the 120 lookups required for Theta in the round","Adds the 601 lookups required for the sponge","Returns a variable that encodes whether the current step …","Returns a degree-1 variable that encodes whether the …","Returns a variable that encodes whether the current step …","Returns a degree-1 variable that encodes whether the …","Returns a variable that encodes whether the current step …","Returns a variable that encodes whether the current step …","Returns the idx
-th new state expanded quarter, as a …","Returns the idx
-th old state expanded quarter, as a …","Returns the 100 step output variables, which correspond to …","Returns a slice of the output variables of the current …","Returns the 136 flags indicating which bytes of the new …","Returns a variable that encodes the bytelength of the …","Returns a variable that encodes the idx
-th chunk of the …","Returns the (x)-th term of ThetaQuotientC, as a variable","Returns the (y,x,q)-th variable of PiRhoQuotientE","Returns the (x,q)-th variable of ThetaRemainderC","Returns the (y,x,q)-th variable of PiRhoRemainderE","Returns a variable that encodes the current round number […","Returns the 4 expanded quarters that encode the round …","Returns the (i,y,x,q)-th variable of ChiShiftsB","Returns the (i,x,q)-th variable of ThetaShiftsC","Returns the (i,y,x,q)-th variable of PiRhoShiftsE","Returns the (i,y,x,q)-th variable of ChiShiftsSum","Returns the idx
-th byte of the sponge, as a variable","Returns the 200 bytes of the sponge, as variables","Returns the idx
-th term of the shifts of the sponge, as a …","Returns the last 32 terms that are added to the new block …","Returns the (y,x,q)-th input of the theta algorithm, as a …","Returns the idx
-th output of a round step as a variable","Returns the step index as a variable","Returns a variable that encodes the value 2^pad_length","Returns the variable corresponding to a given column alias.","Returns the 20 variables corresponding to ThetaDenseC","Returns the 100 variables corresponding to PiRhoDenseE","Returns the 20 variables corresponding to ThetaDenseRotC","Returns the 100 variables corresponding to PiRhoDenseRotE","Returns the 20 variables corresponding to ThetaExpandRotC","Returns the 100 variables corresponding to PiRhoExpandRotE","Returns the 5 variables corresponding to ThetaQuotientC","Returns the 100 variables corresponding to PiRhoQuotientE","Returns the 20 variables corresponding to ThetaRemainderC","Returns the 100 variables corresponding to PiRhoRemainderE","Returns the 400 variables corresponding to ChiShiftsB","Returns the 80 variables corresponding to ThetaShiftsC","Returns the 400 variables corresponding to PiRhoShiftsE","Returns the 400 variables corresponding to ChiShiftsSum","Returns the 400 terms that compose the shifts of the …","Returns the output of an absorb sponge, which is the XOR …","This struct contains all that needs to be kept track of …","","","","","","","","Checks the constraint tag
by checking that the input x
is …","","","","","","Returns the argument unchanged.","","Calls U::from(self)
.","The multiplicities of each lookup entry. Should not be …","The fixed tables used in the Keccak gate","","","","","","","","The full state of the Keccak gate (witness)","","","","","","","","","","Abstract columns (or variables of our multi-variate …","","Represents one line of the execution trace of the virtual …","All the witness columns used in MIPS","The number of columns used for relation witness in the …","The number of witness columns used to store the …","","Number of columns used by the MIPS interpreter to keep …","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Map the column alias to the actual column index.","Map the column alias to the actual column index.","","","","Calls U::from(self)
.","","","","","","","","","The environment keeping the constraints between the …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Return the constraints for the current instruction, …","","","Return the constraints for the selector. Each selector …","","","","Calls U::from(self)
.","","","","","","","","","","","","","This function checks that the preimage is read correctly. …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","An iterator over the variants of ITypeInstruction","","An iterator over the variants of Instruction","","","","An iterator over the variants of JTypeInstruction","","","","","","","","","","","","","","","","","","","","","","","","","A position can be seen as an indexed variable","","","An iterator over the variants of RTypeInstruction","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Access the memory address addr
, adding constraints …","Access the general purpose register with index idx
, adding …","Access the general purpose register with index idx
, adding …","Activate the selector for the given instruction.","Add a constraint to the proof system, asserting that …","","Returns x + y
and the overflow bit, storing the results in …","Allocate a new abstract variable for the current step. The …","","Returns x or y
, storing the result in position
.","Assert that the value x
is boolean, and add a constraint …","Assert that the values x
and y
are equal, and add a …","Assert that the value assert_equals_zero
is 0, and add a …","Extract the bits from the variable x
between highest_bit
…","","","","","","","","","","","","","","","","","Check that the witness value x
is a boolean (0
or 1
); …","Check that the witness values in x
and y
are equal; …","Check that the witness value in assert_equals_zero
is 0; …","","","","","","","","","","","","","","","","","","","","","","","Returns the number of leading 1s in x
, storing the result …","Returns the number of leading 0s in x
, storing the result …","","","","","","","","","","","","","","","","","","","","","Returns (x / y, x % y)
, storing the results in …","Returns (x / y, x % y)
, storing the results in …","","","","","","","","","","","","","Returns 1 if x
is equal to y
, or 0 otherwise, storing the …","","","","","","","","","Fetch the memory value at address addr
and store it in …","Fetch the last ‘access index’ that the memory at …","Fetch the value of the general purpose register with index …","Fetch the last ‘access index’ for the general purpose …","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","Increases the heap pointer by by_amount
if if_is_true
is 1
…","","","","","","","","","","","","","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Iterate over the instruction variants","","","","","","","","","","","","","","","","Adds a lookup to the RangeCheck16Lookup table","Adds a lookup to the AtMost4Lookup table","Adds a lookup to the ByteLookup table","Returns ((x * y) >> 32, (x * y) & ((1 << 32) - 1))
, …","Returns ((x * y) >> 32, (x * y) & ((1 << 32) - 1))
, …","Returns x * y
, where x
and y
are treated as integers, …","","","","","","","","","Returns x nor y
, storing the result in position
.","","","","","Returns x or y
, storing the result in position
.","","","","","","","","","Set the memory value at address addr
to value
.","Set the last ‘access index’ for the memory at address …","Set the general purpose register with index idx
to value
.","Set the last ‘access index’ for the general purpose …","Set the last ‘access index’ for the general purpose …","Set the general purpose register with index idx
to value
…","Range checks with 2 lookups to the RangeCheck16Lookup …","Range checks with 1 lookup to the AtMost4Lookup table 0 <= …","","Range checks with 2 lookups to the ByteLookup table that a …","","","","","Request the preimage oracle for len
bytes and store the …","Reset the environment to handle the next instruction","","","","Return the result of shifting x
by by
, storing the result …","Return the result of shifting x
by by
, storing the result …","Return the result of shifting x
by by
, storing the result …","Given a variable x
, this function extends it to a signed …","","","","","Returns x + y
and the underflow bit, storing the results …","Returns 1 if x < y
as unsigned integers, or 0 otherwise, …","Returns 1 if x < y
as signed integers, or 0 otherwise, …","Returns 1 if x
is 0, or 0 otherwise, storing the result in …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns x xor y
, storing the result in position
.","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self)
.","","","","","","","","","","","","","","","","","","","","","This represents the internal state of the virtual machine.","","","","","","","","","","","","Returns the argument unchanged.","","","","","","","Calls U::from(self)
.","","","","","","","","","","","","This structure represents the environment the virtual …","Maximum number of memory or register accesses per …","Maximum number of memory accesses per instruction (based …","Maximum number of register accesses per instruction (based …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","Calls U::from(self)
.","Calls U::from(self)
.","","","","","","","","","","","Computes what is the non-normalized next instruction …","","The actual number of instructions executed results from …","","","","","","","","","","","","","","","","","","","","","","","","","","","Execute a single step of the MIPS program. Returns the …","","","","","","","","","","","","","","","","","","","","","Number of instructions in the ISA","","","","The minimal number of columns required for the VM","List all columns used by the interpreter","","This module implement an interpreter for the RISCV32 IM …","All the registers used by the ISA","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self)
.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Return the constraints for the current instruction, …","","","Return the constraints for the selector. Each selector …","","","","Calls U::from(self)
.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Format: add rd, rs1, rs2
","Format: addi rd, rs1, imm
","Format: auipc rd,imm
","Format: and rd, rs1, rs2
","Format: andi rd, rs1, imm
","Format: beq rs1, rs2, offset
","Format: bge rs1, rs2, offset
","Format: bgeu rs1, rs2, offset
","Format: blt rs1, rs2, offset
","Format: bltu rs1, rs2, offset
","Format: bne rs1, rs2, offset
","Format: div rd, rs1, rs2
","Format: divu rd, rs1, rs2
","Format: fence
","Format: fence.i
","","An iterator over the variants of IInstruction","","","An iterator over the variants of Instruction","","Format: jal rd,imm
","Format: jalr rd, rs1, imm
","Format: lb rd, offset(rs1)
","Format: lbu rd, offset(rs1)
","Format: lh rd, offset(rs1)
","Format: lhu rd, offset(rs1)
","Format: lui rd,imm
","Format: lw rd, offset(rs1)
","M extension instructions Following …","An iterator over the variants of MInstruction","","Format: mul rd, rs1, rs2
","Format: mulh rd, rs1, rs2
","Format: mulhsu rd, rs1, rs2
","Format: mulhu rd, rs1, rs2
","Format: or rd, rs1, rs2
","Format: ori rd, rs1, imm
","A position can be seen as an indexed variable","","An iterator over the variants of RInstruction","","Format: rem rd, rs1, rs2
","Format: remu rd, rs1, rs2
","","An iterator over the variants of SBInstruction","","","An iterator over the variants of SInstruction","","Format: slt rd, rs1, rs2
","Format: slti rd, rs1, imm
","Format: sltiu rd, rs1, imm
","Format: sltu rd, rs1, rs2
","Format: sll rd, rs1, rs2
","Format: slli rd, rs1, shamt
","Format: sra rd, rs1, rs2
","Format: srai rd, rs1, shamt
","Format: srl rd, rs1, rs2
","Format: srli rd, rs1, shamt
","Format: sb rs2, offset(rs1)
","Format: sh rs2, offset(rs1)
","Format: sw rs2, offset(rs1)
","Format: sub rd, rs1, rs2
","","An iterator over the variants of SyscallInstruction","","","","An iterator over the variants of UInstruction","","An iterator over the variants of UJInstruction","","","","Format: xor rd, rs1, rs2
","Format: xori rd, rs1, imm
","Access the memory address addr
, adding constraints …","Access the general purpose register with index idx
, adding …","Access the general purpose register with index idx
, adding …","Activate the selector for the given instruction.","Add a constraint to the proof system, asserting that …","","Returns x + y
and the overflow bit, storing the results in …","Allocate a new abstract variable for the current step. The …","Returns x or y
, storing the result in position
.","Assert that the value x
is boolean, and add a constraint …","Assert that the values x
and y
are equal, and add a …","Assert that the value assert_equals_zero
is 0, and add a …","Extract the bits from the variable x
between highest_bit
…","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Check that the witness values in x
and y
are equal; …","Check that the witness value in assert_equals_zero
is 0; …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the number of leading 1s in x
, storing the result …","Returns the number of leading 0s in x
, storing the result …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns x / y
, storing the results in position
.","Returns x / y
, storing the results in position
.","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns 1 if x
is equal to y
, or 0 otherwise, storing the …","","","","","","","","","","","","","","","","","","","Fetch the memory value at address addr
and store it in …","Fetch the last ‘access index’ that the memory at …","Fetch the value of the general purpose register with index …","Fetch the last ‘access index’ for the general purpose …","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","Increases the heap pointer by by_amount
if if_is_true
is 1
…","","","","","","","","","","","","","","","","","","","","","","Interpret an I-type instruction. The encoding of an I-type …","Interpret an M-type instruction. The encoding of an M-type …","Interpret an R-type instruction. The encoding of an R-type …","Interpret an SB-type instruction. The encoding of an …","Interpret an S-type instruction. The encoding of an S-type …","","Interpret an UJ-type instruction. The encoding of an …","Interpret an U-type instruction. The encoding of an U-type …","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","","","","","","","","","","","Returns x^(-1)
, or 0
if x
is 0
, storing the result in …","","","","","","","","","","","","","","","","","","","","","","Adds a lookup to the RangeCheck16Lookup table","Adds a lookup to the AtMost4Lookup table","Adds a lookup to the ByteLookup table","Returns x % y
, storing the results in position
.","Returns x % y
, storing the results in position
.","Returns ((x * y) >> 32
, storing the results in position
.","Returns ((x * y) >> 32
, storing the results in position
.","Returns ((x * y) >> 32
, storing the results in position
.","Returns (x * y) & ((1 << 32) - 1))
, storing the results in …","Returns (x * y) & ((1 << 32) - 1))
, storing the results in …","Returns x * y
, where x
and y
are treated as integers, …","","","","","","","","","","","","","","","","","","","Returns x nor y
, storing the result in position
.","","","","","","","","","","Returns x or y
, storing the result in position
.","","","","","","","","","","","","","","","","","","","Set the memory value at address addr
to value
.","Set the last ‘access index’ for the memory at address …","Set the general purpose register with index idx
to value
.","Set the last ‘access index’ for the general purpose …","Set the last ‘access index’ for the general purpose …","Set the general purpose register with index idx
to value
…","Range checks with 2 lookups to the RangeCheck16Lookup …","","Range checks with 2 lookups to the ByteLookup table that a …","","","","","","","","Return the result of shifting x
by by
, storing the result …","Return the result of shifting x
by by
, storing the result …","Return the result of shifting x
by by
, storing the result …","Given a variable x
, this function extends it to a signed …","","","","","","","","","","Returns x + y
and the underflow bit, storing the results …","Returns 1 if x < y
as unsigned integers, or 0 otherwise, …","Returns 1 if x < y
as signed integers, or 0 otherwise, …","Returns 1 if x
is 0, or 0 otherwise, storing the result in …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns x xor y
, storing the result in position
.","Function arguments/results","","","","","","","","Frame pointer/saved register. This is the same register.","Global pointer","","Current instruction pointer","","Next instruction pointer","","","","Return address","This enum provides aliases for the registers. This is …","This represents the internal state of the virtual machine.","","Saved registers","","","","","","","","","","","Stack pointer","Temporary/alternate register","Temporaries","","","","","","Thread pointer","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","There are 32 general purpose registers.","","","","","","","Calls U::from(self)
.","Calls U::from(self)
.","","","","","","","","","","","","This structure represents the environment the virtual …","Maximum number of memory or register accesses per …","Maximum number of memory accesses per instruction (based …","Maximum number of register accesses per instruction (based …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","","","","","Calls U::from(self)
.","","","","","","","","","","","","","","","","","The actual number of instructions executed results from …","","","","","","","","","","","","","","","","","","Execute a single step in the RISCV32i program","","","","","","","","","","","","","","","","Elliptic curve group of BN254","Scalar field of BN254","","","","","","","This module defines structures and traits to build and …","","","An iterator over the variants of Challenge","Environment for the decomposable folding protocol, for a …","","Folding instance containing the commitment to a witness of …","Includes the data witness columns and also the dynamic …","","","Reuses the Alphas defined in the example of folding","Blinder used in the polynomial commitment scheme","","","","","","","","","","","","","","","Challenges for the proof. We do use 3 challenges:","","","","","","","","","","","","","Commitments to the witness columns, including the dynamic …","Corresponds to the omega evaluations, for both sides","Corresponds to the evaluations at ω, for both sides","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","Commitments to the witness columns, for both sides","Commitments to the witness columns, for both sides","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","","","","","","","","","","Corresponds to the zeta*omega evaluations, for both sides …","Corresponds to the evaluations at ζω, for both sides …","","","This method takes an Instance and a commitment to zero and …","This method takes a witness and a vector of evaluations to …","","","","","Structure of the folded circuit","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Map a column alias to the corresponding witness column.","Map a selector column to the corresponding witness column.","","Calls U::from(self)
.","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Map a column alias to the corresponding witness column.","Map a selector column to the corresponding witness column.","","","Calls U::from(self)
.","","","","","","FIXME: DUMMY FOLD FUNCTION THAT ONLY KEEPS THE LAST …","DecomposableTracer builds traces for some program …","Struct representing a circuit execution trace which is …","The trait Foldable describes structures that can be folded.","","Implement a trace for a single instruction.","Tracer builds traces for some program executions. The …","","","","","","","","","","","","","","","The domain size of the circuit (should coincide with that …","","","Returns a map of constraints that are compatible with …","","Returns the argument unchanged.","Returns the argument unchanged.","Returns a boolean indicating whether the witness for the …","","Initialize a new trace with the given domain size, …","","","","Calls U::from(self)
.","Calls U::from(self)
.","Returns whether the witness for the given selector has …","","","","Create a new decomposable trace with the given domain …","Returns the number of rows that have been instantiated for …","Pad the rows of one opcode with the first row until …","","Pad the rows of one opcode with the given row until …","","Pads the rows of one opcode with zero rows until reaching …","","Pads the rows of the witnesses until reaching the domain …","Add a witness row to the circuit (only for relation …","","Resets the witness after folding","Sets the selector column to all ones, and the rest to all …","Returns the witness for the given selector as a folding …","","","","The traces are indexed by the selector Inside the witness …","","","","","","","","","","The Keccak circuit trace","A Keccak instruction trace","","","","","","","","The MIPS circuit trace","The MIPS instruction trace","","","","","","","","Values from 0 to 4 to check the number of bytes read from …","All values that can be stored in a byte (amortized table, …","Input/Output of Keccak steps","All of the possible lookup table IDs used in the zkVM","","All [1..136] values of possible padding lengths, the value …","Single-column table of all values in the range [0, 2^16)","","Dual-column table of all values in the range [0, 2^16) and …","24-row table with all possible values for round and their …","Single-column table of 2^16 entries with the sparse …","Syscalls communication channel","","","","","","","","","","","","","","Returns the argument unchanged.","","","","Calls U::from(self)
.","","","","","","","","","","","","Degree of the quotient polynomial. We do evaluate all …","Maximum degree of the constraints. It does include the …","Total number of constraints for all instructions, …","","","","","The collection of polynomials (all in evaluation form) and …","","","Challenges from the IOP.","","Constant values required","","","The domains used in the PLONK argument.","","Returns the argument unchanged.","","","","","","","Calls U::from(self)
.","","The value prod_{j != 1} (1 - ω^j)
, used for efficiently …","","","","","","The witness column polynomials. Includes relation columns …","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","","IPA opening proof","","","","","","","","","","","","","","","","","","","","","Errors that can arise when creating a proof","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self)
.","Make a PlonKish proof for the given circuit. As inputs, we …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","","","","","","","","","","","","","","","","","","","","","","Enum representing the two different modes of a RAMLookup","Struct containing a RAMLookup","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self)
.","Calls U::from(self)
.","Transforms the current RAMLookup into an equivalent Logup","Creates a new RAMLookup from a mode, a table ID, a …","Returns the numerator corresponding to this lookup in the …","Reads one value when if_is_true
is 1.","Reads one value from a table.","","","","","","","","","","","","Writes one value when if_is_true
is 1.","Writes one value to a table.","",""],"i":[0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,2,9,10,13,15,16,18,1,2,3,4,5,6,9,10,13,15,16,18,1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6,9,10,4,13,9,10,13,15,16,18,1,2,3,4,5,6,9,10,13,15,16,18,1,2,3,4,5,6,13,15,5,6,9,10,13,15,16,18,1,2,3,4,5,6,16,18,1,5,6,16,16,15,15,6,13,15,16,18,1,2,3,4,5,6,9,10,13,15,16,18,1,2,3,3,4,5,6,18,1,9,10,15,15,3,13,3,9,10,13,15,16,18,1,2,3,4,5,6,3,9,10,13,15,16,18,1,2,3,4,5,6,15,15,15,3,2,5,15,3,15,3,15,15,15,3,3,15,13,15,5,3,3,5,15,4,3,6,4,1,2,3,4,5,6,15,9,10,13,15,16,18,1,2,3,4,5,6,9,10,13,15,16,18,1,2,3,4,5,6,9,10,13,15,16,18,1,2,3,4,5,6,9,10,13,15,16,18,1,2,3,4,5,6,29,0,29,29,29,29,0,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,0,34,0,0,34,0,34,24,32,33,24,32,33,34,34,24,32,33,34,24,32,33,34,24,32,33,34,24,32,33,34,24,32,33,24,32,33,24,32,33,34,24,32,33,34,24,32,33,34,24,32,33,34,24,32,33,34,24,32,33,34,24,32,33,34,24,32,33,34,24,32,33,34,33,24,32,33,34,33,32,24,32,33,34,24,32,33,34,24,32,33,34,24,32,33,34,24,32,33,34,24,32,33,34,32,24,32,33,34,0,38,38,38,38,38,38,38,38,38,38,0,0,38,38,38,38,0,0,0,41,41,41,41,0,41,41,41,0,40,0,41,40,41,41,41,41,41,0,41,0,41,41,41,41,40,41,40,41,40,41,40,41,0,0,40,41,40,41,40,41,0,40,41,40,40,41,41,40,41,40,41,0,40,41,0,40,41,0,0,40,41,40,41,40,41,40,41,40,41,0,47,0,0,45,45,45,0,49,45,45,0,49,49,0,0,0,49,45,45,45,45,45,45,45,45,45,45,44,45,45,44,45,45,45,45,0,0,47,45,0,0,45,45,45,45,45,45,45,45,44,46,47,48,49,50,45,44,46,47,48,49,50,45,44,46,47,48,49,50,45,44,46,47,48,49,50,45,44,47,49,47,49,45,44,46,47,48,49,50,45,44,46,47,48,49,50,45,44,46,47,48,49,50,45,44,47,49,45,45,44,44,47,47,49,49,45,44,46,47,48,49,50,45,44,46,47,48,49,50,45,44,47,49,54,54,54,54,45,44,46,47,48,49,50,45,44,46,47,48,49,50,44,46,48,50,45,44,44,47,49,44,46,48,50,46,48,50,46,48,50,46,48,50,46,48,50,45,44,47,49,46,48,50,45,44,45,44,46,47,48,49,50,45,44,46,47,48,49,50,45,44,46,47,48,49,50,45,44,46,47,48,49,50,45,44,46,47,48,49,50,0,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,0,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,0,0,0,179,179,179,179,179,180,180,180,180,180,180,179,181,179,180,181,181,180,179,181,0,0,64,64,182,182,182,64,64,64,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,64,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,0,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,0,0,0,0,0,0,0,0,0,0,66,0,0,0,0,0,0,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,67,67,67,67,66,66,66,66,66,66,66,66,66,66,0,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,0,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,74,78,78,74,74,78,78,78,78,78,78,78,74,74,74,74,0,0,0,0,0,0,0,68,0,0,0,0,0,68,0,0,76,76,74,74,78,78,78,78,78,78,78,78,74,74,74,74,74,74,74,74,74,74,74,78,80,68,0,0,0,0,0,0,0,0,0,74,78,78,74,74,74,74,74,74,74,78,78,78,78,78,78,74,74,74,74,74,74,74,74,74,74,74,74,74,80,74,78,80,80,80,80,80,80,80,80,80,80,80,80,80,80,68,73,74,75,76,77,78,79,68,73,74,75,76,77,78,79,80,80,80,68,73,74,75,76,77,78,79,68,73,74,75,76,77,78,79,68,74,76,78,80,80,80,80,0,74,76,78,68,73,74,75,76,77,78,79,68,73,74,75,76,77,78,79,80,80,68,73,74,75,76,77,78,79,68,74,76,78,80,68,68,74,74,76,76,78,78,80,80,80,80,68,73,74,75,76,77,78,79,68,73,74,75,76,77,78,79,80,80,68,74,76,78,80,80,68,73,74,75,76,77,78,79,80,0,0,0,0,68,73,74,75,76,77,78,79,68,73,75,77,79,80,68,68,74,76,78,68,73,75,77,79,80,80,80,80,80,80,73,75,77,79,73,75,77,79,80,73,75,77,79,80,73,75,77,79,68,74,76,78,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,73,75,77,79,80,80,80,80,68,68,73,74,75,76,77,78,79,68,73,74,75,76,77,78,79,68,73,74,75,76,77,78,79,68,73,74,75,76,77,78,79,80,68,73,74,75,76,77,78,79,80,80,80,80,0,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,0,0,0,0,0,0,0,0,0,0,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,0,0,0,0,0,0,0,0,0,88,88,88,88,88,88,88,88,88,89,88,89,88,88,88,89,89,88,88,88,88,88,89,88,89,88,89,88,89,88,88,88,89,88,88,88,88,88,88,89,88,88,88,88,88,88,88,89,88,88,88,89,88,88,89,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,89,88,89,88,89,88,89,88,88,88,88,89,88,88,88,0,0,0,0,0,0,0,0,0,0,0,0,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,0,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,95,97,103,95,97,101,101,101,101,101,101,109,109,95,95,0,0,92,0,0,0,105,97,97,97,97,97,103,97,0,0,92,109,109,109,109,95,97,111,0,0,92,109,109,0,0,92,0,0,92,95,97,97,95,95,97,95,97,95,97,99,99,99,95,0,0,107,92,0,0,0,0,92,92,111,95,97,111,111,111,111,111,111,111,111,111,111,111,111,111,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,111,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,92,95,97,99,101,103,105,107,109,111,111,111,111,95,97,99,101,103,105,107,109,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,111,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,92,95,97,99,101,103,105,107,109,111,92,92,95,95,97,97,99,99,101,101,103,103,105,105,107,107,109,109,111,111,111,111,92,92,94,95,95,96,97,97,98,99,99,100,101,101,102,103,103,104,105,105,106,107,108,109,109,110,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,111,92,95,97,99,101,103,105,107,109,111,111,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,0,0,0,0,0,0,0,0,0,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,92,94,96,98,100,102,104,106,108,110,111,111,92,92,95,97,99,101,103,105,107,109,92,94,96,98,100,102,104,106,108,110,111,111,111,111,111,111,111,111,111,111,111,94,96,98,100,102,104,106,108,110,94,96,98,100,102,104,106,108,110,111,94,96,98,100,102,104,106,108,110,111,94,96,98,100,102,104,106,108,110,92,95,97,99,101,103,105,107,109,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,94,96,98,100,102,104,106,108,110,111,111,111,111,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,92,95,97,99,101,103,105,109,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,111,111,111,113,113,113,113,113,113,113,113,113,113,113,113,0,113,0,0,0,113,0,0,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,112,113,112,112,112,112,112,113,112,113,112,112,113,112,112,113,112,112,112,112,112,112,113,112,113,112,112,112,112,113,112,113,112,113,112,113,112,0,0,0,0,0,0,0,0,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,0,0,0,0,0,0,0,0,0,0,117,0,0,0,0,0,0,117,117,122,122,116,119,117,120,122,124,116,119,117,120,122,124,116,119,122,117,120,122,124,117,120,122,124,116,119,122,124,122,116,119,116,119,117,120,122,124,116,119,117,120,122,124,116,119,117,120,122,124,117,124,117,117,124,124,117,120,122,124,116,119,117,117,120,122,124,122,122,117,124,122,124,116,119,117,120,122,124,116,119,116,119,117,120,122,124,120,117,0,120,0,116,119,120,120,116,119,120,120,122,124,116,119,120,116,119,122,117,120,122,124,116,119,117,120,122,124,116,119,117,120,122,124,116,119,117,120,122,124,116,119,117,120,122,124,124,0,0,0,0,134,134,134,134,134,134,134,134,134,134,134,134,134,135,135,135,134,134,134,134,134,134,134,0,0,0,0,136,136,136,136,136,136,136,136,136,136,136,136,136,137,137,137,136,136,136,136,136,136,136,0,0,0,0,183,0,0,141,142,141,142,141,142,141,142,141,141,142,141,142,141,142,141,142,184,142,141,142,142,142,183,141,142,142,141,142,142,0,141,0,185,142,183,142,183,142,183,142,185,183,142,142,142,184,142,141,142,142,141,142,141,142,141,142,141,142,141,0,0,148,149,148,148,148,149,148,0,0,150,151,150,150,150,151,150,58,58,58,0,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,0,0,0,0,0,0,0,0,153,153,153,153,153,153,153,153,153,153,0,153,153,153,153,153,153,153,153,153,153,153,153,153,153,0,0,0,157,159,164,157,159,164,164,157,159,164,157,159,164,157,159,164,157,159,157,159,164,157,157,159,164,157,157,159,164,159,164,164,164,157,157,157,157,159,164,157,159,164,157,159,164,157,159,164,164,164,160,0,160,160,160,160,160,160,160,160,160,160,160,160,0,160,160,160,160,160,160,160,0,0,0,0,0,0,166,186,187,167,166,186,187,167,166,166,0,166,186,187,167,166,186,187,167,166,186,187,167,166,186,187,167,87,166,167,87,166,167,166,166,166,186,187,167,166,186,187,167,166,166,186,166,166,186,187,167,166,186,187,167,166,186,187,167,166,186,187,167,186,0,0,169,169,169,59,169,59,169,59,169,59,169,59,169,59,169,59,169,59,59,169,59,169,59,169,59,59,59,59,59,59,169,59,59,169,59,169,59,169,59,169,59,59,59,0,0],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[[]],[[]],[[]],[[]],[[]],[[]],[[[8,[7]]],9],[[[8,[7]]],10],[11,4],0,[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[12,[[14,[13]]]],[12,[[14,[15]]]],[12,[[14,[5]]]],[12,[[14,[6]]]],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[[16,16],17],[[18,18],17],[[1,1],17],[[5,5],17],[[6,6],17],[[],17],[[],17],0,0,[[6,19],[[21,[20]]]],[[13,22],23],[[15,22],23],[[16,22],23],[[18,22],23],[[1,22],23],[[2,22],23],[[3,22],23],[[4,22],23],[[5,22],23],[[6,22],23],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[24,3],[[]],[[]],[[]],[[]],[25,[[14,[18]]]],[25,[[14,[1,20]]]],[9,[[8,[7]]]],[10,[[8,[7]]]],0,0,0,0,0,[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[13,26],14],[[15,26],14],0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[15,20],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[28,28],[28,28],[[]],[[]],0,[29,29],[[]],[[],28],[[],28],[11],[11],[11],[[29,22],23],[[]],[30,[[14,[29,31]]]],[30,[[14,[29,31]]]],[25,17],[[],11],[[]],[[]],[[],14],[[],14],[[],27],[[29,30],[[14,[31]]]],[[29,30],[[14,[31]]]],[[]],0,0,0,0,0,0,0,[28,28],[28,28],[28,28],[28,28],[28,28],[28,28],[28,28],[28,28],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[24,24],[32,32],[33,33],[34,34],[[]],[[]],[[]],[[]],[[],28],[[],28],[[],28],[[],28],[[],28],[[],28],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[[24,22],23],[[32,22],23],[[33,22],23],[[34,22],23],[[]],[[]],[[]],[[]],[30,[[14,[24,31]]]],[30,[[14,[32,31]]]],[30,[[14,[33,31]]]],[30,[[14,[34,31]]]],[30,[[14,[24,31]]]],[30,[[14,[32,31]]]],[30,[[14,[33,31]]]],[30,[[14,[34,31]]]],[[],[[21,[35]]]],[[],[[21,[35]]]],[[],[[21,[35]]]],[25,17],[[],11],[[],11],[[],11],[[],11],0,[[]],[[]],[[]],[[]],0,0,[[]],[[]],[[]],[[]],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],27],[[],27],[[],27],[[],27],[[24,30],[[14,[31]]]],[[32,30],[[14,[31]]]],[[33,30],[[14,[31]]]],[[34,30],[[14,[31]]]],[[24,30],[[14,[31]]]],[[32,30],[[14,[31]]]],[[33,30],[[14,[31]]]],[[34,30],[[14,[31]]]],0,[[]],[[]],[[]],[[]],0,0,0,[[]],[[]],[11],[11],[11],[[]],[[],11],[[]],[[[37,[36]]],[[14,[15,20]]]],[[38,39],[[14,[15,20]]]],[[],14],[[],14],[[],27],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[40,40],[41,41],[[]],[[]],0,0,[11],[11],[11],[11],[11],[11],0,[[40,40],17],[[41,41],17],[[],17],[[],17],[[],17],[[],17],[[40,22],23],[[41,22],23],[[]],[[]],0,[[],11],[[],11],0,[[]],[[]],[11,[[43,[42]]]],[44,44],[[]],[[]],[[],14],[[],14],[[],14],[[],14],[[],27],[[],27],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[45,45],[44,44],[46,46],[47,47],[48,48],[49,49],[50,50],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[45,45],51],[[44,44],51],[[47,47],51],[[49,49],51],[[],47],[[],49],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[[45,45],17],[[44,44],17],[[47,47],17],[[49,49],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[45,22],23],[[44,22],23],[[46,22],23],[[47,22],23],[[48,22],23],[[49,22],23],[[50,22],23],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[45,52]],[[44,52]],[[47,52]],[[49,52]],[[[54,[53]],44]],[[[54,[53]],45]],[[[54,[53]],44]],[[[54,[53]],45]],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[44],[[]],[[]],[[]],[45,17],[[],46],[[]],[[],48],[[],50],[[],11],[46,11],[48,11],[50,11],[46,21],[48,21],[50,21],[46,21],[48,21],[50,21],[[46,11],21],[[48,11],21],[[50,11],21],[[],55],[[],55],[[],55],[[45,45],[[21,[51]]]],[[44,44],[[21,[51]]]],[[47,47],[[21,[51]]]],[[49,49],[[21,[51]]]],[46],[48],[50],[45,56],[44,56],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[[57,[42]],[59,[58]]]],[[]],[[]],[[[57,[53]]],[[57,[53]]]],[[]],[60],[42],[[[57,[42]],41]],0,[[],[[57,[42]]]],[11],[11],[11],[[[57,[61]],22],23],[[]],[[],11],[[]],0,[[]],[[],14],[[],14],[60],[[],27],[[[57,[42]],45]],[[]],0,[[]],[[]],[[[62,[53]]],[[62,[53]]]],[[]],0,[[],[[62,[42]]]],[11],[11],[11],[[[62,[61]],22],23],[[]],[[],11],[[]],[[60,[63,[7]]],[[62,[42]]]],[[[62,[42]]]],[[[62,[42]]],44],[[[62,[42]]]],0,[[]],[[],14],[[],14],[[],27],[[[62,[42]]]],[[]],0,[[[62,[42]],45,60]],[[[62,[42]],45,42]],0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[8],[[]],[[]],[8],[[]],[[]],[[]],[[]],[8],[[]],[60],[8],[[]],[[]],0,0,0,[[[59,[58]]]],[11],[[]],[11,8],[60],[[]],[41],[44],[[64,44]],[[44,[8,[[8,[8]]]]],[[8,[[8,[8]]]]]],[[64,44]],[[44,[8,[[8,[8]]]]]],[44],[[44,[8,[[8,[8]]]]],[[8,[[8,[8]]]]]],[44],[44],[44],[44,[[8,[[8,[8]]]]]],[44],[[11,11]],[[11,11,11]],[[11,11]],[[11,11,11]],[[11,11]],[[11,11,11]],[11,8],[[63,[21,[11]],11]],[[63,[21,[11]],[21,[11]],[21,[11]],[21,[11]]]],[[]],[11],[[],43],[[],8],[44],[44],[44],[44],[44],[44],[44],[44],[44],[44],[44],[44],[44],[44],[44],[44],[44],[44],[44],[44],[44],[11],[11],[[],43],[[],8],[[],43],[[]],[11],[11],[[11,11,11]],[[11,11]],[[11,11,11]],[[]],[[],43],[[11,11,11,11]],[[11,11,11]],[[11,11,11,11]],[[11,11,11,11]],[11],[[],43],[11],[[],43],[[11,11,11]],[11],[[]],[[]],[45],[[],43],[[],43],[[],43],[[],43],[[],43],[[],43],[[],43],[[],43],[[],43],[[],43],[[],43],[[],43],[[],43],[[],43],[[],43],[11],0,[[[65,[42]],[59,[58]]]],[[]],[[]],[[[65,[53]]],[[65,[53]]]],[[]],[60],[42],[[[65,[42]],41]],[[],[[65,[42]]]],[11],[11],[11],[[[65,[61]],22],23],[[]],[[],11],[[]],0,0,[[]],[[],14],[[],14],[60],[[],27],[[[65,[42]],45]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[66,66],[[]],[[66,66],51],[11],[11],[11],[[66,66],17],[[],17],[[],17],[[66,22],23],[[]],[[66,52]],[[[67,[53]],66]],[[[67,[53]],68]],[[[67,[53]],68]],[[[67,[53]],66]],[[],11],[[]],[66,17],[[66,66],[[21,[51]]]],[66,56],[[]],[[],14],[[],14],[[],27],[[]],0,[[[69,[42]],68]],[[[69,[42]]]],[[[69,[42]],[59,[58]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]],19,19]],[[]],[[]],[[]],[[]],[[]],[19],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[],[[69,[42]]]],[11],[11],[[[69,[42]]]],[[[69,[42]]]],[11],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[]],[[],[[8,[[72,[[71,[42,70]],56]]]]]],[[[69,[42]]],[[8,[[72,[[71,[42,70]],56]]]]]],[[[69,[42]]],[[8,[[59,[[72,[[71,[42,70]],56]],58]]]]]],[[[69,[42]]],[[72,[[71,[42,70]],56]]]],[[[69,[42]]],[[8,[[72,[[71,[42,70]],56]]]]]],[[[69,[42]]]],[[],11],[[[69,[42]]]],[[]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[[69,[42]]]],[[],14],[[],14],[[],27],[[[69,[42]]]],[[]],[[[69,[42]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[68],[[]],[[[59,[58]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[19,19]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[68,68],[73,73],[74,74],[75,75],[76,76],[77,77],[78,78],[79,79],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[68,68],51],[[74,74],51],[[76,76],51],[[78,78],51],[19],[[]],[[]],[[]],0,[[],74],[[],76],[[],78],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[[]],[[]],[11],[11],[11],[11],[11],[11],[11],[11],[[68,68],17],[[74,74],17],[[76,76],17],[[78,78],17],[[]],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[]],[[]],[[]],[[]],[[68,22],23],[[73,22],23],[[74,22],23],[[75,22],23],[[76,22],23],[[77,22],23],[[78,22],23],[[79,22],23],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[68,52]],[[74,52]],[[76,52]],[[78,52]],[[]],[[]],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[]],[[80,68]],[[80,78]],[[80,76]],[[80,74]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[68],[[]],[[]],[[]],[[]],[[]],[[],73],[[]],[[],75],[[],77],[[],79],[[],11],[73,11],[75,11],[77,11],[79,11],[[]],[[]],[[]],[[]],[[]],[[]],[73,21],[75,21],[77,21],[79,21],[73,21],[75,21],[77,21],[79,21],[[]],[[73,11],21],[[75,11],21],[[77,11],21],[[79,11],21],[[]],[[],55],[[],55],[[],55],[[],55],[[68,68],[[21,[51]]]],[[74,74],[[21,[51]]]],[[76,76],[[21,[51]]]],[[78,78],[[21,[51]]]],[[]],[[]],[[]],[[]],[[]],[[]],[19],[[]],[[]],[19],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[19],[73],[75],[77],[79],[[]],[[]],[[]],[[]],[68,56],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[]],[[]],[81,81],[[]],[19,81],[[],81],[11],[11],[12,[[14,[81]]]],[11],[81,19],[[81,81],17],[[],17],[[],17],[[81,22],23],[[]],0,[[],11],[[]],0,0,0,0,[[81,26],14],0,[[]],[[],14],[[],14],[[],27],[[]],0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[[82,[53]]],[[82,[53]]]],[[]],0,[[],[[82,[83]]]],[11],[11],[12,[[14,[[82,[84]]]]]],[11],[[[82,[61]],22],23],[[]],0,0,0,[[[82,[53]],11]],[[[82,[53]],11]],[[],11],[[]],[82,85],0,0,0,0,[[[82,[86]],26],14],[[]],[[],14],[[],14],[[],27],[[]],0,0,0,0,0,0,0,0,0,[[[88,[42,87]],68]],[[[88,[42,87]]]],[[[88,[42,87]],[59,[58]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]],19,19]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[89,89],[[]],[19],[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],[[11,15,87],[[88,[42,87]]]],[15,89],[[[88,[42,87]]]],[[],89],[11],[11],[11],[11],[[[88,[42,87]]]],[[[88,[42,87]]]],[11],[11],[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],[[]],[[]],[[[88,[42,87]],19],11],[[[88,[42,87]],19],7],[[[88,[42,87]],19],11],0,0,[[[88,[42,87]]]],[[],11],[[],11],[[[88,[42,87]]]],0,[[]],[[]],[[[88,[42,87]]]],0,0,0,0,0,0,[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]],60],[[[88,[42,87]]]],[[[88,[42,87]]],60],[[[88,[42,87]]]],0,0,0,0,[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],0,0,[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],0,0,0,0,0,[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]],3,[21,[6]],4],68],[[[88,[42,87]]]],0,[[[88,[42,87]]]],[[[88,[42,87]]]],[[[88,[42,87]]]],[[]],[[],14],[[],14],[[],14],[[],14],[[],27],[[],27],[[[88,[42,87]],11]],[[[88,[42,87]],11]],[[[88,[42,87]]]],[[]],[[]],[[[88,[42,87]],66,60]],[[[88,[42,87]],66,42]],[[[88,[42,87]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[90,90],[[]],[11],[11],[11],[[90,90],17],[[],17],[[],17],[[90,22],23],[[]],[[],11],[[]],[[]],[[],14],[[],14],[[],27],[[]],0,[[[91,[42]],92]],[[[91,[42]]]],[[[91,[42]],[59,[58]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]],19,19]],[[]],[[]],[[]],[[]],[19],0,[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[],[[91,[42]]]],[11],[11],[[[91,[42]]]],[[[91,[42]]]],[11],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[]],[[[91,[42]]],[[8,[[93,[42]]]]]],[[[91,[42]]],[[8,[[59,[[93,[42]],58]]]]]],[[[91,[42]]],[[93,[42]]]],[[[91,[42]]],[[8,[[93,[42]]]]]],[[[91,[42]]]],[[],11],[[[91,[42]]]],[[]],[[[91,[42]]]],[[[91,[42]]]],0,[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],0,0,[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[[91,[42]]]],[[],14],[[],14],[[],27],[[[91,[42]]]],[[]],[[[91,[42]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[92],[[]],[[[59,[58]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[19,19]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[92,92],[94,94],[95,95],[96,96],[97,97],[98,98],[99,99],[100,100],[101,101],[102,102],[103,103],[104,104],[105,105],[106,106],[107,107],[108,108],[109,109],[110,110],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[92,92],51],[[95,95],51],[[97,97],51],[[99,99],51],[[101,101],51],[[103,103],51],[[105,105],51],[[107,107],51],[[109,109],51],[19],[[]],[[]],[[]],[[],95],[[],97],[[],99],[[],101],[[],103],[[],105],[[],107],[[],109],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[[]],[[]],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[[92,92],17],[[95,95],17],[[97,97],17],[[99,99],17],[[101,101],17],[[103,103],17],[[105,105],17],[[107,107],17],[[109,109],17],[[]],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[]],[[]],[[]],[[]],[[92,22],23],[[92,22],23],[[94,22],23],[[95,22],23],[[95,22],23],[[96,22],23],[[97,22],23],[[97,22],23],[[98,22],23],[[99,22],23],[[99,22],23],[[100,22],23],[[101,22],23],[[101,22],23],[[102,22],23],[[103,22],23],[[103,22],23],[[104,22],23],[[105,22],23],[[105,22],23],[[106,22],23],[[107,22],23],[[108,22],23],[[109,22],23],[[109,22],23],[[110,22],23],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[92,52]],[[95,52]],[[97,52]],[[99,52]],[[101,52]],[[103,52]],[[105,52]],[[107,52]],[[109,52]],[[]],[[]],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[]],[[111,92]],[[111,97]],[[111,109]],[[111,95]],[[111,101]],[[111,99]],[[111,107]],[[111,105]],[[111,103]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[92],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],94],[[]],[[],96],[[],98],[[],100],[[],102],[[],104],[[],106],[[],108],[[],110],[[],11],[94,11],[96,11],[98,11],[100,11],[102,11],[104,11],[106,11],[108,11],[110,11],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[94,21],[96,21],[98,21],[100,21],[102,21],[104,21],[106,21],[108,21],[110,21],[94,21],[96,21],[98,21],[100,21],[102,21],[104,21],[106,21],[108,21],[110,21],[[]],[[94,11],21],[[96,11],21],[[98,11],21],[[100,11],21],[[102,11],21],[[104,11],21],[[106,11],21],[[108,11],21],[[110,11],21],[[]],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[92,92],[[21,[51]]]],[[95,95],[[21,[51]]]],[[97,97],[[21,[51]]]],[[99,99],[[21,[51]]]],[[101,101],[[21,[51]]]],[[103,103],[[21,[51]]]],[[105,105],[[21,[51]]]],[[107,107],[[21,[51]]]],[[109,109],[[21,[51]]]],[[]],[[]],[[]],[[]],[[]],[[]],[19],[[]],[19],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[19],[94],[96],[98],[100],[102],[104],[106],[108],[110],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[[112,[53]]],[[112,[53]]]],[[]],0,[[],[[112,[83]]]],[11],[11],[11],[11],[12,[[14,[[112,[84]]]]]],[11],[11],[[[112,[61]],22],23],[[]],[[]],0,0,[[[112,[53]],11]],[[[112,[53]],113]],[[[112,[53]],11]],[[],11],[[],11],[[]],[[]],0,[[[112,[86]],26],14],[[]],[[],14],[[],14],[[],14],[[],14],[[],27],[[],27],[[]],[[]],0,0,0,0,0,0,0,0,[[[114,[42]],92]],[[[114,[42]]]],[[[114,[42]],[59,[58]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]],19,19]],[[]],[[]],[[]],[[]],[19],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[11,15],[[114,[42]]]],[[[114,[42]]]],[11],[11],[[[114,[42]]]],[[[114,[42]]]],[11],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[]],[[[114,[42]],19],11],[[[114,[42]],19],7],[[[114,[42]],19],11],0,[[[114,[42]]]],[[],11],[[[114,[42]]]],0,[[]],[[[114,[42]]]],[[[114,[42]]]],0,0,0,0,[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]],60],[[[114,[42]]]],[[[114,[42]]],60],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],0,0,[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],0,0,0,[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]],92],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[[114,[42]]]],[[],14],[[],14],[[],27],[[[114,[42]],11]],[[[114,[42]],11]],[[[114,[42]]]],[[]],[[[114,[42]],90,60]],[[[114,[42]],90,42]],[[[114,[42]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[116,[115,53]],117,118]],[[[119,[115,53]],117,118]],0,[117,117],[120,120],[[[122,[[0,[53,121]]]]],[[122,[[0,[53,121]]]]]],[[[124,[[0,[53,123]]]]],[[124,[[0,[53,123]]]]]],[[]],[[]],[[]],[[]],[[[116,[115,53]],125,118],63],[[[119,[115,53]],125,118],63],[[[122,[121]],[122,[121]]],[[122,[121]]]],[[[124,[123]],[124,[123]],123],[[124,[123]]]],0,0,0,[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[[117,117],17],[[[124,[[0,[126,123]]]],[124,[[0,[126,123]]]]],17],[[],17],[[],17],[[],17],[[],17],[[117,22],23],[[120,22],23],[[[122,[[0,[61,121]]]],22],23],[[[124,[[0,[61,123]]]],22],23],[[]],[[]],[[]],[70,117],[[]],[[]],[[]],[[[122,[121]]],127],[[[122,[121]]]],[[117,52]],[[[124,[[0,[128,123]]]],52]],[[[122,[121]],117]],[[[124,[129]],56]],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],120],0,[120,11],0,[[[43,[122]],[43,[124]]],[[116,[115,53]]]],[[[43,[122]],[43,[124]]],[[119,[115,53]]]],[120,21],[120,21],0,0,[[120,11],21],[[],55],[[],130],[[[132,[131]]],133],[[[116,[115,53]],118],63],[[[119,[115,53]],118],63],[120],0,0,[[[122,[121]]]],[[]],[[]],[[]],[[]],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,[[]],[[]],[134,134],[[]],[11],[11],[11],[[134,134],17],[[],17],[[],17],[[134,22],23],[[]],[[134,52]],[[135,45]],[[135,56]],[[135,44]],[[],11],[[]],[[]],[[],14],[[],14],[[],27],[[]],0,0,0,0,[[]],[[]],[136,136],[[]],[11],[11],[11],[[136,136],17],[[],17],[[],17],[[136,22],23],[[]],[[136,52]],[[137,56]],[[137,68]],[[137,66]],[[],11],[[]],[[]],[[],14],[[],14],[[],27],[[]],[[138,[139,[58]],[140,[8]]]],0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[[141,[[0,[53,115]]]]],[[141,[[0,[53,115]]]]]],[[[142,[[0,[53,115]]]]],[[142,[[0,[53,115]]]]]],[[]],[[]],0,[11],[11],[11],[11],0,0,[11],[11],[[],[[144,[[8,[143]]]]]],[[[142,[115]]],[[144,[[8,[[143,[115]]]]]]]],[[]],[[]],[[[142,[115]]],17],[[[142,[115]]]],[11],[[],11],[11,[[142,[115]]]],[[],11],[[]],[[]],[[[142,[115]]],17],0,0,0,[11],[[[142,[115]]],11],[[],11],[[[142,[115]]],11],[43,11],[[[142,[115]],43],11],[[],11],[[[142,[115]]],11],[[]],[43],[[[142,[115]],43]],[[[142,[115]]]],[[[142,[115]],11]],[[131,[146,[145]]]],[[[142,[115]],147,131,[146,[145]]]],[[]],[[]],0,[[],14],[[],14],[[],14],[[],14],[[],27],[[],27],[[]],[[]],0,0,0,[[11,44,62],148],[[11,62],149],[148,11],[[148,43],11],[148,11],[149],[[148,43]],0,0,[[11,68,69],150],[[11,69],151],[150,11],[[150,43],11],[150,11],[151],[[150,43]],0,0,0,0,0,0,0,0,0,0,0,0,[[],[[8,[58]]]],[[]],[[]],[58,58],[[]],[[58,58],51],[11],[11],[11],[[58,58],17],[[],17],[[],17],[[58,22],23],[[]],[19,58],[[58,52]],[[],11],[[]],[58,17],[[58,[63,[152]]],[[21,[11]]]],[58,11],[[58,58],[[21,[51]]]],[58,17],[[]],[58,19],[[],14],[[],14],[[],27],[[]],0,0,0,0,0,0,0,0,[[]],[[]],0,[[[153,[123]]],154],0,[11],[11],0,[11],[[]],[[],[[8,[56]]]],[[[153,[123]]],[[155,[123]]]],[[[153,[123]]],[[21,[[132,[123,[131,[123]]]]]]]],[[[153,[123]]],[[156,[123]]]],[[[153,[123]],154],[[131,[123]]]],[[],11],[[]],[[[153,[123]]],123],0,[[],14],[[],14],[[],27],[[[153,[123]]],[[132,[123,[131,[123]]]]]],[[]],0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],0,[11],[11],[11],[11],[11],[11],[11],[11],[11],0,0,[[]],[[]],[[]],[[[157,[43]],56],21],[[],11],[[],11],[[],11],0,[[]],[[]],[[]],[11,[[159,[158]]]],0,0,0,0,0,0,[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],27],[[],27],[[],27],[[]],[[]],[[]],0,0,0,0,[[]],[[]],[160,160],[[]],[11],[11],[11],[[160,22],23],[[160,22],23],[[]],[[],11],[[]],[[138,[161,[158]],[159,[158]],[63,[[72,[[71,[70]],56]]]],[0,[162,163]]],[[14,[[164,[158]],160]]]],[165],[[]],[[],20],[[],14],[[],14],[[],27],[[]],[[138,[63,[[72,[[71,[70]],56]]]],[164,[158]]],17],0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[2,166],[[],21],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[[]],[[]],[[]],[[]],[[[43,[7]]],9],[[166,[43,[7]]],9],[[167,[43,[7]]],9],[10],[[166,10]],[[167,10]],0,0,[[],11],[[],11],[[],11],[[],11],[[]],[[]],[[]],[[]],0,0,0,[166,168],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],27],[[],27],[[],27],[[],27],[[]],[[]],[[]],[[]],0,0,0,0,0,[[]],[[]],[[]],[[]],[169,169],[[[59,[53,[0,[53,170]]]]],[[59,[53,[0,[53,170]]]]]],[[]],[[]],[11],[11],[11],[11],[11],[11],[[169,22],23],[[[59,[[0,[171,42]],170]],22],23],[[[59,[61,[0,[61,170]]]],22],23],[[]],[[]],[[],11],[[],11],[[]],[[]],[[[59,[[0,[53,[172,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],61,175,176]],170]]],[[177,[[0,[53,[172,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],61,175,176]],170]]]],[[169,170,[0,[53,[172,[[0,[53,[172,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],61,175,176]]]],61,175,176]],[63,[[0,[53,[172,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],61,175,176]]]]],[[59,[[0,[53,[172,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],61,175,176]],170]]]],[[[59,[[0,[53,[172,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],61,175,176]],170]]],[[0,[53,[172,[[0,[53,[172,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],61,175,176]]]],61,175,176]]]],[[[0,[53,[172,[[0,[53,[172,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],61,175,176]]]],61,175,176]],170,[8,[[0,[53,[172,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],61,175,176]]]]],[[59,[[0,[53,[172,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],61,175,176]],170]]]],[[170,[8,[[0,[53,[172,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],61,175,176]]]]],[[59,[[0,[53,[172,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],61,175,176]],170]]]],[[]],[[]],[[],20],[[],14],[[],14],[[],14],[[],14],[[],27],[[],27],[[]],[[]],[[[0,[53,[172,[[0,[53,[172,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],61,175,176]]]],61,175,176]],170,[8,[[0,[53,[172,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],61,175,176]]]]],[[59,[[0,[53,[172,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],61,175,176]],170]]]],[[170,[8,[[0,[53,[172,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],61,175,176]]]]],[[59,[[0,[53,[172,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[173,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],[174,[[0,[53,[172,[[0,[53,172,173,174,61,175,176]]]],[173,[[0,[53,172,173,174,61,175,176]]]],[174,[[0,[53,172,173,174,61,175,176]]]],61,175,176]]]],61,175,176]]]],61,175,176]],170]]]],[32,178],[11,20]],"c":[],"p":[[4,"StepFrequency"],[3,"HostProgram"],[3,"VmConfiguration"],[3,"Start"],[3,"Symbol"],[3,"Meta"],[15,"u8"],[3,"Vec"],[3,"Preimage"],[3,"Hint"],[15,"usize"],[8,"Deserializer"],[3,"Page"],[4,"Result"],[3,"State"],[3,"ParsePreimageKeyError"],[15,"bool"],[3,"PreimageKey"],[15,"u32"],[3,"String"],[4,"Option"],[3,"Formatter"],[6,"Result"],[3,"MipsVmConfigurationArgs"],[15,"str"],[8,"Serializer"],[3,"TypeId"],[3,"Command"],[4,"Commands"],[3,"ArgMatches"],[6,"Error"],[3,"RunArgs"],[3,"GenStateJsonArgs"],[4,"Cannon"],[3,"Id"],[8,"EndianParse"],[3,"ElfBytes"],[4,"Architecture"],[3,"Path"],[4,"Error"],[4,"Constraint"],[8,"Field"],[15,"array"],[4,"Steps"],[4,"ColumnAlias"],[3,"StepsIter"],[4,"Sponges"],[3,"SpongesIter"],[4,"Absorbs"],[3,"AbsorbsIter"],[4,"Ordering"],[8,"Hasher"],[8,"Clone"],[6,"KeccakWitness"],[3,"IterBridge"],[4,"Column"],[3,"Env"],[4,"LookupTableIDs"],[3,"RAMLookup"],[15,"u64"],[8,"Debug"],[3,"KeccakEnv"],[15,"slice"],[8,"Interpreter"],[3,"Env"],[4,"ColumnAlias"],[6,"MIPSWitness"],[4,"Instruction"],[3,"Env"],[4,"BerkeleyChallengeTerm"],[6,"ConstantExpr"],[6,"Expr"],[3,"InstructionIter"],[4,"RTypeInstruction"],[3,"RTypeInstructionIter"],[4,"JTypeInstruction"],[3,"JTypeInstructionIter"],[4,"ITypeInstruction"],[3,"ITypeInstructionIter"],[8,"InterpreterEnv"],[3,"InstructionParts"],[3,"Registers"],[8,"Default"],[8,"Deserialize"],[8,"Iterator"],[8,"Serialize"],[8,"PreImageOracleT"],[3,"Env"],[3,"SyscallEnv"],[4,"Column"],[3,"Env"],[4,"Instruction"],[6,"E"],[3,"InstructionIter"],[4,"RInstruction"],[3,"RInstructionIter"],[4,"IInstruction"],[3,"IInstructionIter"],[4,"SInstruction"],[3,"SInstructionIter"],[4,"SBInstruction"],[3,"SBInstructionIter"],[4,"UInstruction"],[3,"UInstructionIter"],[4,"UJInstruction"],[3,"UJInstructionIter"],[4,"SyscallInstruction"],[3,"SyscallInstructionIter"],[4,"MInstruction"],[3,"MInstructionIter"],[8,"InterpreterEnv"],[3,"Registers"],[4,"RegisterAlias"],[3,"Env"],[8,"FoldingConfig"],[3,"DecomposedFoldingEnvironment"],[4,"Challenge"],[4,"Side"],[3,"FoldingEnvironment"],[3,"ChallengeIter"],[8,"CommitmentCurve"],[3,"FoldingInstance"],[8,"FftField"],[3,"FoldingWitness"],[4,"CurrOrNext"],[8,"PartialEq"],[4,"Alphas"],[8,"Hash"],[6,"Fp"],[3,"RelaxedInstance"],[3,"Radix2EvaluationDomain"],[3,"Evaluations"],[3,"RelaxedWitness"],[3,"KeccakConfig"],[6,"KeccakFoldingWitness"],[3,"DecomposableMIPSFoldingConfig"],[6,"MIPSFoldingWitness"],[3,"EvaluationDomains"],[3,"ProofInputs"],[3,"Witness"],[3,"Trace"],[3,"DecomposedTrace"],[4,"FoldingCompatibleExpr"],[3,"BTreeMap"],[6,"Pairing"],[3,"PairingSRS"],[8,"FqSponge"],[6,"KeccakTrace"],[6,"DecomposedKeccakTrace"],[6,"MIPSTrace"],[6,"DecomposedMIPSTrace"],[8,"PrimeField"],[3,"ColumnEnvironment"],[4,"Domain"],[3,"BerkeleyChallenges"],[3,"Constants"],[3,"WitnessColumns"],[8,"KimchiCurve"],[3,"ProofInputs"],[4,"ProverError"],[3,"SRS"],[8,"RngCore"],[8,"CryptoRng"],[3,"Proof"],[3,"Demand"],[3,"PreImageOracle"],[3,"NullPreImageOracle"],[3,"Child"],[4,"LookupMode"],[8,"LookupTableID"],[8,"Display"],[8,"Add"],[8,"Sub"],[8,"Mul"],[8,"One"],[8,"Zero"],[3,"Logup"],[3,"ExitCode"],[8,"BoolHelpers"],[8,"LogupHelpers"],[8,"ArithHelpers"],[8,"KeccakInterpreter"],[8,"Tracer"],[8,"Foldable"],[8,"DecomposableTracer"],[3,"ReadWrite"],[3,"RW"]]},\
"pickles_o1vm":{"doc":"","t":"RFFF","n":["DOMAIN_SIZE","cannon_main","gen_state_json","main"],"q":[[0,"pickles_o1vm"]],"d":["","","",""],"i":[0,0,0,0],"f":[0,[1],[2,[[4,[3]]]],[[],5]],"c":[],"p":[[3,"RunArgs"],[3,"GenStateJsonArgs"],[3,"String"],[4,"Result"],[3,"ExitCode"]]},\
"poly_commitment":{"doc":"","t":"ICIQKKKKKKKAKAKKAAALKKKAKAKDDIIDQQDFLFFMLLLLLLLLALLMLLLLLFLLFMMMLLLLLLLLLLLLLLLLLLMMMMLLLLLLLLLLLLLLLLLLLLLLLKMMLLLLFMFFLKLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLMLLLLLMLNELLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLDDDLLLLLLLAMMLLLLLLLLLLLLLLLLMLLLLLLLLLLLFLLLLLLLLMLLMLLLLLLMMLLLLLLLLMLLLLLLLLLLLLLLLLLMMDLLMLLLLLLLLLMLLMLLLLLMMDDMLLLLLLLLLFLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLMLLLLLLLLLLLMLLLLFNENLLFLLLLLLLLLL","n":["OpenProof","PolyComm","SRS","SRS","blinding_commitment","commit","commit_custom","commit_evaluations","commit_evaluations_custom","commit_evaluations_non_hiding","commit_non_hiding","commitment","create","error","get_lagrange_basis","get_lagrange_basis_from_domain_size","hash_map_cache","ipa","kzg","mask","mask_custom","max_poly_size","open","pbt_srs","size","utils","verify","BatchEvaluationProof","BlindedCommitment","CommitmentCurve","EndoCurve","Evaluation","Map","Params","PolyComm","absorb_commitment","add","b_poly","b_poly_coefficients","blinders","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","caml","chunk_blinding","chunk_commitment","chunks","clone","clone","clone_into","clone_into","combine","combine_commitments","combine_one","combine_one_endo","combined_inner_product","combined_inner_product","commitment","commitment","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize_as","drop","drop","drop","drop","eq","equivalent","equivalent","evalscale","evaluation_points","evaluations","evaluations","fmt","fmt","from","from","from","from","from","from","get_first_chunk","init","init","init","init","into","into","into","into","into_iter","is_empty","len","map","multi_scalar_mul","new","of_coordinates","opening","polyscale","scale","serialize","serialize","serialize_as","shift_scalar","sponge","squeeze_challenge","squeeze_prechallenge","sub","to_coordinates","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","zip","CamlPolyComm","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","fmt","from","from","from","from_value","init","into","into_value","ocaml_binding","ocaml_desc","shifted","to_owned","try_from","try_into","type_id","unique_id","unshifted","vzip","BlindersDontMatch","CommitmentError","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","fmt","fmt","from","init","into","provide","to_owned","to_string","try_from","try_into","type_id","vzip","HashMapCache","borrow","borrow_mut","clone","clone_into","contains_key","default","deref","deref_mut","drop","fmt","from","get_or_generate","init","into","new","new_from_hashmap","to_owned","try_from","try_into","type_id","vzip","Challenges","OpeningProof","SRS","blinding_commitment","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","caml","chal","chal_inv","challenges","clone","clone","clone_into","clone_into","commit","commit_custom","commit_evaluations","commit_evaluations_custom","commit_evaluations_non_hiding","commit_non_hiding","create","create_parallel","create_trusted_setup","default","default","delta","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","deserialize","drop","drop","drop","endos","eq","eq","fmt","fmt","from","from","from","from","g","get_lagrange_basis","get_lagrange_basis_from_domain_size","h","init","init","init","into","into","into","lagrange_bases","lr","mask","mask_custom","max_poly_size","open","open","prechallenges","serialize","serialize","sg","size","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verify","verify","vzip","vzip","vzip","z1","z2","CamlOpeningProof","borrow","borrow_mut","delta","deref","deref_mut","drop","from","from","from_value","init","into","into_value","lr","ocaml_binding","ocaml_desc","sg","try_from","try_into","type_id","unique_id","vzip","z1","z2","KZGProof","PairingSRS","blinding","blinding_commitment","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","combine_evaluations","commit","commit_custom","commit_evaluations","commit_evaluations_custom","commit_evaluations_non_hiding","commit_non_hiding","create","create","create_trusted_setup","default","default","deref","deref","deref_mut","deref_mut","deserialize","deserialize","drop","drop","eq","fmt","fmt","from","from","full_srs","get_lagrange_basis","get_lagrange_basis_from_domain_size","init","init","into","into","mask","mask_custom","max_poly_size","open","quotient","serialize","serialize","size","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","verifier_srs","verify","verify","vzip","vzip","test_regression_commit_non_hiding_expected_number_of_chunks","DensePolynomial","DensePolynomialOrEvaluations","Evaluations","borrow","borrow_mut","combine_polys","deref","deref_mut","drop","from","init","into","try_from","try_into","type_id","vzip"],"q":[[0,"poly_commitment"],[27,"poly_commitment::commitment"],[141,"poly_commitment::commitment::caml"],[167,"poly_commitment::error"],[188,"poly_commitment::hash_map_cache"],[210,"poly_commitment::ipa"],[300,"poly_commitment::ipa::caml"],[324,"poly_commitment::kzg"],[389,"poly_commitment::pbt_srs"],[390,"poly_commitment::utils"]],"d":["","","","","Get the group element used for blinding commitments","Commits a polynomial, potentially splitting the result in …","Commit to a polynomial, with custom blinding factors. It …","Commit to evaluations with blinding factors, generated …","Commit to evaluations with custom blinding factors. It is …","Commit to evaluations, without blinding factors. It is …","This function commits a polynomial using the SRS’ basis …","This module implements Dlog-based polynomial commitment …","Create an SRS of size depth
.","","Compute commitments to the lagrange basis corresponding to …","Same as get_lagrange_basis
but only using the domain size.","","This module contains the implementation of the polynomial …","This module implements the KZG protocol described in the …","Turns a non-hiding polynomial commitment into a hidding …","Same as SRS::mask except that you can pass the blinders …","The maximum polynomial degree that can be committed to","Create an opening proof for a batch of polynomials. The …","This module defines Property-based tests for the SRS trait.","","","Verify the opening proof","Contains the batch evaluation","A commitment to a polynomial with some blinding factors.","A useful trait extending AffineRepr for commitments. …","A trait extending CommitmentCurve for endomorphisms. …","Contains the evaluation of a polynomial commitment at a …","","","Represent a polynomial commitment when the type is …","","","Returns (1 + chal[-1] x)(1 + chal[-2] x^2)(1 + chal[-3] …","","","","","","","","","","","","Multiplies each blinding chunk of f with powers of zeta^n","Multiplies each commitment chunk of f with powers of zeta^n","","","","","","","This function populates the parameters scalars
and points
. …","Combine where x1 = one","Combine where x1 = one","Computes the linearization of the evaluations of a …","","The commitment of the polynomial being evaluated. Note …","","","","","","","","","","","","","","","","","","","","A challenge to aggregate multiple evaluation points.","The actual evaluation points. Each field evaluations
of …","Contains an evaluation table. For instance, for vanilla …","A list of evaluations, each supposed to correspond to a …","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Return only the first chunk Getting this single value is …","","","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","","Returns true
if the commitment is empty.","Returns the number of chunks.","","Performs a multi-scalar multiplication between scalars elm
…","","","The opening proof.","A challenge to combine polynomials. Powers of this point …","","","","","Inside the circuit, we have a specialized scalar …","Sponge used to coin and absorb values and simulate …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self)
.","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self)
.","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self)
.","","","","","","","","Commitment round challenges (endo mapped) and their …","","","","","","","","","","","","","Same as prechallenges
, but maps scalar challenges using the","","","","","","","","","","","","This function creates SRS instance for circuits with …","This function creates a trusted-setup SRS instance for …","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","The vector of group elements for committing to polynomials …","","","A group element used for blinding commitments","","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Commitments to Lagrange bases, per domain size","Vector of rounds of L & R commitments","Turns a non-hiding polynomial commitment into a hidding …","","The maximum polynomial degree that can be committed to","","","Computes a log-sized vector of scalar challenges for …","","","A final folded commitment base","","","","","","","","","","","","","This function verifies a batch of polynomial commitment …","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self)
.","","vector of rounds of L & R commitments","","","","","","","","","","","","Define a structured reference string (i.e. SRS) for the …","A blinding factor used to hide the polynomial, if necessary","","","","","","","","","","Combine the (chunked) evaluations of multiple polynomials. …","","","","","","","Create a KZG proof. Parameters:","","Create a trusted setup for the KZG protocol. The setup is …","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","The full SRS is the one used by the prover. Can be seen as …","","","","","Calls U::from(self)
.","Calls U::from(self)
.","","","","Parameters:","","","","","","","","","","","","","SRS to be used by the verifier. Can be seen as the “…","Verify a proof. Note that it only works for two elements …","","","","","Polynomial represented by its coefficients","Represent a polynomial either with its coefficients or its …","Polynomial represented by its evaluations over a domain D","","","Combine the polynomials using a scalar (polyscale
), …","","","","Returns the argument unchanged.","","Calls U::from(self)
.","","","",""],"i":[0,0,0,64,65,65,65,65,65,65,65,0,65,0,65,65,0,0,0,65,65,65,64,0,65,0,64,0,0,0,0,0,20,20,0,0,6,0,0,5,21,15,6,5,21,15,6,5,0,6,6,6,6,5,6,5,60,0,60,60,0,15,21,5,21,15,6,5,21,15,6,5,6,5,6,21,15,6,5,6,6,6,15,15,21,15,6,5,21,15,6,6,6,5,6,21,15,6,5,21,15,6,5,6,6,6,6,6,6,20,15,15,6,6,5,6,0,15,0,0,6,20,6,5,21,15,6,5,21,15,6,5,21,15,6,5,21,15,6,5,6,0,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,7,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,0,0,0,55,57,55,56,57,55,56,0,57,57,56,55,56,55,56,55,55,55,55,55,55,55,55,55,55,56,56,57,55,56,57,55,56,55,56,57,55,56,0,55,56,55,56,57,55,56,56,55,55,55,55,57,55,56,57,55,56,55,56,55,55,55,55,56,56,55,56,56,55,55,56,57,55,56,57,55,56,57,55,56,55,56,57,55,56,56,56,0,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,0,0,63,62,63,62,63,62,63,62,63,62,0,62,62,62,62,62,62,63,62,62,63,62,63,62,63,62,63,62,63,62,62,63,62,63,62,62,62,62,63,62,63,62,62,62,62,63,63,63,62,62,63,62,63,62,63,62,63,62,62,63,63,63,62,0,66,0,66,66,66,0,66,66,66,66,66,66,66,66,66,66],"f":[0,0,0,0,[[]],[[1,2,[0,[3,4]]],5],[[1,2,6],[[8,[5,7]]]],[[9,[10,[9]],[0,[3,4]]],5],[[9,[10,[9]],6],[[8,[5,7]]]],[[9,[10,[9]]],6],[[1,2],6],0,[2],0,[9,[[11,[6]]]],[2,[[11,[6]]]],0,0,0,[[6,[0,[3,4]]],5],[[6,6],[[8,[5,7]]]],[[],2],[[12,12,[0,[13,14]],[0,[3,4]]]],0,[[],2],0,[[[12,[[15,[14]]]],[0,[3,4]]],16],0,0,0,0,0,0,0,0,[[[14,[17,13,18]],[6,[13]]]],[[[6,[19]],[6,[19]]],[[6,[19]]]],[[[12,[17]],17],17],[[[12,[17]]],[[11,[17]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[[6,[17]],17],17],[[[6,[20]]],[[6,[20]]]],0,[[[6,[13]]],[[6,[13]]]],[[[5,[[0,[20,13]]]]],[[5,[[0,[20,13]]]]]],[[]],[[]],[[12,12],11],[[[12,[[21,[20]]]],11,[11,[20]]]],[[12,12],11],[[12,12,22],11],[[18,18,[12,[[11,[[11,[18]]]]]]],18],0,0,0,[2],[2],[2],[2],[2],[2],[2],[2],[23,[[8,[[6,[[0,[24,25]]]]]]]],[23,[[8,[[5,[[0,[20,26]]]]]]]],[23,[[8,[6]]]],[2],[2],[2],[2],[[[6,[27]],[6,[27]]],16],[[],16],[[],16],0,0,0,0,[[[6,[28]],29],30],[[[5,[[0,[20,28]]]],29],30],[[]],[[]],[31,[[6,[[0,[19,32]]]]]],[[]],[31,[[6,[[0,[19,32,32]]]]]],[[]],[[[6,[[0,[33,13,24,25]]]]],[[0,[33,13,24,25]]]],[[],2],[[],2],[[],2],[[],2],[[]],[[]],[[]],[[]],[6],[[[6,[[0,[33,13,24,25]]]]],16],[[[6,[[0,[33,13,24,25]]]]],2],[[[6,[[0,[33,13,24,25]]]],34],[[6,[[0,[24,25]]]]]],[[[12,[[6,[19]]]],12],[[6,[19]]]],[11,6],[[]],0,0,[[[6,[19]]],[[6,[19]]]],[[[6,[[0,[24,25]]]],35],8],[[[5,[[0,[20,36]]]],35],8],[[6,35],8],[[]],0,[[18,[14,[17,18]]],18],[[[14,[17,17]]],[[22,[17]]]],[[[6,[[0,[19,37]]]],[6,[[0,[19,37]]]]],[[6,[[0,[19,37]]]]]],[[],38],[[]],[[]],[[],8],[[],8],[[],8],[[],8],[[],8],[[],8],[[],8],[[],8],[[],39],[[],39],[[],39],[[],39],[[]],[[]],[[]],[[]],[[[6,[[0,[33,13,24,25]]]],[6,[[0,[33,24,25]]]]],[[38,[6]]]],0,[[]],[[]],[[[31,[13]]],[[31,[13]]]],[[]],[2],[2],[2],[[[31,[28]],29],30],[[[6,[19]]],[[31,[[32,[19]]]]]],[[[6,[19]]],[[31,[[0,[[32,[19]],[32,[19]]]]]]]],[[]],[40,[[31,[41]]]],[[],2],[[]],[[[31,[42]],43],40],[[44,[38,[45]],16],46],[[44,[12,[45]]],46],0,[[]],[[],8],[[],8],[[],39],[[],47],0,[[]],0,0,[[]],[[]],[7,7],[[]],[2],[2],[2],[[7,29],30],[[7,29],30],[[]],[[],2],[[]],[48],[[]],[[],46],[[],8],[[],8],[[],39],[[]],0,[[]],[[]],[[[50,[[0,[13,49]],13]]],[[50,[[0,[13,49]],13]]]],[[]],[[[50,[[0,[49,51]]]],[0,[49,51]]],16],[[],[[50,[[0,[52,49]],52]]]],[2],[2],[2],[[[50,[[0,[28,49]],28]],29],30],[[]],[[[50,[[0,[49,51]]]],[0,[49,51]],53]],[[],2],[[]],[[],[[50,[[0,[49,51]]]]]],[[[54,[[0,[49,51]]]]],[[50,[[0,[49,51]]]]]],[[]],[[],8],[[],8],[[],39],[[]],0,0,0,[[[55,[20]]],20],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,[[[56,[19]],[14,[19]]],57],[[[55,[13]]],[[55,[13]]]],[[[56,[[0,[13,19]]]]],[[56,[[0,[13,19]]]]]],[[]],[[]],[[[55,[20]],1,2,[0,[3,4]]],[[5,[20]]]],[[[55,[20]],1,2,6],[[8,[[5,[20]],7]]]],[[[55,[20]],9,[10,[9]],[0,[3,4]]],[[5,[20]]]],[[[55,[20]],9,[10,[9]],6],[[8,[[5,[20]],7]]]],[[[55,[20]],9,[10,[9]]],[[6,[20]]]],[[[55,[20]],1,2],[[6,[20]]]],[2,[[55,[20]]]],[2,[[55,[20]]]],[2,[[55,[20]]]],[[],[[55,[52]]]],[[],[[56,[[0,[52,19]]]]]],0,[2],[2],[2],[2],[2],[2],[23,[[8,[[55,[[0,[24,25]]]]]]]],[23,[[8,[[56,[[0,[24,25,19]]]]]]]],[2],[2],[2],[[]],[[[55,[27]],[55,[27]]],16],[[[56,[[0,[27,19]]]],[56,[[0,[27,19]]]]],16],[[[55,[28]],29],30],[[[56,[[0,[28,19]]]],29],30],[[]],[[]],[[]],[[[59,[[58,[19]],58]]],[[56,[19]]]],0,[[[55,[20]],9],[[11,[[6,[20]]]]]],[[[55,[20]],2],[[11,[[6,[20]]]]]],0,[[],2],[[],2],[[],2],[[]],[[]],[[]],0,0,[[[55,[20]],[6,[20]],[0,[3,4]]],[[5,[20]]]],[[[55,[20]],[6,[20]],6],[[8,[[5,[20]],7]]]],[[[55,[20]]],2],[[[55,[60,20]],12,12,[0,[13,[14,[60,20]]]],[0,[3,4]]],[[56,[60,20]]]],[[12,12,[0,[13,[14,[[0,[19,20,60]]]]]],[0,[3,4]]],[[56,[[0,[19,20,60]]]]]],[[[56,[19]],[14,[19]]],[[11,[22]]]],[[[55,[[0,[24,25]]]],35],8],[[[56,[[0,[24,25,19]]]],35],8],0,[[[55,[20]]],2],[[]],[[]],[[],8],[[],8],[[],8],[[],8],[[],8],[[],8],[[],39],[[],39],[[],39],[[[55,[20]],[12,[[15,[20,[14,[20]],[56,[20]]]]]],[0,[3,4]]],16],[[[12,[[15,[[0,[19,20,60]],[14,[[0,[19,20,60]]]],[56,[[0,[19,20,60]]]]]]]],[0,[3,4]]],16],[[]],[[]],[[]],0,0,0,[[]],[[]],0,[2],[2],[2],[[[56,[19]]],[[59,[[32,[19]],32]]]],[[]],[40,[[59,[41,41]]]],[[],2],[[]],[[[59,[42,42]],43],40],0,[[44,[38,[45]],16],46],[[44,[12,[45]]],46],0,[[],8],[[],8],[[],39],[[],47],[[]],0,0,0,0,0,[[[62,[61]]],20],[[]],[[]],[[]],[[]],[[[63,[61]]],[[63,[61]]]],[[[62,[61]]],[[62,[61]]]],[[]],[[]],[[[11,[[21,[20]]]]],11],[[[62,[61]],[1,[18]],2,[0,[3,4]]],[[5,[20]]]],[[[62,[61]],1,2,6],[[8,[[5,[20]],7]]]],[[[62,[61]],9,[10,[9]],[0,[3,4]]],[[5,[20]]]],[[[62,[61]],9,[10,[9]],6],[[8,[[5,[20]],7]]]],[[[62,[61]],9,[10,[9]]],[[6,[20]]]],[[[62,[61]],1,2],[[6,[20]]]],[[[62,[61]],12,[12,[18]],18],[[38,[[63,[61]]]]]],[2,[[62,[61]]]],[[18,2],[[62,[61]]]],[[],[[63,[61]]]],[[],[[62,[61]]]],[2],[2],[2],[2],[23,[[8,[[63,[61]]]]]],[23,[[8,[[62,[61]]]]]],[2],[2],[[[62,[[0,[27,61]]]],[62,[[0,[27,61]]]]],16],[[[63,[[0,[28,61]]]],29],30],[[[62,[[0,[28,61]]]],29],30],[[]],[[]],0,[[[62,[61]],9],[[11,[[6,[20]]]]]],[[[62,[61]],2],[[11,[[6,[20]]]]]],[[],2],[[],2],[[]],[[]],[[[62,[61]],[6,[20]],[0,[3,4]]],[[5,[20]]]],[[[62,[61]],[6,[20]],6],[[8,[[5,[20]],7]]]],[[[62,[61]]],2],[[12,12,[0,[13,[14,[20,18]]]],[0,[3,4]]],[[63,[61]]]],0,[[[63,[61]],35],8],[[[62,[61]],35],8],[[[62,[61]]],2],[[]],[[]],[[],8],[[],8],[[],8],[[],8],[[],39],[[],39],0,[[[63,[61]],[62,[61]],[11,[[21,[20]]]],18,[12,[18]]],16],[[[12,[[15,[20,[14,[20,18]],[63,[61]]]]]],[0,[3,4]]],16],[[]],[[]],[[]],0,0,0,[[]],[[]],[[12,2]],[2],[2],[2],[[]],[[],2],[[]],[[],8],[[],8],[[],39],[[]]],"c":[],"p":[[3,"DensePolynomial"],[15,"usize"],[8,"RngCore"],[8,"CryptoRng"],[3,"BlindedCommitment"],[3,"PolyComm"],[4,"CommitmentError"],[4,"Result"],[3,"Radix2EvaluationDomain"],[3,"Evaluations"],[3,"Vec"],[15,"slice"],[8,"Clone"],[8,"FqSponge"],[3,"BatchEvaluationProof"],[15,"bool"],[8,"Field"],[8,"PrimeField"],[8,"AffineRepr"],[8,"CommitmentCurve"],[3,"Evaluation"],[3,"ScalarChallenge"],[8,"Deserializer"],[8,"CanonicalDeserialize"],[8,"CanonicalSerialize"],[8,"Deserialize"],[8,"PartialEq"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[3,"CamlPolyComm"],[8,"From"],[8,"Copy"],[8,"FnMut"],[8,"Serializer"],[8,"Serialize"],[8,"Sub"],[4,"Option"],[3,"TypeId"],[4,"Value"],[8,"FromValue"],[8,"IntoValue"],[3,"OCamlRuntime"],[3,"Env"],[15,"str"],[3,"String"],[15,"u128"],[3,"Demand"],[8,"Hash"],[3,"HashMapCache"],[8,"Eq"],[8,"Default"],[8,"FnOnce"],[3,"HashMap"],[3,"SRS"],[3,"OpeningProof"],[3,"Challenges"],[8,"Into"],[3,"CamlOpeningProof"],[8,"EndoCurve"],[8,"Pairing"],[3,"PairingSRS"],[3,"KZGProof"],[8,"OpenProof"],[8,"SRS"],[4,"DensePolynomialOrEvaluations"]]},\
"turshi":{"doc":"This module contains the code that executes a compiled …","t":"CCCCCCAAAAARRRRRRRRRRRRRRRRRRRRRRRRRIKKKKDLLLLLLLLLLLLLLLLLLLLLLDDDDDILLLKLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMKLLLLLLLLMLLLLLLLLLLLLMMLLLLMLLLLLLKLLLLLLLLLMLLLLMLLLLLLLLLLLLLLLMLLLLLDIIIKLFLLLLLLLKLKLKLKLKLKLKLKLKLKLKLKLKLKLKLKLKLLLLLKLKLKLKLKLKLKLKLLLLLLL","n":["CairoInstruction","CairoMemory","CairoProgram","FlagBits","Offsets","Pointers","flags","helper","memory","runner","word","AP_ADD","AP_ONE","AP_Z2","DST_AP","NUM_FLAGS","OP0_AP","OP1_AP","OP1_DBL","OP1_FP","OP1_VAL","OPC_AEQ","OPC_CALL","OPC_JMP_INC","OPC_RET","PC_ABS","PC_JNZ","PC_REL","PC_SIZ","POS_DST","POS_FLAGS","POS_OP0","POS_OP1","RES_ADD","RES_MUL","RES_ONE","CairoFieldHelpers","lsb","to_hex_be","to_u64","u16_chunk","CairoMemory","borrow","borrow_mut","deref","deref_mut","drop","fmt","from","get_codelen","index","index_mut","init","into","is_empty","len","new","read","to_string","try_from","try_into","type_id","vzip","write","CairoContext","CairoInstruction","CairoProgram","CairoState","CairoStep","Pointers","adr_dst","adr_op0","adr_op1","ap","ap","ap","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","curr","default","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","dst","execute","f15","f_ap_add","f_ap_one","f_dst_fp","f_op0_fp","f_op1_ap","f_op1_fp","f_op1_val","f_opc_aeq","f_opc_call","f_opc_ret","f_pc_abs","f_pc_jnz","f_pc_rel","f_res_add","f_res_mul","fin","fin","fp","fp","fp","from","from","from","from","from","ini","ini","init","init","init","init","init","instr","instr","into","into","into","into","into","mem","mem","new","new","new","new","next","next_pc","off_dst","off_op0","off_op1","op0","op1","pc","pc","pc","res","set_dst","set_op0","set_op1","set_res","size","steps","steps","to_owned","to_owned","to_owned","trace","trace","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vars","vzip","vzip","vzip","vzip","vzip","CairoWord","FlagBits","FlagSets","Offsets","ap_up","ap_up","bias","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","dst_reg","dst_reg","f15","f15","f_ap_add","f_ap_add","f_ap_one","f_ap_one","f_dst_fp","f_dst_fp","f_op0_fp","f_op0_fp","f_op1_ap","f_op1_ap","f_op1_fp","f_op1_fp","f_op1_val","f_op1_val","f_opc_aeq","f_opc_aeq","f_opc_call","f_opc_call","f_opc_ret","f_opc_ret","f_pc_abs","f_pc_abs","f_pc_jnz","f_pc_jnz","f_pc_rel","f_pc_rel","f_res_add","f_res_add","f_res_mul","f_res_mul","from","init","into","new","off_dst","off_dst","off_op0","off_op0","off_op1","off_op1","op0_reg","op0_reg","op1_src","op1_src","opcode","opcode","pc_up","pc_up","res_log","res_log","to_owned","try_from","try_into","type_id","vzip","word"],"q":[[0,"turshi"],[11,"turshi::flags"],[36,"turshi::helper"],[41,"turshi::memory"],[64,"turshi::runner"],[201,"turshi::word"]],"d":["","","","","","","Definition of some constants for easier readability of the …","This module includes some field helpers that are useful …","This module represents the Cairo memory, containing the …","This module represents a run of a Cairo program as a …","The Cairo language works natively for field elements in …","Update ap by adding a number of positions","Update ap by self increment","Update by 2 in call instructions or zero behaviour for …","Destination refers to ap register","Number of Cairo flags","First operand refers to ap register","Second operand refers to ap register","Second operand is double indexing","Second operand refers to fp register","Second operand is immediate value","Operation code is an assert-equal","Operation code is a call","Operation code is a jump or an increment","Operation code is a return","Update pc by an absolute jump","Update pc by a conditional relative jump","Update pc by a relative jump","Default increase of pc by adding instruction size","Position of destination offset of 16 bits within …","Bit position of the beginning of the flags in a Cairo …","Position of first operand offset of 16 bits within …","Position of second operand offset of 16 bits within …","Result is an addition","Result is a multiplication","Result is a single operand","Field element helpers for Cairo","Return field element as byte, if it fits. Otherwise …","Return a field element in hexadecimal in big endian","Return first 64 bits of the field element","Return pos
-th 16-bit chunk as another field element","This data structure stores the memory of the program","","","","","","","Returns the argument unchanged.","Get size of the public memory","","","","Calls U::from(self)
.","Returns whether the memory is empty (either length 0, or …","Get size of the full memory including dummy 0th entry","Create a new memory structure from a vector of field …","Read element in memory address","","","","","","Write u64 element in memory address","A structure to store auxiliary variables throughout …","This structure stores all the needed information relative …","This struct stores the needed information to run a program","A structure to store program counter, allocation pointer …","A data structure to store a current step of Cairo …","This trait contains functions to obtain the Cairo pointers …","Returns the destination address of the instruction","Returns the first operand address of the instruction","Returns the second operand address of the instruction","Returns the allocation pointer","","","","","","","","","","","","","","","","","","","current pointers","This function creates an instance of a default CairoContext…","","","","","","","","","","","","","","","","Returns the destination of the instruction","Executes a Cairo step from the current registers","","","","","","","","","","","","","","","","","Outputs the final value of the pointers after the …","final computation pointers","Returns the frame pointer","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Outputs the initial value of the pointers after the …","initial computation registers","","","","","","This function returns the current word instruction being …","Returns the field element corresponding to the …","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","state of the computation","full execution memory","Creates a new Cairo execution step from a step index, a …","Creates a Cairo execution from the public information …","Creates a new triple of pointers","Creates a CairoInstruction","(if any) next pointers","This function computes the next program counter Panics if …","","","","Returns the first operand of the instruction","Returns the second operand of the instruction","Returns the program counter","","","Returns the result of the instruction","This function computes the destination address","This function computes the first operand address","This function computes the second operand address and …","This function computes the value of the result of the …","Returns the size of the instruction","Outputs the total number of steps of the execution carried …","total number of steps","","","","Returns a reference to the set of instructions","execution trace as a vector of CairoInstruction","","","","","","","","","","","","","","","","state auxiliary variables","","","","","","A Cairo word for the runner. Some words are instructions …","This trait contains methods that decompose a field element …","This trait contains methods that decompose a field element …","This trait contains methods to obtain the offset …","Returns flagset for allocation pointer update","","Returns an offset of 16 bits to its biased representation …","","","","","","","","Returns flagset for destination register","","Returns bit-flag for 16th position","","Returns bit-flag for allocation counter update being a …","","Returns bit-flag for allocation counter update being a …","","Returns bit-flag for destination register as F
","","Returns bit-flag for first operand register as F
","","Returns bit-flag for allocation pointer for second …","","Returns bit-flag for frame pointer for second register as F
","","Returns bit-flag for immediate value for second register …","","Returns bit-flag for operation being an assert-equal as F
","","Returns bit-flag for operation being a call as F
","","Returns bit-flag for operation being a return as F
","","Returns bit-flag for program counter update being absolute …","","Returns bit-flag for program counter update being …","","Returns bit-flag for program counter update being relative …","","Returns bit-flag for addition operation in right side as F
","","Returns bit-flag for multiplication operation in right …","","Returns the argument unchanged.","","Calls U::from(self)
.","Creates a CairoWord from a field element","Returns the destination offset in biased representation","","Returns the first operand offset in biased representation","","Returns the second operand offset in biased representation","","Returns flagset for first operand register","","Returns flagset for second operand register","","Returns flagset for operation code","","Returns flagset for program counter update","","Returns flagset for result logics","","","","","","","Returns the content of the word as a field element"],"i":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,21,21,21,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,0,14,14,14,22,15,14,18,19,15,17,14,18,19,15,17,14,15,17,14,15,17,14,18,17,18,19,15,17,14,18,19,15,17,14,18,19,15,17,14,14,18,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,19,19,22,15,14,18,19,15,17,14,19,19,18,19,15,17,14,18,14,18,19,15,17,14,18,19,18,19,15,14,18,18,14,14,14,14,14,22,15,14,14,18,18,18,18,14,19,19,15,17,14,19,19,18,19,15,17,14,18,19,15,17,14,18,19,15,17,14,18,18,19,15,17,14,0,0,0,0,23,20,0,20,20,20,20,20,20,20,23,20,24,20,24,20,24,20,24,20,24,20,24,20,24,20,24,20,24,20,24,20,24,20,24,20,24,20,24,20,24,20,24,20,20,20,20,20,25,20,25,20,25,20,23,20,23,20,23,20,23,20,23,20,20,20,20,20,20,20],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],1],[[],2],[[],3],[4],0,[[]],[[]],[4],[4],[4],[[[6,[5]],7],8],[[]],[[[6,[5]]],4],[[[6,[5]],5]],[[[6,[5]],5]],[[],4],[[]],[[[6,[5]]],9],[[[6,[5]]],3],[[[10,[5]]],[[6,[5]]]],[[[6,[5]],5],[[11,[5]]]],[[],2],[[],12],[[],12],[[],13],[[]],[[[6,[5]],5,5]],0,0,0,0,0,0,[[[14,[5]]],5],[[[14,[5]]],5],[[[14,[5]]],5],[[]],[[[15,[5]]],5],[[[14,[5]]],5],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[15,[16]]],[[15,[16]]]],[[[17,[16]]],[[17,[16]]]],[[[14,[16]]],[[14,[16]]]],[[]],[[]],[[]],0,[[],[[17,[5]]]],[4],[4],[4],[4],[4],[4],[4],[4],[4],[4],[4],[4],[4],[4],[4],[[[14,[5]]],5],[[[18,[5]]],[[14,[5]]]],[[[14,[5]]],5],[[[14,[5]]],5],[[[14,[5]]],5],[[[14,[5]]],5],[[[14,[5]]],5],[[[14,[5]]],5],[[[14,[5]]],5],[[[14,[5]]],5],[[[14,[5]]],5],[[[14,[5]]],5],[[[14,[5]]],5],[[[14,[5]]],5],[[[14,[5]]],5],[[[14,[5]]],5],[[[14,[5]]],5],[[[14,[5]]],5],[[[19,[5]]],[[15,[5]]]],0,[[]],[[[15,[5]]],5],[[[14,[5]]],5],[[]],[[]],[[]],[[]],[[]],[[[19,[5]]],[[15,[5]]]],0,[[],4],[[],4],[[],4],[[],4],[[],4],[[[18,[5]]],[[20,[5]]]],[[[14,[5]]],5],[[]],[[]],[[]],[[]],[[]],0,0,[[[6,[5]],[15,[5]]],[[18,[5]]]],[[[6,[5]],3],[[19,[5]]]],[[5,5,5],[[15,[5]]]],[[[20,[5]],[15,[5]],[17,[5]]],[[14,[5]]]],0,[[[18,[5]]],[[11,[5]]]],[[[14,[5]]],5],[[[14,[5]]],5],[[[14,[5]]],5],[[[14,[5]]],5],[[[14,[5]]],5],[[]],[[[15,[5]]],5],[[[14,[5]]],5],[[[14,[5]]],5],[[[18,[5]]]],[[[18,[5]]]],[[[18,[5]]]],[[[18,[5]]]],[[[14,[5]]],5],[[[19,[5]]],5],0,[[]],[[]],[[]],[[[19,[5]]],[[10,[[14,[5]]]]]],0,[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],13],[[],13],[[],13],[[],13],[[],13],0,[[]],[[]],[[]],[[]],[[]],0,0,0,0,[[],1],[[[20,[5]]],1],[5,5],[[]],[[]],[[[20,[16]]],[[20,[16]]]],[[]],[4],[4],[4],[[],1],[[[20,[5]]],1],[[]],[[[20,[5]]],5],[[]],[[[20,[5]]],5],[[]],[[[20,[5]]],5],[[]],[[[20,[5]]],5],[[]],[[[20,[5]]],5],[[]],[[[20,[5]]],5],[[]],[[[20,[5]]],5],[[]],[[[20,[5]]],5],[[]],[[[20,[5]]],5],[[]],[[[20,[5]]],5],[[]],[[[20,[5]]],5],[[]],[[[20,[5]]],5],[[]],[[[20,[5]]],5],[[]],[[[20,[5]]],5],[[]],[[[20,[5]]],5],[[]],[[[20,[5]]],5],[[]],[[],4],[[]],[5,[[20,[5]]]],[[]],[[[20,[5]]],5],[[]],[[[20,[5]]],5],[[]],[[[20,[5]]],5],[[],1],[[[20,[5]]],1],[[],1],[[[20,[5]]],1],[[],1],[[[20,[5]]],1],[[],1],[[[20,[5]]],1],[[],1],[[[20,[5]]],1],[[]],[[],12],[[],12],[[],13],[[]],[[[20,[5]]],5]],"c":[],"p":[[15,"u8"],[3,"String"],[15,"u64"],[15,"usize"],[8,"Field"],[3,"CairoMemory"],[3,"Formatter"],[6,"Result"],[15,"bool"],[3,"Vec"],[4,"Option"],[4,"Result"],[3,"TypeId"],[3,"CairoInstruction"],[3,"CairoState"],[8,"Clone"],[3,"CairoContext"],[3,"CairoStep"],[3,"CairoProgram"],[3,"CairoWord"],[8,"CairoFieldHelpers"],[8,"Pointers"],[8,"FlagSets"],[8,"FlagBits"],[8,"Offsets"]]}\
diff --git a/rustdoc/settings.html b/rustdoc/settings.html
index 9718890d0b..78856e0fed 100644
--- a/rustdoc/settings.html
+++ b/rustdoc/settings.html
@@ -1 +1 @@
-Rustdoc settings Rustdoc settings
Back
\ No newline at end of file
+Rustdoc settings Rustdoc settings
Back
\ No newline at end of file
diff --git a/rustdoc/src/legacy_o1vm/main.rs.html b/rustdoc/src/legacy_o1vm/main.rs.html
index b6b85a65f6..61e0145030 100644
--- a/rustdoc/src/legacy_o1vm/main.rs.html
+++ b/rustdoc/src/legacy_o1vm/main.rs.html
@@ -348,6 +348,22 @@
348
349
350
+351
+352
+353
+354
+355
+356
+357
+358
+359
+360
+361
+362
+363
+364
+365
+366
use ark_ff::UniformRand;
use clap::Parser;
use folding::decomposable_folding::DecomposableFoldingScheme;
@@ -379,7 +395,7 @@
BaseSponge, Fp, OpeningProof, ScalarSponge,
},
lookups::LookupTableIDs,
- preimage_oracle::PreImageOracle,
+ preimage_oracle::{NullPreImageOracle, PreImageOracle, PreImageOracleT},
test_preimage_read,
};
use poly_commitment::SRS as _;
@@ -409,9 +425,6 @@
.unwrap_or_else(|_| panic!("Error deserializing metadata file {}", f))
});
- let mut po = PreImageOracle::create(&configuration.host);
- let _child = po.start();
-
// Initialize some data used for statistical computations
let start = Start::create(state.step as usize);
@@ -428,8 +441,27 @@
// Initialize the environments
// The Keccak environment is extracted inside the loop
- let mut mips_wit_env =
- mips_witness::Env::<Fp, PreImageOracle>::create(cannon::PAGE_SIZE as usize, state, po);
+ let mut mips_wit_env = match configuration.host.clone() {
+ Some(host) => {
+ let mut po = PreImageOracle::create(host);
+ let _child = po.start();
+ mips_witness::Env::<Fp, Box<dyn PreImageOracleT>>::create(
+ cannon::PAGE_SIZE as usize,
+ state,
+ Box::new(po),
+ )
+ }
+ None => {
+ debug!("No preimage oracle provided 🤞");
+ // warning: the null preimage oracle has no data and will crash the program if used
+ mips_witness::Env::<Fp, Box<dyn PreImageOracleT>>::create(
+ cannon::PAGE_SIZE as usize,
+ state,
+ Box::new(NullPreImageOracle),
+ )
+ }
+ };
+
let mut mips_con_env = mips_constraints::Env::<Fp>::default();
// The keccak environment is extracted inside the loop
diff --git a/rustdoc/src/o1vm/preimage_oracle.rs.html b/rustdoc/src/o1vm/preimage_oracle.rs.html
index d74f326f8c..4b549fdf73 100644
--- a/rustdoc/src/o1vm/preimage_oracle.rs.html
+++ b/rustdoc/src/o1vm/preimage_oracle.rs.html
@@ -300,6 +300,26 @@
300
301
302
+303
+304
+305
+306
+307
+308
+309
+310
+311
+312
+313
+314
+315
+316
+317
+318
+319
+320
+321
+322
use crate::cannon::{
Hint, HostProgram, Preimage, HINT_CLIENT_READ_FD, HINT_CLIENT_WRITE_FD,
PREIMAGE_CLIENT_READ_FD, PREIMAGE_CLIENT_WRITE_FD,
@@ -408,9 +428,7 @@
}
impl PreImageOracle {
- pub fn create(hp_opt: &Option<HostProgram>) -> PreImageOracle {
- let host_program = hp_opt.as_ref().expect("No host program given");
-
+ pub fn create(host_program: HostProgram) -> PreImageOracle {
let mut cmd = Command::new(&host_program.name);
cmd.args(&host_program.arguments);
@@ -459,6 +477,18 @@
}
}
+pub struct NullPreImageOracle;
+
+impl PreImageOracleT for NullPreImageOracle {
+ fn get_preimage(&mut self, _key: [u8; 32]) -> Preimage {
+ panic!("No preimage oracle specified for preimage retrieval");
+ }
+
+ fn hint(&mut self, _hint: Hint) {
+ panic!("No preimage oracle specified for hints");
+ }
+}
+
impl PreImageOracleT for PreImageOracle {
// The preimage protocol goes as follows
// 1. Ask for data through a key
@@ -526,6 +556,16 @@
}
}
+impl PreImageOracleT for Box<dyn PreImageOracleT> {
+ fn get_preimage(&mut self, key: [u8; 32]) -> Preimage {
+ self.as_mut().get_preimage(key)
+ }
+
+ fn hint(&mut self, hint: Hint) {
+ self.as_mut().hint(hint)
+ }
+}
+
#[cfg(test)]
mod tests {
use super::*;
diff --git a/rustdoc/src/o1vm/test_preimage_read.rs.html b/rustdoc/src/o1vm/test_preimage_read.rs.html
index ed3e7f4778..78912749b6 100644
--- a/rustdoc/src/o1vm/test_preimage_read.rs.html
+++ b/rustdoc/src/o1vm/test_preimage_read.rs.html
@@ -74,6 +74,7 @@
74
75
76
+77
use crate::{
cannon::{PreimageKey, VmConfiguration},
cli,
@@ -94,7 +95,8 @@
let preimage_db_dir = args.preimage_db_dir;
if let Some(preimage_key_dir) = preimage_db_dir {
- let mut po = PreImageOracle::create(&configuration.host);
+ let host_program = configuration.host.expect("No host program specified");
+ let mut po = PreImageOracle::create(host_program);
let _child = po.start();
debug!("Let server start");
std::thread::sleep(std::time::Duration::from_secs(5));
diff --git a/rustdoc/src/pickles_o1vm/main.rs.html b/rustdoc/src/pickles_o1vm/main.rs.html
index d970da76ff..fdb4bda473 100644
--- a/rustdoc/src/pickles_o1vm/main.rs.html
+++ b/rustdoc/src/pickles_o1vm/main.rs.html
@@ -153,6 +153,21 @@
153
154
155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
use ark_ff::UniformRand;
use clap::Parser;
use kimchi::circuits::domains::EvaluationDomains;
@@ -172,7 +187,7 @@
Instruction,
},
pickles::{proof::ProofInputs, prover, verifier},
- preimage_oracle::PreImageOracle,
+ preimage_oracle::{NullPreImageOracle, PreImageOracle, PreImageOracleT},
test_preimage_read,
};
use poly_commitment::{ipa::SRS, SRS as _};
@@ -199,9 +214,6 @@
.unwrap_or_else(|_| panic!("Error deserializing metadata file {}", f))
});
- let mut po = PreImageOracle::create(&configuration.host);
- let _child = po.start();
-
// Initialize some data used for statistical computations
let start = Start::create(state.step as usize);
@@ -213,8 +225,26 @@
};
// Initialize the environments
- let mut mips_wit_env =
- mips_witness::Env::<Fp, PreImageOracle>::create(cannon::PAGE_SIZE as usize, state, po);
+ let mut mips_wit_env = match configuration.host.clone() {
+ Some(host) => {
+ let mut po = PreImageOracle::create(host);
+ let _child = po.start();
+ mips_witness::Env::<Fp, Box<dyn PreImageOracleT>>::create(
+ cannon::PAGE_SIZE as usize,
+ state,
+ Box::new(po),
+ )
+ }
+ None => {
+ debug!("No preimage oracle provided 🤞");
+ // warning: the null preimage oracle has no data and will crash the program if used
+ mips_witness::Env::<Fp, Box<dyn PreImageOracleT>>::create(
+ cannon::PAGE_SIZE as usize,
+ state,
+ Box::new(NullPreImageOracle),
+ )
+ }
+ };
let constraints = mips_constraints::get_all_constraints::<Fp>();