@aztec/protocol-contracts 5.0.0-rc.1 → 5.0.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -466,7 +466,7 @@
466
466
  "path": "std/hash/mod.nr",
467
467
  "source": "// Exposed only for usage in `std::meta`\npub(crate) mod poseidon2;\n\nuse crate::default::Default;\nuse crate::embedded_curve_ops::{\n EmbeddedCurvePoint, EmbeddedCurveScalar, multi_scalar_mul, multi_scalar_mul_array_return,\n};\nuse crate::meta::derive_via;\nuse crate::static_assert;\n\n/// The size of the state accepted by the backend in `poseidon2_permutation`.\nglobal POSEIDON2_CONFIG_STATE_SIZE: u32 = poseidon2_config_state_size();\n\n#[foreign(sha256_compression)]\n// docs:start:sha256_compression\npub fn sha256_compression(input: [u32; 16], state: [u32; 8]) -> [u32; 8] {}\n// docs:end:sha256_compression\n\n#[foreign(keccakf1600)]\n// docs:start:keccakf1600\npub fn keccakf1600(input: [u64; 25]) -> [u64; 25] {}\n// docs:end:keccakf1600\n\npub mod keccak {\n #[deprecated(\"This function has been moved to std::hash::keccakf1600\")]\n pub fn keccakf1600(input: [u64; 25]) -> [u64; 25] {\n super::keccakf1600(input)\n }\n}\n\n#[foreign(blake2s)]\n// docs:start:blake2s\npub fn blake2s<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake2s\n{}\n\n// docs:start:blake3\npub fn blake3<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake3\n{\n if crate::runtime::is_unconstrained() {\n // Temporary measure while Barretenberg is main proving system.\n // Please open an issue if you're working on another proving system and running into problems due to this.\n crate::static_assert(\n N <= 1024,\n \"Barretenberg cannot prove blake3 hashes with inputs larger than 1024 bytes\",\n );\n }\n __blake3(input)\n}\n\n#[foreign(blake3)]\nfn __blake3<let N: u32>(input: [u8; N]) -> [u8; 32] {}\n\n// docs:start:pedersen_commitment\npub fn pedersen_commitment<let N: u32>(input: [Field; N]) -> EmbeddedCurvePoint {\n // docs:end:pedersen_commitment\n pedersen_commitment_with_separator(input, 0)\n}\n\n#[inline_always]\npub fn pedersen_commitment_with_separator<let N: u32>(\n input: [Field; N],\n separator: u32,\n) -> EmbeddedCurvePoint {\n let mut points = [EmbeddedCurveScalar { lo: 0, hi: 0 }; N];\n for i in 0..N {\n points[i] = EmbeddedCurveScalar::from_field(input[i]);\n }\n let generators = derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n multi_scalar_mul(generators, points)\n}\n\n// docs:start:pedersen_hash\npub fn pedersen_hash<let N: u32>(input: [Field; N]) -> Field\n// docs:end:pedersen_hash\n{\n pedersen_hash_with_separator(input, 0)\n}\n\n#[no_predicates]\npub fn pedersen_hash_with_separator<let N: u32>(input: [Field; N], separator: u32) -> Field {\n let mut scalars: [EmbeddedCurveScalar; N + 1] = [EmbeddedCurveScalar { lo: 0, hi: 0 }; N + 1];\n let mut generators: [EmbeddedCurvePoint; N + 1] =\n [EmbeddedCurvePoint::point_at_infinity(); N + 1];\n crate::assert_constant(separator);\n let domain_generators: [EmbeddedCurvePoint; N] =\n derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n\n for i in 0..N {\n scalars[i] = EmbeddedCurveScalar::from_field(input[i]);\n generators[i] = domain_generators[i];\n }\n scalars[N] = EmbeddedCurveScalar { lo: N as Field, hi: 0 as Field };\n\n let length_generator: [EmbeddedCurvePoint; 1] =\n derive_generators(\"pedersen_hash_length\".as_bytes(), 0);\n generators[N] = length_generator[0];\n multi_scalar_mul_array_return(generators, scalars, true)[0].x\n}\n\n#[field(bn254)]\n#[inline_always]\npub fn derive_generators<let N: u32, let M: u32>(\n domain_separator_bytes: [u8; M],\n starting_index: u32,\n) -> [EmbeddedCurvePoint; N] {\n crate::assert_constant(domain_separator_bytes);\n crate::assert_constant(starting_index);\n __derive_generators(domain_separator_bytes, starting_index)\n}\n\n#[builtin(derive_pedersen_generators)]\n#[field(bn254)]\nfn __derive_generators<let N: u32, let M: u32>(\n domain_separator_bytes: [u8; M],\n starting_index: u32,\n) -> [EmbeddedCurvePoint; N] {}\n\npub fn poseidon2_permutation<let N: u32>(input: [Field; N]) -> [Field; N] {\n static_assert(\n N == POSEIDON2_CONFIG_STATE_SIZE,\n f\"the input length must equal the state size in the Poseidon2 config; expected {POSEIDON2_CONFIG_STATE_SIZE}, got {N}\",\n );\n poseidon2_permutation_internal(input)\n}\n\n#[foreign(poseidon2_permutation)]\nfn poseidon2_permutation_internal<let N: u32>(input: [Field; N]) -> [Field; N] {}\n\n#[foreign(poseidon2_config_state_size)]\ncomptime fn poseidon2_config_state_size() -> u32 {}\n\n// Generic hashing support.\n// Partially ported and impacted by rust.\n\n// Hash trait shall be implemented per type.\n#[derive_via(derive_hash)]\npub trait Hash {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher;\n}\n\n// docs:start:derive_hash\ncomptime fn derive_hash(s: TypeDefinition) -> Quoted {\n let name = quote { $crate::hash::Hash };\n let signature = quote { fn hash<H>(_self: Self, _state: &mut H) where H: $crate::hash::Hasher };\n let for_each_field = |name| quote { _self.$name.hash(_state); };\n crate::meta::make_trait_impl(\n s,\n name,\n signature,\n for_each_field,\n quote {},\n |fields| fields,\n )\n}\n// docs:end:derive_hash\n\n// Hasher trait shall be implemented by algorithms to provide hash-agnostic means.\n// TODO: consider making the types generic here ([u8], [Field], etc.)\npub trait Hasher {\n fn finish(self) -> Field;\n\n /// Returns the hash value without consuming the hasher.\n /// Override this for more efficient implementations that avoid copying.\n /// TODO: deprecate finish() and replace it\n fn finish_ref(&self) -> Field {\n (*self).finish()\n }\n\n fn write(&mut self, input: Field);\n}\n\n// BuildHasher is a factory trait, responsible for production of specific Hasher.\npub trait BuildHasher {\n type H: Hasher;\n\n fn build_hasher(self) -> H;\n}\n\npub struct BuildHasherDefault<H>;\n\nimpl<H> BuildHasher for BuildHasherDefault<H>\nwhere\n H: Hasher + Default,\n{\n type H = H;\n\n fn build_hasher(_self: Self) -> H {\n H::default()\n }\n}\n\nimpl<H> Default for BuildHasherDefault<H>\nwhere\n H: Hasher + Default,\n{\n fn default() -> Self {\n BuildHasherDefault {}\n }\n}\n\nimpl Hash for Field {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self);\n }\n}\n\nimpl Hash for u8 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u16 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u32 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u64 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u128 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i8 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as u8 as Field);\n }\n}\n\nimpl Hash for i16 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as u16 as Field);\n }\n}\n\nimpl Hash for i32 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as u32 as Field);\n }\n}\n\nimpl Hash for i64 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as u64 as Field);\n }\n}\n\nimpl Hash for bool {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for () {\n fn hash<H>(_self: Self, _state: &mut H)\n where\n H: Hasher,\n {}\n}\n\nimpl<T, let N: u32> Hash for [T; N]\nwhere\n T: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<T> Hash for [T]\nwhere\n T: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.len().hash(state);\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<A> Hash for (A,)\nwhere\n A: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n }\n}\n\nimpl<A, B> Hash for (A, B)\nwhere\n A: Hash,\n B: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n }\n}\n\nimpl<A, B, C> Hash for (A, B, C)\nwhere\n A: Hash,\n B: Hash,\n C: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n }\n}\n\nimpl<A, B, C, D> Hash for (A, B, C, D)\nwhere\n A: Hash,\n B: Hash,\n C: Hash,\n D: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n }\n}\n\nimpl<A, B, C, D, E> Hash for (A, B, C, D, E)\nwhere\n A: Hash,\n B: Hash,\n C: Hash,\n D: Hash,\n E: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n self.4.hash(state);\n }\n}\n\nimpl<A, B, C, D, E, F> Hash for (A, B, C, D, E, F)\nwhere\n A: Hash,\n B: Hash,\n C: Hash,\n D: Hash,\n E: Hash,\n F: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n self.4.hash(state);\n self.5.hash(state);\n }\n}\n\nimpl<A, B, C, D, E, F, G> Hash for (A, B, C, D, E, F, G)\nwhere\n A: Hash,\n B: Hash,\n C: Hash,\n D: Hash,\n E: Hash,\n F: Hash,\n G: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n self.4.hash(state);\n self.5.hash(state);\n self.6.hash(state);\n }\n}\n\nimpl<A, B, C, D, E, F, G, H_> Hash for (A, B, C, D, E, F, G, H_)\nwhere\n A: Hash,\n B: Hash,\n C: Hash,\n D: Hash,\n E: Hash,\n F: Hash,\n G: Hash,\n H_: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n self.4.hash(state);\n self.5.hash(state);\n self.6.hash(state);\n self.7.hash(state);\n }\n}\n\nimpl<A, B, C, D, E, F, G, H_, I> Hash for (A, B, C, D, E, F, G, H_, I)\nwhere\n A: Hash,\n B: Hash,\n C: Hash,\n D: Hash,\n E: Hash,\n F: Hash,\n G: Hash,\n H_: Hash,\n I: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n self.4.hash(state);\n self.5.hash(state);\n self.6.hash(state);\n self.7.hash(state);\n self.8.hash(state);\n }\n}\n\nimpl<A, B, C, D, E, F, G, H_, I, J> Hash for (A, B, C, D, E, F, G, H_, I, J)\nwhere\n A: Hash,\n B: Hash,\n C: Hash,\n D: Hash,\n E: Hash,\n F: Hash,\n G: Hash,\n H_: Hash,\n I: Hash,\n J: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n self.4.hash(state);\n self.5.hash(state);\n self.6.hash(state);\n self.7.hash(state);\n self.8.hash(state);\n self.9.hash(state);\n }\n}\n\nimpl<A, B, C, D, E, F, G, H_, I, J, K> Hash for (A, B, C, D, E, F, G, H_, I, J, K)\nwhere\n A: Hash,\n B: Hash,\n C: Hash,\n D: Hash,\n E: Hash,\n F: Hash,\n G: Hash,\n H_: Hash,\n I: Hash,\n J: Hash,\n K: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n self.4.hash(state);\n self.5.hash(state);\n self.6.hash(state);\n self.7.hash(state);\n self.8.hash(state);\n self.9.hash(state);\n self.10.hash(state);\n }\n}\n\nimpl<A, B, C, D, E, F, G, H_, I, J, K, L> Hash for (A, B, C, D, E, F, G, H_, I, J, K, L)\nwhere\n A: Hash,\n B: Hash,\n C: Hash,\n D: Hash,\n E: Hash,\n F: Hash,\n G: Hash,\n H_: Hash,\n I: Hash,\n J: Hash,\n K: Hash,\n L: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n self.4.hash(state);\n self.5.hash(state);\n self.6.hash(state);\n self.7.hash(state);\n self.8.hash(state);\n self.9.hash(state);\n self.10.hash(state);\n self.11.hash(state);\n }\n}\n\n// Some test vectors for Pedersen hash and Pedersen Commitment.\n// They have been generated using the same functions so the tests are for now useless\n// but they will be useful when we switch to Noir implementation.\n#[test]\nfn assert_pedersen() {\n assert_eq(\n pedersen_hash_with_separator([1], 1),\n 0x1b3f4b1a83092a13d8d1a59f7acb62aba15e7002f4440f2275edb99ebbc2305f,\n );\n assert_eq(\n pedersen_commitment_with_separator([1], 1),\n EmbeddedCurvePoint {\n x: 0x054aa86a73cb8a34525e5bbed6e43ba1198e860f5f3950268f71df4591bde402,\n y: 0x209dcfbf2cfb57f9f6046f44d71ac6faf87254afc7407c04eb621a6287cac126,\n },\n );\n\n assert_eq(\n pedersen_hash_with_separator([1, 2], 2),\n 0x26691c129448e9ace0c66d11f0a16d9014a9e8498ee78f4d69f0083168188255,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2], 2),\n EmbeddedCurvePoint {\n x: 0x2e2b3b191e49541fe468ec6877721d445dcaffe41728df0a0eafeb15e87b0753,\n y: 0x2ff4482400ad3a6228be17a2af33e2bcdf41be04795f9782bd96efe7e24f8778,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3], 3),\n 0x0bc694b7a1f8d10d2d8987d07433f26bd616a2d351bc79a3c540d85b6206dbe4,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3], 3),\n EmbeddedCurvePoint {\n x: 0x1fee4e8cf8d2f527caa2684236b07c4b1bad7342c01b0f75e9a877a71827dc85,\n y: 0x2f9fedb9a090697ab69bf04c8bc15f7385b3e4b68c849c1536e5ae15ff138fd1,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4], 4),\n 0xdae10fb32a8408521803905981a2b300d6a35e40e798743e9322b223a5eddc,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4], 4),\n EmbeddedCurvePoint {\n x: 0x07ae3e202811e1fca39c2d81eabe6f79183978e6f12be0d3b8eda095b79bdbc9,\n y: 0x0afc6f892593db6fbba60f2da558517e279e0ae04f95758587760ba193145014,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5], 5),\n 0xfc375b062c4f4f0150f7100dfb8d9b72a6d28582dd9512390b0497cdad9c22,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5], 5),\n EmbeddedCurvePoint {\n x: 0x1754b12bd475a6984a1094b5109eeca9838f4f81ac89c5f0a41dbce53189bb29,\n y: 0x2da030e3cfcdc7ddad80eaf2599df6692cae0717d4e9f7bfbee8d073d5d278f7,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6], 6),\n 0x1696ed13dc2730062a98ac9d8f9de0661bb98829c7582f699d0273b18c86a572,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6], 6),\n EmbeddedCurvePoint {\n x: 0x190f6c0e97ad83e1e28da22a98aae156da083c5a4100e929b77e750d3106a697,\n y: 0x1f4b60f34ef91221a0b49756fa0705da93311a61af73d37a0c458877706616fb,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7], 7),\n 0x128c0ff144fc66b6cb60eeac8a38e23da52992fc427b92397a7dffd71c45ede3,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7], 7),\n EmbeddedCurvePoint {\n x: 0x015441e9d29491b06563fac16fc76abf7a9534c715421d0de85d20dbe2965939,\n y: 0x1d2575b0276f4e9087e6e07c2cb75aa1baafad127af4be5918ef8a2ef2fea8fc,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8),\n 0x2f960e117482044dfc99d12fece2ef6862fba9242be4846c7c9a3e854325a55c,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8),\n EmbeddedCurvePoint {\n x: 0x1657737676968887fceb6dd516382ea13b3a2c557f509811cd86d5d1199bc443,\n y: 0x1f39f0cb569040105fa1e2f156521e8b8e08261e635a2b210bdc94e8d6d65f77,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9),\n 0x0c96db0790602dcb166cc4699e2d306c479a76926b81c2cb2aaa92d249ec7be7,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9),\n EmbeddedCurvePoint {\n x: 0x0a3ceae42d14914a432aa60ec7fded4af7dad7dd4acdbf2908452675ec67e06d,\n y: 0xfc19761eaaf621ad4aec9a8b2e84a4eceffdba78f60f8b9391b0bd9345a2f2,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10),\n 0x2cd37505871bc460a62ea1e63c7fe51149df5d0801302cf1cbc48beb8dff7e94,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10),\n EmbeddedCurvePoint {\n x: 0x2fb3f8b3d41ddde007c8c3c62550f9a9380ee546fcc639ffbb3fd30c8d8de30c,\n y: 0x300783be23c446b11a4c0fabf6c91af148937cea15fcf5fb054abf7f752ee245,\n },\n );\n}\n"
468
468
  },
469
- "182": {
469
+ "179": {
470
470
  "function_locations": [
471
471
  {
472
472
  "name": "sha256_to_field",
@@ -588,7 +588,7 @@
588
588
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr",
589
589
  "source": "mod poseidon2_chunks;\n\nuse crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n function_selector::FunctionSelector, nullifier::Nullifier, private_log::PrivateLog,\n transaction::tx_request::TxRequest,\n },\n address::{AztecAddress, EthAddress},\n constants::{\n CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, DOM_SEP__NOTE_HASH_NONCE,\n DOM_SEP__PRIVATE_LOG_FIRST_FIELD, DOM_SEP__SILOED_NOTE_HASH, DOM_SEP__SILOED_NULLIFIER,\n DOM_SEP__UNIQUE_NOTE_HASH, FUNCTION_TREE_HEIGHT, NULL_MSG_SENDER_CONTRACT_ADDRESS,\n TWO_POW_64,\n },\n merkle_tree::root_from_sibling_path,\n messaging::l2_to_l1_message::L2ToL1Message,\n poseidon2::Poseidon2Sponge,\n side_effect::{Counted, Scoped},\n traits::{FromField, Hash, ToField},\n utils::field::{field_from_bytes, field_from_bytes_32_trunc},\n};\n\npub use poseidon2_chunks::poseidon2_absorb_in_chunks_existing_sponge;\nuse poseidon2_chunks::poseidon2_absorb_in_chunks;\nuse std::embedded_curve_ops::EmbeddedCurveScalar;\n\n// TODO: refactor these into their own files: sha256, poseidon2, some protocol-specific hash computations, some merkle computations.\n\npub fn sha256_to_field<let N: u32>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = sha256::digest(bytes_to_hash);\n let hash_in_a_field = field_from_bytes_32_trunc(sha256_hashed);\n\n hash_in_a_field\n}\n\npub fn private_functions_root_from_siblings(\n selector: FunctionSelector,\n vk_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT],\n) -> Field {\n let function_leaf_preimage = ContractClassFunctionLeafPreimage { selector, vk_hash };\n let function_leaf = function_leaf_preimage.hash();\n root_from_sibling_path(\n function_leaf,\n function_leaf_index,\n function_leaf_sibling_path,\n )\n}\n\n/// Siloing in the context of Aztec refers to the process of hashing a note hash with a contract address (this way\n/// the note hash is scoped to a specific contract). This is used to prevent intermingling of notes between contracts.\npub fn compute_siloed_note_hash(contract_address: AztecAddress, note_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [contract_address.to_field(), note_hash],\n DOM_SEP__SILOED_NOTE_HASH,\n )\n}\n\n/// Computes unique, siloed note hashes from siloed note hashes.\n///\n/// The protocol injects uniqueness into every note_hash, so that every single note_hash in the\n/// tree is unique. This prevents faerie gold attacks, where a malicious sender could create\n/// two identical note_hashes for a recipient (meaning only one would be nullifiable in future).\n///\n/// Most privacy protocols will inject the note's leaf_index (its position in the Note Hashes Tree)\n/// into the note, but this requires the creator of a note to wait until their tx is included in\n/// a block to know the note's final note hash (the unique, siloed note hash), because inserting\n/// leaves into trees is the job of a block producer.\n///\n/// We took a different approach so that the creator of a note will know each note's unique, siloed\n/// note hash before broadcasting their tx to the network.\n/// (There was also a historical requirement relating to \"chained transactions\" -- a feature that\n/// Aztec Connect had to enable notes to be spent from distinct txs earlier in the same block,\n/// and hence before an archive block root had been established for that block -- but that feature\n/// was abandoned for the Aztec Network for having too many bad tradeoffs).\n///\n/// (\n/// Edit: it is no longer true that all final note_hashes will be known by the creator of a tx\n/// before they send it to the network. If a tx makes public function calls, then _revertible_\n/// note_hashes that are created in private will not be made unique in private by the Reset circuit,\n/// but will instead be made unique by the AVM, because the `note_index_in_tx` will not be known\n/// until the AVM has executed the public functions of the tx. (See an explanation in\n/// reset_output_composer.nr for why).\n/// For some such txs, the `note_index_in_tx` might still be predictable through simulation, but\n/// for txs whose public functions create a varying number of non-revertible notes (determined at\n/// runtime), the `note_index_in_tx` will not be deterministically derivable before submitting the\n/// tx to the network.\n/// )\n///\n/// We use the `first_nullifier` of a tx as a seed of uniqueness. We have a guarantee that there will\n/// always be at least one nullifier per tx, because the init circuit will create one if one isn't\n/// created naturally by any functions of the tx. (Search \"protocol_nullifier\").\n/// We combine the `first_nullifier` with the note's index (its position within this tx's new\n/// note_hashes array) (`note_index_in_tx`) to get a truly unique value to inject into a note, which\n/// we call a `note_nonce`.\npub fn compute_unique_note_hash(note_nonce: Field, siloed_note_hash: Field) -> Field {\n let inputs = [note_nonce, siloed_note_hash];\n poseidon2_hash_with_separator(inputs, DOM_SEP__UNIQUE_NOTE_HASH)\n}\n\npub fn compute_note_hash_nonce(first_nullifier_in_tx: Field, note_index_in_tx: u32) -> Field {\n // Hashing the first nullifier with note index in tx is guaranteed to be unique (because all nullifiers are also\n // unique).\n poseidon2_hash_with_separator(\n [first_nullifier_in_tx, note_index_in_tx as Field],\n DOM_SEP__NOTE_HASH_NONCE,\n )\n}\n\npub fn compute_note_nonce_and_unique_note_hash(\n siloed_note_hash: Field,\n first_nullifier: Field,\n note_index_in_tx: u32,\n) -> Field {\n let note_nonce = compute_note_hash_nonce(first_nullifier, note_index_in_tx);\n compute_unique_note_hash(note_nonce, siloed_note_hash)\n}\n\npub fn compute_siloed_nullifier(contract_address: AztecAddress, nullifier: Field) -> Field {\n poseidon2_hash_with_separator(\n [contract_address.to_field(), nullifier],\n DOM_SEP__SILOED_NULLIFIER,\n )\n}\n\npub fn create_protocol_nullifier(tx_request: TxRequest) -> Scoped<Counted<Nullifier>> {\n // The protocol nullifier is ascribed a special side-effect counter of 1. No other side-effect\n // can have counter 1 (see `validate_as_first_call` for that assertion).\n Nullifier { value: tx_request.hash(), note_hash: 0 }.count(1).scope(\n NULL_MSG_SENDER_CONTRACT_ADDRESS,\n )\n}\n\npub fn compute_log_tag(raw_tag: Field, dom_sep: u32) -> Field {\n poseidon2_hash_with_separator([raw_tag], dom_sep)\n}\n\npub fn compute_siloed_private_log_first_field(\n contract_address: AztecAddress,\n field: Field,\n) -> Field {\n poseidon2_hash_with_separator(\n [contract_address.to_field(), field],\n DOM_SEP__PRIVATE_LOG_FIRST_FIELD,\n )\n}\n\npub fn compute_siloed_private_log(contract_address: AztecAddress, log: PrivateLog) -> PrivateLog {\n let mut fields = log.fields;\n fields[0] = compute_siloed_private_log_first_field(contract_address, fields[0]);\n PrivateLog::new(fields, log.length)\n}\n\npub fn compute_contract_class_log_hash(log: [Field; CONTRACT_CLASS_LOG_SIZE_IN_FIELDS]) -> Field {\n poseidon2_hash(log)\n}\n\npub fn compute_app_siloed_secret_key(\n master_secret_key: EmbeddedCurveScalar,\n app_address: AztecAddress,\n key_type_domain_separator: Field,\n) -> Field {\n poseidon2_hash_with_separator(\n [master_secret_key.hi, master_secret_key.lo, app_address.to_field()],\n key_type_domain_separator,\n )\n}\n\npub fn compute_l2_to_l1_message_hash(\n message: Scoped<L2ToL1Message>,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n let contract_address_bytes: [u8; 32] = message.contract_address.to_field().to_be_bytes();\n let recipient_bytes: [u8; 20] = message.inner.recipient.to_be_bytes();\n let content_bytes: [u8; 32] = message.inner.content.to_be_bytes();\n let rollup_version_id_bytes: [u8; 32] = rollup_version_id.to_be_bytes();\n let chain_id_bytes: [u8; 32] = chain_id.to_be_bytes();\n\n let mut bytes: [u8; 148] = std::mem::zeroed();\n for i in 0..32 {\n bytes[i] = contract_address_bytes[i];\n bytes[i + 32] = rollup_version_id_bytes[i];\n // 64 - 84 are for recipient.\n bytes[i + 84] = chain_id_bytes[i];\n bytes[i + 116] = content_bytes[i];\n }\n\n for i in 0..20 {\n bytes[64 + i] = recipient_bytes[i];\n }\n\n sha256_to_field(bytes)\n}\n\n// TODO: consider a variant that enables domain separation with a u32 (we seem to have standardised u32s for domain separators)\n/// Computes sha256 hash of 2 input fields.\n///\n/// @returns A truncated field (i.e., the first byte is always 0).\npub fn accumulate_sha256(v0: Field, v1: Field) -> Field {\n // Concatenate two fields into 32 x 2 = 64 bytes\n let v0_as_bytes: [u8; 32] = v0.to_be_bytes();\n let v1_as_bytes: [u8; 32] = v1.to_be_bytes();\n let hash_input_flattened = v0_as_bytes.concat(v1_as_bytes);\n\n sha256_to_field(hash_input_flattened)\n}\n\npub fn poseidon2_hash<let N: u32>(inputs: [Field; N]) -> Field {\n poseidon::poseidon2::Poseidon2::hash(inputs, N)\n}\n\n#[no_predicates]\npub fn poseidon2_hash_with_separator<let N: u32, T>(inputs: [Field; N], separator: T) -> Field\nwhere\n T: ToField,\n{\n let inputs_with_separator = [separator.to_field()].concat(inputs);\n poseidon2_hash(inputs_with_separator)\n}\n\n/// Computes a Poseidon2 hash over a dynamic-length subarray of the given input.\n/// Only the first `in_len` fields of `input` are absorbed; any remaining fields are ignored.\n/// The caller is responsible for ensuring that the input is padded with zeros if required.\n#[no_predicates]\npub fn poseidon2_hash_subarray<let N: u32>(input: [Field; N], in_len: u32) -> Field {\n let mut sponge = poseidon2_absorb_in_chunks(input, in_len);\n sponge.squeeze()\n}\n\n// This function is unconstrained because it is intended to be used in unconstrained context only as\n// in constrained contexts it would be too inefficient.\npub unconstrained fn poseidon2_hash_with_separator_bounded_vec<let N: u32, T>(\n inputs: BoundedVec<Field, N>,\n separator: T,\n) -> Field\nwhere\n T: ToField,\n{\n let in_len = inputs.len() + 1;\n let iv: Field = (in_len as Field) * TWO_POW_64;\n let mut sponge = Poseidon2Sponge::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs.get(i));\n }\n\n sponge.squeeze()\n}\n\n#[no_predicates]\npub fn poseidon2_hash_bytes<let N: u32>(inputs: [u8; N]) -> Field {\n let mut fields = [0; (N + 30) / 31];\n let mut field_index = 0;\n let mut current_field = [0; 31];\n for i in 0..inputs.len() {\n let index = i % 31;\n current_field[index] = inputs[i];\n if index == 30 {\n fields[field_index] = field_from_bytes(current_field, false);\n current_field = [0; 31];\n field_index += 1;\n }\n }\n if field_index != fields.len() {\n fields[field_index] = field_from_bytes(current_field, false);\n }\n poseidon2_hash(fields)\n}\n\n#[test]\nfn subarray_hash_matches_fixed() {\n let values_to_hash = [3; 17];\n let padded = values_to_hash.concat([0; 11]);\n let subarray_hash = poseidon2_hash_subarray(padded, values_to_hash.len());\n\n // Hash the entire values_to_hash.\n let fixed_len_hash = poseidon::poseidon2::Poseidon2::hash(values_to_hash, values_to_hash.len());\n\n assert_eq(subarray_hash, fixed_len_hash);\n}\n\n#[test]\nfn subarray_hash_matches_variable() {\n let values_to_hash = [3; 17];\n let padded = values_to_hash.concat([0; 11]);\n let subarray_hash = poseidon2_hash_subarray(padded, values_to_hash.len());\n\n // Hash up to values_to_hash.len() fields of the padded array.\n let variable_len_hash = poseidon::poseidon2::Poseidon2::hash(padded, values_to_hash.len());\n\n assert_eq(subarray_hash, variable_len_hash);\n}\n\n#[test]\nfn smoke_sha256_to_field() {\n let full_buffer = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,\n 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,\n 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,\n 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,\n 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,\n 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,\n 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,\n ];\n let result = sha256_to_field(full_buffer);\n\n assert(result == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184c7);\n\n // to show correctness of the current ver (truncate one byte) vs old ver (mod full bytes):\n let result_bytes = sha256::digest(full_buffer);\n let truncated_field = crate::utils::field::field_from_bytes_32_trunc(result_bytes);\n assert(truncated_field == result);\n let mod_res = result + (result_bytes[31] as Field);\n assert(mod_res == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184e0);\n}\n\n#[test]\nfn unique_siloed_note_hash_matches_typescript() {\n let inner_note_hash = 1;\n let contract_address = AztecAddress::from_field(2);\n let first_nullifier = 3;\n let note_index_in_tx = 4;\n\n let siloed_note_hash = compute_siloed_note_hash(contract_address, inner_note_hash);\n let siloed_note_hash_from_ts =\n 0x1986a4bea3eddb1fff917d629a13e10f63f514f401bdd61838c6b475db949169;\n assert_eq(siloed_note_hash, siloed_note_hash_from_ts);\n\n let nonce: Field = compute_note_hash_nonce(first_nullifier, note_index_in_tx);\n let note_hash_nonce_from_ts =\n 0x28e7799791bf066a57bb51fdd0fbcaf3f0926414314c7db515ea343f44f5d58b;\n assert_eq(nonce, note_hash_nonce_from_ts);\n\n let unique_siloed_note_hash_from_nonce = compute_unique_note_hash(nonce, siloed_note_hash);\n let unique_siloed_note_hash = compute_note_nonce_and_unique_note_hash(\n siloed_note_hash,\n first_nullifier,\n note_index_in_tx,\n );\n assert_eq(unique_siloed_note_hash_from_nonce, unique_siloed_note_hash);\n\n let unique_siloed_note_hash_from_ts =\n 0x29949aef207b715303b24639737c17fbfeb375c1d965ecfa85c7e4f0febb7d16;\n assert_eq(unique_siloed_note_hash, unique_siloed_note_hash_from_ts);\n}\n\n#[test]\nfn siloed_nullifier_matches_typescript() {\n let contract_address = AztecAddress::from_field(123);\n let nullifier = 456;\n\n let res = compute_siloed_nullifier(contract_address, nullifier);\n\n let siloed_nullifier_from_ts =\n 0x169b50336c1f29afdb8a03d955a81e485f5ac7d5f0b8065673d1e407e5877813;\n\n assert_eq(res, siloed_nullifier_from_ts);\n}\n\n#[test]\nfn siloed_private_log_first_field_matches_typescript() {\n let contract_address = AztecAddress::from_field(123);\n let field = 456;\n let res = compute_siloed_private_log_first_field(contract_address, field);\n\n let siloed_private_log_first_field_from_ts =\n 0x29480984f7b9257fded523d50addbcfc8d1d33adcf2db73ef3390a8fd5cdffaa;\n\n assert_eq(res, siloed_private_log_first_field_from_ts);\n}\n\n#[test]\nfn empty_l2_to_l1_message_hash_matches_typescript() {\n // All zeroes\n let res = compute_l2_to_l1_message_hash(\n L2ToL1Message { recipient: EthAddress::zero(), content: 0 }.scope(AztecAddress::from_field(\n 0,\n )),\n 0,\n 0,\n );\n\n let empty_l2_to_l1_msg_hash_from_ts =\n 0x003b18c58c739716e76429634a61375c45b3b5cd470c22ab6d3e14cee23dd992;\n\n assert_eq(res, empty_l2_to_l1_msg_hash_from_ts);\n}\n\n#[test]\nfn l2_to_l1_message_hash_matches_typescript() {\n let message = L2ToL1Message { recipient: EthAddress::from_field(1), content: 2 }.scope(\n AztecAddress::from_field(3),\n );\n let version = 4;\n let chainId = 5;\n\n let hash = compute_l2_to_l1_message_hash(message, version, chainId);\n\n // The following value was generated by `yarn-project/stdlib/src/hash/hash.test.ts`\n let l2_to_l1_message_hash_from_ts =\n 0x0081edf209e087ad31b3fd24263698723d57190bd1d6e9fe056fc0c0a68ee661;\n\n assert_eq(hash, l2_to_l1_message_hash_from_ts);\n}\n\n#[test]\nunconstrained fn poseidon2_hash_with_separator_bounded_vec_matches_non_bounded_vec_version() {\n let inputs = BoundedVec::<Field, 4>::from_array([1, 2, 3]);\n let separator = 42;\n\n // Hash using bounded vec version\n let bounded_result = poseidon2_hash_with_separator_bounded_vec(inputs, separator);\n\n // Hash using regular version\n let regular_result = poseidon2_hash_with_separator([1, 2, 3], separator);\n\n // Results should match\n assert_eq(bounded_result, regular_result);\n}\n"
590
590
  },
591
- "190": {
591
+ "187": {
592
592
  "function_locations": [
593
593
  {
594
594
  "name": "merkle_hash",
@@ -650,7 +650,7 @@
650
650
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/merkle_tree/merkle_tree.nr",
651
651
  "source": "use crate::{\n constants::{\n DOM_SEP__MERKLE_HASH, DOM_SEP__NULLIFIER_MERKLE, DOM_SEP__PUBLIC_DATA_MERKLE,\n DOM_SEP__RETRIEVED_BYTECODES_MERKLE, DOM_SEP__WRITTEN_SLOTS_MERKLE,\n },\n hash::{accumulate_sha256, poseidon2_hash_with_separator},\n traits::Empty,\n utils::math::is_power_of_2_u32,\n};\n\n/// Merkle-node hash used by append-only trees.\npub fn merkle_hash(left: Field, right: Field) -> Field {\n poseidon2_hash_with_separator([left, right], DOM_SEP__MERKLE_HASH)\n}\n\n/// Merkle-node hash for the nullifier tree's sibling paths.\npub fn nullifier_merkle_hash(left: Field, right: Field) -> Field {\n poseidon2_hash_with_separator([left, right], DOM_SEP__NULLIFIER_MERKLE)\n}\n\n/// Merkle-node hash for the public-data tree's sibling paths.\npub fn public_data_merkle_hash(left: Field, right: Field) -> Field {\n poseidon2_hash_with_separator([left, right], DOM_SEP__PUBLIC_DATA_MERKLE)\n}\n\n/// Merkle-node hash for the AVM-internal written-public-data-slots tree's sibling paths.\npub fn written_slots_merkle_hash(left: Field, right: Field) -> Field {\n poseidon2_hash_with_separator([left, right], DOM_SEP__WRITTEN_SLOTS_MERKLE)\n}\n\n/// Merkle-node hash for the AVM-internal retrieved-bytecodes (class-id) tree's sibling paths.\npub fn retrieved_bytecodes_merkle_hash(left: Field, right: Field) -> Field {\n poseidon2_hash_with_separator([left, right], DOM_SEP__RETRIEVED_BYTECODES_MERKLE)\n}\n\npub fn sha_merkle_hash(left: Field, right: Field) -> Field {\n accumulate_sha256(left, right)\n}\n\n#[derive(Eq)]\npub struct MerkleTree<let N: u32> {\n pub leaves: [Field; N],\n pub nodes: [Field; N - 1],\n}\n\nimpl<let N: u32> Empty for MerkleTree<N> {\n fn empty() -> Self {\n MerkleTree { leaves: [0; N], nodes: [0; N - 1] }\n }\n}\n\nimpl<let N: u32> MerkleTree<N> {\n pub fn new(leaves: [Field; N]) -> Self {\n let nodes = compute_merkle_tree_nodes(leaves, merkle_hash);\n MerkleTree { leaves, nodes }\n }\n\n pub fn new_with_hasher(leaves: [Field; N], hasher: fn(Field, Field) -> Field) -> Self {\n let nodes = compute_merkle_tree_nodes(leaves, hasher);\n MerkleTree { leaves, nodes }\n }\n\n pub fn new_sha(leaves: [Field; N]) -> Self {\n let nodes = compute_merkle_tree_nodes(leaves, sha_merkle_hash);\n MerkleTree { leaves, nodes }\n }\n\n pub fn get_root(self) -> Field {\n self.nodes[N - 2]\n }\n\n pub fn get_sibling_path<let K: u32>(self, leaf_index: u32) -> [Field; K] {\n assert_eq(2.pow_32(K as Field), N as Field, \"Invalid path length\");\n\n let mut path = [0; K];\n let mut current_index = leaf_index;\n let mut subtree_width = N;\n\n let mut current_sibling_index = sibling_index(current_index);\n\n path[0] = self.leaves[current_sibling_index];\n\n let mut subtree_offset: u32 = 0;\n\n for i in 1..K {\n current_index = current_index / 2;\n subtree_width = subtree_width / 2;\n\n current_sibling_index = sibling_index(current_index);\n\n path[i] = self.nodes[subtree_offset + current_sibling_index];\n\n subtree_offset += subtree_width;\n }\n\n path\n }\n}\n\npub fn sibling_index(index: u32) -> u32 {\n if index % 2 == 0 {\n index + 1\n } else {\n index - 1\n }\n}\n\npub fn compute_merkle_tree_nodes<let N: u32>(\n leaves: [Field; N],\n hasher: fn(Field, Field) -> Field,\n) -> [Field; N - 1] {\n // Note: `N` must be a power of 2.\n std::static_assert(is_power_of_2_u32(N), \"N must be a power of 2\");\n std::static_assert(N != 1, \"2 must divide N\");\n\n let mut nodes = [0; N - 1];\n\n let total_nodes = N - 1;\n let half_size = N / 2;\n\n // Hash base layer.\n for i in 0..half_size {\n nodes[i] = hasher(leaves[2 * i], leaves[2 * i + 1]);\n }\n\n // Hash the other layers.\n for i in 0..(total_nodes - half_size) {\n nodes[half_size + i] = hasher(nodes[2 * i], nodes[2 * i + 1]);\n }\n\n nodes\n}\n"
652
652
  },
653
- "192": {
653
+ "189": {
654
654
  "function_locations": [
655
655
  {
656
656
  "name": "root_from_sibling_path",
@@ -696,7 +696,7 @@
696
696
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/merkle_tree/root.nr",
697
697
  "source": "use crate::merkle_tree::merkle_tree::{compute_merkle_tree_nodes, merkle_hash, sha_merkle_hash};\n\n/// Calculate the Merkle tree root from the sibling path and leaf, using the default merkle hash.\npub fn root_from_sibling_path<let N: u32>(\n leaf: Field,\n leaf_index: Field,\n sibling_path: [Field; N],\n) -> Field {\n root_from_sibling_path_with_hasher(leaf, leaf_index, sibling_path, merkle_hash)\n}\n\n/// Calculate the Merkle tree root from the sibling path and leaf, using a custom hasher.\n///\n/// The leaf is hashed with its sibling, the result is then hashed with the next sibling in the path. and so on.\n/// The last hash is the root.\npub fn root_from_sibling_path_with_hasher<let N: u32>(\n leaf: Field,\n leaf_index: Field,\n sibling_path: [Field; N],\n hasher: fn(Field, Field) -> Field,\n) -> Field {\n let mut node = leaf;\n let indices: [bool; N] = leaf_index.to_le_bits();\n\n for i in 0..N {\n let (hash_left, hash_right) = if indices[i] {\n (sibling_path[i], node)\n } else {\n (node, sibling_path[i])\n };\n node = hasher(hash_left, hash_right);\n }\n node\n}\n\npub fn compute_tree_root<let N: u32>(leaves: [Field; N]) -> Field {\n compute_tree_root_with_hasher(leaves, merkle_hash)\n}\n\npub fn compute_sha_tree_root<let N: u32>(leaves: [Field; N]) -> Field {\n compute_tree_root_with_hasher(leaves, sha_merkle_hash)\n}\n\npub fn compute_tree_root_with_hasher<let N: u32>(\n leaves: [Field; N],\n hasher: fn(Field, Field) -> Field,\n) -> Field {\n compute_merkle_tree_nodes(leaves, hasher)[N - 2]\n}\n\npub fn compute_empty_tree_root<let TreeHeight: u32>() -> Field {\n compute_empty_tree_root_with_hasher::<TreeHeight>(merkle_hash)\n}\n\npub fn compute_empty_sha_tree_root<let TreeHeight: u32>() -> Field {\n compute_empty_tree_root_with_hasher::<TreeHeight>(sha_merkle_hash)\n}\n\npub fn compute_empty_tree_root_with_hasher<let TreeHeight: u32>(\n hasher: fn(Field, Field) -> Field,\n) -> Field {\n let mut hashes = [0; TreeHeight + 1];\n for i in 1..TreeHeight + 1 {\n hashes[i] = hasher(hashes[i - 1], hashes[i - 1]);\n }\n hashes[TreeHeight]\n}\n\n#[test]\nfn test_merkle_roots_match_typescript() {\n // The following hardcoded values are generated from yarn-project/foundation/src/trees/balanced_merkle_tree_root.test.ts\n\n let root = compute_tree_root([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]);\n let expected_tree_root_from_ts =\n 0x2bc86dba04dfdd6352c3b1c66b2300445964e2888aa52fdb023d2e645a3d3399;\n assert_eq(root, expected_tree_root_from_ts);\n\n let empty_root = compute_tree_root([0; 16]);\n let expected_empty_root_from_ts =\n 0x1e20ad4181460cbfdc74ca773502c59b890f184efe300ebad895956d318422da;\n assert_eq(empty_root, expected_empty_root_from_ts);\n\n let sha_root = compute_sha_tree_root([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]);\n let expected_sha_root_from_ts =\n 0x00b007869b8a5e2a9b3b580a318e702cea04b2f5438f2e26743f545e4d1ecbdb;\n assert_eq(sha_root, expected_sha_root_from_ts);\n}\n\n#[test]\nfn test_empty_tree_root() {\n assert_eq(compute_empty_tree_root::<0>(), 0);\n\n assert_eq(\n compute_empty_tree_root::<1>(),\n 0x19f1a0c09db4cd026f686e9c8fb45501a9fefb4eb1b4c6c328a51343a0094eeb,\n );\n\n assert_eq(\n compute_empty_tree_root::<2>(),\n 0x14e4b977b2203b70e6ee1c2456eb7114d090fe4b907f631eecd0919fed432e7d,\n );\n\n assert_eq(\n compute_empty_tree_root::<6>(),\n 0x119f56a2e8423a7feaab49b9b5dcbadec0648dfa4096b61b6774ea33ae29dc7f,\n );\n\n assert_eq(\n compute_empty_tree_root::<10>(),\n 0x0d04c63f36bd168215c9b09a227c7e8d3ad48e2f11b8202fd07c524bd30ee88f,\n );\n}\n"
698
698
  },
699
- "215": {
699
+ "212": {
700
700
  "function_locations": [
701
701
  {
702
702
  "name": "derive_storage_slot_in_map",
@@ -710,7 +710,7 @@
710
710
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/storage/map.nr",
711
711
  "source": "use crate::{\n constants::DOM_SEP__PUBLIC_STORAGE_MAP_SLOT, hash::poseidon2_hash_with_separator,\n traits::ToField,\n};\n\n// TODO: Move this to src/public_data/storage/map.nr\npub fn derive_storage_slot_in_map<K>(storage_slot: Field, key: K) -> Field\nwhere\n K: ToField,\n{\n poseidon2_hash_with_separator(\n [storage_slot, key.to_field()],\n DOM_SEP__PUBLIC_STORAGE_MAP_SLOT,\n )\n}\n\nmod test {\n use crate::{address::AztecAddress, storage::map::derive_storage_slot_in_map, traits::FromField};\n\n #[test]\n fn test_derive_storage_slot_in_map_matches_typescript() {\n let map_slot = 0x132258fb6962c4387ba659d9556521102d227549a386d39f0b22d1890d59c2b5;\n let key = AztecAddress::from_field(\n 0x302dbc2f9b50a73283d5fb2f35bc01eae8935615817a0b4219a057b2ba8a5a3f,\n );\n\n let slot = derive_storage_slot_in_map(map_slot, key);\n\n // The following value was generated by `map_slot.test.ts`\n let slot_from_typescript =\n 0x2d225f361108379adc2da91378b9702675c5546b57e78bafc1e74ec7fec55967;\n\n assert_eq(slot, slot_from_typescript);\n }\n}\n"
712
712
  },
713
- "223": {
713
+ "220": {
714
714
  "function_locations": [
715
715
  {
716
716
  "name": "<impl Packable for bool>::pack",
@@ -840,7 +840,7 @@
840
840
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/type_packing.nr",
841
841
  "source": "use crate::traits::{Deserialize, Packable, Serialize};\n\nglobal BOOL_PACKED_LEN: u32 = 1;\nglobal U8_PACKED_LEN: u32 = 1;\nglobal U16_PACKED_LEN: u32 = 1;\nglobal U32_PACKED_LEN: u32 = 1;\nglobal U64_PACKED_LEN: u32 = 1;\nglobal U128_PACKED_LEN: u32 = 1;\nglobal FIELD_PACKED_LEN: u32 = 1;\nglobal I8_PACKED_LEN: u32 = 1;\nglobal I16_PACKED_LEN: u32 = 1;\nglobal I32_PACKED_LEN: u32 = 1;\nglobal I64_PACKED_LEN: u32 = 1;\nglobal POINT_PACKED_LEN: u32 = 2;\n\nimpl Packable for bool {\n let N: u32 = BOOL_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> bool {\n (fields[0] as u8) % 2 != 0\n }\n}\n\nimpl Packable for u8 {\n let N: u32 = U8_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u8\n }\n}\n\nimpl Packable for u16 {\n let N: u32 = U16_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u16\n }\n}\n\nimpl Packable for u32 {\n let N: u32 = U32_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u32\n }\n}\n\nimpl Packable for u64 {\n let N: u32 = U64_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u64\n }\n}\n\nimpl Packable for u128 {\n let N: u32 = U128_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u128\n }\n}\n\nimpl Packable for Field {\n let N: u32 = FIELD_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0]\n }\n}\n\nimpl Packable for i8 {\n let N: u32 = I8_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as u8 as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u8 as i8\n }\n}\n\nimpl Packable for i16 {\n let N: u32 = I16_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as u16 as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u16 as i16\n }\n}\n\nimpl Packable for i32 {\n let N: u32 = I32_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as u32 as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u32 as i32\n }\n}\n\nimpl Packable for i64 {\n let N: u32 = I64_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as u64 as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u64 as i64\n }\n}\n\nimpl Packable for super::point::EmbeddedCurvePoint {\n let N: u32 = POINT_PACKED_LEN;\n fn pack(self) -> [Field; Self::N] {\n self.serialize()\n }\n\n fn unpack(packed: [Field; Self::N]) -> Self {\n Self::deserialize(packed)\n }\n}\n\nimpl<T, let M: u32> Packable for [T; M]\nwhere\n T: Packable,\n{\n let N: u32 = M * <T as Packable>::N;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n let mut result: [Field; Self::N] = std::mem::zeroed();\n for i in 0..M {\n let serialized = self[i].pack();\n for j in 0..<T as Packable>::N {\n result[i * <T as Packable>::N + j] = serialized[j];\n }\n }\n result\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n let mut reader = crate::utils::reader::Reader::new(fields);\n let result: [T; M] = std::mem::zeroed();\n reader.read_struct_array::<T, <T as Packable>::N, M>(Packable::unpack, result)\n }\n}\n\n#[test]\nfn test_u16_packing() {\n let a: u16 = 10;\n assert_eq(a, u16::unpack(a.pack()));\n}\n\n#[test]\nfn test_i8_packing() {\n let a: i8 = -10;\n assert_eq(a, i8::unpack(a.pack()));\n}\n\n#[test]\nfn test_i16_packing() {\n let a: i16 = -10;\n assert_eq(a, i16::unpack(a.pack()));\n}\n\n#[test]\nfn test_i32_packing() {\n let a: i32 = -10;\n assert_eq(a, i32::unpack(a.pack()));\n}\n\n#[test]\nfn test_i64_packing() {\n let a: i64 = -10;\n assert_eq(a, i64::unpack(a.pack()));\n}\n"
842
842
  },
843
- "242": {
843
+ "239": {
844
844
  "function_locations": [
845
845
  {
846
846
  "name": "Poseidon2::hash",
@@ -882,7 +882,7 @@
882
882
  "path": "/home/aztec-dev/nargo/github.com/noir-lang/poseidon/v0.3.0/src/poseidon2.nr",
883
883
  "source": "use std::default::Default;\nuse std::hash::Hasher;\n\nglobal RATE: u32 = 3;\n\npub struct Poseidon2 {\n cache: [Field; 3],\n state: [Field; 4],\n cache_size: u32,\n squeeze_mode: bool, // 0 => absorb, 1 => squeeze\n}\n\nimpl Poseidon2 {\n #[no_predicates]\n pub fn hash<let N: u32>(input: [Field; N], message_size: u32) -> Field {\n Poseidon2::hash_internal(input, message_size)\n }\n\n pub(crate) fn new(iv: Field) -> Poseidon2 {\n let mut result =\n Poseidon2 { cache: [0; 3], state: [0; 4], cache_size: 0, squeeze_mode: false };\n result.state[RATE] = iv;\n result\n }\n\n fn perform_duplex(&mut self) {\n // add the cache into sponge state\n self.state[0] += self.cache[0];\n self.state[1] += self.cache[1];\n self.state[2] += self.cache[2];\n self.state = crate::poseidon2_permutation(self.state);\n }\n\n fn absorb(&mut self, input: Field) {\n assert(!self.squeeze_mode);\n if self.cache_size == RATE {\n // If we're absorbing, and the cache is full, apply the sponge permutation to compress the cache\n self.perform_duplex();\n self.cache[0] = input;\n self.cache_size = 1;\n } else {\n // If we're absorbing, and the cache is not full, add the input into the cache\n self.cache[self.cache_size] = input;\n self.cache_size += 1;\n }\n }\n\n fn squeeze(&mut self) -> Field {\n assert(!self.squeeze_mode);\n // If we're in absorb mode, apply sponge permutation to compress the cache.\n self.perform_duplex();\n self.squeeze_mode = true;\n\n // Pop one item off the top of the permutation and return it.\n self.state[0]\n }\n\n fn hash_internal<let N: u32>(input: [Field; N], in_len: u32) -> Field {\n let two_pow_64 = 18446744073709551616;\n let iv: Field = (in_len as Field) * two_pow_64;\n let mut state = [0; 4];\n state[RATE] = iv;\n\n if std::runtime::is_unconstrained() {\n for i in 0..(in_len / RATE) {\n state[0] += input[i * RATE];\n state[1] += input[i * RATE + 1];\n state[2] += input[i * RATE + 2];\n state = crate::poseidon2_permutation(state);\n }\n\n // handle remaining elements after last full RATE-sized chunk\n let num_extra_fields = in_len % RATE;\n if num_extra_fields != 0 {\n let remainder_start = in_len - num_extra_fields;\n state[0] += input[remainder_start];\n if num_extra_fields > 1 {\n state[1] += input[remainder_start + 1];\n }\n }\n } else {\n let mut states: [[Field; 4]; N / RATE + 1] = [[0; 4]; N / RATE + 1];\n states[0] = state;\n\n // process all full RATE-sized chunks, storing state after each permutation\n for chunk_idx in 0..(N / RATE) {\n for i in 0..RATE {\n state[i] += input[chunk_idx * RATE + i];\n }\n state = crate::poseidon2_permutation(state);\n states[chunk_idx + 1] = state;\n }\n\n // get state at the last full block before in_len\n let first_partially_filled_chunk = in_len / RATE;\n state = states[first_partially_filled_chunk];\n\n // handle remaining elements after last full RATE-sized chunk\n let remainder_start = (in_len / RATE) * RATE;\n for j in 0..RATE {\n let idx = remainder_start + j;\n if idx < in_len {\n state[j] += input[idx];\n }\n }\n }\n\n // always run final permutation unless we just completed a full chunk\n // still need to permute once if in_len is 0\n if (in_len == 0) | (in_len % RATE != 0) {\n state = crate::poseidon2_permutation(state);\n };\n\n state[0]\n }\n}\n\npub struct Poseidon2Hasher {\n _state: [Field],\n}\n\nimpl Hasher for Poseidon2Hasher {\n fn finish(self) -> Field {\n let iv: Field = (self._state.len() as Field) * 18446744073709551616; // iv = (self._state.len() << 64)\n let mut sponge = Poseidon2::new(iv);\n for i in 0..self._state.len() {\n sponge.absorb(self._state[i]);\n }\n sponge.squeeze()\n }\n\n fn write(&mut self, input: Field) {\n self._state = self._state.push_back(input);\n }\n}\n\nimpl Default for Poseidon2Hasher {\n fn default() -> Self {\n Poseidon2Hasher { _state: @[] }\n }\n}\n"
884
884
  },
885
- "245": {
885
+ "242": {
886
886
  "function_locations": [
887
887
  {
888
888
  "name": "Reader<N>::new",
@@ -932,7 +932,7 @@
932
932
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/serde/src/reader.nr",
933
933
  "source": "pub struct Reader<let N: u32> {\n data: [Field; N],\n offset: u32,\n}\n\nimpl<let N: u32> Reader<N> {\n pub fn new(data: [Field; N]) -> Self {\n Self { data, offset: 0 }\n }\n\n pub fn read(&mut self) -> Field {\n let result = self.data[self.offset];\n self.offset += 1;\n result\n }\n\n pub fn read_u32(&mut self) -> u32 {\n self.read() as u32\n }\n\n pub fn read_u64(&mut self) -> u64 {\n self.read() as u64\n }\n\n pub fn read_bool(&mut self) -> bool {\n self.read() != 0\n }\n\n pub fn read_array<let K: u32>(&mut self) -> [Field; K] {\n let mut result = [0; K];\n for i in 0..K {\n result[i] = self.data[self.offset + i];\n }\n self.offset += K;\n result\n }\n\n pub fn read_struct<T, let K: u32>(&mut self, deserialise: fn([Field; K]) -> T) -> T {\n let result = deserialise(self.read_array());\n result\n }\n\n pub fn read_struct_array<T, let K: u32, let C: u32>(\n &mut self,\n deserialise: fn([Field; K]) -> T,\n mut result: [T; C],\n ) -> [T; C] {\n for i in 0..C {\n result[i] = self.read_struct(deserialise);\n }\n result\n }\n\n pub fn peek_offset(&mut self, offset: u32) -> Field {\n self.data[self.offset + offset]\n }\n\n pub fn advance_offset(&mut self, offset: u32) {\n self.offset += offset;\n }\n\n pub fn finish(self) {\n assert_eq(self.offset, self.data.len(), \"Reader did not read all data\");\n }\n}\n"
934
934
  },
935
- "246": {
935
+ "243": {
936
936
  "function_locations": [
937
937
  {
938
938
  "name": "derive_serialize",
@@ -958,7 +958,7 @@
958
958
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/serde/src/serialization.nr",
959
959
  "source": "use crate::{reader::Reader, writer::Writer};\n\n/// Trait for serializing Noir types into arrays of Fields.\n///\n/// An implementation of the Serialize trait has to follow Noir's intrinsic serialization (each member of a struct\n/// converted directly into one or more Fields without any packing or compression). This trait (and Deserialize) are\n/// typically used to communicate between Noir and TypeScript (via oracles and function arguments).\n///\n/// # On Following Noir's Intrinsic Serialization\n/// When calling a Noir function from TypeScript (TS), first the function arguments are serialized into an array\n/// of fields. This array is then included in the initial witness. Noir's intrinsic serialization is then used\n/// to deserialize the arguments from the witness. When the same Noir function is called from Noir this Serialize trait\n/// is used instead of the serialization in TS. For this reason we need to have a match between TS serialization,\n/// Noir's intrinsic serialization and the implementation of this trait. If there is a mismatch, the function calls\n/// fail with an arguments hash mismatch error message.\n///\n/// # Associated Constants\n/// * `N` - The length of the output Field array, known at compile time\n///\n/// # Example\n/// ```\n/// impl<let N: u32> Serialize for str<N> {\n/// let N: u32 = N;\n///\n/// fn serialize(self) -> [Field; Self::N] {\n/// let mut writer: Writer<Self::N> = Writer::new();\n/// self.stream_serialize(&mut writer);\n/// writer.finish()\n/// }\n///\n/// fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n/// let bytes = self.as_bytes();\n/// for i in 0..bytes.len() {\n/// writer.write(bytes[i] as Field);\n/// }\n/// }\n/// }\n/// ```\n#[derive_via(derive_serialize)]\npub trait Serialize {\n let N: u32;\n\n fn serialize(self) -> [Field; Self::N];\n\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>);\n}\n\n/// Generates a `Serialize` trait implementation for a struct type.\n///\n/// # Parameters\n/// - `s`: The struct type definition to generate the implementation for\n///\n/// # Returns\n/// A quoted code block containing the trait implementation\n///\n/// # Example\n/// For a struct defined as:\n/// ```\n/// struct Log<N> {\n/// fields: [Field; N],\n/// length: u32\n/// }\n/// ```\n///\n/// This function generates code equivalent to:\n/// ```\n/// impl<let N: u32> Serialize for Log<N> {\n/// let N: u32 = <[Field; N] as Serialize>::N + <u32 as Serialize>::N;\n///\n/// fn serialize(self) -> [Field; Self::N] {\n/// let mut writer: Writer<Self::N> = Writer::new();\n/// self.stream_serialize(&mut writer);\n/// writer.finish()\n/// }\n///\n/// #[inline_always]\n/// fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n/// Serialize::stream_serialize(self.fields, writer);\n/// Serialize::stream_serialize(self.length, writer);\n/// }\n/// }\n/// ```\npub comptime fn derive_serialize(s: TypeDefinition) -> Quoted {\n let typ = s.as_type();\n let nested_struct = typ.as_data_type().unwrap();\n\n // We care only about the name and type so we drop the last item of the tuple\n let params = nested_struct.0.fields(nested_struct.1).map(|(name, typ, _)| (name, typ));\n\n // Generates the generic parameter declarations (to be placed after the `impl` keyword) and the `where` clause\n // for the `Serialize` trait.\n let generics_declarations = get_generics_declarations(s);\n let where_serialize_clause = get_where_trait_clause(s, quote { Serialize });\n\n let params_len_quote = get_params_len_quote(params);\n\n let function_body = params\n .map(|(name, _typ): (Quoted, Type)| {\n quote {\n $crate::serialization::Serialize::stream_serialize(self.$name, writer);\n }\n })\n .join(quote {});\n\n quote {\n impl$generics_declarations $crate::serialization::Serialize for $typ\n $where_serialize_clause\n {\n let N: u32 = $params_len_quote;\n\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: $crate::writer::Writer<Self::N> = $crate::writer::Writer::new();\n $crate::serialization::Serialize::stream_serialize(self, &mut writer);\n writer.finish()\n }\n\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut $crate::writer::Writer<K>) {\n $function_body\n }\n }\n }\n}\n\n/// Trait for deserializing Noir types from arrays of Fields.\n///\n/// An implementation of the Deserialize trait has to follow Noir's intrinsic serialization (each member of a struct\n/// converted directly into one or more Fields without any packing or compression). This trait is typically used when\n/// deserializing return values from function calls in Noir. Since the same function could be called from TypeScript\n/// (TS), in which case the TS deserialization would get used, we need to have a match between the 2.\n///\n/// # Associated Constants\n/// * `N` - The length of the input Field array, known at compile time\n///\n/// # Example\n/// ```\n/// impl<let M: u32> Deserialize for str<M> {\n/// let N: u32 = M;\n///\n/// fn deserialize(fields: [Field; Self::N]) -> Self {\n/// let mut reader = Reader::new(fields);\n/// let result = Self::stream_deserialize(&mut reader);\n/// reader.finish();\n/// result\n/// }\n///\n/// fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n/// let mut bytes = [0 as u8; M];\n/// for i in 0..M {\n/// bytes[i] = reader.read() as u8;\n/// }\n/// str::<M>::from(bytes)\n/// }\n/// }\n/// ```\n#[derive_via(derive_deserialize)]\npub trait Deserialize {\n let N: u32;\n\n fn deserialize(fields: [Field; Self::N]) -> Self;\n\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self;\n}\n\n/// Generates a `Deserialize` trait implementation for a given struct `s`.\n///\n/// # Arguments\n/// * `s` - The struct type definition to generate the implementation for\n///\n/// # Returns\n/// A `Quoted` block containing the generated trait implementation\n///\n/// # Requirements\n/// Each struct member type must implement the `Deserialize` trait (it gets used in the generated code).\n///\n/// # Example\n/// For a struct like:\n/// ```\n/// struct MyStruct {\n/// x: AztecAddress,\n/// y: Field,\n/// }\n/// ```\n///\n/// This generates:\n/// ```\n/// impl Deserialize for MyStruct {\n/// let N: u32 = <AztecAddress as Deserialize>::N + <Field as Deserialize>::N;\n///\n/// fn deserialize(fields: [Field; Self::N]) -> Self {\n/// let mut reader = Reader::new(fields);\n/// let result = Self::stream_deserialize(&mut reader);\n/// reader.finish();\n/// result\n/// }\n///\n/// #[inline_always]\n/// fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n/// let x = <AztecAddress as Deserialize>::stream_deserialize(reader);\n/// let y = <Field as Deserialize>::stream_deserialize(reader);\n/// Self { x, y }\n/// }\n/// }\n/// ```\npub comptime fn derive_deserialize(s: TypeDefinition) -> Quoted {\n let typ = s.as_type();\n let nested_struct = typ.as_data_type().unwrap();\n let params = nested_struct.0.fields(nested_struct.1);\n\n // Generates the generic parameter declarations (to be placed after the `impl` keyword) and the `where` clause\n // for the `Deserialize` trait.\n let generics_declarations = get_generics_declarations(s);\n let where_deserialize_clause = get_where_trait_clause(s, quote { Deserialize });\n\n // The following will give us:\n // <type_of_struct_member_1 as Deserialize>::N + <type_of_struct_member_2 as Deserialize>::N + ...\n // (or 0 if the struct has no members)\n let right_hand_side_of_definition_of_n = if params.len() > 0 {\n params\n .map(|(_, param_type, _): (Quoted, Type, Quoted)| {\n quote {\n <$param_type as $crate::serialization::Deserialize>::N\n }\n })\n .join(quote {+})\n } else {\n quote { 0 }\n };\n\n // For structs containing a single member, we can enhance performance by directly deserializing the input array,\n // bypassing the need for loop-based array construction. While this optimization yields significant benefits in\n // Brillig where the loops are expected to not be optimized, it is not relevant in ACIR where the loops are\n // expected to be optimized away.\n let function_body = if params.len() > 1 {\n // This generates deserialization code for each struct member and concatenates them together.\n let deserialization_of_struct_members = params\n .map(|(param_name, param_type, _): (Quoted, Type, Quoted)| {\n quote {\n let $param_name = <$param_type as Deserialize>::stream_deserialize(reader);\n }\n })\n .join(quote {});\n\n // We join the struct member names with a comma to be used in the `Self { ... }` syntax\n // This will give us e.g. `a, b, c` for a struct with three fields named `a`, `b`, and `c`.\n let struct_members = params\n .map(|(param_name, _, _): (Quoted, Type, Quoted)| quote { $param_name })\n .join(quote {,});\n\n quote {\n $deserialization_of_struct_members\n\n Self { $struct_members }\n }\n } else if params.len() == 1 {\n let param_name = params[0].0;\n quote {\n Self { $param_name: $crate::serialization::Deserialize::stream_deserialize(reader) }\n }\n } else {\n quote {\n Self {}\n }\n };\n\n quote {\n impl$generics_declarations $crate::serialization::Deserialize for $typ\n $where_deserialize_clause\n {\n let N: u32 = $right_hand_side_of_definition_of_n;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = $crate::reader::Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut $crate::reader::Reader<K>) -> Self {\n $function_body\n }\n }\n }\n}\n\n/// Generates a quoted expression that computes the total serialized length of function parameters.\n///\n/// # Parameters\n/// * `params` - An array of tuples where each tuple contains a quoted parameter name and its Type. The type needs\n/// to implement the Serialize trait.\n///\n/// # Returns\n/// A quoted expression that evaluates to:\n/// * `0` if there are no parameters\n/// * `(<type1 as Serialize>::N + <type2 as Serialize>::N + ...)` for one or more parameters\ncomptime fn get_params_len_quote(params: [(Quoted, Type)]) -> Quoted {\n if params.len() == 0 {\n quote { 0 }\n } else {\n let params_quote_without_parentheses = params\n .map(|(_, param_type): (Quoted, Type)| {\n quote {\n <$param_type as $crate::serialization::Serialize>::N\n }\n })\n .join(quote {+});\n quote { ($params_quote_without_parentheses) }\n }\n}\n\ncomptime fn get_generics_declarations(s: TypeDefinition) -> Quoted {\n let generics = s.generics();\n\n if generics.len() > 0 {\n let generics_declarations_items = generics\n .map(|(name, maybe_integer_typ)| {\n // The second item in the generics tuple is an Option of an integer type that is Some only if\n // the generic is numeric.\n if maybe_integer_typ.is_some() {\n // The generic is numeric, so we return a quote defined as e.g. \"let N: u32\"\n let integer_type = maybe_integer_typ.unwrap();\n quote {let $name: $integer_type}\n } else {\n // The generic is not numeric, so we return a quote containing the name of the generic (e.g. \"T\")\n quote { $name }\n }\n })\n .join(quote {,});\n quote {<$generics_declarations_items>}\n } else {\n // The struct doesn't have any generics defined, so we just return an empty quote.\n quote {}\n }\n}\n\ncomptime fn get_where_trait_clause(s: TypeDefinition, trait_name: Quoted) -> Quoted {\n let generics = s.generics();\n\n // The second item in the generics tuple is an Option of an integer type that is Some only if the generic is\n // numeric.\n let non_numeric_generics =\n generics.filter(|(_, maybe_integer_typ)| maybe_integer_typ.is_none());\n\n if non_numeric_generics.len() > 0 {\n let non_numeric_generics_declarations =\n non_numeric_generics.map(|(name, _)| quote {$name: $trait_name}).join(quote {,});\n quote {where $non_numeric_generics_declarations}\n } else {\n // There are no non-numeric generics, so we return an empty quote.\n quote {}\n }\n}\n"
960
960
  },
961
- "248": {
961
+ "245": {
962
962
  "function_locations": [
963
963
  {
964
964
  "name": "<impl Serialize for bool>::serialize",
@@ -1272,7 +1272,7 @@
1272
1272
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/serde/src/type_impls.nr",
1273
1273
  "source": "use crate::{reader::Reader, serialization::{Deserialize, Serialize}, writer::Writer};\nuse std::embedded_curve_ops::EmbeddedCurvePoint;\nuse std::embedded_curve_ops::EmbeddedCurveScalar;\n\nglobal BOOL_SERIALIZED_LEN: u32 = 1;\nglobal U8_SERIALIZED_LEN: u32 = 1;\nglobal U16_SERIALIZED_LEN: u32 = 1;\nglobal U32_SERIALIZED_LEN: u32 = 1;\nglobal U64_SERIALIZED_LEN: u32 = 1;\nglobal U128_SERIALIZED_LEN: u32 = 1;\nglobal FIELD_SERIALIZED_LEN: u32 = 1;\nglobal I8_SERIALIZED_LEN: u32 = 1;\nglobal I16_SERIALIZED_LEN: u32 = 1;\nglobal I32_SERIALIZED_LEN: u32 = 1;\nglobal I64_SERIALIZED_LEN: u32 = 1;\n\nimpl Serialize for bool {\n let N: u32 = BOOL_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for bool {\n let N: u32 = BOOL_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> bool {\n reader.read() != 0\n }\n}\n\nimpl Serialize for u8 {\n let N: u32 = U8_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u8 {\n let N: u32 = U8_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u8\n }\n}\n\nimpl Serialize for u16 {\n let N: u32 = U16_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u16 {\n let N: u32 = U16_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u16\n }\n}\n\nimpl Serialize for u32 {\n let N: u32 = U32_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u32 {\n let N: u32 = U32_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u32\n }\n}\n\nimpl Serialize for u64 {\n let N: u32 = U64_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u64 {\n let N: u32 = U64_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u64\n }\n}\n\nimpl Serialize for u128 {\n let N: u32 = U128_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u128 {\n let N: u32 = U128_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u128\n }\n}\n\nimpl Serialize for Field {\n let N: u32 = FIELD_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self);\n }\n}\n\nimpl Deserialize for Field {\n let N: u32 = FIELD_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read()\n }\n}\n\nimpl Serialize for i8 {\n let N: u32 = I8_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as u8 as Field);\n }\n}\n\nimpl Deserialize for i8 {\n let N: u32 = I8_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u8 as i8\n }\n}\n\nimpl Serialize for i16 {\n let N: u32 = I16_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as u16 as Field);\n }\n}\n\nimpl Deserialize for i16 {\n let N: u32 = I16_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u16 as i16\n }\n}\n\nimpl Serialize for i32 {\n let N: u32 = I32_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as u32 as Field);\n }\n}\n\nimpl Deserialize for i32 {\n let N: u32 = I32_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u32 as i32\n }\n}\n\nimpl Serialize for i64 {\n let N: u32 = I64_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as u64 as Field);\n }\n}\n\nimpl Deserialize for i64 {\n let N: u32 = I64_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u64 as i64\n }\n}\n\nimpl<T, let M: u32> Serialize for [T; M]\nwhere\n T: Serialize,\n{\n let N: u32 = <T as Serialize>::N * M;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n for i in 0..M {\n self[i].stream_serialize(writer);\n }\n }\n}\n\nimpl<T, let M: u32> Deserialize for [T; M]\nwhere\n T: Deserialize,\n{\n let N: u32 = <T as Deserialize>::N * M;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n let mut result: [T; M] = std::mem::zeroed();\n for i in 0..M {\n result[i] = T::stream_deserialize(reader);\n }\n result\n }\n}\n\nimpl<T> Serialize for Option<T>\nwhere\n T: Serialize,\n{\n let N: u32 = <T as Serialize>::N + 1;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write_bool(self.is_some());\n if self.is_some() {\n self.unwrap_unchecked().stream_serialize(writer);\n } else {\n writer.advance_offset(<T as Serialize>::N);\n }\n }\n}\n\nimpl<T> Deserialize for Option<T>\nwhere\n T: Deserialize,\n{\n let N: u32 = <T as Deserialize>::N + 1;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n if reader.read_bool() {\n Option::some(<T as Deserialize>::stream_deserialize(reader))\n } else {\n reader.advance_offset(<T as Deserialize>::N);\n Option::none()\n }\n }\n}\n\nglobal SCALAR_SIZE: u32 = 2;\n\nimpl Serialize for EmbeddedCurveScalar {\n\n let N: u32 = SCALAR_SIZE;\n\n fn serialize(self) -> [Field; SCALAR_SIZE] {\n [self.lo, self.hi]\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self.lo);\n writer.write(self.hi);\n }\n}\n\nimpl Deserialize for EmbeddedCurveScalar {\n let N: u32 = SCALAR_SIZE;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n Self { lo: fields[0], hi: fields[1] }\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n Self { lo: reader.read(), hi: reader.read() }\n }\n}\n\nglobal POINT_SIZE: u32 = 2;\n\nimpl Serialize for EmbeddedCurvePoint {\n let N: u32 = POINT_SIZE;\n\n fn serialize(self) -> [Field; Self::N] {\n [self.x, self.y]\n }\n\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self.x);\n writer.write(self.y);\n }\n}\n\nimpl Deserialize for EmbeddedCurvePoint {\n let N: u32 = POINT_SIZE;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n Self { x: fields[0], y: fields[1] }\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n Self { x: reader.read(), y: reader.read() }\n }\n}\n\nimpl<let M: u32> Deserialize for str<M> {\n let N: u32 = M;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n let u8_arr = <[u8; Self::N] as Deserialize>::stream_deserialize(reader);\n str::<Self::N>::from(u8_arr)\n }\n}\n\nimpl<let M: u32> Serialize for str<M> {\n let N: u32 = M;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n self.as_bytes().stream_serialize(writer);\n }\n}\n\n// Note: Not deriving this because it's not supported to call derive_serialize on a \"remote\" struct (and it will never\n// be supported).\nimpl<T, let M: u32> Deserialize for BoundedVec<T, M>\nwhere\n T: Deserialize,\n{\n let N: u32 = <T as Deserialize>::N * M + 1;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n let mut new_bounded_vec: BoundedVec<T, M> = BoundedVec::new();\n let payload_len = Self::N - 1;\n\n // Length is stored in the last field as we need to match intrinsic Noir serialization and the `len` struct\n // field is after `storage` struct field (see `bounded_vec.nr` in noir-stdlib)\n let len = reader.peek_offset(payload_len) as u32;\n\n for i in 0..M {\n if i < len {\n new_bounded_vec.push(<T as Deserialize>::stream_deserialize(reader));\n }\n }\n\n // +1 for the length of the BoundedVec\n reader.advance_offset((M - len) * <T as Deserialize>::N + 1);\n\n new_bounded_vec\n }\n}\n\n// This may cause issues if used as program input, because noir disallows empty arrays for program input.\n// I think this is okay because I don't foresee a unit type being used as input. But leaving this comment as a hint\n// if someone does run into this in the future.\nimpl Deserialize for () {\n let N: u32 = 0;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(_reader: &mut Reader<K>) -> Self {\n ()\n }\n}\n\n// Note: Not deriving this because it's not supported to call derive_serialize on a \"remote\" struct (and it will never\n// be supported).\nimpl<T, let M: u32> Serialize for BoundedVec<T, M>\nwhere\n T: Serialize,\n{\n let N: u32 = <T as Serialize>::N * M + 1; // +1 for the length of the BoundedVec\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n self.storage().stream_serialize(writer);\n // Length is stored in the last field as we need to match intrinsic Noir serialization and the `len` struct\n // field is after `storage` struct field (see `bounded_vec.nr` in noir-stdlib)\n writer.write_u32(self.len() as u32);\n }\n}\n\n// Create a slice of the given length with each element made from `f(i)` where `i` is the current index\ncomptime fn make_slice<Env, T>(length: u32, f: fn[Env](u32) -> T) -> [T] {\n let mut slice = @[];\n for i in 0..length {\n slice = slice.push_back(f(i));\n }\n slice\n}\n\n// Implements Serialize and Deserialize for an arbitrary tuple type\ncomptime fn impl_serialize_for_tuple(_m: Module, length: u32) -> Quoted {\n // `T0`, `T1`, `T2`\n let type_names = make_slice(length, |i| f\"T{i}\".quoted_contents());\n\n // `result0`, `result1`, `result2`\n let result_names = make_slice(length, |i| f\"result{i}\".quoted_contents());\n\n // `T0, T1, T2`\n let field_generics = type_names.join(quote [,]);\n\n // `<T0 as Serialize>::N + <T1 as Serialize>::N + <T2 as Serialize>::N`\n let full_size_serialize = type_names\n .map(|type_name| quote {\n <$type_name as Serialize>::N\n })\n .join(quote [+]);\n\n // `<T0 as Deserialize>::N + <T1 as Deserialize>::N + <T2 as Deserialize>::N`\n let full_size_deserialize = type_names\n .map(|type_name| quote {\n <$type_name as Deserialize>::N\n })\n .join(quote [+]);\n\n // `T0: Serialize, T1: Serialize, T2: Serialize,`\n let serialize_constraints = type_names\n .map(|field_name| quote {\n $field_name: Serialize,\n })\n .join(quote []);\n\n // `T0: Deserialize, T1: Deserialize, T2: Deserialize,`\n let deserialize_constraints = type_names\n .map(|field_name| quote {\n $field_name: Deserialize,\n })\n .join(quote []);\n\n // Statements to serialize each field\n let serialized_fields = type_names\n .mapi(|i, _type_name| quote {\n $crate::serialization::Serialize::stream_serialize(self.$i, writer);\n })\n .join(quote []);\n\n // Statements to deserialize each field\n let deserialized_fields = type_names\n .mapi(|i, type_name| {\n let result_name = result_names[i];\n quote {\n let $result_name = <$type_name as $crate::serialization::Deserialize>::stream_deserialize(reader);\n }\n })\n .join(quote []);\n let deserialize_results = result_names.join(quote [,]);\n\n quote {\n impl<$field_generics> Serialize for ($field_generics) where $serialize_constraints {\n let N: u32 = $full_size_serialize;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: $crate::writer::Writer<Self::N> = $crate::writer::Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut $crate::writer::Writer<K>) {\n\n $serialized_fields\n }\n }\n\n impl<$field_generics> Deserialize for ($field_generics) where $deserialize_constraints {\n let N: u32 = $full_size_deserialize;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = $crate::reader::Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n \n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut $crate::reader::Reader<K>) -> Self {\n $deserialized_fields\n ($deserialize_results)\n }\n }\n }\n}\n\n// Keeping these manual impls. They are more efficient since they do not\n// require copying sub-arrays from any serialized arrays.\nimpl<T1> Serialize for (T1,)\nwhere\n T1: Serialize,\n{\n let N: u32 = <T1 as Serialize>::N;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: crate::writer::Writer<Self::N> = crate::writer::Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n self.0.stream_serialize(writer);\n }\n}\n\nimpl<T1> Deserialize for (T1,)\nwhere\n T1: Deserialize,\n{\n let N: u32 = <T1 as Deserialize>::N;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = crate::reader::Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n (<T1 as Deserialize>::stream_deserialize(reader),)\n }\n}\n\n#[impl_serialize_for_tuple(2)]\n#[impl_serialize_for_tuple(3)]\n#[impl_serialize_for_tuple(4)]\n#[impl_serialize_for_tuple(5)]\n#[impl_serialize_for_tuple(6)]\nmod impls {\n use crate::serialization::{Deserialize, Serialize};\n}\n\n#[test]\nunconstrained fn bounded_vec_serialization() {\n // Test empty BoundedVec\n let empty_vec: BoundedVec<Field, 3> = BoundedVec::from_array([]);\n let serialized = empty_vec.serialize();\n let deserialized = BoundedVec::<Field, 3>::deserialize(serialized);\n assert_eq(empty_vec, deserialized);\n assert_eq(deserialized.len(), 0);\n\n // Test partially filled BoundedVec\n let partial_vec: BoundedVec<[u32; 2], 3> = BoundedVec::from_array([[1, 2]]);\n let serialized = partial_vec.serialize();\n let deserialized = BoundedVec::<[u32; 2], 3>::deserialize(serialized);\n assert_eq(partial_vec, deserialized);\n assert_eq(deserialized.len(), 1);\n assert_eq(deserialized.get(0), [1, 2]);\n\n // Test full BoundedVec\n let full_vec: BoundedVec<[u32; 2], 3> = BoundedVec::from_array([[1, 2], [3, 4], [5, 6]]);\n let serialized = full_vec.serialize();\n let deserialized = BoundedVec::<[u32; 2], 3>::deserialize(serialized);\n assert_eq(full_vec, deserialized);\n assert_eq(deserialized.len(), 3);\n assert_eq(deserialized.get(0), [1, 2]);\n assert_eq(deserialized.get(1), [3, 4]);\n assert_eq(deserialized.get(2), [5, 6]);\n}\n"
1274
1274
  },
1275
- "258": {
1275
+ "255": {
1276
1276
  "function_locations": [
1277
1277
  {
1278
1278
  "name": "sha256",
@@ -2382,7 +2382,7 @@
2382
2382
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-contracts/contracts/protocol/fee_juice_contract/src/main.nr",
2383
2383
  "source": "/// Protocol contract that manages the native gas token (\"Fee Juice\") used to pay transaction fees.\n///\n/// Fee Juice is minted on L2 by bridging from L1: a user deposits ERC-20 tokens into the L1 FeeJuicePortal, which\n/// sends an L1-to-L2 message. On L2, `claim` or `claim_and_end_setup` consumes that message and credits the\n/// recipient's balance via an enqueued public call to `_increase_public_balance`.\n///\n/// The protocol's base rollup circuits read directly from this contract's `balances` storage map (at slot 1) to verify\n/// fee payers can cover their transaction costs. This storage layout is protocol-critical and must not change without\n/// updating the base rollup circuits.\n///\n/// There is no withdrawal mechanism -- Fee Juice can only be bridged in, not withdrawn or transferred by users. Tokens\n/// leave the L1 portal only via `distributeFees` called by the Rollup contract to pay sequencers.\n\nmod lib;\n\npub contract FeeJuice {\n use crate::lib::get_bridge_gas_msg_hash;\n use aztec::{\n protocol::{\n abis::function_selector::FunctionSelector,\n address::{AztecAddress, EthAddress},\n constants::FEE_JUICE_ADDRESS,\n traits::{Deserialize, ToField},\n },\n state_vars::{Map, PublicMutable},\n };\n use std::ops::Add;\n\n struct Storage<Context> {\n // contract address --> public fee juice balance\n balances: Map<AztecAddress, PublicMutable<u128, Context>, Context>,\n }\n\n global INCREASE_PUBLIC_BALANCE_SELECTOR: Field =\n comptime { FunctionSelector::from_signature(\"_increase_public_balance((Field),u128)\").to_field() };\n\n global CHECK_BALANCE_SELECTOR: Field =\n comptime { FunctionSelector::from_signature(\"check_balance(u128)\").to_field() };\n\n global BALANCE_OF_PUBLIC_SELECTOR: Field =\n comptime { FunctionSelector::from_signature(\"balance_of_public((Field))\").to_field() };\n\n /// A helper implementing the core L1-to-L2 message claim logic shared by `claim` and `claim_and_end_setup`.\n /// Computes the expected content hash, consumes the L1-to-L2 message (emitting a nullifier to prevent\n /// double-claiming), and enqueues a public call to `_increase_public_balance` to credit the recipient.\n #[contract_library_method]\n fn claim_helper(\n context: &mut aztec::context::PrivateContext,\n to: AztecAddress,\n amount: u128,\n secret: Field,\n message_leaf_index: Field,\n ) {\n let content_hash: Field = get_bridge_gas_msg_hash(to, amount);\n // The Inbox changes the sender's address to `FEE_JUICE_ADDRESS` if it's from the FeeJuicePortal.\n // This avoids the need to store the L1 address on L2 and prevents friction if the address changes.\n let portal_address: EthAddress = EthAddress::from_field(FEE_JUICE_ADDRESS.to_field());\n assert(!portal_address.is_zero());\n\n // Consume the L1-to-L2 message (verifies existence + emits nullifier to prevent replay).\n context.consume_l1_to_l2_message(content_hash, secret, portal_address, message_leaf_index);\n\n // Enqueue a public call to _increase_public_balance to credit the recipient.\n let serialized_params: [Field; 2] = [to.to_field(), amount.to_field()];\n let calldata: [Field; 1 + 2] = [INCREASE_PUBLIC_BALANCE_SELECTOR].concat(serialized_params);\n let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata);\n aztec::oracle::execution_cache::store(calldata, calldata_hash);\n context.call_public_function_with_calldata_hash(context.this_address(), calldata_hash, false, false);\n }\n\n /// Claims Fee Juice by consuming an L1-to-L2 message from the FeeJuicePortal.\n ///\n /// Use this variant when the claimed Fee Juice is NOT intended to pay for the current transaction's fees (e.g.,\n /// pre-funding an account for future transactions).\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_private]\n fn claim(\n inputs: aztec::context::inputs::PrivateContextInputs,\n to: AztecAddress,\n amount: u128,\n secret: Field,\n message_leaf_index: Field,\n ) -> return_data aztec::protocol::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs {\n // MACRO CODE START\n // Note: The macros initially inserted a phase check here, but since there is no phase change in this function\n // nor in the claim helper function or the enqueued public function call, I have removed that check.\n aztec::oracle::version::assert_compatible_oracle_version();\n let serialized_params: [Field; 4] = [to.to_field(), amount.to_field(), secret, message_leaf_index];\n let args_hash: Field = aztec::hash::hash_args(serialized_params);\n let mut context: aztec::context::PrivateContext = aztec::context::PrivateContext::new(inputs, args_hash);\n // MACRO CODE END\n\n claim_helper(&mut context, to, amount, secret, message_leaf_index);\n\n // MACRO CODE START\n context.finish()\n // MACRO CODE END\n }\n\n /// Claims Fee Juice and ends the transaction setup phase.\n ///\n /// Use this variant when the claimed Fee Juice is intended to pay for THIS transaction's fees. By ending setup\n /// after the claim, the balance increase is placed in the non-revertible phase, ensuring the fee payer's balance\n /// is credited even if the revertible portion of the transaction fails. This guarantees the sequencer can collect\n /// fees.\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_private]\n fn claim_and_end_setup(\n inputs: aztec::context::inputs::PrivateContextInputs,\n to: AztecAddress,\n amount: u128,\n secret: Field,\n message_leaf_index: Field,\n ) -> return_data aztec::protocol::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs {\n // MACRO CODE START\n aztec::oracle::version::assert_compatible_oracle_version();\n let serialized_params: [Field; 4] = [to.to_field(), amount.to_field(), secret, message_leaf_index];\n let args_hash: Field = aztec::hash::hash_args(serialized_params);\n let mut context: aztec::context::PrivateContext = aztec::context::PrivateContext::new(inputs, args_hash);\n // MACRO CODE END\n\n claim_helper(&mut context, to, amount, secret, message_leaf_index);\n\n // MACRO CODE START\n // End setup: everything before this point (including the enqueued _increase_public_balance\n // call) is non-revertible. Everything after is revertible.\n context.end_setup();\n context.finish()\n // MACRO CODE END\n }\n\n /// Internal function that credits a recipient's Fee Juice balance. Only callable by this contract itself\n /// (`#[only_self]`), enqueued by `claim` / `claim_and_end_setup` after consuming an L1-to-L2 message.\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_public]\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_only_self]\n unconstrained fn _increase_public_balance(to: AztecAddress, amount: u128) {\n // MACRO CODE START\n let context: aztec::context::PublicContext = aztec::context::PublicContext::new(\n || -> Field {\n let serialized_args: [Field; 2] = aztec::oracle::avm::calldata_copy(\n 1,\n <AztecAddress as aztec::protocol::traits::Serialize>::N\n + <u128 as aztec::protocol::traits::Serialize>::N,\n );\n aztec::hash::hash_args(serialized_args)\n },\n );\n let storage: Storage<aztec::context::PublicContext> = Storage::<aztec::context::PublicContext>::init(context);\n\n assert(\n context.maybe_msg_sender().unwrap() == context.this_address(),\n \"Function _increase_public_balance can only be called by the same contract\",\n );\n // MACRO CODE END\n\n let new_balance = storage.balances.at(to).read().add(amount);\n storage.balances.at(to).write(new_balance);\n }\n\n /// Asserts the caller has at least `fee_limit` Fee Juice. Used during transaction validation to verify the fee\n /// payer can cover the transaction's fee limit.\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_public]\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_view]\n unconstrained fn check_balance(fee_limit: u128) {\n // MACRO CODE START\n let context: aztec::context::PublicContext = aztec::context::PublicContext::new(\n || -> Field {\n let serialized_args: [Field; 1] =\n aztec::oracle::avm::calldata_copy(1, <u128 as aztec::protocol::traits::Serialize>::N);\n aztec::hash::hash_args(serialized_args)\n },\n );\n let storage: Storage<aztec::context::PublicContext> = Storage::<aztec::context::PublicContext>::init(context);\n\n assert(context.is_static_call(), \"Function check_balance can only be called statically\");\n // MACRO CODE END\n\n assert(storage.balances.at(context.maybe_msg_sender().unwrap()).read() >= fee_limit, \"Balance too low\");\n }\n\n /// Returns the Fee Juice balance of the given address.\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_public]\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_view]\n unconstrained fn balance_of_public(owner: AztecAddress) -> pub u128 {\n // MACRO CODE START\n let context: aztec::context::PublicContext = aztec::context::PublicContext::new(\n || -> Field {\n let serialized_args: [Field; 1] =\n aztec::oracle::avm::calldata_copy(1, <AztecAddress as aztec::protocol::traits::Serialize>::N);\n aztec::hash::hash_args(serialized_args)\n },\n );\n let storage: Storage<aztec::context::PublicContext> = Storage::<aztec::context::PublicContext>::init(context);\n\n assert(context.is_static_call(), \"Function balance_of_public can only be called statically\");\n // MACRO CODE END\n\n storage.balances.at(owner).read()\n }\n\n // THE REST OF THE CODE IN THIS CONTRACT WAS ORIGINALLY INJECTED BY THE #[aztec] MACRO.\n\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_public]\n pub unconstrained fn public_dispatch(selector: Field) {\n if selector == INCREASE_PUBLIC_BALANCE_SELECTOR {\n let input_calldata: [Field; 2] = aztec::oracle::avm::calldata_copy(\n 1,\n <AztecAddress as aztec::protocol::traits::Serialize>::N\n + <u128 as aztec::protocol::traits::Serialize>::N,\n );\n let mut reader: aztec::protocol::utils::reader::Reader<2> =\n aztec::protocol::utils::reader::Reader::<2>::new(input_calldata);\n let arg0: AztecAddress = <AztecAddress as Deserialize>::stream_deserialize(&mut reader);\n let arg1: u128 = <u128 as Deserialize>::stream_deserialize(&mut reader);\n _increase_public_balance(arg0, arg1);\n aztec::oracle::avm::avm_return([].as_vector());\n };\n if selector == CHECK_BALANCE_SELECTOR {\n let input_calldata: [Field; 1] =\n aztec::oracle::avm::calldata_copy(1, <u128 as aztec::protocol::traits::Serialize>::N);\n let mut reader: aztec::protocol::utils::reader::Reader<1> =\n aztec::protocol::utils::reader::Reader::<1>::new(input_calldata);\n let arg0: u128 = <u128 as Deserialize>::stream_deserialize(&mut reader);\n check_balance(arg0);\n aztec::oracle::avm::avm_return([].as_vector());\n };\n if selector == BALANCE_OF_PUBLIC_SELECTOR {\n let input_calldata: [Field; 1] =\n aztec::oracle::avm::calldata_copy(1, <AztecAddress as aztec::protocol::traits::Serialize>::N);\n let mut reader: aztec::protocol::utils::reader::Reader<1> =\n aztec::protocol::utils::reader::Reader::<1>::new(input_calldata);\n let arg0: AztecAddress = <AztecAddress as Deserialize>::stream_deserialize(&mut reader);\n let return_value: [Field; 1] =\n <u128 as aztec::protocol::traits::Serialize>::serialize(balance_of_public(arg0));\n aztec::oracle::avm::avm_return(return_value.as_vector());\n };\n panic(f\"Unknown selector {selector}\")\n }\n\n pub struct StorageLayoutFields {\n pub balances: aztec::state_vars::Storable,\n }\n\n pub struct StorageLayout<let N: u32> {\n pub contract_name: str<N>,\n pub fields: StorageLayoutFields,\n }\n\n #[abi(storage)]\n pub global STORAGE_LAYOUT_FeeJuice: StorageLayout<8> = StorageLayout::<8> {\n contract_name: \"FeeJuice\",\n fields: StorageLayoutFields { balances: aztec::state_vars::Storable { slot: 1 } },\n };\n\n impl<Context> Storage<Context> {\n fn init(context: Context) -> Self {\n Self {\n balances: <Map<AztecAddress, PublicMutable<u128, Context>, Context> as aztec::state_vars::StateVariable<1, Context>>::new(\n context,\n 1,\n ),\n }\n }\n }\n\n pub struct _increase_public_balance_parameters {\n pub _to: AztecAddress,\n pub _amount: u128,\n }\n\n pub struct balance_of_public_parameters {\n pub _owner: AztecAddress,\n }\n\n pub struct check_balance_parameters {\n pub _fee_limit: u128,\n }\n\n pub struct claim_and_end_setup_parameters {\n pub _to: AztecAddress,\n pub _amount: u128,\n pub _secret: Field,\n pub _message_leaf_index: Field,\n }\n\n pub struct claim_parameters {\n pub _to: AztecAddress,\n pub _amount: u128,\n pub _secret: Field,\n pub _message_leaf_index: Field,\n }\n\n #[abi(functions)]\n pub struct _increase_public_balance_abi {\n parameters: _increase_public_balance_parameters,\n }\n\n #[abi(functions)]\n pub struct balance_of_public_abi {\n parameters: balance_of_public_parameters,\n return_type: u128,\n }\n\n #[abi(functions)]\n pub struct check_balance_abi {\n parameters: check_balance_parameters,\n }\n\n #[abi(functions)]\n pub struct claim_abi {\n parameters: claim_parameters,\n }\n\n #[abi(functions)]\n pub struct claim_and_end_setup_abi {\n parameters: claim_and_end_setup_parameters,\n }\n}\n"
2384
2384
  },
2385
- "59": {
2385
+ "57": {
2386
2386
  "function_locations": [
2387
2387
  {
2388
2388
  "name": "PrivateContext::new",
@@ -2484,7 +2484,7 @@
2484
2484
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-contracts/contracts/protocol/aztec_sublib/src/context/private_context.nr",
2485
2485
  "source": "use crate::{\n context::{inputs::PrivateContextInputs, NullifierExistenceRequest, ReturnsHash},\n hash::hash_args,\n messaging::process_l1_to_l2_message,\n oracle::{\n call_private_function::call_private_function_internal,\n public_call::validate_public_calldata,\n tx_phase::{in_revertible_phase, notify_revertible_phase_start},\n execution_cache,\n logs::notify_created_contract_class_log,\n nullifiers::notify_created_nullifier,\n },\n};\nuse crate::protocol::{\n abis::{\n block_header::BlockHeader,\n call_context::CallContext,\n function_selector::FunctionSelector,\n gas_settings::GasSettings,\n log_hash::LogHash,\n nullifier::Nullifier,\n private_call_request::PrivateCallRequest,\n private_circuit_public_inputs::PrivateCircuitPublicInputs,\n private_log::{PrivateLog, PrivateLogData},\n public_call_request::PublicCallRequest,\n },\n address::{AztecAddress, EthAddress},\n constants::{\n CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, MAX_CONTRACT_CLASS_LOGS_PER_CALL,\n MAX_ENQUEUED_CALLS_PER_CALL, MAX_TX_LIFETIME, MAX_L2_TO_L1_MSGS_PER_CALL,\n MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PRIVATE_LOGS_PER_CALL,\n NULL_MSG_SENDER_CONTRACT_ADDRESS, PRIVATE_LOG_SIZE_IN_FIELDS,\n },\n hash::poseidon2_hash,\n messaging::l2_to_l1_message::L2ToL1Message,\n side_effect::{Counted, scoped::Scoped},\n traits::Empty,\n utils::arrays::{ClaimedLengthArray, trimmed_array_length_hint},\n};\n\n/// Minimal PrivateContext for protocol contracts going to audit.\n/// Contains only the methods actually used by: fee_juice, auth_registry, contract_class_registry, contract_instance_registry\n#[derive(Eq)]\npub struct PrivateContext {\n pub inputs: PrivateContextInputs,\n pub side_effect_counter: u32,\n\n pub min_revertible_side_effect_counter: u32,\n pub is_fee_payer: bool,\n\n pub args_hash: Field,\n pub return_hash: Field,\n\n pub expiration_timestamp: u64,\n\n pub nullifier_read_requests: BoundedVec<Scoped<Counted<Field>>, MAX_NULLIFIER_READ_REQUESTS_PER_CALL>,\n\n pub nullifiers: BoundedVec<Counted<Nullifier>, MAX_NULLIFIERS_PER_CALL>,\n\n pub private_call_requests: BoundedVec<PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,\n pub public_call_requests: BoundedVec<Counted<PublicCallRequest>, MAX_ENQUEUED_CALLS_PER_CALL>,\n pub public_teardown_call_request: PublicCallRequest,\n pub l2_to_l1_msgs: BoundedVec<Counted<L2ToL1Message>, MAX_L2_TO_L1_MSGS_PER_CALL>,\n\n // Header of a block whose state is used during private execution (not the block the transaction is included in).\n pub anchor_block_header: BlockHeader,\n\n pub private_logs: BoundedVec<Counted<PrivateLogData>, MAX_PRIVATE_LOGS_PER_CALL>,\n pub contract_class_logs_hashes: BoundedVec<Counted<LogHash>, MAX_CONTRACT_CLASS_LOGS_PER_CALL>,\n\n pub expected_non_revertible_side_effect_counter: u32,\n pub expected_revertible_side_effect_counter: u32,\n}\n\nimpl PrivateContext {\n pub fn new(inputs: PrivateContextInputs, args_hash: Field) -> PrivateContext {\n PrivateContext {\n inputs,\n side_effect_counter: inputs.start_side_effect_counter + 1,\n min_revertible_side_effect_counter: 0,\n is_fee_payer: false,\n args_hash,\n return_hash: 0,\n expiration_timestamp: inputs.anchor_block_header.global_variables.timestamp\n + MAX_TX_LIFETIME,\n nullifier_read_requests: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n anchor_block_header: inputs.anchor_block_header,\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n private_logs: BoundedVec::new(),\n contract_class_logs_hashes: BoundedVec::new(),\n expected_non_revertible_side_effect_counter: 0,\n expected_revertible_side_effect_counter: 0,\n }\n }\n\n /// Returns the contract address that initiated this function call (similar to msg.sender in Solidity).\n pub fn maybe_msg_sender(self) -> Option<AztecAddress> {\n let maybe_msg_sender = self.inputs.call_context.msg_sender;\n if maybe_msg_sender == NULL_MSG_SENDER_CONTRACT_ADDRESS {\n Option::none()\n } else {\n Option::some(maybe_msg_sender)\n }\n }\n\n /// Returns the contract address of the current function being executed.\n pub fn this_address(self) -> AztecAddress {\n self.inputs.call_context.contract_address\n }\n\n /// Returns the chain ID of the current network.\n pub fn chain_id(self) -> Field {\n self.inputs.tx_context.chain_id\n }\n\n /// Returns the protocol version.\n pub fn version(self) -> Field {\n self.inputs.tx_context.version\n }\n\n /// Returns the gas settings for the current transaction.\n pub fn gas_settings(self) -> GasSettings {\n self.inputs.tx_context.gas_settings\n }\n\n /// Returns the function selector of the currently executing function.\n pub fn selector(self) -> FunctionSelector {\n self.inputs.call_context.function_selector\n }\n\n /// Returns the hash of the arguments passed to the current function.\n pub fn get_args_hash(self) -> Field {\n self.args_hash\n }\n\n /// Returns the anchor block header.\n pub fn get_anchor_block_header(self) -> BlockHeader {\n self.anchor_block_header\n }\n\n /// Sets the hash of the return values for this private function.\n pub fn set_return_hash<let N: u32>(&mut self, serialized_return_values: [Field; N]) {\n let return_hash = hash_args(serialized_return_values);\n self.return_hash = return_hash;\n execution_cache::store(serialized_return_values, return_hash);\n }\n\n /// Builds the PrivateCircuitPublicInputs for this private function.\n pub fn finish(self) -> PrivateCircuitPublicInputs {\n PrivateCircuitPublicInputs {\n call_context: self.inputs.call_context,\n args_hash: self.args_hash,\n returns_hash: self.return_hash,\n min_revertible_side_effect_counter: self.min_revertible_side_effect_counter,\n is_fee_payer: self.is_fee_payer,\n expiration_timestamp: self.expiration_timestamp,\n note_hash_read_requests: ClaimedLengthArray::empty(), // Not used by protocol contracts\n nullifier_read_requests: ClaimedLengthArray::from_bounded_vec(\n self.nullifier_read_requests,\n ),\n key_validation_requests_and_separators: ClaimedLengthArray::empty(), // Not used by protocol contracts\n note_hashes: ClaimedLengthArray::empty(), // Not used by protocol contracts\n nullifiers: ClaimedLengthArray::from_bounded_vec(self.nullifiers),\n private_call_requests: ClaimedLengthArray::from_bounded_vec(self.private_call_requests),\n public_call_requests: ClaimedLengthArray::from_bounded_vec(self.public_call_requests),\n public_teardown_call_request: self.public_teardown_call_request,\n l2_to_l1_msgs: ClaimedLengthArray::from_bounded_vec(self.l2_to_l1_msgs),\n start_side_effect_counter: self.inputs.start_side_effect_counter,\n end_side_effect_counter: self.side_effect_counter,\n private_logs: ClaimedLengthArray::from_bounded_vec(self.private_logs),\n contract_class_logs_hashes: ClaimedLengthArray::from_bounded_vec(\n self.contract_class_logs_hashes,\n ),\n anchor_block_header: self.anchor_block_header,\n tx_context: self.inputs.tx_context,\n expected_non_revertible_side_effect_counter: self\n .expected_non_revertible_side_effect_counter,\n expected_revertible_side_effect_counter: self.expected_revertible_side_effect_counter,\n }\n }\n\n /// Declares the end of the \"setup phase\" of this tx. Used by fee_juice.\n pub fn end_setup(&mut self) {\n self.side_effect_counter += 1;\n self.min_revertible_side_effect_counter = self.next_counter();\n notify_revertible_phase_start(self.min_revertible_side_effect_counter);\n }\n\n pub fn in_revertible_phase(&mut self) -> bool {\n let current_counter = self.side_effect_counter;\n\n // Safety: Kernel will validate that the claim is correct by validating the expected counters.\n let is_revertible =\n unsafe { in_revertible_phase(current_counter) };\n\n if is_revertible {\n if (self.expected_revertible_side_effect_counter == 0)\n | (current_counter < self.expected_revertible_side_effect_counter) {\n self.expected_revertible_side_effect_counter = current_counter;\n }\n } else if current_counter > self.expected_non_revertible_side_effect_counter {\n self.expected_non_revertible_side_effect_counter = current_counter;\n }\n\n is_revertible\n }\n\n /// Sets a deadline for when this transaction must be included in a block.\n pub fn set_expiration_timestamp(&mut self, expiration_timestamp: u64) {\n self.expiration_timestamp = std::cmp::min(self.expiration_timestamp, expiration_timestamp);\n }\n\n /// Pushes a new nullifier. Used by class_registry and instance_registry.\n pub fn push_nullifier(&mut self, nullifier: Field) {\n notify_created_nullifier(nullifier);\n self.nullifiers.push(Nullifier { value: nullifier, note_hash: 0 }.count(self.next_counter()));\n }\n\n /// Asserts that a nullifier has been emitted. Used by instance_registry.\n pub fn assert_nullifier_exists(\n &mut self,\n nullifier_existence_request: NullifierExistenceRequest,\n ) {\n let nullifier = nullifier_existence_request.nullifier();\n let contract_address =\n nullifier_existence_request.maybe_contract_address().unwrap_or(AztecAddress::zero());\n\n let request = Scoped::new(\n Counted::new(nullifier, self.next_counter()),\n contract_address,\n );\n\n self.nullifier_read_requests.push(request);\n }\n\n /// Consumes a message sent from Ethereum (L1) to Aztec (L2). Used by fee_juice.\n pub fn consume_l1_to_l2_message(\n &mut self,\n content: Field,\n secret: Field,\n sender: EthAddress,\n leaf_index: Field,\n ) {\n let nullifier = process_l1_to_l2_message(\n self.anchor_block_header.state.l1_to_l2_message_tree.root,\n self.this_address(),\n sender,\n self.chain_id(),\n self.version(),\n content,\n secret,\n leaf_index,\n );\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_nullifier(nullifier)\n }\n\n /// Emits a private log. Used by instance_registry.\n pub fn emit_private_log(&mut self, log: [Field; PRIVATE_LOG_SIZE_IN_FIELDS], length: u32) {\n let counter = self.next_counter();\n let private_log = PrivateLogData { log: PrivateLog::new(log, length), note_hash_counter: 0 }\n .count(counter);\n self.private_logs.push(private_log);\n }\n\n /// Emits a contract class log. Used by class_registry.\n pub fn emit_contract_class_log<let N: u32>(&mut self, log: [Field; N]) {\n let contract_address = self.this_address();\n let counter = self.next_counter();\n\n let log_to_emit: [Field; CONTRACT_CLASS_LOG_SIZE_IN_FIELDS] =\n log.concat([0; CONTRACT_CLASS_LOG_SIZE_IN_FIELDS - N]);\n // Safety: The below length is constrained in the base rollup, which will make sure that all the fields beyond\n // length are zero. However, it won't be able to check that we didn't add extra padding (trailing zeroes) or\n // that we cut trailing zeroes from the end.\n let length = unsafe { trimmed_array_length_hint(log_to_emit) };\n // We hash the entire padded log to ensure a user cannot pass a shorter length and so emit incorrect shorter\n // bytecode.\n let log_hash = poseidon2_hash(log_to_emit);\n // Safety: the below only exists to broadcast the raw log, so we can provide it to the base rollup later to be\n // constrained.\n unsafe {\n notify_created_contract_class_log(contract_address, log_to_emit, length, counter);\n }\n\n self.contract_class_logs_hashes.push(LogHash { value: log_hash, length: length }.count(\n counter,\n ));\n }\n\n /// Makes a read-only call to a private function. Used by auth_registry for authwit.\n pub fn static_call_private_function<let ArgsCount: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ArgsCount],\n ) -> ReturnsHash {\n let args_hash = hash_args(args);\n execution_cache::store(args, args_hash);\n self.call_private_function_with_args_hash(\n contract_address,\n function_selector,\n args_hash,\n true,\n )\n }\n\n fn call_private_function_with_args_hash(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n ) -> ReturnsHash {\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n let start_side_effect_counter = self.side_effect_counter;\n\n // Safety: The oracle simulates the private call and returns the value of the side effects counter after\n // execution of the call.\n let (end_side_effect_counter, returns_hash) = unsafe {\n call_private_function_internal(\n contract_address,\n function_selector,\n args_hash,\n start_side_effect_counter,\n is_static_call,\n )\n };\n\n self.private_call_requests.push(\n PrivateCallRequest {\n call_context: CallContext {\n msg_sender: self.this_address(),\n contract_address,\n function_selector,\n is_static_call,\n },\n args_hash,\n returns_hash,\n start_side_effect_counter,\n end_side_effect_counter,\n },\n );\n\n self.side_effect_counter = end_side_effect_counter + 1;\n ReturnsHash::new(returns_hash)\n }\n\n /// Enqueues a call to a public function with a calldata hash. Used by fee_juice and auth_registry.\n pub fn call_public_function_with_calldata_hash(\n &mut self,\n contract_address: AztecAddress,\n calldata_hash: Field,\n is_static_call: bool,\n hide_msg_sender: bool,\n ) {\n let counter = self.next_counter();\n\n let is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n\n validate_public_calldata(calldata_hash);\n\n let msg_sender = if hide_msg_sender {\n NULL_MSG_SENDER_CONTRACT_ADDRESS\n } else {\n self.this_address()\n };\n\n let call_request =\n PublicCallRequest { msg_sender, contract_address, is_static_call, calldata_hash };\n\n self.public_call_requests.push(Counted::new(call_request, counter));\n }\n\n fn next_counter(&mut self) -> u32 {\n let counter = self.side_effect_counter;\n self.side_effect_counter += 1;\n counter\n }\n}\n\nimpl Empty for PrivateContext {\n fn empty() -> Self {\n PrivateContext {\n inputs: PrivateContextInputs::empty(),\n side_effect_counter: 0 as u32,\n min_revertible_side_effect_counter: 0 as u32,\n is_fee_payer: false,\n args_hash: 0,\n return_hash: 0,\n expiration_timestamp: 0,\n nullifier_read_requests: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n anchor_block_header: BlockHeader::empty(),\n private_logs: BoundedVec::new(),\n contract_class_logs_hashes: BoundedVec::new(),\n expected_non_revertible_side_effect_counter: 0,\n expected_revertible_side_effect_counter: 0,\n }\n }\n}\n"
2486
2486
  },
2487
- "60": {
2487
+ "58": {
2488
2488
  "function_locations": [
2489
2489
  {
2490
2490
  "name": "<impl Eq for PublicContext>::eq",
@@ -2614,7 +2614,7 @@
2614
2614
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-contracts/contracts/protocol/aztec_sublib/src/context/public_context.nr",
2615
2615
  "source": "use crate::{\n context::gas::GasOpts,\n hash::{\n compute_l1_to_l2_message_hash, compute_l1_to_l2_message_nullifier, compute_secret_hash,\n compute_siloed_nullifier,\n },\n oracle::avm,\n};\nuse crate::protocol::{\n abis::function_selector::FunctionSelector,\n address::{AztecAddress, EthAddress},\n constants::{MAX_U32_VALUE, NULL_MSG_SENDER_CONTRACT_ADDRESS},\n traits::{Empty, FromField, Packable, Serialize, ToField},\n};\n\n/// Minimal PublicContext for protocol contracts going to audit.\npub struct PublicContext {\n pub args_hash: Option<Field>,\n pub compute_args_hash: fn() -> Field,\n}\n\nimpl Eq for PublicContext {\n fn eq(self, other: Self) -> bool {\n (self.args_hash == other.args_hash)\n // Can't compare the function compute_args_hash\n }\n}\n\nimpl PublicContext {\n pub fn new(compute_args_hash: fn() -> Field) -> Self {\n PublicContext { args_hash: Option::none(), compute_args_hash }\n }\n\n /// Emits a _public_ log that will be visible onchain to everyone.\n pub fn emit_public_log<T>(_self: Self, log: T)\n where\n T: Serialize,\n {\n // Safety: AVM opcodes are constrained by the AVM itself\n unsafe { avm::emit_public_log(Serialize::serialize(log).as_vector()) };\n }\n\n /// Checks if a given note hash exists in the note hash tree at a particular leaf_index.\n pub fn note_hash_exists(_self: Self, note_hash: Field, leaf_index: u64) -> bool {\n // Safety: AVM opcodes are constrained by the AVM itself\n unsafe { avm::note_hash_exists(note_hash, leaf_index) }\n }\n\n /// Checks if a specific L1-to-L2 message exists in the L1-to-L2 message tree at a particular leaf index.\n pub fn l1_to_l2_msg_exists(_self: Self, msg_hash: Field, msg_leaf_index: Field) -> bool {\n // Safety: AVM opcodes are constrained by the AVM itself TODO(alvaro): Make l1l2msg leaf index a u64 upstream\n unsafe { avm::l1_to_l2_msg_exists(msg_hash, msg_leaf_index as u64) }\n }\n\n /// Returns `true` if an `unsiloed_nullifier` has been emitted by `contract_address`.\n pub fn nullifier_exists_unsafe(\n _self: Self,\n unsiloed_nullifier: Field,\n contract_address: AztecAddress,\n ) -> bool {\n let siloed_nullifier = compute_siloed_nullifier(contract_address, unsiloed_nullifier);\n // Safety: AVM opcodes are constrained by the AVM itself\n unsafe { avm::nullifier_exists(siloed_nullifier) }\n }\n\n /// Consumes a message sent from Ethereum (L1) to Aztec (L2).\n pub fn consume_l1_to_l2_message(\n self: Self,\n content: Field,\n secret: Field,\n sender: EthAddress,\n leaf_index: Field,\n ) {\n let secret_hash = compute_secret_hash(secret);\n let message_hash = compute_l1_to_l2_message_hash(\n sender,\n self.chain_id(),\n /*recipient=*/\n self.this_address(),\n self.version(),\n content,\n secret_hash,\n leaf_index,\n );\n let nullifier = compute_l1_to_l2_message_nullifier(message_hash, secret);\n\n assert(\n !self.nullifier_exists_unsafe(nullifier, self.this_address()),\n \"L1-to-L2 message is already nullified\",\n );\n assert(\n self.l1_to_l2_msg_exists(message_hash, leaf_index),\n \"Tried to consume nonexistent L1-to-L2 message\",\n );\n\n self.push_nullifier(nullifier);\n }\n\n /// Sends an \"L2 -> L1 message\".\n pub fn message_portal(_self: Self, recipient: EthAddress, content: Field) {\n // Safety: AVM opcodes are constrained by the AVM itself\n unsafe { avm::send_l2_to_l1_msg(recipient, content) };\n }\n\n /// Calls a public function on another contract.\n pub unconstrained fn call_public_function<let N: u32>(\n _self: Self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; N],\n gas_opts: GasOpts,\n ) -> [Field] {\n let calldata = [function_selector.to_field()].concat(args);\n\n avm::call(\n gas_opts.l2_gas.unwrap_or(MAX_U32_VALUE),\n gas_opts.da_gas.unwrap_or(MAX_U32_VALUE),\n contract_address,\n calldata,\n );\n // Use success_copy to determine whether the call succeeded\n let success = avm::success_copy();\n\n let result_data = avm::returndata_copy(0, avm::returndata_size());\n if !success {\n // Rethrow the revert data.\n avm::revert(result_data);\n }\n result_data\n }\n\n /// Makes a read-only call to a public function on another contract.\n pub unconstrained fn static_call_public_function<let N: u32>(\n _self: Self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; N],\n gas_opts: GasOpts,\n ) -> [Field] {\n let calldata = [function_selector.to_field()].concat(args);\n\n avm::call_static(\n gas_opts.l2_gas.unwrap_or(MAX_U32_VALUE),\n gas_opts.da_gas.unwrap_or(MAX_U32_VALUE),\n contract_address,\n calldata,\n );\n // Use success_copy to determine whether the call succeeded\n let success = avm::success_copy();\n\n let result_data = avm::returndata_copy(0, avm::returndata_size());\n if !success {\n // Rethrow the revert data.\n avm::revert(result_data);\n }\n result_data\n }\n\n /// Adds a new note hash to the Note Hash Tree.\n pub fn push_note_hash(_self: Self, note_hash: Field) {\n // Safety: AVM opcodes are constrained by the AVM itself\n unsafe { avm::emit_note_hash(note_hash) };\n }\n\n /// Adds a new nullifier to the Nullifier Tree.\n pub fn push_nullifier(_self: Self, nullifier: Field) {\n // Safety: AVM opcodes are constrained by the AVM itself\n unsafe { avm::emit_nullifier(nullifier) };\n }\n\n /// Returns the address of the current contract being executed.\n pub fn this_address(_self: Self) -> AztecAddress {\n // Safety: AVM opcodes are constrained by the AVM itself\n unsafe {\n avm::address()\n }\n }\n\n /// Returns the contract address that initiated this function call.\n pub fn maybe_msg_sender(_self: Self) -> Option<AztecAddress> {\n // Safety: AVM opcodes are constrained by the AVM itself\n let maybe_msg_sender = unsafe { avm::sender() };\n if maybe_msg_sender == NULL_MSG_SENDER_CONTRACT_ADDRESS {\n Option::none()\n } else {\n Option::some(maybe_msg_sender)\n }\n }\n\n /// Returns the function selector of the currently-executing function.\n pub fn selector(_self: Self) -> FunctionSelector {\n // The selector is the first element of the calldata when calling a public function through dispatch.\n // Safety: AVM opcodes are constrained by the AVM itself.\n let raw_selector: [Field; 1] = unsafe { avm::calldata_copy(0, 1) };\n FunctionSelector::from_field(raw_selector[0])\n }\n\n /// Returns the hash of the arguments passed to the current function.\n pub fn get_args_hash(mut self) -> Field {\n if !self.args_hash.is_some() {\n self.args_hash = Option::some((self.compute_args_hash)());\n }\n\n self.args_hash.unwrap_unchecked()\n }\n\n /// Returns the \"transaction fee\" for the current transaction.\n pub fn transaction_fee(_self: Self) -> Field {\n // Safety: AVM opcodes are constrained by the AVM itself\n unsafe {\n avm::transaction_fee()\n }\n }\n\n /// Returns the chain ID of the current network.\n pub fn chain_id(_self: Self) -> Field {\n // Safety: AVM opcodes are constrained by the AVM itself\n unsafe {\n avm::chain_id()\n }\n }\n\n /// Returns the protocol version.\n pub fn version(_self: Self) -> Field {\n // Safety: AVM opcodes are constrained by the AVM itself\n unsafe {\n avm::version()\n }\n }\n\n /// Returns the current block number.\n pub fn block_number(_self: Self) -> u32 {\n // Safety: AVM opcodes are constrained by the AVM itself\n unsafe {\n avm::block_number()\n }\n }\n\n /// Returns the timestamp of the current block.\n pub fn timestamp(_self: Self) -> u64 {\n // Safety: AVM opcodes are constrained by the AVM itself\n unsafe {\n avm::timestamp()\n }\n }\n\n /// Returns the fee per unit of L2 gas.\n pub fn min_fee_per_l2_gas(_self: Self) -> u128 {\n // Safety: AVM opcodes are constrained by the AVM itself\n unsafe {\n avm::min_fee_per_l2_gas()\n }\n }\n\n /// Returns the fee per unit of DA gas.\n pub fn min_fee_per_da_gas(_self: Self) -> u128 {\n // Safety: AVM opcodes are constrained by the AVM itself\n unsafe {\n avm::min_fee_per_da_gas()\n }\n }\n\n /// Returns the remaining L2 gas available.\n pub fn l2_gas_left(_self: Self) -> u32 {\n // Safety: AVM opcodes are constrained by the AVM itself\n unsafe {\n avm::l2_gas_left()\n }\n }\n\n /// Returns the remaining DA gas available.\n pub fn da_gas_left(_self: Self) -> u32 {\n // Safety: AVM opcodes are constrained by the AVM itself\n unsafe {\n avm::da_gas_left()\n }\n }\n\n /// Checks if the current execution is within a staticcall context.\n pub fn is_static_call(_self: Self) -> bool {\n // Safety: AVM opcodes are constrained by the AVM itself\n unsafe { avm::is_static_call() }\n }\n\n /// Reads raw field values from public storage.\n pub fn raw_storage_read<let N: u32>(self: Self, storage_slot: Field) -> [Field; N] {\n let mut out = [0; N];\n for i in 0..N {\n // Safety: AVM opcodes are constrained by the AVM itself\n out[i] = unsafe {\n avm::storage_read(storage_slot + i as Field, self.this_address().to_field())\n };\n }\n out\n }\n\n /// Reads a typed value from public storage.\n pub fn storage_read<T>(self, storage_slot: Field) -> T\n where\n T: Packable,\n {\n T::unpack(self.raw_storage_read(storage_slot))\n }\n\n /// Writes raw field values to public storage.\n pub fn raw_storage_write<let N: u32>(_self: Self, storage_slot: Field, values: [Field; N]) {\n for i in 0..N {\n // Safety: AVM opcodes are constrained by the AVM itself\n unsafe { avm::storage_write(storage_slot + i as Field, values[i]) };\n }\n }\n\n /// Writes a typed value to public storage.\n pub fn storage_write<T>(self, storage_slot: Field, value: T)\n where\n T: Packable,\n {\n self.raw_storage_write(storage_slot, value.pack());\n }\n}\n\nimpl Empty for PublicContext {\n fn empty() -> Self {\n PublicContext::new(|| 0)\n }\n}\n"
2616
2616
  },
2617
- "63": {
2617
+ "61": {
2618
2618
  "function_locations": [
2619
2619
  {
2620
2620
  "name": "compute_secret_hash",
@@ -2644,7 +2644,7 @@
2644
2644
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-contracts/contracts/protocol/aztec_sublib/src/hash.nr",
2645
2645
  "source": "//! Aztec hash functions.\n\nuse crate::protocol::{\n address::{AztecAddress, EthAddress},\n constants::{\n DOM_SEP__FUNCTION_ARGS, DOM_SEP__MESSAGE_NULLIFIER, DOM_SEP__PUBLIC_BYTECODE,\n DOM_SEP__PUBLIC_CALLDATA, DOM_SEP__SECRET_HASH, MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS,\n },\n hash::{poseidon2_hash_subarray, poseidon2_hash_with_separator, sha256_to_field},\n traits::ToField,\n};\n\npub use crate::protocol::hash::compute_siloed_nullifier;\n\npub fn compute_secret_hash(secret: Field) -> Field {\n poseidon2_hash_with_separator([secret], DOM_SEP__SECRET_HASH)\n}\n\npub fn compute_l1_to_l2_message_hash(\n sender: EthAddress,\n chain_id: Field,\n recipient: AztecAddress,\n version: Field,\n content: Field,\n secret_hash: Field,\n leaf_index: Field,\n) -> Field {\n let mut hash_bytes = [0 as u8; 224];\n let sender_bytes: [u8; 32] = sender.to_field().to_be_bytes();\n let chain_id_bytes: [u8; 32] = chain_id.to_be_bytes();\n let recipient_bytes: [u8; 32] = recipient.to_field().to_be_bytes();\n let version_bytes: [u8; 32] = version.to_be_bytes();\n let content_bytes: [u8; 32] = content.to_be_bytes();\n let secret_hash_bytes: [u8; 32] = secret_hash.to_be_bytes();\n let leaf_index_bytes: [u8; 32] = leaf_index.to_be_bytes();\n\n for i in 0..32 {\n hash_bytes[i] = sender_bytes[i];\n hash_bytes[i + 32] = chain_id_bytes[i];\n hash_bytes[i + 64] = recipient_bytes[i];\n hash_bytes[i + 96] = version_bytes[i];\n hash_bytes[i + 128] = content_bytes[i];\n hash_bytes[i + 160] = secret_hash_bytes[i];\n hash_bytes[i + 192] = leaf_index_bytes[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\n// The nullifier of a l1 to l2 message is the hash of the message salted with the secret\npub fn compute_l1_to_l2_message_nullifier(message_hash: Field, secret: Field) -> Field {\n poseidon2_hash_with_separator([message_hash, secret], DOM_SEP__MESSAGE_NULLIFIER)\n}\n\n// Computes the hash of input arguments or return values for private functions, or for authwit creation.\npub fn hash_args<let N: u32>(args: [Field; N]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n poseidon2_hash_with_separator(args, DOM_SEP__FUNCTION_ARGS)\n }\n}\n\n// Computes the hash of calldata for public functions.\npub fn hash_calldata_array<let N: u32>(calldata: [Field; N]) -> Field {\n poseidon2_hash_with_separator(calldata, DOM_SEP__PUBLIC_CALLDATA)\n}\n\n/// Computes the public bytecode commitment for a contract class. The commitment is `hash([(length | separator),\n/// ...bytecode])`.\n///\n/// @param packed_bytecode - The packed bytecode of the contract class. 0th word is the length in bytes.\n/// packed_bytecode is mutable so that we can avoid copying the array to construct one starting with first_field\n/// instead of length. @returns The public bytecode commitment.\npub fn compute_public_bytecode_commitment(\n mut packed_public_bytecode: [Field; MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS],\n) -> Field {\n // First field element contains the length of the bytecode\n let bytecode_length_in_bytes: u32 = packed_public_bytecode[0] as u32;\n let bytecode_length_in_fields: u32 = (bytecode_length_in_bytes / 31) + (bytecode_length_in_bytes % 31 != 0) as u32;\n // Don't allow empty public bytecode. AVM doesn't handle execution of contracts that exist with empty bytecode.\n assert(bytecode_length_in_fields != 0);\n assert(bytecode_length_in_fields < MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS);\n\n // Packed_bytecode's 0th entry is the length. Append it to the separator before hashing.\n let first_field = DOM_SEP__PUBLIC_BYTECODE.to_field() + (packed_public_bytecode[0] as u64 << 32) as Field;\n packed_public_bytecode[0] = first_field;\n\n // `fields_to_hash` is the number of fields from the start of `packed_public_bytecode` that should be included in\n // the hash. Fields after this length are ignored. +1 to account for the separator.\n let num_fields_to_hash = bytecode_length_in_fields + 1;\n\n poseidon2_hash_subarray(packed_public_bytecode, num_fields_to_hash)\n}\n"
2646
2646
  },
2647
- "70": {
2647
+ "68": {
2648
2648
  "function_locations": [
2649
2649
  {
2650
2650
  "name": "process_l1_to_l2_message",
@@ -2654,7 +2654,7 @@
2654
2654
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-contracts/contracts/protocol/aztec_sublib/src/messaging.nr",
2655
2655
  "source": "use crate::{\n hash::{compute_l1_to_l2_message_hash, compute_l1_to_l2_message_nullifier, compute_secret_hash},\n oracle::get_l1_to_l2_membership_witness::get_l1_to_l2_membership_witness,\n};\n\nuse crate::protocol::{\n address::{AztecAddress, EthAddress},\n merkle_tree::root::root_from_sibling_path,\n};\n\npub fn process_l1_to_l2_message(\n l1_to_l2_root: Field,\n contract_address: AztecAddress,\n portal_contract_address: EthAddress,\n chain_id: Field,\n version: Field,\n content: Field,\n secret: Field,\n leaf_index: Field,\n) -> Field {\n let secret_hash = compute_secret_hash(secret);\n let message_hash = compute_l1_to_l2_message_hash(\n portal_contract_address,\n chain_id,\n contract_address,\n version,\n content,\n secret_hash,\n leaf_index,\n );\n\n // We prove that `message_hash` is in the tree by showing the derivation of the tree root, using a merkle path we\n // get from an oracle.\n // Safety: The witness is only used as a \"magical value\" that makes the merkle proof below pass. Hence it's safe.\n let (_leaf_index, sibling_path) =\n unsafe { get_l1_to_l2_membership_witness(contract_address, message_hash, secret) };\n\n let root = root_from_sibling_path(message_hash, leaf_index, sibling_path);\n assert_eq(root, l1_to_l2_root, \"Message not in state\");\n\n compute_l1_to_l2_message_nullifier(message_hash, secret)\n}\n"
2656
2656
  },
2657
- "73": {
2657
+ "71": {
2658
2658
  "function_locations": [
2659
2659
  {
2660
2660
  "name": "address",
@@ -2892,7 +2892,7 @@
2892
2892
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-contracts/contracts/protocol/aztec_sublib/src/oracle/avm.nr",
2893
2893
  "source": "//! AVM oracles.\n//!\n//! There are only available during public execution. Calling any of them from a private or utility function will\n//! result in runtime errors.\n\nuse crate::protocol::address::{AztecAddress, EthAddress};\n\npub unconstrained fn address() -> AztecAddress {\n address_opcode()\n}\npub unconstrained fn sender() -> AztecAddress {\n sender_opcode()\n}\npub unconstrained fn transaction_fee() -> Field {\n transaction_fee_opcode()\n}\npub unconstrained fn chain_id() -> Field {\n chain_id_opcode()\n}\npub unconstrained fn version() -> Field {\n version_opcode()\n}\npub unconstrained fn block_number() -> u32 {\n block_number_opcode()\n}\npub unconstrained fn timestamp() -> u64 {\n timestamp_opcode()\n}\npub unconstrained fn min_fee_per_l2_gas() -> u128 {\n min_fee_per_l2_gas_opcode()\n}\npub unconstrained fn min_fee_per_da_gas() -> u128 {\n min_fee_per_da_gas_opcode()\n}\npub unconstrained fn l2_gas_left() -> u32 {\n l2_gas_left_opcode()\n}\npub unconstrained fn da_gas_left() -> u32 {\n da_gas_left_opcode()\n}\npub unconstrained fn is_static_call() -> bool {\n is_static_call_opcode()\n}\npub unconstrained fn note_hash_exists(note_hash: Field, leaf_index: u64) -> bool {\n note_hash_exists_opcode(note_hash, leaf_index)\n}\npub unconstrained fn emit_note_hash(note_hash: Field) {\n emit_note_hash_opcode(note_hash)\n}\npub unconstrained fn nullifier_exists(siloed_nullifier: Field) -> bool {\n nullifier_exists_opcode(siloed_nullifier)\n}\npub unconstrained fn emit_nullifier(nullifier: Field) {\n emit_nullifier_opcode(nullifier)\n}\npub unconstrained fn emit_public_log(message: [Field]) {\n emit_public_log_opcode(message)\n}\npub unconstrained fn l1_to_l2_msg_exists(msg_hash: Field, msg_leaf_index: u64) -> bool {\n l1_to_l2_msg_exists_opcode(msg_hash, msg_leaf_index)\n}\npub unconstrained fn send_l2_to_l1_msg(recipient: EthAddress, content: Field) {\n send_l2_to_l1_msg_opcode(recipient, content)\n}\n\npub unconstrained fn call<let N: u32>(\n l2_gas_allocation: u32,\n da_gas_allocation: u32,\n address: AztecAddress,\n args: [Field; N],\n) {\n call_opcode(l2_gas_allocation, da_gas_allocation, address, N, args)\n}\n\npub unconstrained fn call_static<let N: u32>(\n l2_gas_allocation: u32,\n da_gas_allocation: u32,\n address: AztecAddress,\n args: [Field; N],\n) {\n call_static_opcode(l2_gas_allocation, da_gas_allocation, address, N, args)\n}\n\npub unconstrained fn calldata_copy<let N: u32>(cdoffset: u32, copy_size: u32) -> [Field; N] {\n calldata_copy_opcode(cdoffset, copy_size)\n}\n\n/// `success_copy` is placed immediately after the CALL opcode to get the success value\npub unconstrained fn success_copy() -> bool {\n success_copy_opcode()\n}\n\npub unconstrained fn returndata_size() -> u32 {\n returndata_size_opcode()\n}\n\npub unconstrained fn returndata_copy(rdoffset: u32, copy_size: u32) -> [Field] {\n returndata_copy_opcode(rdoffset, copy_size)\n}\n\n/// The additional prefix is to avoid clashing with the `return` Noir keyword.\npub unconstrained fn avm_return(returndata: [Field]) {\n return_opcode(returndata)\n}\n\n/// This opcode reverts using the exact data given. In general it should only be used to do rethrows, where the revert\n/// data is the same as the original revert data. For normal reverts, use Noir's `assert` which, on top of reverting,\n/// will also add an error selector to the revert data.\npub unconstrained fn revert(revertdata: [Field]) {\n revert_opcode(revertdata)\n}\n\npub unconstrained fn storage_read(storage_slot: Field, contract_address: Field) -> Field {\n storage_read_opcode(storage_slot, contract_address)\n}\n\npub unconstrained fn storage_write(storage_slot: Field, value: Field) {\n storage_write_opcode(storage_slot, value);\n}\n\n#[oracle(aztec_avm_address)]\nunconstrained fn address_opcode() -> AztecAddress {}\n\n#[oracle(aztec_avm_sender)]\nunconstrained fn sender_opcode() -> AztecAddress {}\n\n#[oracle(aztec_avm_transactionFee)]\nunconstrained fn transaction_fee_opcode() -> Field {}\n\n#[oracle(aztec_avm_chainId)]\nunconstrained fn chain_id_opcode() -> Field {}\n\n#[oracle(aztec_avm_version)]\nunconstrained fn version_opcode() -> Field {}\n\n#[oracle(aztec_avm_blockNumber)]\nunconstrained fn block_number_opcode() -> u32 {}\n\n#[oracle(aztec_avm_timestamp)]\nunconstrained fn timestamp_opcode() -> u64 {}\n\n#[oracle(aztec_avm_minFeePerL2Gas)]\nunconstrained fn min_fee_per_l2_gas_opcode() -> u128 {}\n\n#[oracle(aztec_avm_minFeePerDaGas)]\nunconstrained fn min_fee_per_da_gas_opcode() -> u128 {}\n\n#[oracle(aztec_avm_l2GasLeft)]\nunconstrained fn l2_gas_left_opcode() -> u32 {}\n\n#[oracle(aztec_avm_daGasLeft)]\nunconstrained fn da_gas_left_opcode() -> u32 {}\n\n#[oracle(aztec_avm_isStaticCall)]\nunconstrained fn is_static_call_opcode() -> bool {}\n\n#[oracle(aztec_avm_noteHashExists)]\nunconstrained fn note_hash_exists_opcode(note_hash: Field, leaf_index: u64) -> bool {}\n\n#[oracle(aztec_avm_emitNoteHash)]\nunconstrained fn emit_note_hash_opcode(note_hash: Field) {}\n\n#[oracle(aztec_avm_nullifierExists)]\nunconstrained fn nullifier_exists_opcode(siloed_nullifier: Field) -> bool {}\n\n#[oracle(aztec_avm_emitNullifier)]\nunconstrained fn emit_nullifier_opcode(nullifier: Field) {}\n\n#[oracle(aztec_avm_emitPublicLog)]\nunconstrained fn emit_public_log_opcode(message: [Field]) {}\n\n#[oracle(aztec_avm_l1ToL2MsgExists)]\nunconstrained fn l1_to_l2_msg_exists_opcode(msg_hash: Field, msg_leaf_index: u64) -> bool {}\n\n#[oracle(aztec_avm_sendL2ToL1Msg)]\nunconstrained fn send_l2_to_l1_msg_opcode(recipient: EthAddress, content: Field) {}\n\n#[oracle(aztec_avm_calldataCopy)]\nunconstrained fn calldata_copy_opcode<let N: u32>(cdoffset: u32, copy_size: u32) -> [Field; N] {}\n\n#[oracle(aztec_avm_returndataSize)]\nunconstrained fn returndata_size_opcode() -> u32 {}\n\n#[oracle(aztec_avm_returndataCopy)]\nunconstrained fn returndata_copy_opcode(rdoffset: u32, copy_size: u32) -> [Field] {}\n\n#[oracle(aztec_avm_return)]\nunconstrained fn return_opcode(returndata: [Field]) {}\n\n#[oracle(aztec_avm_revert)]\nunconstrained fn revert_opcode(revertdata: [Field]) {}\n\n// While the length parameter might seem unnecessary given that we have N we keep it around because at the AVM bytecode\n// level, we want to support non-comptime-known lengths for such opcodes, even if Noir code will not generally take\n// that route.\n#[oracle(aztec_avm_call)]\nunconstrained fn call_opcode<let N: u32>(\n l2_gas_allocation: u32,\n da_gas_allocation: u32,\n address: AztecAddress,\n length: u32,\n args: [Field; N],\n) {}\n\n// While the length parameter might seem unnecessary given that we have N we keep it around because at the AVM bytecode\n// level, we want to support non-comptime-known lengths for such opcodes, even if Noir code will not generally take\n// that route.\n#[oracle(aztec_avm_staticCall)]\nunconstrained fn call_static_opcode<let N: u32>(\n l2_gas_allocation: u32,\n da_gas_allocation: u32,\n address: AztecAddress,\n length: u32,\n args: [Field; N],\n) {}\n\n#[oracle(aztec_avm_successCopy)]\nunconstrained fn success_copy_opcode() -> bool {}\n\n#[oracle(aztec_avm_storageRead)]\nunconstrained fn storage_read_opcode(storage_slot: Field, contract_address: Field) -> Field {}\n\n#[oracle(aztec_avm_storageWrite)]\nunconstrained fn storage_write_opcode(storage_slot: Field, value: Field) {}\n"
2894
2894
  },
2895
- "77": {
2895
+ "75": {
2896
2896
  "function_locations": [
2897
2897
  {
2898
2898
  "name": "store",
@@ -2918,7 +2918,7 @@
2918
2918
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-contracts/contracts/protocol/aztec_sublib/src/oracle/execution_cache.nr",
2919
2919
  "source": "/// Stores values represented as slice in execution cache to be later obtained by its hash.\npub fn store<let N: u32>(values: [Field; N], hash: Field) {\n // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to\n // call. When loading the values, however, the caller must check that the values are indeed the preimage.\n unsafe { store_in_execution_cache_oracle_wrapper(values, hash) };\n}\n\nunconstrained fn store_in_execution_cache_oracle_wrapper<let N: u32>(\n values: [Field; N],\n hash: Field,\n) {\n store_in_execution_cache_oracle(values, hash);\n}\n\npub unconstrained fn load<let N: u32>(hash: Field) -> [Field; N] {\n load_from_execution_cache_oracle(hash)\n}\n\n// TODO(F-498): review naming consistency\n#[oracle(aztec_prv_setHashPreimage)]\nunconstrained fn store_in_execution_cache_oracle<let N: u32>(_values: [Field; N], _hash: Field) {}\n\n// TODO(F-498): review naming consistency\n#[oracle(aztec_prv_getHashPreimage)]\nunconstrained fn load_from_execution_cache_oracle<let N: u32>(_hash: Field) -> [Field; N] {}\n"
2920
2920
  },
2921
- "78": {
2921
+ "76": {
2922
2922
  "function_locations": [
2923
2923
  {
2924
2924
  "name": "get_l1_to_l2_membership_witness",
@@ -2932,7 +2932,7 @@
2932
2932
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-contracts/contracts/protocol/aztec_sublib/src/oracle/get_l1_to_l2_membership_witness.nr",
2933
2933
  "source": "use crate::protocol::{address::AztecAddress, constants::L1_TO_L2_MSG_TREE_HEIGHT};\n\n/// Returns the leaf index and sibling path of an entry in the L1 to L2 messaging tree, which can then be used to prove\n/// its existence.\npub unconstrained fn get_l1_to_l2_membership_witness(\n contract_address: AztecAddress,\n message_hash: Field,\n secret: Field,\n) -> (Field, [Field; L1_TO_L2_MSG_TREE_HEIGHT]) {\n get_l1_to_l2_membership_witness_oracle(contract_address, message_hash, secret)\n}\n\n// Obtains membership witness (index and sibling path) for a message in the L1 to L2 message tree.\n#[oracle(aztec_utl_getL1ToL2MembershipWitness)]\nunconstrained fn get_l1_to_l2_membership_witness_oracle(\n _contract_address: AztecAddress,\n _message_hash: Field,\n _secret: Field,\n) -> (Field, [Field; L1_TO_L2_MSG_TREE_HEIGHT]) {}\n"
2934
2934
  },
2935
- "81": {
2935
+ "79": {
2936
2936
  "function_locations": [
2937
2937
  {
2938
2938
  "name": "notify_created_nullifier",
@@ -2962,7 +2962,7 @@
2962
2962
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-contracts/contracts/protocol/aztec_sublib/src/oracle/nullifiers.nr",
2963
2963
  "source": "//! Nullifier creation, existence checks, etc.\n\nuse crate::protocol::address::aztec_address::AztecAddress;\n\n/// Notifies the simulator that a nullifier has been created, so that its correct status (pending or settled) can be\n/// determined when reading nullifiers in subsequent private function calls. The first non-revertible nullifier emitted\n/// is also used to compute note nonces.\npub fn notify_created_nullifier(inner_nullifier: Field) {\n // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to\n // call.\n unsafe { notify_created_nullifier_oracle(inner_nullifier) };\n}\n\n#[oracle(aztec_prv_notifyCreatedNullifier)]\nunconstrained fn notify_created_nullifier_oracle(_inner_nullifier: Field) {}\n\n/// Returns true if the nullifier has been emitted in the same transaction, i.e. if [notify_created_nullifier] has been\n/// called for this inner nullifier from the contract with the specified address.\n///\n/// Note that despite sharing pending transaction information with the app, this is not a privacy leak: anyone in the\n/// network can always determine in which transaction a inner nullifier was emitted by a given contract by simply\n/// inspecting transaction effects. What _would_ constitute a leak would be to share the list of inner pending\n/// nullifiers, as that would reveal their preimages.\npub unconstrained fn is_nullifier_pending(\n inner_nullifier: Field,\n contract_address: AztecAddress,\n) -> bool {\n is_nullifier_pending_oracle(inner_nullifier, contract_address)\n}\n\n#[oracle(aztec_prv_isNullifierPending)]\nunconstrained fn is_nullifier_pending_oracle(\n _inner_nullifier: Field,\n _contract_address: AztecAddress,\n) -> bool {}\n\n/// Returns true if the nullifier exists. Note that a `true` value can be constrained by proving existence of the\n/// nullifier, but a `false` value should not be relied upon since other transactions may emit this nullifier before\n/// the current transaction is included in a block. While this might seem of little use at first, certain design\n/// patterns benefit from this abstraction (see e.g. `PrivateMutable`).\npub unconstrained fn check_nullifier_exists(inner_nullifier: Field) -> bool {\n check_nullifier_exists_oracle(inner_nullifier)\n}\n\n// TODO(F-498): review naming consistency\n#[oracle(aztec_utl_doesNullifierExist)]\nunconstrained fn check_nullifier_exists_oracle(_inner_nullifier: Field) -> bool {}\n"
2964
2964
  },
2965
- "82": {
2965
+ "80": {
2966
2966
  "function_locations": [
2967
2967
  {
2968
2968
  "name": "validate_public_calldata",
@@ -2980,7 +2980,7 @@
2980
2980
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-contracts/contracts/protocol/aztec_sublib/src/oracle/public_call.nr",
2981
2981
  "source": "/// Validates public calldata by checking that the preimage exists and the cumulative size is within limits.\n///\n/// The check is unconstrained and the only purpose of it is to fail early in case of calldata overflow or a bug in\n/// calldata hashing.\npub(crate) fn validate_public_calldata(calldata_hash: Field) {\n // Safety: This oracle call returns nothing: we only call it for its side effects (validating the calldata).\n // It is therefore always safe to call.\n unsafe {\n validate_public_calldata_wrapper(calldata_hash)\n }\n}\n\nunconstrained fn validate_public_calldata_wrapper(calldata_hash: Field) {\n validate_public_calldata_oracle(calldata_hash)\n}\n\n// TODO(F-498): review naming consistency\n#[oracle(aztec_prv_assertValidPublicCalldata)]\nunconstrained fn validate_public_calldata_oracle(_calldata_hash: Field) {}\n"
2982
2982
  },
2983
- "84": {
2983
+ "82": {
2984
2984
  "function_locations": [
2985
2985
  {
2986
2986
  "name": "notify_revertible_phase_start",
@@ -3006,7 +3006,7 @@
3006
3006
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-contracts/contracts/protocol/aztec_sublib/src/oracle/tx_phase.nr",
3007
3007
  "source": "/// Notifies PXE of the side effect counter at which the revertible phase begins.\n///\n/// PXE uses it to classify notes and nullifiers as revertible or non-revertible in its note cache. This information is\n/// then fed to kernels as hints.\npub(crate) fn notify_revertible_phase_start(counter: u32) {\n // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to\n // call.\n unsafe { notify_revertible_phase_start_oracle_wrapper(counter) };\n}\n\n/// Returns whether a side effect counter falls in the revertible phase of the transaction.\npub(crate) unconstrained fn in_revertible_phase(current_counter: u32) -> bool {\n in_revertible_phase_oracle(current_counter)\n}\n\nunconstrained fn notify_revertible_phase_start_oracle_wrapper(counter: u32) {\n notify_revertible_phase_start_oracle(counter);\n}\n\n#[oracle(aztec_prv_notifyRevertiblePhaseStart)]\nunconstrained fn notify_revertible_phase_start_oracle(_counter: u32) {}\n\n// TODO(F-498): review naming consistency\n#[oracle(aztec_prv_isExecutionInRevertiblePhase)]\nunconstrained fn in_revertible_phase_oracle(current_counter: u32) -> bool {}\n"
3008
3008
  },
3009
- "85": {
3009
+ "83": {
3010
3010
  "function_locations": [
3011
3011
  {
3012
3012
  "name": "assert_compatible_oracle_version",
@@ -3030,9 +3030,9 @@
3030
3030
  }
3031
3031
  ],
3032
3032
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-contracts/contracts/protocol/aztec_sublib/src/oracle/version.nr",
3033
- "source": "/// The oracle version constants are used to check that the oracle interface is in sync between PXE and Aztec.nr.\n/// We version the oracle interface as `major.minor` where:\n/// - `major` = backward-breaking changes (must match exactly between PXE and Aztec.nr)\n/// - `minor` = oracle additions (non-breaking; PXE minor >= contract minor)\n///\n/// The TypeScript counterparts are in `oracle_version.ts`.\n///\n/// @dev Whenever a contract function or Noir test is run, the `aztec_misc_assertCompatibleOracleVersion` oracle is\n/// called. If the major version is incompatible, an error is thrown immediately. The minor version is recorded by\n/// the PXE and used to provide helpful error messages if a contract calls an oracle that doesn't exist. We don't throw\n/// immediately if AZTEC_NR_MINOR > PXE_MINOR because if a contract is updated to use a newer Aztec.nr dependency\n/// without actually using any of the new oracles then there is no reason to throw.\npub global ORACLE_VERSION_MAJOR: Field = 29;\npub global ORACLE_VERSION_MINOR: Field = 1;\n\n/// Asserts that the version of the oracle is compatible with the version expected by the contract.\npub fn assert_compatible_oracle_version() {\n // Safety: This oracle call returns nothing: we only call it to check Aztec.nr and Oracle interface versions are\n // compatible. It is therefore always safe to call.\n unsafe {\n assert_compatible_oracle_version_wrapper();\n }\n}\n\nunconstrained fn assert_compatible_oracle_version_wrapper() {\n assert_compatible_oracle_version_oracle(ORACLE_VERSION_MAJOR, ORACLE_VERSION_MINOR);\n}\n\n#[oracle(aztec_misc_assertCompatibleOracleVersion)]\nunconstrained fn assert_compatible_oracle_version_oracle(major: Field, minor: Field) {}\n\nmod test {\n use super::{\n assert_compatible_oracle_version_oracle, ORACLE_VERSION_MAJOR, ORACLE_VERSION_MINOR,\n };\n\n #[test]\n unconstrained fn compatible_oracle_version() {\n assert_compatible_oracle_version_oracle(ORACLE_VERSION_MAJOR, ORACLE_VERSION_MINOR);\n }\n\n #[test(should_fail_with = \"Incompatible aztec cli version:\")]\n unconstrained fn incompatible_oracle_version_major() {\n let arbitrary_incorrect_major = 318183437;\n assert_compatible_oracle_version_oracle(arbitrary_incorrect_major, ORACLE_VERSION_MINOR);\n }\n}\n"
3033
+ "source": "/// The oracle version constants are used to check that the oracle interface is in sync between PXE and Aztec.nr.\n/// We version the oracle interface as `major.minor` where:\n/// - `major` = backward-breaking changes (must match exactly between PXE and Aztec.nr)\n/// - `minor` = oracle additions (non-breaking; PXE minor >= contract minor)\n///\n/// The TypeScript counterparts are in `oracle_version.ts`.\n///\n/// @dev Whenever a contract function or Noir test is run, the `aztec_misc_assertCompatibleOracleVersion` oracle is\n/// called. If the major version is incompatible, an error is thrown immediately. The minor version is recorded by\n/// the PXE and used to provide helpful error messages if a contract calls an oracle that doesn't exist. We don't throw\n/// immediately if AZTEC_NR_MINOR > PXE_MINOR because if a contract is updated to use a newer Aztec.nr dependency\n/// without actually using any of the new oracles then there is no reason to throw.\npub global ORACLE_VERSION_MAJOR: Field = 30;\npub global ORACLE_VERSION_MINOR: Field = 0;\n\n/// Asserts that the version of the oracle is compatible with the version expected by the contract.\npub fn assert_compatible_oracle_version() {\n // Safety: This oracle call returns nothing: we only call it to check Aztec.nr and Oracle interface versions are\n // compatible. It is therefore always safe to call.\n unsafe {\n assert_compatible_oracle_version_wrapper();\n }\n}\n\nunconstrained fn assert_compatible_oracle_version_wrapper() {\n assert_compatible_oracle_version_oracle(ORACLE_VERSION_MAJOR, ORACLE_VERSION_MINOR);\n}\n\n#[oracle(aztec_misc_assertCompatibleOracleVersion)]\nunconstrained fn assert_compatible_oracle_version_oracle(major: Field, minor: Field) {}\n\nmod test {\n use super::{\n assert_compatible_oracle_version_oracle, ORACLE_VERSION_MAJOR, ORACLE_VERSION_MINOR,\n };\n\n #[test]\n unconstrained fn compatible_oracle_version() {\n assert_compatible_oracle_version_oracle(ORACLE_VERSION_MAJOR, ORACLE_VERSION_MINOR);\n }\n\n #[test(should_fail_with = \"Incompatible aztec cli version:\")]\n unconstrained fn incompatible_oracle_version_major() {\n let arbitrary_incorrect_major = 318183437;\n assert_compatible_oracle_version_oracle(arbitrary_incorrect_major, ORACLE_VERSION_MINOR);\n }\n}\n"
3034
3034
  },
3035
- "88": {
3035
+ "85": {
3036
3036
  "function_locations": [
3037
3037
  {
3038
3038
  "name": "<impl StateVariable<1, Context> for Map<K, V, Context>>::new",
@@ -3050,7 +3050,7 @@
3050
3050
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-contracts/contracts/protocol/aztec_sublib/src/state_vars/map.nr",
3051
3051
  "source": "use crate::protocol::{storage::map::derive_storage_slot_in_map, traits::ToField};\nuse crate::state_vars::StateVariable;\n\n/// A key-value container for state variables.\n///\n/// A key-value storage container that maps keys to state variables, similar to Solidity mappings.\npub struct Map<K, V, Context> {\n pub context: Context,\n storage_slot: Field,\n}\n\n// Map reserves a single storage slot regardless of what it stores because nothing is stored at said slot: it is only\n// used to derive the storage slots of nested state variables.\nimpl<K, V, Context> StateVariable<1, Context> for Map<K, V, Context> {\n fn new(context: Context, storage_slot: Field) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Map { context, storage_slot }\n }\n\n fn get_storage_slot(self) -> Field {\n self.storage_slot\n }\n}\n\nimpl<K, V, Context> Map<K, V, Context> {\n /// Returns the state variable associated with the given key.\n ///\n /// This is equivalent to accessing `mapping[key]` in Solidity.\n pub fn at<let N: u32>(self, key: K) -> V\n where\n K: ToField,\n V: StateVariable<N, Context>,\n {\n V::new(\n self.context,\n derive_storage_slot_in_map(self.storage_slot, key),\n )\n }\n}\n"
3052
3052
  },
3053
- "90": {
3053
+ "87": {
3054
3054
  "function_locations": [
3055
3055
  {
3056
3056
  "name": "<impl StateVariable<M, Context> for PublicMutable<T, Context>>::new",
@@ -3128,7 +3128,7 @@
3128
3128
  "abi_public",
3129
3129
  "abi_only_self"
3130
3130
  ],
3131
- "debug_symbols": "pVjbbuJADP2XPPMwvszF/MqqqmibVkiIVhRWWlX8+3pgPAlIM0IND8yJQ05sz7Ed8jO8jS+nj+ft/v3ze1j/+RleDtvdbvvxvPt83Ry3n3u1/gwufwHgsKaVrnFYe10RyxqudoKy6nHUlaGs5dhzWeW6BhrW4DJICkBBpAISGNBrISkQuAJ0rgA0C/oCyE6RWdgsXC1SgCcDqYCABmIB0W4RixuYlBBdBmxAChCzSLGQYwNmAXUDNS5CZ6Ba8m80fURsIFtYAXMBHg2oh5QJs8+ECqISUj4VfQHJLClbggJxBoqFHRnQJLDelPMmX0EsIOeZfQa+gJznK1DHWDJQVz2ez6vBdPN8PIxjls1MSCqvr81h3B+H9f60262Gv5vd6fKj76/N/rIeNwc9q5GN+zddlfB9uxszOq+mq1370qifcnVMDirBxbuJAdoMgXNIF4bAAStDuPUB2wxUCShwvT7S4x7UGIJHaXnAbQZGS6EHNxH4X2URXCuLoc0gLhUCmUXA+LAHCUL1gELLg9TJorYTyyKk2MqitBkwWgxa3K197GbR1ywKpVYMPQYRi0HFjE01d8QImEv1QgEovlKkdEtBnTwkUxPJFAXCrZygo0chZ04I8RQHpLtAfE9RbLkQJ67NEXqVaRSUZpHcyRJiJxcQTZcIiX/HgWRuIIaOHx1tan+2TdFin9QN8WE3SCLUfY3SdqOnLhDrdUAutNSFHQqfapm6aVfFPU5QdyQE3yJ4tMiwOTKwp022QpeIzRg6wgSHZFEo9s12hZ0NFZFYORxwk2N518SlbbMfh8cpDkwtJ6gzQ8n7Ku7gsOlGf09wtiex+ShAnd4JEqxOQeKUT+0Bv9NnbOmTOvrEWqUEk8BJHnUhuTpEkps909y7EBfPIUpL5xDJ8jnEbvkcYlg6hxiXz6Eux4NziHnxHHpUW7GpLe5VKtRtBf0b2mrA3JOnS/kBphR7wmbz5I5AIfk6DdOsX9wXe9+R6dlbsTQf/73rkXieWqiXZgv1PZGGZBwUNYJ5C33So83r9nDznuCcuQ7bzctuLIfvp/3r7Ozx35edsfcMX4fP1/HtdBgz0/xlg/5dTH6V4tM53+0/",
3131
+ "debug_symbols": "pVjbbuJADP2XPPMwvszF/MqqqmibVkiIVhRWWlX8+3pgPAlIM0IND8yJQ05sz7Ed8jO8jS+nj+ft/v3ze1j/+RleDtvdbvvxvPt83Ry3n3u1/gwufwHgsKaVrnFYe10RyxqudoKy6nHUlaGs5dhzWeW6BhrW4DJICkBBpAISGNBrISkQuAJ0rgA0C/oCyE6RWdgsXC1SgCcDqYCABmIB0W4RixuYlBBdBmxAChCzSLGQYwNmAXUDNS5CZ6Ba8m80fURsIFtYAXMBHg2oh5QJs8+ECqISUj4VfQHJLClbggJxBoqFHRnQJLDelPMmX0EsIOeZfQa+gJznK1DHWDJQVz2ez6vBdPN8PIxjls1MSCqvr81h3B+H9f60262Gv5vd6fKj76/N/rIeNwc9q5GN+zddlfB9uxszOq+mq1370qifcnVMDirBxbuJAdoMgXNIF4bAASeGdMOAbQaqBBS4Xh/hcQ9qDMGjtDzgNgOjpdCDmxH8KovgWlkMbQZxqRDILALGhz1IEKoHFFoepE4WtZ1YFiHFVhalzYDRYtDibu1jN4u+ZlEotWLoMYhYDCpmbKq5I0bAXKoXCkDxlSLdigGok4dkaiKZokC4c6KjRyFnTgjxFAdEueXwPUWx5UKcuDZH6FWmUVCaRUJ3DLGTC4imS4TEv+NAMjcQQ8ePjja1P9umaLHHWTYedoMkQt3XKG03euoCsV4H5EJLXdih8KmWqZt2NcXHCeqOhOBbBI8WGTZHBva0yVboErEZQ0eY4JAsCsW+2a6ws6EiEiuHA25yLO+auLRt9uPwOMWBqeUEdWYoeV/FHRw23ejvCc72JDYfBajTO0GC1SlInPKJ6H6nz9jSJ3X0ibVKCSaB39V5x4Xk6hBJbvZMc+9CXDyHKC2dQyTL5xC75XOIYekcYlw+h7ocD84h5sVz6FFtxaa2uFepULcV9G9oqwFzT54u5QeYUuwJm82TOwKF5Os0TLN+cV/sfUemZ2/F0nz8965H4nlqoV6aLdT3RBqScVBEummhT3q0ed0ebt4TnDPXYbt52Y3l8P20f52dPf77sjP2nuHr8Pk6vp0OY2aav2zQv4vJr1J8Oue7/Qc=",
3132
3132
  "is_unconstrained": true,
3133
3133
  "name": "_increase_public_balance"
3134
3134
  },
@@ -3176,7 +3176,7 @@
3176
3176
  "abi_public",
3177
3177
  "abi_view"
3178
3178
  ],
3179
- "debug_symbols": "nZbdjuIwDIXfJde9sJ1f8yqjESpQRpWqgjqw0gr13TeBOoWRkmX3hhyc9utx7KS9qUO3u35t+/F4+labj5vaTf0w9F/b4bRvL/1pjNGbgvTjjNroRjlWG9Mob+5DoMfg1QaxUeweIwIugkiETGmZ0hIxEjESsSDCiOBFOC0iLMLLI/ziAkMC6iTsIhhELBECECERlAgmGzErIhQhEZ2ucUnYRZgU8UnYRViJ2LCI5JkSOXkmG4WPQEpTyepD3CPz3ChZ+u1l6rq08k+1iBU6t1M3XtRmvA5Do361w/V+0fe5He/jpZ3iLDSqGw9xjMBjP3RJzc16N5RvRQBjl9ujdj4jLL0wsMxglwpxR7DTlAnu1QXVXAQnJhA4E7z+hzx0yHmghlIeVQY6vzKCKzFshUHrchLbTAjhheDKBApSTs0h309oXwC+Ug4NYoG1WcuB4TWLUEGA0YIAhiKCywidCTo8pWF+dFWlHIRemoIwmP9jkBYbcV9XfFSa06CXihiCdYOgf9uGZo+5qJ6LNmqNhczSWBpcqbGwgrBB1sLBWlOG9wG5IM7ZEuD9DfbU3j8Pm1pvGkGwp2IWXHNBOp82QNYXD6xKKsy8ZgJoiozKuenQ54JgKNuo9CZ5OfSITenYrOdhac2DQtGEqXS3tbm7HVDJxl9qQk818eWXSOXkRHayUZH9up7xEJjnz/i33ffTy8fOnGBT3+6Gbvl7vI77p9nL77PMyMfSeTrtu8N16hJp/WLC+G7/sKFx8Dmnp/0B",
3179
+ "debug_symbols": "nZbbjuIwDIbfJde9iJ2DY15lNEIFyqhSVVAHVloh3n2TUvewUrLs3JAfp/n6O3bTPtSpOdy/9m1/vnyr3cdDHYa269qvfXc51rf20sfoQ+n0463amUp5VjtbKbLjEPA1kNoBVIr9awQNk0AUIVNGpoxErESsRJwWYUXwJLwRESZBcguaXEBIQJOEmwRrEVMEtRYhEZAIJBsxK0QQIRGTrvFJuEnYFKEk3CScRFyYRPKMiZw8o4uCIhDTVLL6EmPk+ayUbP3+NjRN2vlVLWKFrvXQ9De16+9dV6lfdXcfL/q+1v043uohzupKNf0pjhF4brsmqWe1rNb5paC1ddPyqD3NCIcbBuQZ7FMhRgR7gwshbAhYchG8mADNM4HgP/IwYc4DjM7lUWSAp4URfI7hCgxcthPZzYTgNgSfJ2CQchoO83qErQUqlMNoscDGLuUA4g0iFBDaGkFo1lkE5xFmJpiwSsNsAVAoBwJJUyAE+zMGGrERn+uCj0JzWiCpiEVNq81424ZhgrmoxFkbpcYCZmkso32usaCAcEH2wuulpoHeB8wF8d7lAO8/YKv2/vuwKfWmFQQTZrPgkgs082mj0VH2wCqkwsxLJhpsllE4Nz3QXBAIeRuF3kSSQw/Z5o7Nch4OlzwwZE3YQnc7N3e315iz8Y+a4KomlH+JFE5OYC8PKjAt+4kYX4ef8W99bIfNx84zwYa2PnTN9Pd874+r2dvvq8zIx9J1uByb031oEmn5YoL4bv9wofL685nu9gc=",
3180
3180
  "is_unconstrained": true,
3181
3181
  "name": "balance_of_public"
3182
3182
  },
@@ -3214,7 +3214,7 @@
3214
3214
  "abi_public",
3215
3215
  "abi_view"
3216
3216
  ],
3217
- "debug_symbols": "nVbbauMwEP0XP+dBM6Pb5FdKKW7qFoNxgpssLCX/vqNa48uCRJuX6HgUH5+5Sl/NW/d6+3jpx/fzZ3N8+mpep34Y+o+X4Xxqr/15FOtXY9IPmNgc6dAAUHO0aY3zin5eCZpjSKs8s6wW8upmuzN5lWcAAd4oUEsgBTGDiAKiAAYFfgYIIQMEBbpFaiG1WLUkNTPgDJxVEDPwpEA/EVCBEKIREI0ClwGrhbOFjFGgFhAZCAn4DFAtmP4j8SUyCpJFIkvWKIgZOFFIiTBpJhTghZDSVgAFaonJ4hJIFi8gBXMGnMD9fmg04S/XqetSvjcVIHVxaaduvDbH8TYMh+ZPO9y+//R5acfv9dpOsiuKuvFNViF874cuofthfduUX43MPr/NBuJC4HDHAGUG9qliZgZPuDD4vQYsM0iJqwYAwwtDoJ97EXnxIoSSFxUGlr5RBmmMEoMrM3hrVYO3vhgHX2aghYC8LUWhqiAEVeCQSwpimcGilpLbJsI9FMVgi9VUozBRGTYu2F8kElcJ1hQl1OpRppXWo0yVhSLGPQWVKWROaSp5bSqEfSTBVvyQ6aV+kF3LSUbznsPVYmlpaQs2ZY5qUSoFxY0n/yUEQiUWELS9EaJ9jANJZchxU9HBleKGoEmROl+HBIQfyyAOsOQ1cFlGrbqAtc2BjC9VF1YoXNRgeLNmlc3PCZaM+M2sY/NQk0UsNRnWatPqrOKARR987dRAWo4Ngy4UT55KQpk5LBwGbJGjMjS93J80mhDLMiqliUGHHnJx8tf9cLj6gbEkgioHOTm3FLc3WJRRzwluchKKpyBVZqdcNbVPgTeHucyAh+qTH7sPpOGczyHYMzzLU3vqp91t/Z64pr59Hbr8+H4bT5vd69+L7uht/zKdT93bbeoS0+bKL9fEJ6mp4J7v6Wv/AA==",
3217
+ "debug_symbols": "nVbbauMwEP0XP+dBM6Pb5FdKKW7qFoNxgpssLCX/vqNaYzsBiWxeouNRfHzmKv00H9375eutHz+P383+5ad5n/ph6L/ehuOhPffHUaw/jUk/YGKzp10DQM3epjXOK/p5JWj2Ia3yzLJayKub7c7kVZ4BBHijQC2BFMQMIgqIAhgU+BkghAwQFOgWqYXUYtWS1MyAM3BWQczAkwL9REAFQohGQDQKXAasFs4WMkaBWkBkICTgM0C1YPqPxJfIKEgWiSxZoyBm4EQhJcKkmVCAF0JKWwEUqCUmi0sgWbyAFMwZcALX667RhL+dp65L+d5UgNTFqZ268dzsx8sw7Jo/7XD5/dP3qR1/13M7ya4o6sYPWYXwsx+6hK679W1TfjUy+/w2G4gLgcMbBigzsE8VMzN4wpUh3jBgmUFKXDUAGF4YAjzuReTFixBKXlQYWPpGGaQxSgyuzOCtVQ3e+mIcfJmBFgLythSFqoIQVIFDLimIZQaLWkpumwj3VBSDLVZTjcJEZdi4YP8jkbhKsKYooVaPMq20HmWqLBTxNg5AZQqZU5pKXpsK4U6Erfgh00v9ILuWEwS+5XC1WFpa2oJNmaNalEpBceMJ3TGESiwgaHsjRPscB5LKkOOmooMrxQ1BkyJ1HjbReFgGcYAlr4HLMmrVBaxtDmR8qbqwQuGiBsObNasxPE6wZMRvZt0dwaNNFrHUZFirTauzigMWffC1UwNpOTYMulA8eSoJZeawcBiwRY7K0PRyf9JoQizLqJQmBh16yMXJX/fD4eoHxpIIqhzk5NxS3N5gUUY9J7jJSSieglSZnXLV1D4F3hzmiOap+uTn7gNpOOdzCG4ZXuWpPfTTzW39mrimvn0fuvz4eRkPm93z35Pu6G3/NB0P3cdl6hLT5sov18QXqangXq/pa/8A",
3218
3218
  "is_unconstrained": true,
3219
3219
  "name": "check_balance"
3220
3220
  },
@@ -5040,11 +5040,11 @@
5040
5040
  "visibility": "databus"
5041
5041
  }
5042
5042
  },
5043
- "bytecode": "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",
5043
+ "bytecode": "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",
5044
5044
  "custom_attributes": [
5045
5045
  "abi_private"
5046
5046
  ],
5047
- "debug_symbols": "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",
5047
+ "debug_symbols": "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",
5048
5048
  "is_unconstrained": false,
5049
5049
  "name": "claim",
5050
5050
  "verification_key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcnAAAAAAAAAAAAAAAAAAAAlncaIdHfnZE7LPKKkciw2i8AAAAAAAAAAAAAAAAAAAAAACbWinvuuGrnC8KoVjd7qgAAAAAAAAAAAAAAAAAAAHb2LU8IGPFj+n7F5b098W6NAAAAAAAAAAAAAAAAAAAAAAASREFXQzikqHrRHg22Ix8AAAAAAAAAAAAAAAAAAABy30ZaH1GNJxcsygnz1Mu+igAAAAAAAAAAAAAAAAAAAAAAIEyrKAr6QZeta9j2OOsHAAAAAAAAAAAAAAAAAAAALwC+W+0YHizk/f1zt7ItbjwAAAAAAAAAAAAAAAAAAAAAABAUojJRF6/mL5tqBR/bEgAAAAAAAAAAAAAAAAAAAJ2YiF2B8fa18J00R0LgOjjkAAAAAAAAAAAAAAAAAAAAAAAVk26s7XqPlIExs6PP6R0AAAAAAAAAAAAAAAAAAABNhKZbXYR5RfJpLORUCz/zYwAAAAAAAAAAAAAAAAAAAAAAFL9TNc35B1M/uxNWoHNkAAAAAAAAAAAAAAAAAAAANLf1UG8DTdX6qImoZFGhijgAAAAAAAAAAAAAAAAAAAAAABXmFn+8IUZG8fwo3SYKDgAAAAAAAAAAAAAAAAAAAMTDuZ6CRucfeT4CcYH0qSQ8AAAAAAAAAAAAAAAAAAAAAAAkyqCtNJXY7scH+Wp8qAMAAAAAAAAAAAAAAAAAAACwn4MCveJE7eGAg5uUadGaywAAAAAAAAAAAAAAAAAAAAAAFimrEF4/hvIrR42MEgRuAAAAAAAAAAAAAAAAAAAAjB3dFe1mqJSQqyC3zahmFnQAAAAAAAAAAAAAAAAAAAAAABHhTB+7R3LAXTa5NnqRlwAAAAAAAAAAAAAAAAAAAEeW2kCNExLzB3WxULpE2PGBAAAAAAAAAAAAAAAAAAAAAAALOXp7uAqNpwU/6ANadAMAAAAAAAAAAAAAAAAAAAAf+N2b2GzDqjI7X/AjinYN2wAAAAAAAAAAAAAAAAAAAAAAJMKBePJsQAuKSiedxGObAAAAAAAAAAAAAAAAAAAAbGHt6M09/IJL2CrJEnXkG4gAAAAAAAAAAAAAAAAAAAAAABX3OAfucoAr9F6kWgDVdgAAAAAAAAAAAAAAAAAAANpDPhjgB0oM7kV7Xo5J4RHSAAAAAAAAAAAAAAAAAAAAAAAVCEbUjYk50PMw54/3gjYAAAAAAAAAAAAAAAAAAAAfxItn+07JcUz+ae+oRp0vqgAAAAAAAAAAAAAAAAAAAAAAKAClxqoGrboP6xOPUbfBAAAAAAAAAAAAAAAAAAAAYmYHrNPP4IzsjM7EX8JyIqAAAAAAAAAAAAAAAAAAAAAAAAv1RR+OiAWz6D4Xx3isjwAAAAAAAAAAAAAAAAAAAMottjXj3z1OLnFJtYYbnosaAAAAAAAAAAAAAAAAAAAAAAAC7dDXATdo2TSY47VUEikAAAAAAAAAAAAAAAAAAACd/Afbd5ptWq6ar3r2StW4ywAAAAAAAAAAAAAAAAAAAAAAInbUwVgTv05wVBi4EbqpAAAAAAAAAAAAAAAAAAAApmy5bqs3rpUAkkMnUmWyjS0AAAAAAAAAAAAAAAAAAAAAAAgCgZ6LukTp/iUj9LPgRwAAAAAAAAAAAAAAAAAAAPcYvbNu0hRSpWqbXdjlfHWgAAAAAAAAAAAAAAAAAAAAAAAJKNkITHs948lrLnQoSyEAAAAAAAAAAAAAAAAAAAB/UcxgjjUp06xbdAaojf6K4wAAAAAAAAAAAAAAAAAAAAAABNaoa4ECmwP6idPbpgwIAAAAAAAAAAAAAAAAAAAAH2gddpRDWulcMD8icNuaEZMAAAAAAAAAAAAAAAAAAAAAACFUI9EfSzfBcN5W1VlROgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEVHw6O15E7SwGHSCNtBqHIcAAAAAAAAAAAAAAAAAAAAAAANPGDVK9+e5d28ix0mWH8AAAAAAAAAAAAAAAAAAABH7rq6H9IqevLzJ8HIWNAkjgAAAAAAAAAAAAAAAAAAAAAALPIwdGtst4dI0hIjDoSBAAAAAAAAAAAAAAAAAAAA0adQ0BYnvCoNXlChQhU3TeEAAAAAAAAAAAAAAAAAAAAAACCJvr51/CpY9lm0hAHwqQAAAAAAAAAAAAAAAAAAADoygGnS4ddgmDfSwgwYD/vbAAAAAAAAAAAAAAAAAAAAAAAXjYNu/R21Nv6zZciwLgQAAAAAAAAAAAAAAAAAAAAWdAwJKv//kCRRthY/m9R0TwAAAAAAAAAAAAAAAAAAAAAAHmIZ+9PhY0PEFc8I9ZHpAAAAAAAAAAAAAAAAAAAAECNEjKlXezmwJ8fgc/GdWJwAAAAAAAAAAAAAAAAAAAAAAAG8bF2az6XKEYbqvuMQ3gAAAAAAAAAAAAAAAAAAABSGSUasjXFFM9XfI5dFCHEiAAAAAAAAAAAAAAAAAAAAAAAFrb66RLzQ2TjB7+RDyR4AAAAAAAAAAAAAAAAAAABXLwgbwIqr5bPFqOj39aDbQAAAAAAAAAAAAAAAAAAAAAAAD1q12u6qFr7bXSjz8ruTAAAAAAAAAAAAAAAAAAAAqkRaJx7vfhVPFxKk/8jr2wcAAAAAAAAAAAAAAAAAAAAAACxDb0M5qI67DZG2fYCplwAAAAAAAAAAAAAAAAAAAKm4Htt405fwUTodfP01bIbXAAAAAAAAAAAAAAAAAAAAAAAJYIghOq6Yb9S4k2YZ45AAAAAAAAAAAAAAAAAAAAD7EahCfJfUx08zggfBlJ/+jQAAAAAAAAAAAAAAAAAAAAAAGtrA7sUtqys0L9NkC0kAAAAAAAAAAAAAAAAAAAAAj71uBMOBLRK0MledEtYoGygAAAAAAAAAAAAAAAAAAAAAAAcpsgSshlOq9HGDpI/k4wAAAAAAAAAAAAAAAAAAAI6rr4uYHn5u8t6dvuSMeq3rAAAAAAAAAAAAAAAAAAAAAAAofy1F1LX/uQcIrlowAoYAAAAAAAAAAAAAAAAAAACFAIaQpfeE6gvoSl5kzRyuZwAAAAAAAAAAAAAAAAAAAAAAJUUEuY8jyLnvtO7NkM4oAAAAAAAAAAAAAAAAAAAA8pq0ONNdAC7M67aq7vjkR9kAAAAAAAAAAAAAAAAAAAAAAAwH20TmyjdH5u5XjbHqfwAAAAAAAAAAAAAAAAAAAG8Duliyn3rn5pXOpSVx87rDAAAAAAAAAAAAAAAAAAAAAAAE7C+tBo5j+GKDeGxRtuoAAAAAAAAAAAAAAAAAAAA0WFrxC8smjJW+Ke2wmzRVKwAAAAAAAAAAAAAAAAAAAAAAG/hPtljO6Lfp2DPpjuE7AAAAAAAAAAAAAAAAAAAAVWzl5ES5kvDh0J2gFI6qlzQAAAAAAAAAAAAAAAAAAAAAAAb1TfLJetPkIjdm2UjMCgAAAAAAAAAAAAAAAAAAAO2XLryIFZqA7sXYGlQp/4UaAAAAAAAAAAAAAAAAAAAAAAATugSbke+A+Af9UaGGo3AAAAAAAAAAAAAAAAAAAAAtIBdoFwBi3g5kJ/b2bIDjfwAAAAAAAAAAAAAAAAAAAAAAGSzhlqVZNRar5om79o/uAAAAAAAAAAAAAAAAAAAALEqU6BRk1YJPUc5bk9qZ1IgAAAAAAAAAAAAAAAAAAAAAAByaKfxSr1iCaPWjs26HBwAAAAAAAAAAAAAAAAAAAItiKSI0XB1xuPhAPIOwiMvlAAAAAAAAAAAAAAAAAAAAAAAKUAPHpRANSOd4UgBT72cAAAAAAAAAAAAAAAAAAADhqIBXeAlopCaKM3/TxvC8rQAAAAAAAAAAAAAAAAAAAAAAL1g2s7cJOLBk3oPVeUZtAAAAAAAAAAAAAAAAAAAAbZENkAplmMOV+ElDtyMcTvoAAAAAAAAAAAAAAAAAAAAAAC3sSr4uwsCX0wuzXmkE1QAAAAAAAAAAAAAAAAAAAPYqoBvgJNCSesbfPMnnGpjTAAAAAAAAAAAAAAAAAAAAAAAgeLmpZ1bGzABJ0TsW7noAAAAAAAAAAAAAAAAAAACEZZQyI5Xf11a4JUREttUVrgAAAAAAAAAAAAAAAAAAAAAAG2AI1K0bS4r0khorTJXfAAAAAAAAAAAAAAAAAAAAOZE+FZiXG4cb+rzrCIpc3v0AAAAAAAAAAAAAAAAAAAAAABWxlnJUAKE+4S50+67aSwAAAAAAAAAAAAAAAAAAAGfqanNa4K4TR/FcupnGNuEFAAAAAAAAAAAAAAAAAAAAAAAs2J30r+nXFzowXfoWmm4AAAAAAAAAAAAAAAAAAAAgQy+++IaMRrvYBislhOPu9AAAAAAAAAAAAAAAAAAAAAAAEToLk+kikfUlUlshCebuAAAAAAAAAAAAAAAAAAAAShAHwSjvk9y/5Lhe45WyHZ4AAAAAAAAAAAAAAAAAAAAAAAM8Rp+olilPn9hYsuOYoQAAAAAAAAAAAAAAAAAAAOHgvVcn7loZsPflwhRQFGeoAAAAAAAAAAAAAAAAAAAAAAAmBUjfyCsMl92D1foyhowAAAAAAAAAAAAAAAAAAACX3K94LNzJGGI6iC2g4sv8/AAAAAAAAAAAAAAAAAAAAAAAHLUFsK8Vy7XrZZ6eyz7aAAAAAAAAAAAAAAAAAAAADjMY2ADXX821qRyc0mVlKwcAAAAAAAAAAAAAAAAAAAAAACbItbMVA/5fOrZ87XQzDwAAAAAAAAAAAAAAAAAAAPLQUo7TKpmkzKcEn4TVOThDAAAAAAAAAAAAAAAAAAAAAAAF107/CLhIau5/cl6KqawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAExD7dGCewJe8T62Gc8mzUEnAAAAAAAAAAAAAAAAAAAAAAAqa100rKdzYXWp/FeP7HwAAAAAAAAAAAAAAAAAAAAYTZYCpzswtdrhtV/09Uo+iwAAAAAAAAAAAAAAAAAAAAAAHP74sn7br3/xCZU3yV7SAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsMmvMF29r97YcZ8YHtThgTgAAAAAAAAAAAAAAAAAAAAAALg347eJKxUX29hVgeuWlAAAAAAAAAAAAAAAAAAAASBDpf+ryA7U5wWHjHAm5kQ0AAAAAAAAAAAAAAAAAAAAAAA4mEs6p9F5iOPH82P6A5A=="
@@ -6871,11 +6871,11 @@
6871
6871
  "visibility": "databus"
6872
6872
  }
6873
6873
  },
6874
- "bytecode": "H4sIAAAAAAAA/+y9B5yTRdv2vdeVJVvJ0kTAwqogdgF7V3oHQcWCwgqIKHUpggosvcNm6VKlCWIDpElRkE6G3js2sFfs5Z0AIRe7SebIMMd9ez9vnt/7/b6514NjZs455/wnV7LnunK8o+c3bZXRsnXjjDbNGjeX/1+H5h07tTtYeGHPdyq0ymj6fIW2Xap0atO0YkarVj1n1H+gTtXKOT1fa9iyY5vmHTrY6YDIZQGigohT4fsBUVFfFqC6EFJdjKzqEkR0KSIqiYjSoZVfBqkuh1RXQKpSyOKvlFZzKmS2bNWqZQu/YGRcdvaI7OzV6XGR/8/q+foDHTo0z+z4ePPMtiOyvTmr08s2q5N5rNyUqxfXq7ywZ89Hn7zqphPVui5p56147OSI7+Q/Ea62kW13Xf/x8zq27cLa5gsMQkTi3XptOzRv2axtm/L1mme27tQxo2PLtm1yRp6NjFzu2XHpYLwc/73dSOFqL1yZwiX/R8dzVz4iRx3CMoBGzgDFoJPSKi76BV4FLTATWmBnYIE6h9TJMe7sGHdwjDvKg3pBuLoIV1fhevHcOOQAeywF7fAl4NKoL6T0SY9+hYWhFb6sMLIezIJW+PL959aMxBE9ZzZo2aZFq+anr6xqtaWBXDhrqK5F6VGIrThvzxkPZGZmdD0Yly5c3YSru3D1EK4s4eopXL2Eq7dw9RGuvsLVT7j6C9cA4RooXIOEa7BwDRGuocI1TLiGC1e2cHmFK0e4RgiXzK5RwjVauMYI11jhGidcrwjXeOGagBVSJOLdEiFZd0zWA5NlYbKemKwXJuuNyfpgsr6YrB8m64/JBmCygZhsECYbjMmGYLKhmGwYJhuOybIxmReT5WCyEZhsJCYbhclGY7IxmGwsJhuHyV7BZOMx2YTEc2E2Mjyoss+ASr6k6BtW1dYbVPULp1rczqHqj6AxbVe0r59ybWRBCFs5+bkvYCstDK3KcarqVg6jGgFtZF+0GzkYdwmCbOgFRjeF6tt//pEb6a5U+bfbQ6U6FZSsyKqc06HrGVH105kA94qkOho4ht4RVBXOHlafMKou5xzpgNCqquce/MCQquO50mNQKFX53Ek0OISqTJ5UG5JX1ShvQg7No2oYIm2H5VZlhUru4blUWSGvQLZDtaheuIviuJpXLQ6rGnVWNfnq8KrRAVXZKRFUY86ojpaLpBp7WtX+WETVuFOq2pmRVa/4VU3rKFTjperGZirVBORtXtouSIWUn3PeOyR5o3vvIJerrDHbTnm2btequXBNjP5phncEtAzpnaOud9v8MsRvkrrA6q1ykhda5aRoTy45R+PkFKKtUb2Vywke8+TgcIq5t12TMdmUxOifrZy+dmpYTobAOwWIbPTJM0lOjz2Cm8y/9uOV0ZrouPavsq69fF//KnDtJ/pliN9UyrWXq5zqhVY5lX/txytFE3Sv/bTgcLq5az8Nk03XuvbjoWs/Dbp204HI5nmWqLbFJp+hcb/UrrLmTM3BgAmtcmaU74ew+zVDGnuNzX+elfEVZULNd1TG11iVUT70fA2ojPP9MsRvFqUyylXO8kKrnKWROVB+zzSZ37Ojfb+PlYBZkOp1IJHOEx6vKEXzdOExJzh8wxw85mCyN7Tg8QoEjznQ4b0BRFYjc7DJ36SUoNkyJbGy/BYFC29KY878YPDfglRvU4IfqGxADYRU70RbXKIn5zjlbRruIOdcFjnlJ4ZzAXIO98sQv3kUcspVzvNCq5xHIefbMiVM3oL50X7JBZt8HqR6l0/OcUrRMF1yLggOF5oj5wJMtlCLnOMgci6ADm8hEFmNzMEmX0QpQfL17rsYuRZTyLlIGnPmB4O/GFItoQQ/UNnUSqyyvcd/zzlWeZvSHeRcyiLnWOkNkDPdL0P8llHIKVe5zAutchmFnEtkSpi8Bcs55FwGqVbwyTlWKSqpS873g8MPzJHzfUz2gRY5x0LkfB86vA+AyGpkDjb5SkoJWi5TEiPXKgo5V0pjzvxg8FdBqg8pwQ9UNrUSq2yr+eQco7xNWx3kXMMi5xjpDZBzq1+G+K2lkFOucq0XWuVaCjk/lClh8has45BzLaRazyfnGKVoiy45NwSHG82RcwMm26hFzjEQOTdAh7cRiKxG5mCTb6KUoHUyJTFy+Sjk3CSNOfODwfdBKkEJfqCyqZVYZdvMJ+do5W3KcJBzC4uco6U3QM4Mvwzx20ohp1zlVi+0yq0UcgqZEiZvwTYOObdCqu18co5WiproknNHcLjTHDl3YLKdWuQcDZFzB3R4O4HIamQONvkuSgnaJlMSI9duCjl3SWPO/GDwd0OqPZTgByqbWolVtr18co5S3qa9DnLuY5FzlPQGyLnXL0P89lPIKVe53wutcj+FnHtkSpi8BQc45NwPqQ7yyTlKKdqjS85DweFhc+Q8hMkOa5FzFETOQ9DhHQYiq5E52ORHKCXogExJjFxHKeQ8Io0584PBPwqpjlGCH6hsaiVW2T7ik3Ok8jZVd5DzYxY5R0pvgJzV/TLE7xMKOeUqP/FCq/yEQs5jMiVM3oJPOeT8BFJ9xifnSKWomi45jweHJ8yR8zgmO6FFzpEQOY9Dh3cCiKxG5mCTf04pQZ/KlMTI9QWFnJ9LY878YPC/gFRfUoIfqGxqJVbZvuKTc4TyNs11kPNrFjlHSG+AnHP9MsTvGwo55Sq/8UKr/IZCzi9lSpi8Bd9yyPkNpPqOT071ob6jS87vg8MfzJHze0z2gxY5R0Dk/B46vB+AyGpkDjb5j5QS9K1MSYxcP1HI+aM05swPBv8nSHWSEvxAZVMrscr2M5+c6tu0zEHOX1jkzJHeADmX+WWI368UcspV/uqFVvkrhZwnZUqYvAW/ccj5K6T6nU9OtWipLjn/CA7/NEfOPzDZn1rkzIHI+Qd0eH8CkdXIHGzyvygl6DeZkhi5/qaQ8y9pzJkfDP7fkOofSvADlU2thCpbfByfnF7lbaoZJGe8xSKnV3oDN7umXwb4xdsUcspV2l5olTaFnP/IlDB4C+JdFHLG25Aqnk9Or1JUQ5Oc8fmCQ7cxcsbnw2RuLXJ6EXLG54MOzw1EViNzsMkTGCUo3iVTEiJXfCKDnPEJ0pgzPxj8REiVRKn/gcqmVmKVLZlPzmzlbcpykDOFRc5s6Q2QM8svQ9IwlUJOucpUL7TKVAY545NkSpi8Bfk55EyFVB4+OdW52kOXnGnBYQFz5EzDZAW0yJkNkTMNOrwCQGQ1MgebvCCFnPllSmLkKkQhZ0FpzJkfDH4hSFWYEvxAZVMrscpWhE/O4VGR8wIWOYdLb4ycF0DxLUohp1xlUYycRSnkLCxTwuQtuJBDzqKQqhifnMN55CweHJYwR87imKyEFjmHQ+QsDh1eCQ45sckvohTvC2VKYuS6mELOi6QxZ34w+BdDqksowQ9UNrUSq2yX8sk5THmbZjvIWZJFzmHSGyDnbL8MiW86hZxyleleaJXpFHJeIlPC5C24jEPOdEh1OZ+cw5SiWbrkvCI4LGWOnFdgslJa5BwGkfMK6PBKAZHVyBxs8tKU4n2ZTEmMXFdSyFlaGnPmB4N/JaQqQwl+oLKplVhlu4pPzqHK2zTdQc6rWeQcKr0Bck73y5D4XkMhp1zlNV5olddQyFlGpoTJW3Ath5zXQKrr+OQcqhRN0yXn9cHhDebIeT0mu0GLnEMhcl4PHd4NQGQ1Mgeb/EZK8b5WpiRGrrIUct4ojTnzg8EvC6nKUYIfqGxqJVbZyvPJOUR5m/Y5yHkTi5xDpDdAzn1+GRLfmynklKu82Qut8mYKOcvJlDB5C27hkPNmSHUrn5xDlKK9uuS8LTi83Rw5b8Nkt2uRcwhEztugw7sdiKxG5mCT30Ep3rfIlMTIdSeFnHdIY878YPDvhFR3UYIfqGxqJVbZ7uaTc7DyNm12kPMeFjkHS2+AnJv9MiS+91LIKVd5rxda5b0Uct4lU8LkLbiPQ857IdX9fHIOVoqELjkfCA4rmCPnA5isghY5B0PkfAA6vApAZDUyB5u8IqV43ydTEiNXJQo5K0pjzvxg8CtBqsqU4Acqm1qJVbYqfHIOUt6m4g5yVmWRc5D0BshZ3C9D4luNQk65ympeaJXVKOSsLFPC5C2oziFnNUhVg0/OQUpRMV1y1gwOa5kjZ01MVkuLnIMgctaEDq8WEFmNzMEmr00p3tVlSmLkqkMhZ21pzJkfDH4dSFWXEvxAZVMrscpWj0/OgcrbtMRBzgdZ5BwovQFyLvHLkPjWp5BTrrK+F1plfQo568qUMHkLGnDIWR9SPcQn50ClaLEuOR8ODh8xR86HMdkjWuQcCJHzYejwHgEiq5E52OQNKcW7gUxJjFyPUsjZUBpz5geD/yikeowS/EBlUyuxyvY4n5wDlLdpgIOcT7DIOUB6A+Q8JUPi24hCTjl9Iy+0ykYUcj4mU8LkLXiSQ85GkOopPjkHKEX9dcnZODhsYo6cjTFZEy1yDoDI2Rg6vCZAZDUyB5s8g1K8n5QpiZHraQo5M6QxZ34w+E9DqqaU4Acqm1qJVbZmfHL2V96mag5yNmeRs7/0BshZzS9D4vsMhZxylc94oVU+QyFnU5kSJm9BCw45n4FUz/LJ2V8pqqpLzpbB4XPmyNkSkz2nRc7+EDlbQof3HBBZjczBJn+eUrxbyJTEyNWKQs7npTFnfjD4rSBVa0rwA5VNrcQqWxs+Ofspb5PXQc62LHL2k94AOb1+GRLfdhRyylW280KrbEchZ2uZEiZvQXsOOdtBqkw+OfspRdm65OwQHHY0R84OmKyjFjn7QeTsAB1eRyCyGpmDTd6JUrzby5TEyNWZQs5O0pgzPxj8zpDqBUrwA5VNrcQqWxc+Ofsqb1M7Bzm7ssjZV3oD5GznlyHxfZFCTrnKF73QKl+kkPMFmRImb8FLHHK+CKle5pOzr1LUVpec3YLD7ubI2Q2TddciZ1+InN2gw+sORFYjc7DJe1CK90syJTFyZVHI2UMac+YHg58FqXpSgh+obGolVtl68cnZR3mbVjjI2ZtFzj7SGyDnCr8MiW8fCjnlKvt4oVX2oZCzp0wJk7egL4ecfSBVPz451aewXJec/YPDAebI2R+TDdAiZx+InP2hwxsARFYjc7DJB1KKt3xZ3A8j1yAKOQdKY878YPAHQarBlOAHKptaiVW2IXxy9lbepnQHOYeyyNlbegPkTPfLkPgOo5BTrnKYF1rlMAo5B8uUMHkLhnPIOQxSZfPJ2VspKqlLTselyDFHTi8my9EiZ2+InFjxzgEiq5E52OQjKMV7uExJbP6RFHKOkMac+cHgj4RUoyjBD1Q2tRKrbKP55OylvE2pjiIxhkXOXtIbIGeqX4bEdyyFnHKVY73QKsdSyDlKpoTJWzCOQ86xkOoVPjnVz2xSdMk5PjicYI6c4zHZBC1y9oLIOR46vAlAZDUyB5t8IqV4j5MpiZFrEoWcE6UxZ34w+JMg1WRK8AOVTa3EKtsUPjl7Km9TGwc5X2WRU75bfxUgZxu/DInvVAo55SqneqFVTqWQc7JMCZO3YBqHnFMh1XQ+OdWfybTWJeeM4HCmOXLOwGQztcjZEyLnDOjwZgKR1cgcbPLXKMV7mkxJjFyzKOR8TRpz5geDPwtSzaYEP1DZ1Eqssr3OJ2eW8jYVdJBzDoucWdIbIGdBvwyJ7xsUcspVvuGFVvkGhZyzZUqYvAVvcsj5BqR6i09O9VcpCuiS8+3g8B1z5Hwbk72jRc4siJxvQ4f3DhBZjczBJp9LKd5vypTEyDWPQs650pgzPxj8eZBqPiX4gcqmVmKV7V0+OdXfU4tzkHMBi5w9pDe04PiFFCbK+RdmU2g3Xx6jycxdxKHdQki1WOPwgS1J42x+qnePKtWXsFK9u/TGUv09SqrL+d/730j1pZxUfw9SLaOk+lJp/B9I9W7qtThSfTkr1btJb+xMlkMXYgXlQshVrsBesqz4n7g273OuzQpI9QHlhdX70hg7opWMV7X+FFkZbc0Ew7oSUq2ihDWQeWollnkfUt5SrJLGGDBXAvXhnMqaOCK6yor8fUf8rXhcelTv2709ZzyQmZnR9WBcuohfLeLXiPi1In6diF8v4jeI+I0ifpOI94l4IeI3i/gtIn6riN8m4reL+B0ifqeI3yXid4v4PSJ+r4jfJ+L3i/gDIv6giD8k4g+L+CMi/qiIPybiPxLxH5t7FrA6EZKtwWRrMdk6TLYek23AZBsx2SZM5sNkApNtxmRbMNlWTLYNk23HZDsw2U5MtguT7cZkezDZXky2D5Ptx2QHMNlBTHYIkx3GZEcw2VFMdgyTfYTJPs71dDLCtwSyz8BFEsgXVtXWG1SJcKrF7RyqzQhz0z6J9mVJro0sCGErJ997jqrSwtCqfU5V3cphVPuhjZyIdiMH4y5BkA29clkNPVVeo1T5t7tWpToVlHWRVTmnQ7c+ouqnMwHeEEl1NHAMGyOoKpw9rE1hVF3OOdItoVVVzz34rSFVx3Olx7ZQqvK5k2h7CFWZPKm2I6+qUd6E3JlH1TBE2u7KrcoKldy7c6myQl6BPQ7VonrhLsqBoOqqxWFVB8+qJl8dXnUooCo7JYLq8BnV0XKRVEdOq9ofi6g6ekpVOzOy6phf1bSOQvWRVN3YTKX6GHlXkPYJpDpBfyoT/7GyxmxzPJX5hPRUJv5j6Q18Sr3NL0P8PmU8lfGv8lMvtMpPoz25qD+C9Z+cQrRV9yPYz4LD4+bedn2GyY7rfAR76tqpYfkZBN7jQGSjT55P5fTY86LP+Nf+I2W0Jjqu/QnWtZfv608A136iX4b4fU659nKVn3uhVX7Ov/YfKUUTdK/9F8Hhl+au/ReY7Euta/8RdO2/gK7dl0BkNR6mYpN/RfloR9acz7GHqZ9Cq/ya8jD1K2nsNTb/eVbGY8qEmu+ojN+wKuMx6Q1Uxvl+GeL3LaUyylV+64VW+a3SLk4vv782md/fRblKsAR8C6m+V+/jfOFxTCmapwuPH4LDH83B4wdM9qMWPI5B8PgBOrwfgchqZA42+U9AtKO/3N/JlMTK8kmNy62e/ydpzJkfDP5JSPUzJfiBygbUQEj1S7TFJXpyHlXepuEOcv7KIqf8xPBXgJzD/TLE7zcKOeUqf/NCq/yNQs6fZUqYvAW/R3mW4BX8DVL9wSfnUaVomC45/wwO/zJHzj8x2V9a5DwKkfNP6PD+AiKrkTnY5H9TStDvMiUxcv1DIeff0pgzPxj8fxBVvjhK8AOVTa2EKls+CwjReZLziPI2ORp75bNZ5DwivaHGXlIG+OVzUcgpV+mCGnv551fYaZAznz8lTN6CeAo587kgVT4+OY8oRbqNvfK5g8MEY+TM58ZkCVrkPIKQM58bOrwEILIamYNNnsgoQfniZUpC5MqXxCBnvkRpzJkfDH4SpEqmBD9Q2ZRKsLKl8Ml5WHmbtjrImcoi52HpDZBzq1+GnER+CjnlKvN7oVXmp5AzWaaEyVvg4ZAzP6RK45PzsFK0RZecBYLDgubIWQCTFdQi52GInAWgwysIRFYjc7DJC1GKt0emJEauwhRyFpLGnPnB4BeGVEUowQ9UNrUSq2wX8Ml5SHmbMhzkLMoi5yHpDZAzwy9D4nshhZxylRd6oVVeSCFnEZkSJm9BMQ45L4RUxfnkPKQUNdElZ4ng8CJz5CyByS7SIuchiJwloMO7CIisRuZgk19MKd7FZEpi5LqEQs6LpTFnfjD4l0CqSynBD1Q2tRKrbCX55DyovE17HeRMZ5HzoPQGyLnXL0PiexmFnHKVl3mhVV5GIeelMiVM3oLLOeS8DFJdwSfnQaVojy45SwWHpc2RsxQmK61FzoMQOUtBh1caiKxG5mCTX0kp3pfLlMTIVYZCziulMWd+MPhlINVVlOAHKptaiVW2q/nkPKC8TdUd5LyGRc4D0hsgZ3W/DInvtRRyylVe64VWeS2FnFfJlDB5C67jkPNaSHU9n5wHlKJquuS8ITi80Rw5b8BkN2qR8wBEzhugw7sRiKxG5mCTl6UU7+tkSmLkKkchZ1lpzJkfDH45SFWeEvxAZVMrscp2E5+c+5W3aa6DnDezyLlfegPknOuXIfG9hUJOucpbvNAqb6GQs7xMCZO34FYOOW+BVLfxyblfKXpHl5y3B4d3mCPn7ZjsDi1y7ofIeTt0eHcAkdXIHGzyOynF+1aZkhi57qKQ805pzJkfDP5dkOpuSvADlU2txCrbPXxy7lPepmUOct7LIuc+6Q2Qc5lfhsT3Pgo55Srv80KrvI9CzrtlSpi8BfdzyHkfpHqAT859StFSXXJWCA4rmiNnBUxWUYuc+yByVoAOryIQWY3MwSavRCne98uUxMhVmULOStKYMz8Y/MqQqgol+IHKplZila0qn5x7lbeppoOc1VjklB8NVgPIWdMvQ+JbnUJOucrqXmiV1SnkrCJTwuQtqMEhZ3VIVZNPzr1KUQ1dctYKDmubI2ctTFZbi5x7IXLWgg6vNhBZjczBJq9DKd41ZEpi5KpLIWcdacyZHwx+XUhVjxL8QGVTK7HK9iCfnHuUtynLQc76LHLukd4AObP8MiS+DSjklKts4IVW2YBCznoyJUzegoc45GwAqR7mk3OPUtRDl5yPBIcNzZHzEUzWUIuceyByPgIdXkMgshqZg03+KKV4PyRTEiPXYxRyPiqNOfODwX8MUj1OCX6gsqmVWGV7gk/O3VGRsxGLnLulN0bORlB8n6SQU67ySYycT1LI+bhMCZO34CkOOZ+EVI355NzNI2eT4DDDHDmbYLIMLXLuhsjZBDq8DA45scmfphTvp2RKYuRqSiHn09KYMz8Y/KaQqhkl+IHKplZila05n5y7lLdptoOcz7DIuUt6A+Sc7Zch8W1BIadcZQsvtMoWFHI2kylh8hY8yyFnC0jVkk/OXUrRLF1yPhccPm+OnM9hsue1yLkLIudz0OE9D0RWI3OwyVtRivezMiUxcrWmkLOVNObMDwa/NaRqQwl+oLKplVhla8sn507lbZruIGc7Fjl3Sm+AnNP9MiS+7SnklKts74VW2Z5CzjYyJUzegkwOOdtDqg58cu5UiqbpkrNjcNjJHDk7YrJOWuTcCZGzI3R4nYDIamQONnlnSvHOlCmJkesFCjk7S2PO/GDwX4BUXSjBD1Q2tRKrbF355NyhvE37HOR8kUXOHdIbIOc+vwyJ70sUcspVvuSFVvkShZxdZEqYvAUvc8j5EqTqxifnDqVory45uweHPcyRszsm66FFzh0QObtDh9cDiKxG5mCTZ1GK98syJTFy9aSQM0sac+YHg98TUvWiBD9Q2dRKrLL15pNzu/I2bXaQsw+LnNulN0DOzX4ZEt++FHLKVfb1QqvsSyFnL5kSJm9BPw45+0Kq/nxybleKhC45BwSHA82RcwAmG6hFzu0QOQdAhzcQiKxG5mCTD6IU734yJTFyDaaQc5A05swPBn8wpBpCCX6gsqmVWGUbyifnNuVtKu4g5zAWObdJb4Ccxf0yJL7DKeSUqxzuhVY5nELOITIlTN6CbA45h0MqL5+c25SiYrrkdAxHmCNnDiYboUXObRA5sSMeAURWI3Mw1UhK8c6WKYmRaxSFnCOlMWd+MPijINVoSvADlU2txCrbGD45typv0xIHOceyyLlVegPkXOKXIfEdRyGnXOU4L7TKcRRyjpYpYfIWvMIh5zhINZ5Pzq1K0WJdck4IDieaI+cETDZRi5xbIXJOgA5vIhBZjczBJp9EKd6vyJTEyDWZQs5J0pgzPxj8yZBqCiX4gcqmVmKV7VU+Obcob9MABzmnssi5RXoD5BzglyHxnUYhp1zlNC+0ymkUck6RKWHyFkznkHMapJrBJ+cWpai/LjlnBoevmSPnTEz2mhY5t0DknAkd3mtAZDUyB5t8FqV4T5cpiZFrNoWcs6QxZ34w+LMh1euU4Acqm1qJVbY5fHJuVt6mag5yvsEip/xo8A2AnNX8MiS+b1LIKVf5phda5ZsUcr4uU8LkLXiLQ843IdXbfHJuVoqq6pLzneBwrjlyvoPJ5mqRczNEznegw5sLRFYjc7DJ51GK91syJTFyzaeQc5405swPBn8+pHqXEvxAZVMrscq2gE9OobxNXgc5F7LIKaQ3QE6vX4bEdxGFnHKVi7zQKhdRyPmuTAmTt2Axh5yLINUSPjmFUpStS873gsOl5sj5HiZbqkVOAZHzPejwlgKR1cgcbPJllOK9WKYkRq7lFHIuk8ac+cHgL4dUKyjBD1Q2tRKrbO/zyelT3qZ2DnJ+wCKnT3oD5GznlyHxXUkhp1zlSi+0ypUUcq6QKWHyFqzikHMlpPqQT06fUtRWl5yrg8M15si5GpOt0SKnDyLnaujw1gCR1cgcbPK1lOK9SqYkRq51FHKulcac+cHgr4NU6ynBD1Q2tRKrbBv45NykvE0rHOTcyCLnJukNkHOFX4bEdxOFnHKVm7zQKjdRyLlepoTJW+DjkHMTpBJ8cqpPYbkuOTcHh1vMkXMzJtuiRc5NEDk3Q4e3BYisRuZgk2+lFG/5slhg5NpGIedWacyZHwz+Nki1nRL8QGVTK7HKtoNPzo3K25TuIOdOFjk3Sm+AnOl+GRLfXRRyylXu8kKr3EUh53aZEiZvwW4OOXdBqj18cm5UikrqknNvcLjPHDn3YrJ9WuTcCJFzL3R4+4DIamQONvl+SvHeLVMSI9cBCjn3S2PO/GDwD0Cqg5TgByqbWolVtkN8cm5Q3qZUBzkPs8i5QXoD5Ez1y5D4HqGQU67yiBda5REKOQ/KlDB5C45yyHkEUh3jk1P9zCZFl5wfBYcfmyPnR5jsYy1yboDI+RF0eB8DkdXIHGzyTyjF+6hMSYxcn1LI+Yk05swPBv9TSPUZJfiByqZWYpXtOJ+c65W3qY2DnCdY5JTv1k8A5GzjlyHx/ZxCTrnKz73QKj+nkPMzmRImb8EXHHJ+Dqm+5JNT/ZlMa11yfhUcfm2OnF9hsq+1yLkeIudX0OF9DURWI3Owyb+hFO8vZEpi5PqWQs5vpDFnfjD430Kq7yjBD1Q2tRKrbN/zyblOeZsKOsj5A4uc66Q3QM6CfhkS3x8p5JSr/NELrfJHCjm/kylh8hb8xCHnj5DqJJ+c6q9SFNAl58/B4S/myPkzJvtFi5zrIHL+DB3eL0BkNTIHm/xXSvH+SaYkRq7fKOT8VRpz5geD/xuk+p0S/EBlUyuxyvYHn5zq76nFOcj5J4uca6U3tOB8f1GYKOf/K5tCu9/lMZrM3L85tPsLUv2jcfjAlqRxNj/V10ST6u44Vqqvkd7Qgt0WJdXl/Nb/RKq7bUqquy1I5WKkutuWxv+BVF+tXosj1eNZqb5aemNnEg9diHyUCyFXmQ96yeKfX2H3b7g2bs61yQepEhiJ5HZLY+yIEhmvav0pkhhtzQTDmgipkiivVwOZp1ZimZfMCL47SRpjwEwE6sM5ldUa0XPGA5mZGV0PxlVCimBTRPQTIqqOiJ4F671rgjrwqNV4c1avmLMaZ85qrDmrMeasRpuzGmXOaqQ5qxHmrHLMWXnNWWWbsxpuzmqYOauh5qyGmLMabM5qkDmrgeasBpiz6m/Oqp85q77mrPqYs+ptzqqXOaue5qyyzFn1MGfV3ZxVN2NW8R+bs/rInNUxc1ZHzVkdMWd12JzVIXNWB81ZHTBntd+c1T5zVnvNWe0xZ7XbnNUuc1Y7zVntMGe13ZzVNnNWW81ZbTFntdmclTBn5TNntcmc1UZzVhvMWa03Z7XOnNVac1ZrzFmtVltF8b2UuErRiOXHF4EHdwWEO0W4U4U7v3B7hDtNuOVPCgp3IeEuLNxFhPsC4S4q3BcKdzHhLi7cJYx90cWdmg7J8mMyDyZLw2QFMFlBTFYIkxXGZEUw2QWYrCgmuxCTFcNkxTFZifRzPxPAnmOnRH6OPSRl4bhzbaE/rOFS/W2fU1+dcr2iVJ16TKxSnX4uDW03FSgkGtsdBW13NLTdMdB2ob9v5c4f7XZHQJOPhCb3SNXFX190cp6ryKgr7a/23bfqryeKxVe+7mS1mc2bZV/19oTmLfaKtH2cExkKncgw6ESGQ0HJhoKSxtnuQGi7g6DtDoa2OwTabgFOAg6AJi8oVaV2v5fwy+vD4+ft/a7tCyevGbGx6tAVc+7OEdffm9Xg49Hf1BZpuzgn0hM6kV7QifSGggL9mXV3Ic52u0Hb7Q5ttwe03Sxou4Up240/imw3/hiy3fiPkO3Gfwxttwhnuweh7R6CtnsY2u4RaLsXUMpL/AFo8qIQ305wTmQndCK7oBPZDQVlDxSUCznbhf4oIfBHf089ZoK2uwPabjFOAm6BJi8O8e0TzolAv1YI/Np+HNIW5/QTISgoJaLdLvZlr4si2zb9qfqzOrYXR7Z9LumzFjq2l0S2Xdrirb46tpdGtr27zY+ZOrYlI9vOqHvyTh3b9Mi2D3rq99CxvSyy7fh8zw7Rsb08sm3J3vvm6NheEdn2iaOieIinC3MbPJtR/pZbK7Zt3S5TPlxo2bbNCPn0y/Gw4SLnoynn8yfnQybnkyTn4yLnMyHngx/n0x3nIxzncxrnwxjnExfnYxXnsxPnA5Kxjv9xsWN8iWN8qWNc0jFOd4wvc4wvd4yvGCvcpYS7tHBfKdxlhPsq4b5auK8R7mtjXwVUWMW+Chj7KuBZq9hXAWNfBTxrFfsqYOyrgGetYl8FjH0V8KxV7KuAsa8CnrWKfRUw9lXAs1axrwLGvgp41ir2VcDYVwHPWsW+Chj7KuA5/xfVVwHvP+ergNcJ9/XCfYNw3yjcZYW7nHCXF+6bhPtm4b5FuG8V7tuE+3bhvkO47xTuu8x9FfC6dJ3Pa1R/S+705zVroM9r1kKf16yDPq+5DjhPje+1Xc+xvYFjeyPHtizHthzHtjzH9iaO7c0c21s4trdybG/j2N7Osb2DY3snx/YuHVv1B4J3R7bN0rS9h7Pae1W2drrOx5fXOcZ3O8b3/IvH9zo/vizlGJd2jK90jMs4xlc5xlc7xtc4xtfKjy/vE+77hfsB4a4g3BWFu5JwVxbuKud+fJk4IsoeUe77zL5mi4+qB2ngNdtI4a4q3NWEu7pw1zD3aqxqIiSrhsmqY7IaiXlfAqp2I48BunJVkReK7mrIC0V3deSForsGkB7nmYH3/0sysKZw1xLu2sJdx1wG1sRyphYmq43J6mhl4P1QBtaEMrAWlIG1oQysw8/AB/4lGVhXuOsJ94PCXd9cBtbFcqYeJnsQk9XXysAHoAysC2VgPSgDH4QysD4/Ayv8SzKwgXA/JNwPC/cj5jKwAZYzD2GyhzHZI1oZWAHKwAZQBj4EZeDDUAY+ws/Aiv+SDGwo3I8K92PC/bi5DGyI5cyjmOwxTPa4VgZWhDKwIZSBj0IZ+BiUgY/zM7DSvyQDnxDuRsL9pHA/ZS4Dn8ByphEmexKTPaWVgZWgDHwCysBGUAY+CWXgU/wMrPwvycDGwt1EuDOE+2lzGdgYy5kmmCwDkz2tlYGVoQxsDGVgEygDM6AMfJqfgVX+JRnYVLibCXdz4X7GXAY2xXKmGSZrjsme0crAKlAGNoUysBmUgc2hDHyG8yS3RWTb3x+cVEPH9tmwtvbZ1eY9w3frte3QvGWztm3K12ue2bpTx4yO8hlxzkjHmbY4Oy4T5nnsszKFWwr3c8L9vHC3Or9LWcLslUzXupIH49KFu7VwtxHutsLdTrjbC3emcMutdhTuTsLdWbhfEO4uwt1VuF8U7peE+2Xh7ibc3YW7h3BnCXdP4e4l3L2Fu49w9xXufsLdX7gHCPdA4R4k3IOFe4i5i94au5ptMFlbTNYOk7XHZJmYrAMm64jJOmGyzpjsBUzWBZN1xWQvYrKXMNnLmKwbJuuOyXpgsixM1hOT9cJkvTFZH0zWF5P1w2T9MdkATDYQkw3CZIMx2ZBcLxZGhsdc9hnMSSh3Cqtq6w2qOodTLW7nUL2AgLVAQrQvA3JtZEEIWzn5uW1RKi0MrTqnLUrdymFUvaGNpES7kYNxlyDIhl6etIZevrWBXr61hV6+tYusyjkduvYRVT+dCXBmJNXRwDF0iKCqcPawOoZRdTnnSLuEVlU99+C7hlQdz5UeL4ZSlc+dRC+FUJXJk2ov51U1ypuQeZvgNAyRtnma4GSFSu7cTXCyQl6BLIdqUb1wF6VPUHXV4rCqvmdVk68Or+oXUJWdEkHV/4zqaLlIqgGnVe2PRVSd7m1VOzOy6lRvq6Z1FCp/b6sbm6lUUG+rAgmQKiXaN/RJ0f4JLvcQZY3Z5vgTXENJf4LLPUR6A3+SeJtfhvgNUxdYvVUO80KrHBbtyUX993bd6t9I3ar593bdw4PDbHNvu4Zjsmydv7d76tqpYanqxncavNlAZKNPnmFyeuy5xHD+tR+sjNZEx7X3sq69fF/vBa79RL8M8cuhXHu5yhwvtMoc/rVX//b4BN1rPyI4HGnu2o/AZCO1rv1g6NqPgK7dSCCyGn85D5t8lMb9UrvKmpOTgwETWiXQ80Pjfo2Sxl5j859nZRykTKj5jso4hlUZ5UPPMUBlnO+XIX5jKZVRrnKsF1rlWI3MgfJ7tMn8HhflKsESMBZSvQIk0nnCQ90vZJ4uPMYHhxPMwWM8JpugBY9BEDzGQ4c3AYisRuZgk0+klKBxMiWxsjyJggX5emoSZ34w+JMg1WRK8AOVDaiBkGpKtMUlenIOVN6m4Q5yvsoip/zE8FWAnMP9MsRvKoWccpVTvdAqp1LIOVmmhMlbMC3KswSv4FRINZ1PTnV7rGG65JwRHM40R84ZmGymFjmhPxngngEd3kwgshqZg03+GqUETZMpiZFrFoWcr0ljzvxg8GdBqtmU4Acqm1qJVbbX+e85ByhvU7qDnHNY5BwgvQFypvtliN8bFHLKVb7hhVb5BoWcs2VKmLwFb3LI+QakeotPTnU3yJK65Hw7OHzHHDnfxmTvaJFzAETOt6HDeweIrEbmYJPPpZSgN2VKYuSaRyHnXGnMmR8M/jxINZ8S/EBlUyuxyvYun5z9lbdpq4OcC1jk7C+9AXJu9csQv4UUcspVLvRCq1xIIad8DPyuyVuwiEPOhZBqMZ+c6ubHW3TJuSQ4fM8cOZdgsve0yNkfIucS6PDeAyKrkTnY5EspJWiRTEmMXMso5FwqjTnzg8FfBqmWU4IfqGxqJVbZVvDJ2U95mzIc5HyfRc5+0hsgZ4Zfhvh9QCGnXOUHXmiVH1DIuVymhMlbsJJDzg8g1So+OdW9/pvokvPD4HC1OXJ+iMlWa5GzH0TOD6HDWw1EViNzsMnXUErQSpmSGLnWUsi5Rhpz5geDvxZSraMEP1DZ1Eqssq3nk7Ov8jbtdZBzA4ucfaU3QM69fhnit5FCTrnKjV5olRsp5FwnU8LkLdjEIedGSOXjk1P9p2326JJTBIebzZFTYLLNWuTsC5FTQIe3GYisRuZgk2+hlKBNMiUxcm2lkHOLNObMDwZ/K6TaRgl+oLKplVhl284nZx/lbaruIOcOFjn7SG+AnNX9MsRvJ4WccpU7vdAqd1LIuU2mhMlbsItDzp2QajefnOq/5FZNl5x7gsO95si5B5Pt1SJnH4ice6DD2wtEViNzsMn3UUrQLpmSGLn2U8i5Txpz5geDvx9SHaAEP1DZ1Eqssh3kk7O38jbNdZDzEIucvaU3QM65fhnid5hCTrnKw15olYcp5DwgU8LkLTjCIedhSHWUT071Hy59R5ecx4LDj8yR8xgm+0iLnL0hch6DDu8jILIamYNN/jGlBB2RKYmR6xMKOT+Wxpz5weB/Aqk+pQQ/UNnUSqyyfcYnZy/lbVrmIOdxFjl7SW+AnMv8MsTvBIWccpUnvNAqT1DI+alMCZO34HMOOU9Aqi/45FT/ne6luuT8Mjj8yhw5v8RkX2mRsxdEzi+hw/sKiKxG5mCTf00pQZ/LlMTI9Q2FnF9LY878YPC/gVTfUoIfqGxqJVbZvuOTs6fyNtV0kPN7Fjl7Sm+AnDX9MsTvBwo55Sp/8EKr/IFCzm9lSpi8BT9yyPkDpPqJT86eSlENXXKeDA5/NkfOk5jsZy1y9oTIeRI6vJ+ByGpkDjb5L5QS9KNMSYxcv1LI+Ys05swPBv9XSPUbJfiByqZWYpXtdz45s5S3KctBzj9Y5MyS3gA5T8kQvz8p5JTT/+mFVvknhZy/yZQweQv+4pDzT0j1N5+cWUpRD11y/nN2mBBnjpz/QLKEOC1yZkHk/Ac5vIQ4ILIamYNNblFK0F8yJSFyJdgMcibI/2dz5seCn2BDKhcl+IHKplZClS0hnk/OHtGQMyEfi5w9pDdETilD0tBNIadcpRsip39+hZ0GORNcMiVM3oIECjkT3JAqkU/OHjRyJiQFh8nGyJmQhMmStcjZAyFnQhJ0eMkUcoKTpzBKUEKCTEmMXKkUcqZIY878YPBTIVV+SvADlU2txCqbh0/O7srbNNtBzjQWObtLb4Ccs/0yJL4FKOSUqyzghVZZgELO/DIlTN6CghxyFoBUhfjk7K4UzdIlZ+HgsIg5chbGZEW0yNkdImdh6PCKAJHVyBxs8gsoxbugTEmMXEUp5LxAGnPmB4NfFFJdSAl+oLKplVhlK8YnZzflbZruIGdxFjm7SW+AnNP9MiS+JSjklKss4YVWWYJCzgtlSpi8BRdxyAn9hbeEi/nk7KYUTdMl5yXB4aXmyHkJJrtUi5zdIHJeAh3epUBkNTIHm7wkpXhfJFMSI1c6hZwlpTFnfjD46ZDqMkrwA5VNrcQq2+V8cr6svE37HOS8gkXOl6U3QM59fhkS31IUcspVlvJCqyxFIedlMiVM3oLSHHKWglRX8sn5slK0V5ecZYLDq8yRswwmu0qLnC9D5CwDHd5VQGQ1Mgeb/GpK8S4tUxIj1zUUcl4tjTnzg8G/BlJdSwl+oLKplVhlu45PzpeUt2mzg5zXs8j5kvQGyLnZL0PiewOFnHKVN3ihVd5AIee1MiVM3oIbOeS8AVKV5ZPzJaVI6JKzXHBY3hw5y2Gy8lrkfAkiZzno8MoDkdXIHGzymyjF+0aZkhi5bqaQ8yZpzJkfDP7NkOoWSvADlU2txCrbrXxyvqi8TcUd5LyNRc4XpTdAzuJ+GRLf2ynklKu83Qut8nYKOW+RKWHyFtzBIeftkOpOPjlfVIqK6ZLzruDwbnPkvAuT3a1Fzhchct4FHd7dQGQ1Mgeb/B5K8b5DpiRGrnsp5LxHGnPmB4N/L6S6jxL8QGVTK7HKdj+fnF2Vt2mJg5wPsMjZVXoD5FzilyHxrUAhp1xlBS+0ygoUct4nU8LkLajIIWcFSFWJT86uStFiXXJWDg6rmCNnZUxWRYucXSFyVoYOrwoQWY3MwSavSineFWVKYuSqRiFnVWnMmR8MfjVIVZ0S/EBlUyuxylaDT84uyts0wEHOmixydpHeADkH+GVIfGtRyClXWcsLrbIWhZzVZUqYvAW1OeSsBanq8MnZRSnqr0vOusFhPXPkrIvJ6mmRswtEzrrQ4dUDIquROdjkD1KKd22Zkhi56lPI+aA05swPBr8+pGpACX6gsqmVWGV7iE/OF5S3qZqDnA+zyPmC9AbIWc0vQ+L7CIWccpWPeKFVPkIhZwOZEiZvQUMOOR+BVI/yyfmCUlRVl5yPBYePmyPnY5jscS1yvgCR8zHo8B4HIquROdjkT1CKd0OZkhi5GlHI+YQ05swPBr8RpHqSEvxAZVMrscr2FJ+cnZW3yesgZ2MWOTtLb4CcXr8MiW8TCjnlKpt4oVU2oZDzSZkSJm9BBoecTSDV03xydlaKsnXJ2TQ4bGaOnE0xWTMtcnaGyNkUOrxmQGQ1MgebvDmleGfIlMTI9QyFnDKTnuHMDwb/GUjVghL8QGVTK7HK9iyfnJ2Ut6mdg5wtWeTsJL0Bcrbzy5D4Pkchp1zlc15olc9RyNlCpoTJW/A8h5zPQapWfHJ2Uora6pKzdXDYxhw5W2OyNlrk7ASRszV0eG2AyGpkDjZ5W0rxfl6mJEaudhRytpXGnPnB4LeDVO0pwQ9UNrUSq2yZfHJ2VN6mFQ5ydmCRs6P0Bsi5wi9D4tuRQk65yo5eaJUdKeRsL1PC5C3oxCFnR0jVmU9O9Sks1yXnC8FhF3PkfAGTddEiZ0eInC9Ah9cFiKxG5mCTd6UUb/myuDNGrhcp5OwqjTnzg8F/EVK9RAl+oLKplVhle5lPzg7K25TuIGc3FjllOegGkDPdL0Pi251CTrnK7l5old0p5HxJpoTJW9CDQ87ukCqLT84OSlFJXXL2DA57mSNnT0zWS4ucHSBy9oQOrxcQWY3MwSbvTSnePWRKYuTqQyFnb2nMmR8Mfh9I1ZcS/EBlUyuxytaPT85M5W1KdZCzP4ucmdIbIGeqX4bEdwCFnHKVA7zQKgdQyNlXpoTJWzCQQ84BkGoQn5zqZzYpuuQcHBwOMUfOwZhsiBY5MyFyDoYObwgQWY3MwSYfSineA2VKYuQaRiHnUGnMmR8M/jBINZwS/EBlUyuxypbNJ2d75W1q4yCnl0VO+W7dC5CzjV+GxDeHQk65yhwvtMocCjmHy5QweQtGcMiJqUbyyan+TKa1LjlHBYejzZFzFCYbrUXO9hA5R0GHNxqIrEbmYJOPoRTvETIlMXKNpZBzjDTmzA8GfyykGkcJfqCyqZVYZXuFT852yttU0EHO8SxytpPeADkL+mVIfCdQyClXOcELrXIChZzjZEqYvAUTOeScAKkm8cmp/ipFAV1yTg4Op5gj52RMNkWLnO0gck6GDm8KEFmNzMEmf5VSvCfKlMTINZVCzlelMWd+MPhTIdU0SvADlU2txCrbdD451d9Ti3OQcwaLnG2lN/ZuciaFiXL+mdkU2k2Tx2gyc1/j0G4mpJqlcfjAlqTxf+DxSpuoUn02K9XlE4nZWKq/Tkl1Of/r/xupPoeT6q9DqjcoqT5HGv8HUr21ei2OVH+TleqtpTd2Jm9CF+ItyoWQq3wLe8ny1v/EtXmbc23eglTvUF5YvS2NsSOay3hV60+RudHWTDCscyHVPEpYA5mnVmKZN5/ylmKeNMaAOReoD+dU1sQR0VVWC9gg/lY8Lj2q9+3enjMeyMzM6HowLl0kvCsSFoiEhSJhkUhYLBKWiIT3RMJSkbBMJCwXCStEwvsi4QORsFIkrBIJH4qE1SJhjUhYKxLWiYT1ImGDSNgoEjaJBJ9IECJhs0jYIhK2ioRtImG7SNhh7lnAu4mQbAEmW4jJFmGyxZhsCSZ7D5MtxWTLMNlyTLYCk72PyT7AZCsx2SpM9iEmW43J1mCytZhsHSZbj8k2YLKNmGwTJvNhMoHJNmOyLZhsKybbhsm2Y7IduZ5OjgxPwOwzcJEEWhZW1dYbVC0Pp1rczqFagTC3QNR/cjjXRhaEsJWTrz9HVWlhaNUGp6pu5TCqjdBGov3zstkH4y5BkA29cnkXeqq8QKnyb3ehSnUqKIsiq3JOh25xRNVPZwK8JJLqaOAY3ougqnD2sJaGUXU550jfD62qeu7BfxBSdTxXeqwMpSqfO4lWhVCVyZNqH+ZVNcqbkKvzqBqGSNs1uVVZoZJ7bS5VVsgrsM6hWlQv3EXZFFRdtTisyndWNfnq8CoRUJWdEkG1+YzqaLlIqi2nVe2PRVRtPaWqnRlZtc2valpHodouVTc2U6l2IO8KChSFVCXoT2USdihrzDbHU5mdpKcyCTukN/Ap9Ta/DPHbxXgq41/lLi+0yl3RnlzUH8H6T04h2qr7Eezu4HCPubdduzHZHp2PYE9dOzUsd0Pg3QNENvrk2SWnx54X7eZf++3KaE10XPu9rGsv39fvBa79RL8M8dtHufZylfu80Cr38a/9dqVogu613x8cHjB37fdjsgNa1347dO33Q9fuABBZjYep2OQHKR/tyJqzD3uYugta5SHKw9SD0thrbP7zrIzblAk131EZD7Mqo3wNcRiojPP9MsTvCKUyylUe8UKrPEL5mErm9yGT+X2U83nKEUh1jP61PX9yK0TzdOHxUXD4sTl4fITJPtaCxzYIHh9Bh/cxEFmNzMEm/4RSgo7KlMTK8qcULHwijTnzg8H/FFJ9Rgl+oLIBNRBSHY+2uERPzq3K2zTcQc4TLHLKTwxPAOQc7pchfp9TyClX+bkXWuXnFHJ+JlPC5C34gvMFj88h1Zd8cm5ViobpkvOr4PBrc+T8CpN9rUXOrRA5v4IO72sgshqZg03+DaUEfSFTEiPXtxRyfiONOfODwf8WUn1HCX6gsqmVWGX7nv+ec4vyNjkbe/3AIucW6Y019voB2taPFHLKVf6INfb6kULO72RKmLwFP3HI+SOkOskn5xalSLux18/B4S/myPkzJvtFi5xbIHL+DB3eL0BkNTIHm/xXSgn6SaYkRq7fKOT8VRpz5geD/xuk+p0S/EBlUyuxyvYHn5yblbdpq4Ocf7LIuVl6A+Tc6pchfn9RyClX+ZcXWuVfFHL+LlPC5C34m0POvyDVP3xyblaKtmiSMzEuOLSMkTMRlFla5NyMkDMxDjm8RAuIbPSZA05uU0rQ3zIlIXIluhjkTLSlMWd+MPguSBVPCX6gsqmVUGVLzMcnp1DepowgORPdLHIK6Q2QM8MvQ9IwgUJOucoEL7TKBAY5E+NlSpi8BYkUciYmQKokPjmFUtREl5zJwWGKOXImY7IULXIKiJzJ0OGlAJHVyBxs8lRGCUpMlCmJkSs/hZyp0pgzPxj8/JDKQwl+oLKplVhlS+OT06e8TXsd5CzAIqdPegPk3OuXIfEtSCGnXGVBL7TKghRyemRKmLwFhTjkLAipCvPJ6VOK9uiSs0hweIE5chbBZBdokdMHkbMIdHgXAJHVyBxs8qKU4l1IpiRGrgsp5CwqjTnzg8G/EFIVowQ/UNnUSqyyFeeTc5PyNlV3kLMEi5ybpDdAzup+GRLfiyjklKu8yAut8iIKOYvJlDB5Cy7mkPMiSHUJn5yblKJquuS8NDgsaY6cl2Kyklrk3ASR81Lo8EoCkdXIHGzydErxvlimJEauyyjkTJfGnPnB4F8GqS6nBD9Q2dRKrLJdwSfnRuVtmusgZykWOTdKb4Ccc/0yJL6lKeSUqyzthVZZmkLOy2VKmLwFV3LIWRpSleGTc6NS9I4uOa8KDq82R86rMNnVWuTcCJHzKujwrgYiq5E52OTXUIr3lTIlMXJdSyHnNdKYMz8Y/Gsh1XWU4Acqm1qJVbbr+eTcoLxNyxzkvIFFzg3SGyDnMr8Mie+NFHLKVd7ohVZ5I4Wc18mUMHkLynLIeSOkKscn5walaKkuOcsHhzeZI2d5THaTFjk3QOQsDx3eTUBkNTIHm/xmSvEuK1MSI9ctFHLeLI0584PBvwVS3UoJfqCyqZVYZbuNT871yttU00HO21nkXC+9AXLW9MuQ+N5BIadc5R1eaJV3UMh5q0wJk7fgTg4574BUd/HJuV4pqqFLzruDw3vMkfNuTHaPFjnXQ+S8Gzq8e4DIamQONvm9lOJ9p0xJjFz3Uch5rzTmzA8G/z5IdT8l+IHKplZile0BPjnXKW9TloOcFVjkXCe9AXJm+WVIfCtSyClXWdELrbIihZz3y5QweQsqcchZEVJV5pNznVLUQ5ecVYLDqubIWQWTVdUi5zqInFWgw6sKRFYjc7DJq1GKdyWZkhi5qlPIWU0ac+YHg18dUtWgBD9Q2dRKrLLV5JNzbVTkrMUi51rpjZGzFhTf2hRyylXWxshZm0LOGjIlTN6COhxy1oZUdfnkXMsjZ73g8EFz5KyHyR7UIudaiJz1oMN7kENObPL6lOJdR6YkRq4GFHLWl8ac+cHgN4BUD1GCH6hsaiVW2R7mk3ON8jbNdpDzERY510hvgJyz/TIkvg0p5JSrbOiFVtmQQs6HZEqYvAWPcsjZEFI9xifnGqVoli45Hw8OnzBHzscx2RNa5FwDkfNx6PCeACKrkTnY5I0oxftRmZIYuZ6kkLORNObMDwb/SUj1FCX4gcqmVmKVrTGfnKuVt2m6g5xNWORcLb0Bck73y5D4ZlDIKVeZ4YVWmUEh51MyJUzegqc55MyAVE355FytFE3TJWez4LC5OXI2w2TNtci5GiJnM+jwmgOR1cgcbPJnKMX7aZmSGLlaUMj5jDTmzA8GvwWkepYS/EBlUyuxytaST84Plbdpn4Ocz7HI+aH0Bsi5zy9D4vs8hZxylc97oVU+TyHnszIlTN6CVhxyPg+pWvPJ+aFStFeXnG2Cw7bmyNkGk7XVIueHEDnbQIfXFoisRuZgk7ejFO9WMiUxcrWnkLOdNObMDwa/PaTKpAQ/UNnUSqyydeCTc5XyNm12kLMji5yrpDdAzs1+GRLfThRyylV28kKr7EQhZ6ZMCZO3oDOHnJ0g1Qt8cq5SioQuObsEh13NkbMLJuuqRc5VEDm7QIfXFYisRuZgk79IKd6dZUpi5HqJQs4XpTFnfjD4L0GqlynBD1Q2tRKrbN345FypvE3FHeTsziLnSukNkLO4X4bEtweFnHKVPbzQKntQyPmyTAmTtyCLQ84ekKonn5wrlaJiuuTsFRz2NkfOXpistxY5V0Lk7AUdXm8gshqZg03eh1K8s2RKYuTqSyFnH2nMmR8Mfl9I1Y8S/EBlUyuxytafT84PlLdpiYOcA1jk/EB6A+Rc4pch8R1IIadc5UAvtMqBFHL2kylh8hYM4pBzIKQazCfnB0rRYl1yDgkOh5oj5xBMNlSLnB9A5BwCHd5QILIamYNNPoxSvAfJlMTINZxCzmHSmDM/GPzhkIpS/89WNrUSq2xePjnfV96mAQ5y5rDI+b70Bsg5wC9D4juCQk65yhFeaJUjKOTMlilh8haM5JBzBKQaxSfn+0pRf11yjg4Ox5gj52hMNkaLnO9D5BwNHd4YILIamYNNPpZSvEfKlMTINY5CzrHSmDM/GPxxkOoVSvADlU2txCrbeD45VyhvUzUHOSewyLlCegPkrOaXIfGdSCGnXOVEL7TKiRRyviJTwuQtmMQh50RINZlPzhVKUVVdck4JDl81R84pmOxVLXKugMg5BTq8V4HIamQONvlUSvGeJFMSI9c0CjmnSmPO/GDwp0Gq6ZTgByqbWolVthl8ci5X3iavg5wzWeRcLr0Bcnr9MiS+r1HIKVf5mhda5WsUck6XKWHyFszikPM1SDWbT87lSlG2LjlfDw7nmCPn65hsjhY5l0PkfB06vDlAZDUyB5v8DUrxniVTEiPXmxRyviGNOfODwX8TUr1FCX6gsqmVWGV7m0/OZcrb1M5BzndY5FwmvQFytvPLkPjOpZBTrnKuF1rlXAo535IpYfIWzOOQcy6kms8n5zKlqK0uOd8NDheYI+e7mGyBFjmXQeR8Fzq8BUBkNTIHm3whpXjPkymJkWsRhZwLpTFnfjD4iyDVYkrwA5VNrcQq2xI+OZcqb9MKBznfY5FzqfQGyLnCL0Piu5RCTrnKpV5olUsp5FwsU8LkLVjGIedSSLWcT071KSzXJeeK4PB9c+Rcgcne1yLnUoicK6DDex+IrEbmYJN/QCne8mXxcoxcKynk/EAac+YHg78SUq2iBD9Q2dRKrLJ9yCfne8rblO4g52oWOd+T3gA50/0yJL5rKOSUq1zjhVa5hkLOVTIlTN6CtRxyroFU6/jkfE8pKqlLzvXB4QZz5FyPyTZokfM9iJzrocPbAERWI3OwyTdSivdamZIYuTZRyLlRGnPmB4O/CVL5KMEPVDa1Eqtsgk/OJcrblOog52YWOZdIb4CcqX4ZEt8tFHLKVW7xQqvcQiGnT6aEyVuwlUPOLZBqG5+c6mc2Kbrk3B4c7jBHzu2YbIcWOZdA5NwOHd4OILIamYNNvpNSvLfKlMTItYtCzp3SmDM/GPxdkGo3JfiByqZWYpVtD5+ci5W3qY2DnHtZ5JTv1vcC5GzjlyHx3Uchp1zlPi+0yn0Ucu6WKWHyFuznkHMfpDrAJ6f6M5nWuuQ8GBweMkfOg5jskBY5F0PkPAgd3iEgshqZg01+mFK898uUxMh1hELOw9KYMz8Y/COQ6igl+IHKplZile0Yn5yLlLepoIOcH7HIuUh6A+Qs6Jch8f2YQk65yo+90Co/ppDzqEwJk7fgEw45P4ZUn/LJqf4qRQFdcn4WHB43R87PMNlxLXIugsj5GXR4x4HIamQONvkJSvH+RKYkRq7PKeQ8IY0584PB/xxSfUEJfqCyqZVYZfuST07199TiHOT8ikXOhdIbWnDi1xQmyvm/zqbQ7gt5jCYz9xsO7b6GVN9qHD6wJWmczU/1BVGl+nesVF8gvbFU/56S6nL+7/83Uv0HTqp/D6l+pKT6D9L4P5Dq76rX4kj1n1ip/q70xs7kJ+hCnKRcCLnKk9hLlpP/E9fmZ861OQmpfqG8sPpZGmNH9CvjVa0/RX6NtmaCYf0VUv1GCWsg89RKLPN+p7yl+E0aY8D8FagP51TWxBHRVdaLgA3ib8Xj0qN63+7tOeOBzMyMrgfj0kXiHyLxT5H4l0j8WyT+I5LiRJIlkmyR5BJJ8SIpn0hyi6QEkZQokpJEUrJIShFJqSIpv0jyiKQ0kVRAJBUUSYVEUmGRVEQkXSCSioqkC0VSMZFUXCSVMPcs4I9ESPYnJvsLk/2Nyf6BZElxmMzCZDYmc2GyeEyWD5O5MVkCJkvEZEmYLBmTpWCyVEyWH5N5MFkaJiuAyQpiskKYrDAmK4LJLsBkRTHZhZisGCYrjslK5Ho6OTI8AbPPwEVWYFdYVVtvUBUfTrW4nUOVD2FugdLRvizJtZEFIWzl5GnnqCotDK0q4FTVrRxGVRDayNXRbuRg3CUIsqFXLn9AT5X/VKr8r0L+UqlOvVb5O7Iq51ToEv+JqPrpTIDjIqmOBo7BiqCqcPaw7DCqLuccqTu0quq5B58QUnU8V3okhlKVz51ESSFUZfKkWnJeVaO8CZmSR9UwRNqm5lZlhUru/LlUWSGvgMehWlQv3EUpFFRdtTisqvBZ1eSrw6uKBFRlp0RQXXBGdbRcJFXR06r2xyKqLjylqp0ZWVXMr2paR6EqLlU3NlOpSiDvCgqUhlRX05/KJJVQ1phtwacySReRnsoklZDewKfU2/wyxO9ixlMZ/yov9kKrvDjak4v6I1j/ySlEWzU/gk26JDi81NjbrqRLMNmlOh/Bnrp2SlgmXYKAN+lSILLRJ8/FcnroeVHSJfxrX1wZrYmOa1+Sde3l+/qSwLWf6JchfumUay9Xme6FVpnOv/bFlaIJutf+suDwcnPX/jJMdrnWtS8OXfvLoGt3ORDZ6B+mgpNfwfhox19z0nMwYEKrLMV4mJp0hTT2Gpv/PCtjMWVCzXdUxtKsyigfepYGKuN8vwzxu5JSGeUqr/RCq7yS8TGVP79LmczvMpTPU5KuhFRX0b+2509uhWieLjyuDg6vMQePqzHZNVrwKAbB42ro8K4BIquROdjk11JKUBmZklhZvo6ChWulMWd+MPjXQarrKcEPVDagBkKqG6ItLtGT80LlbRruIOeNLHLKTwxvBMg53C9D/MpSyClXWdYLrbIshZzXy5QweQvKUb7gkVQWUpXnk/NCpWiYLjlvCg5vNkfOmzDZzVrkvBAi503Q4d0MRFYjc7DJb6GUoHIyJTFy3Uoh5y3SmDM/GPxbIdVtlOAHKptaiVW22/nvOYsqb5OjsVfSHSxyFpXeUGMvKUP87qSQU67yTqixl39+hZ0OOW+TKWHyFtzFIeedkOpuPjmLKkW6jb2S7gkO7zVHznsw2b1a5CwKkfMe6PDuBSKrkTnY5PdRStBdMiUxct1PIed90pgzPxj8+yHVA5TgByqbWolVtgp8cl6gvE1bHeSsyCLnBdIbIOdWvwzxq0Qhp1xlJS+0ykoUcj4gU8LkLajMIWclSFWFT84LlKItuuSsGhxWM0fOqpismhY5L4DIWRU6vGpAZDUyB5u8OqUEVZYpiZGrBoWc1aUxZ34w+DUgVU1K8AOVTa3EKlstPjmLKG9ThoOctVnkLCK9AXJm+GWIXx0KOeUq63ihVdahkLOmTAmTt6Auh5x1IFU9PjmLKEVNdMn5YHBY3xw5H8Rk9bXIWQQi54PQ4dUHIquROdjkDSglqK5MSYxcD1HI2UAac+YHg/8QpHqYEvxAZVMrscr2CJ+chZW3aa+DnA1Z5CwsvQFy7vXLEL9HKeSUq3zUC63yUQo5H5YpYfIWPMYh56OQ6nE+OQsrRXt0yflEcNjIHDmfwGSNtMhZGCLnE9DhNQIiq5E52ORPUkrQYzIlMXI9RSHnk9KYMz8Y/KcgVWNK8AOVTa3EKlsTPjkLKW9TdQc5M1jkLCS9AXJW98sQv6cp5JSrfNoLrfJpCjkby5QweQuacsj5NKRqxidnIaWomi45mweHz5gjZ3NM9owWOQtB5GwOHd4zQGQ1MgebvAWlBDWVKYmR61kKOVtIY878YPCfhVQtKcEPVDa1Eqtsz/HJWVB5m+Y6yPk8i5wFpTdAzrl+GeLXikJOucpWXmiVrSjkbClTwuQtaM0hZytI1YZPzoJK0Tu65GwbHLYzR862mKydFjkLQuRsCx1eOyCyGpmDTd6eUoJay5TEyJVJIWd7acyZHwx+JqTqQAl+oLKplVhl68gnZwHlbVrmIGcnFjkLSG+AnMv8MsSvM4WccpWdvdAqO1PIKYtmR5O34AUOOTtDqi58chZQipbqkrNrcPiiOXJ2xWQvapGzAETOrtDhvQhEViNzsMlfopSgF2RKYuR6mULOl6QxZ34w+C9Dqm6U4Acqm1qJVbbufHKmKW9TTQc5e7DImSa9AXLW9MsQvywKOeUqs7zQKrMo5OwmU8LkLejJIWcWpOrFJ2eaUlRDl5y9g8M+5sjZG5P10SJnGkTO3tDh9QEiq5E52OR9KSWop0xJjFz9KOTsK40584PB7wep+lOCH6hsaiVW2QbwyelR3qYsBzkHssjpkd4AObP8MsRvEIWccpWDvNAqB1HI2V+mhMlbMJhDzkGQagifnB6lqIcuOYcGh8PMkXMoJhumRU4PRM6h0OENAyKrkTnY5MMpJWiwTEmMXNkUcg6Xxpz5weBnQyovJfiByqZWYpUth0/O/FGRcwSLnPmlN0ZOrEqMpJBTrnIkRs6RFHJ6ZUqYvAWjOOQcCalG88mZn0fOMcHhWHPkHIPJxmqRMz9EzjHQ4Y3lkBObfBylBI2SKYmR6xUKOcdJY878YPBfgVTjKcEPVDa1EqtsE/jkTFXeptkOck5kkTNVegPknO2XIX6TKOSUq5zkhVY5iULO8TIlTN6CyRxyToJUU/jkTFWKZumS89XgcKo5cr6KyaZqkTMVIuer0OFNBSKrkTnY5NMoJWiyTEmMXNMp5JwmjTnzg8GfDqlmUIIfqGxqJVbZZvLJmaK8TdMd5HyNRc4U6Q2Qc7pfhvjNopBTrnKWF1rlLAo5Z8iUMHkLZnPIOQtSvc4nZ4pSNE2XnHOCwzfMkXMOJntDi5wpEDnnQIf3BhBZjczBJn+TUoLk693XMXK9RSHnm9KYMz8Y/Lcg1duU4Acqm1qJVbZ3+ORMVt6mfQ5yzmWRM1l6A+Tc55chfvMo5JSrnOeFVjmPQs63ZUqYvAXzOeScB6ne5ZMzWSnaq0vOBcHhQnPkXIDJFmqRMxki5wLo8BYCkdXIHGzyRZQSNF+mJEauxRRyLpLGnPnB4C+GVEsowQ9UNrUSq2zv8cmZpLxNmx3kXMoiZ5L0Bsi52S9D/JZRyClXucwLrXIZhZxLZEqYvAXLOeRcBqlW8MmZpBQJXXK+Hxx+YI6c72OyD7TImQSR833o8D4AIquROdjkKyklaLlMSYxcqyjkXCmNOfODwV8FqT6kBD9Q2dRKrLKt5pMzUXmbijvIuYZFzkTpDZCzuF+G+K2lkFOucq0XWuVaCjk/lClh8has45BzLaRazydnolJUTJecG4LDjebIuQGTbdQiZyJEzg3Q4W0EIquROdjkmyglaJ1MSYxcPgo5N0ljzvxg8H2QSlCCH6hsaiVW2TbzyZmgvE1LHOTcwiJngvQGyLnEL0P8tlLIKVe51QutciuFnEKmhMlbsI1Dzq2QajufnAlK0WJdcu4IDneaI+cOTLZTi5wJEDl3QIe3E4isRuZgk++ilKBtMiUxcu2mkHOXNObMDwZ/N6TaQwl+oLKplVhl28snp1t5mwY4yLmPRU639AbIOcAvQ/z2U8gpV7nfC61yP4Wce2RKmLwFBzjk3A+pDvLJ6VaK+uuS81BweNgcOQ9hssNa5HRD5DwEHd5hILIamYNNfoRSgg7IlMTIdZRCziPSmDM/GPyjkOoYJfiByqZWYpXtIz458ylvUzUHOT9mkTOf9AbIWc0vQ/w+oZBTrvITL7TKTyjkPCZTwuQt+JRDzk8g1Wd8cuZTiqrqkvN4cHjCHDmPY7ITWuTMB5HzOHR4J4DIamQONvnnlBL0qUxJjFxfUMj5uTTmzA8G/wtI9SUl+IHKplZile0rPjnjlbfJ6yDn1yxyxktvgJxevwzx+4ZCTrnKb7zQKr+hkPNLmRImb8G3HHJ+A6m+45MzXinK1iXn98HhD+bI+T0m+0GLnPEQOb+HDu8HILIamYNN/iOlBH0rUxIj108Ucv4ojTnzg8H/CVKdpAQ/UNnUSqyy/cwnp0t5m9o5yPkLi5wu6Q2Qs51fhvj9SiGnXOWvXmiVv1LIeVKmhMlb8BuHnL9Cqt/55HQpRW11yflHcPinOXL+gcn+1CKnCyLnH9Dh/QlEViNzsMn/opSg32RKYuT6m0LOv6QxZ34w+H9Dqn8owQ9UNrUSqmzJcXxy2srbtCJIzmSLRU5begPkXOGXAX7JNoWccpW2F1qlTSHnPzIlDN6CZBeFnMk2pIrnk1N9Css1yZmcLzh0GyNncj5M5tYip42QMzkfdHhuILIamYNNnsAoQckumZIQuZITGeRMTpDGnPnB4CdCqiRK/Q9UNrUSq2zJfHJaytuU7iBnCoucMnNSAHKm+2VIGqZSyOk39kKrTGWQMzlJpoTJW5CfQ85USOXhk9NSikrqkjMtOCxgjpxpmKyAFjktiJxp0OEVACKrkTnY5AUp5MwvUxIjVyEKOQtKY878YPALQarClOAHKptaiVW2InxyxilvU6qDnBewyCk3ewFAzlS/DIlvUQo55SqLeqFVFqWQs7BMCZO34EIOOYtCqmJ8cqqf2aTokrN4cFjCHDmLY7ISWuSMg8hZHDq8EkBkNTIHm/wiSvG+UKYkRq6LKeS8SBpz5geDfzGkuoQS/EBlUyuxynYpnZyJ/yhvUxsHOUuSyJko362XBMjZxi9D4pvOIKd/leleaJXpFHJeIlPC5C24jEPOdEh1OZ2cierPZFrrkvOK4LCUOXJegclK6ZAz8R+InFdAh1cKiKxG5mCTl6YU78tkSmLkupJCztLSmDM/GPwrIVUZSvADlU2txCrbVXxy/q28TQUd5LyaRc6/pTdAzoJ+GRLfayjklKu8xgut8hoKOcvIlDB5C67lkPMaSHUdn5zqr1IU0CXn9cHhDebIeT0mu0GLnH9D5LweOrwbgMhqZA42+Y2U4n2tTEmMXGUp5LxRGnPmB4NfFlKVowQ/UNnUSqyyleeTU/09tTgHOW9ikfMv6Q0tOPlmChPl/DdnU2hXTh6jycy9hUO7myHVrRqHD2xJGmfzU/3PqFL9Nlaq/ym9sVS/nZLqcv7b/zdS/Q5Oqt8Oqe6kpPod0vg/kOp/qNfiSPW7WKn+h/TGzuQu6ELcTbkQcpV3Yy9Z7v6fuDb3cK7N3ZDqXsoLq3ukMXZE9zFe1fpT5D7O35NPvg9S3U8JayDz1Eos8x6gvKW4XxpjwLwPqA/nVNbEEcHKejAu8HGGFWEW4a56WhVJJFXVTqkiiqSqul8VWSRVNRybt8KqagZVVnivWmdVVoQZawdUVqR11cl1KFZIVd1zVVZor3rnqKwwMz7oVFnh1lU/RLJYeVQN8qqsvF4P5VFZIWZ8OLfKCrWuR8IksXWOqmFolXWu16MhVVauGR8LpbJyr+vxCJfLOqt6IrzKCno1CquyHDM+GU5lOdf1lOLSW6dUjSOrrNNeTSKqrDMzZkRSWYF1PY0UI3czpcqSXs1VKss/4zNAYcUfAcalR/W80NtzxgOZmRldD8ali+QKIrmiSK4kkiuL5CoiuapIriaSq4vkGiK5pkiuJZJri+Q6IrmuSK4nkh8UyfVFcgOR/JBIflgkPyKSG4rkR0XyYyL5cZH8hEhuJJKfFMlPieTGIrmJSM4w9wyyQiIkq4jJKmGyypisCiarismqYbLqmKwGJquJyWphstqYrA4mq4vJ6mGyBzFZfUzWAJM9hMkexmSPYLKGmOxRTPYYJnsckz2ByRphsicx2VOYrDEma4LJMnJ9KjIy/Cvv7DMvauUr3xphVW29QVXNcKrF7RyqWshr/QL3AkiKtJEFIWzl5I+co6q0MLSqoVNVt3IY1aPQRipEu5GDcXfF3iicUcXeKARUsTcKAVXsjUJgXf+FNwrQc5oK0GfoFZUqf5GtpFKdKsWVI6tyThfsKhFVP50p61UjqY4Gin+1CKoKZxFRPYyqyzkgqR1aVfVc3NQJqTqeC0p1Q6nK50ZXvRCqMnkA92BeVaO8GKyfR9UwBCwb5FZlhULqQ7lUWSHB+7BDtaheODw/FlRdtTis6vGzqslXh1c9EVCVnRJB1eiM6mi5SKonT6vaH4uoeuqUqnZmZJW/5pRtWkeh8tecG5upVBlINSlwL6RCXvSc32dQyRnKGrPN8RnU06TPoJIzpDfwnbxtfhni15TxGZR/lU290CqbRntyUX/hzH9yCtFW3S+cNQsOm5t72NMMkzXX+cLZqWunhmUzCLzNgchGnzxN5fTYp2PN+Ne+iTJaEx3X/hnWtZdPE58Brv1Evwzxa0G59nKVLbzQKlvwr30TpWiC7rV/Njhsae7aP4vJWmpd+ybQtX8WunYtgchqfHSMTf4c5Ysssua0wD46bgqt8nnKR8fPSWOvsfnPszI2VibUfEdlbMWqjPKjllZAZZzvlyF+rSmVUa6ytRdaZWvKl3Jkfj9vMr/bcL490hpStQUS6Tzh0VgpmqcLj3bBYXtz8GiHydprwaMxBI920OG1ByKrkTnY5JmUEtRGpiRWljtQsJApjTnzg8HvAKk6UoIfqGxADYRUnaItLtGT8ynlbRruIGdnFjmfkt4AOYf7ZYjfCxRyylW+4IVW+QKFnB1lSpi8BV2iPEvwCr4AqbryyfmUUjRMl5wvBocvmSPni5jsJS1yPgWR80Xo8F4CIquROdjkL1NKUBeZkhi5ulHI+bI05swPBr8bpOpOCX6gsqmVWGXrwX/P+aTyNjnbmGaxyPmk9MbamGZB2+pJIadcZU+sjWlPCjm7y5QweQt6ccjZE1L15pPzSaVIu41pn+Cwrzly9sFkfbXI+SREzj7Q4fUFIquROdjk/SglqJdMSYxc/Snk7CeNOfODwe8PqQZQgh+obGolVtkG8snZSHmbtjrIOYhFzkbSGyDnVr8M8RtMIadc5WAvtMrBFHIOkClh8hYM4ZBzMKQayidnI6Voiy45hwWHw82RcxgmG65FzkYQOYdBhzcciKxG5mCTc0rQEJmSGLm8FHJmS2PO/GDwsclzKMEPVDa1EqtsI/jkfEJ5mzIc5BzJIucT0hsgZ4ZfhviNopBTrnKUF1rlKAo5c2RKmLwFoznkHAWpxvDJ+YRS1ESXnGODw3HmyDkWk43TIucTEDnHQoc3DoisRuZgk79CKUGjZUpi12Y8hZyvSGPO/GDwx0OqCZTgByqbWomFaCKfnI8rb9NeBzknscj5uPQGyLnXL0P8JlPIKVc52QutcjKFnBNkSpi8BVM45JwMqV7lk/NxpWiPLjmnBofTzJFzKiabpkXOxyFyToUObxoQWY3MwSafTilBU2RKYmV5BoWc06UxZ34w+DMg1UxK8AOVTa3EKttrfHI+prxN1R3knMUi52PSGyBndb8M8ZtNIadc5WwvtMrZFHLOlClh8ha8ziHnbEg1h0/Ox5SiarrkfCM4fNMcOd/AZG9qkfMxiJxvQIf3JhBZjczBJn+LUoJelymJkettCjnfksac+cHgvw2p3qEEP1DZ1Eqsss3lk/NR5W2a6yDnPBY5H5XeADnn+mWI33wKOeUq53uhVc6nkPMdmRImb8G7HHLOh1QL+OR8VCl6R5ecC4PDRebIuRCTLdIi56MQORdCh7cIiKxG5mCTL6aUoHdlSmLkWkIh52JpzJkfDP4SSPUeJfiByqZWYpVtKZ+cDZW3aZmDnMtY5GwovQFyLvPLEL/lFHLKVS73QqtcTiHnezIlTN6CFRxyLodU7/PJ2VApWqpLzg+Cw5XmyPkBJlupRc6GEDk/gA5vJRBZjczBJl9FKUErZEpi5PqQQs5V0pgzPxj8DyHVakrwA5VNrcQq2xo+OR9R3qaaDnKuZZHzEekNkLOmX4b4raOQU65ynRda5ToKOVfLlDB5C9ZzyLkOUm3gk/MRpaiGLjk3BoebzJFzIybbpEXORyByboQObxMQWY3MwSb3UUrQepmSGLkEhZw+acyZHwy+gFSbKcEPVDa1EqtsW/jkfFh5m7Ic5NzKIufD0hsgZ5Zfhvhto5BTrnKbF1rlNgo5N8uUMHkLtnPIuQ1S7eCT82GlqIcuOXcGh7vMkXMnJtulRc6HIXLuhA5vFxBZjczBJt9NKUHbZUpi5NpDIeduacyZHwz+Hki1lxL8QGVTK7HKto9PzoeiIud+Fjkfkt4YOfdD2zpAIadc5QGMnAco5NwrU8LkLTjIIecBSHWIT86HeOQ8HBweMUfOw5jsiBY5H4LIeRg6vCMccmKTH6WUoIMyJTFyHaOQ86g05swPBv8YpPqIEvxAZVMrscr2MZ+cDZS3abaDnJ+wyNlAegPknO2XIX6fUsgpV/mpF1rlpxRyfiRTwuQt+IxDzk8h1XE+ORsoRbN0yXkiOPzcHDlPYLLPtcjZACLnCejwPgciq5E52ORfUErQZzIlMXJ9SSHnF9KYMz8Y/C8h1VeU4Acqm1qJVbav+eSsr7xN0x3k/IZFzvrSGyDndL8M8fuWQk65ym+90Cq/pZDzK5kSJm/BdxxyfgupvueTs75SNE2XnD8Ehz+aI+cPmOxHLXLWh8j5A3R4PwKR1cgcbPKfKCXoO5mSGLlOUsj5kzTmzA8G/ySk+pkS/EBlUyuxyvYLn5wPKm/TPgc5f2WR80HpDZBzn1+G+P1GIadc5W9eaJW/Ucj5s0wJk7fgdw45f4NUf/DJ+aBStFeXnH8Gh3+ZI+efmOwvLXI+CJHzT+jw/gIiq5E52OR/U0rQ7zIlMXL9QyHn39KYMz8Y/H8QVUocJfiByqZWQpUtxeKTs57yNm0OkjPFZpGznvQGyLnZLwP8UlwUcspVurzQKl0Mcqb4U8LkLYinkDPFBany8clZTykSmuRMcQeHCcbImeLGZAla5KyHkDPFDR1eAhBZjczBJk9klKCUeJmSELlSkhjkTEmUxpz5weAnQapkSvADlU2pBCtbCp+cdZW3qbiDnKksctaV3gA5i/tlyEnkp5BTrjK/F1plfgo5k2VKmLwFHg4580OqND456ypFxXTJWSA4LGiOnAUwWUEtctaFyFkAOryCQGQ1MgebvBCleHtkSmLkKkwhZyFpzJkfDH5hSFWEEvxAZVMrscp2AZ+cdZS3aYmDnEVZ5KwjvQFyLvHLkPheSCGnXOWFXmiVF1LIWUSmhMlbUIxDzgshVXE+OesoRYt1yVkiOLzIHDlLYLKLtMhZByJnCejwLgIiq5E52OQXU4p3MZmSGLkuoZDzYmnMmR8M/iWQ6lJK8AOVTa3EKltJPjlrK2/TAAc501nkrC29AXIO8MuQ+F5GIadc5WVeaJWXUch5qUwJk7fgcg45L4NUV/DJWVsp6q9LzlLBYWlz5CyFyUprkbM2RM5S0OGVBiKrkTnY5FdSivflMiUxcpWhkPNKacyZHwx+GUh1FSX4gcqmVmKV7Wo+OWspb1M1BzmvYZGzlvQGyFnNL0Piey2FnHKV13qhVV5LIedVMiVM3oLrOOS8FlJdzydnLaWoqi45bwgObzRHzhsw2Y1a5KwFkfMG6PBuBCKrkTnY5GUpxfs6mZIYucpRyFlWGnPmB4NfDlKVpwQ/UNnUSqyy3cQnZ03lbfI6yHkzi5w1pTdATq9fhsT3Fgo55Spv8UKrvIVCzvIyJUzegls55LwFUt3GJ2dNpShbl5y3B4d3mCPn7ZjsDi1y1oTIeTt0eHcAkdXIHGzyOynF+1aZkhi57qKQ805pzJkfDP5dkOpuSvADlU2txCrbPXxy1lDepnYOct7LImcN6Q2Qs51fhsT3Pgo55Srv80KrvI9CzrtlSpi8BfdzyHkfpHqAT84aSlFbXXJWCA4rmiNnBUxWUYucNSByVoAOryIQWY3MwSavRCne98uUxMhVmULOStKYMz8Y/MqQqgol+IHKplZila0qn5zVlbdphYOc1VjkrC69AXKu8MuQ+FankFOusroXWmV1CjmryJQweQtqcMhZHVLV5JNTfQrLdclZKzisbY6ctTBZbS1yVofIWQs6vNpAZDUyB5u8DqV4y5fFNTFy1aWQs4405swPBr8upKpHCX6gsqmVWGV7kE/OasrblO4gZ30WOeVHg/UBcqb7ZUh8G1DIKVfZwAutsgGFnPVkSpi8BQ9xyNkAUj3MJ2c1paikLjkfCQ4bmiPnI5isoRY5q0HkfAQ6vIZAZDUyB5v8UUrxfkimJEauxyjkfFQac+YHg/8YpHqcEvxAZVMrscr2BJ+cVZW3KdVBzkYsclaV3gA5U/0yJL5PUsgpV/mkF1rlkxRyPi5TwuQteIpDzichVWM+OdXPbFJ0ydkkOMwwR84mmCxDi5xVIXI2gQ4vA4isRuZgkz9NKd5PyZTEyNWUQs6npTFnfjD4TSFVM0rwA5VNrcQqW3M+Oasob1MbBzmfYZFTvlt/BiBnG78MiW8LCjnlKlt4oVW2oJCzmUwJk7fgWQ45W0Cqlnxyqj+Taa1LzueCw+fNkfM5TPa8FjmrQOR8Djq854HIamQONnkrSvF+VqYkRq7WFHK2ksac+cHgt4ZUbSjBD1Q2tRKrbG355KysvE0FHeRsxyJnZekNkLOgX4bEtz2FnHKV7b3QKttTyCmR3NbkLcjkkLM9pOrAJ6f6qxQFdMnZMTjsZI6cHTFZJy1yVobI2RE6vE5AZDUyB5u8M6V4Z8qUxMj1AoWcnaUxZ34w+C9Aqi6U4Acqm1qJVbaufHKqv6cW5yDniyxyVpLe0IJTXqIwUc7/UjaFdl3kMZrM3Jc5tHsJUnXTOHxgS9I4m5/qFaNK9e6sVK8ovbFU70FJdTl/j/+NVM/ipHoPSNWTkupZ0vg/kOoV1GtxpHovVqpXkN7YmfSCLkRvyoWQq+yNvWTp/T9xbfpwrk1vSNWX8sKqjzTGjqgf41WtP0X6RVszwbD2g1T9KWENZJ5aiWXeAMpbiv7SGANmP6A+nFNZE0dEWVndLYEt4m/G49Kjeufu7TnjgczMjK4H49JFykCRMkikDBYpQ0TKUJEyTKQMFynZIsUrUnJEygiRMlKkjBIpo0XKGJEyVqSMEymviJTxImWCSJkoUiaJlMkiZYpIeVWkTBUp00TKdJEyQ6TMFCmviZRZ5p4GDEyEZIMw2WBMNgSTDcVkwzDZcEyWjcm8mCwHk43AZCMx2ShMNhqTjcFkYzHZOEz2CiYbj8kmYLKJmGwSJpuMyaZgslcx2VRMNg2TTcdkMzDZTEz2Giablev55MjwDMw+gxfJoPAvU9p6g6qwrw0Wt3OoRiDULVA/2hcmuTayIIStnHziOapKC0OrJjlVdSuHUU2GNvJItBs5GHcJBm3o1ctA6MnyIKXKv+HBKtWpsAyJrMo5HbyhEVU/nQnxsEiqo4GDGB5BVeHscWWHUXU551DD3Ieq5x79qJCq47kSZHQoVfncaTQmhKpMnmQbm1fVKG9KjsujahgicV/JrcoKld7jc6myQl6CCQ7VonrhrsqUoOqqxWFVr55VTb46vGpqQFV2SgTVtDOqo+UiqaafVrU/FlE145SqdmZk1Uy/qmkdheo1qbqxmUo1C6kABaDfjoEK0Pk9mUmZpawx2xxPZmaTnsykzJLewCfV2/wyxO91xpMZ/ypf90KrfD3ak4v6Y1j/ySlEW3U/hp0THL5h7o3XHEz2hs7HsKeunRqWcyDwvgFENvrkeV1Ojz0zmsO/9q8pozXRce3fZF17+c7+TeDaT/TLEL+3KNdervItL7TKt/jX/jWlaILutX87OHzH3LV/G5O9o3XtX4Ou/dvQtXsHiKzGA1Vs8rmUj3dkzXkLe6D6OrTKeZQHqnOlsdfY/OdZGWcqE2q+ozLOZ1VG+dhzPlAZ5/tliN+7lMooV/muF1rlu5SPqmR+zzOZ3ws4n6m8C6kW0r+6509uhWieLjwWBYeLzcFjESZbrAWPmRA8FkGHtxiIrEbmYJMvoZSgBTIlsbL8HgULS6QxZ34w+O9BqqWU4AcqG1ADIdWyaItL9OScobxNwx3kXM4ip/zMcDlAzuF+GeK3gkJOucoVXmiVKyjkXCpTwuQteJ/zJY8VkOoDPjlnKEXDdMm5MjhcZY6cKzHZKi1yzoDIuRI6vFVAZDUyB5v8Q0oJel+mJEau1RRyfiiNOfODwV8NqdZQgh+obGolVtnW8t9zTlfeJmdzr3Usck6X3lhzr3XQttZTyClXuR5r7rWeQs41MiVM3oINHHKuh1Qb+eScrhRpN/faFBz6zJFzEybzaZFzOkTOTdDh+YDIamQONrmglKANMiUxcm2mkFNIY878YPA3Q6otlOAHKptaiVW2rXxyTlPepq0Ocm5jkXOa9AbIudUvQ/y2U8gpV7ndC61yO4WcW2RKmLwFOzjk3A6pdvLJOU0p2qJLzl3B4W5z5NyFyXZrkXMaRM5d0OHtBiKrkTnY5HsoJWiHTEmMXHsp5NwjjTnzg8HfC6n2UYIfqGxqJVbZ9vPJOVV5mzIc5DzAIudU6Q2QM8MvQ/wOUsgpV3nQC63yIIWc+2RKmLwFhzjkPAipDvPJOVUpaqJLziPB4VFz5DyCyY5qkXMqRM4j0OEdBSKrkTnY5McoJeiQTEmMXB9RyHlMGnPmB4P/EaT6mBL8QGVTK7HK9gmfnK8qb9NeBzk/ZZHzVekNkHOvX4b4fUYhp1zlZ15olZ9RyPmxTAmTt+A4h5yfQaoTfHK+qhTt0SXn58HhF+bI+Tkm+0KLnK9C5PwcOrwvgMhqZA42+ZeUEnRcpiRGrq8o5PxSGnPmB4P/FaT6mhL8QGVTK7HK9g2fnFOUt6m6g5zfssg5RXoD5KzulyF+31HIKVf5nRda5XcUcn4tU8LkLfieQ87vINUPfHJOUYqq6ZLzx+DwJ3Pk/BGT/aRFzikQOX+EDu8nILIamYNNfpJSgr6XKYmR62cKOU9KY878YPB/hlS/UIIfqGxqJVbZfuWTc7LyNs11kPM3FjknS2+AnHP9MsTvdwo55Sp/90Kr/J1Czl9kSpi8BX9wyPk7pPqTT87JStE7uuT8Kzj82xw5/8Jkf2uRczJEzr+gw/sbiKxG5mCT/0MpQX/IlITIlRpHIec/0pgzPxb81DhIZVGCH6hsaiVU2VJtPjknKW/TsiA5U10sck6S3gA5l/llgF9qPIWccpXxXmiV8QxypsqN2SZvQT4KOVPjIZWbT85JStFSTXKmJgSHicbImZqAyRK1yDkJIWdqAnR4iUBkNTIHmzyJUYJS88mUxMiVzCBnapI05swPBj8ZUqVQgh+obGolVtlS+eScqLxNNR3kzM8i50TpDZCzpl+GxNdDIadcpccLrdJDIWeKTAmTtyCNQ04PpCrAJ+dEpaiGLjkLBoeFzJGzICYrpEXOiRA5C0KHVwiIrEbmYJMXphTvNJmSGLmKUMhZWBpz5geDXwRSXUAJfqCyqZVYZSvKJ+cE5W3KcpDzQhY5J0hvgJxZfhkS32IUcspVFvNCqyxGIecFMiVM3oLiHHIWg1Ql+OScoBT10CXnRcHhxebIeREmu1iLnBMgcl4EHd7FQGQ1Mgeb/BJK8S4uUxIj16UUcl4ijTnzg8G/FFKVpAQ/UNnUSqyypfPJOT4qcl7GIud46Y2R8zIovpdTyClXeTlGzssp5CwpU8LkLbiCQ87LIVUpPjnH88hZOji80hw5S2OyK7XIOR4iZ2no8K7kkBObvAyleF8hUxIj11UUcpaRxpz5weBfBamupgQ/UNnUSqyyXcMn5yvK2zTbQc5rWeR8RXoD5JztlyHxvY5CTrnK67zQKq+jkPNqmRImb8H1HHJeB6lu4JPzFaVoli45bwwOy5oj542YrKwWOV+ByHkjdHhlgchqZA42eTlK8b5epiRGrvIUcpaTxpz5weCXh1Q3UYIfqGxqJVbZbuaTc5zyNk13kPMWFjnHSW+AnNP9MiS+t1LIKVd5qxda5a0Uct4kU8LkLbiNQ85bIdXtfHKOU4qm6ZLzjuDwTnPkvAOT3alFznEQOe+ADu9OILIamYNNfheleN8mUxIj190Uct4ljTnzg8G/G1LdQwl+oLKplVhlu5dPzrHK27TPQc77WOQcK70Bcu7zy5D43k8hp1zl/V5olfdTyHmPTAmTt+ABDjnvh1QV+OQcqxTt1SVnxeCwkjlyVsRklbTIORYiZ0Xo8CoBkdXIHGzyypTi/YBMSYxcVSjkrCyNOfODwa8CqapSgh+obGolVtmq8ck5RnmbNjvIWZ1FzjHSGyDnZr8MiW8NCjnlKmt4oVXWoJCzqkwJk7egJoecNSBVLT45xyhFQpectYPDOubIWRuT1dEi5xiInLWhw6sDRFYjc7DJ61KKd02Zkhi56lHIWVcac+YHg18PUj1ICX6gsqmVWGWrzyfnaOVtKu4gZwMWOUdLb4Ccxf0yJL4PUcgpV/mQF1rlQxRyPihTwuQteJhDzocg1SN8co5WiorpkrNhcPioOXI2xGSPapFzNETOhtDhPQpEViNzsMkfoxTvh2VKYuR6nELOx6QxZ34w+I9DqicowQ9UNrUSq2yN+OQcpbxNSxzkfJJFzlHSGyDnEr8Mie9TFHLKVT7lhVb5FIWcT8iUMHkLGnPI+RSkasIn5yilaLEuOTOCw6fNkTMDkz2tRc5REDkzoMN7GoisRuZgkzelFO/GMiUxcjWjkLOpNObMDwa/GaRqTgl+oLKplVhle4ZPzpHK2zTAQc4WLHKOlN4AOQf4ZUh8n6WQU67yWS+0ymcp5JQn8IzJW9CSQ85nIdVzfHKOVIr665Lz+eCwlTlyPo/JWmmRcyREzuehw2sFRFYjc7DJW1OKd0uZkhi52lDI2Voac+YHg98GUrWlBD9Q2dRKrLK145NzhPI2VXOQsz2LnCOkN0DOan4ZEt9MCjnlKjO90CozKeRsK1PC5C3owCFnJqTqyCen+lCr6pKzU3DY2Rw5O2GyzlrkHAGRsxN0eJ2ByGpkDjb5C5TiLePaESNXFwo5X5DGnPnB4HeBVF0pwQ9UNrUSq2wv8smpvk1eBzlfYpEzR3oD5PT6ZUh8X6aQU67yZS+0ypcp5OwqU8LkLejGIefLkKo7n5xqUbYuOXsEh1nmyNkDk2VpkTMHImcP6PCygMhqZA42eU9K8e4mUxIjVy8KOXtKY878YPB7QarelOAHKptaiVW2PnxyepW3qZ2DnH1Z5JSw6Qvc7HZ+GRLffhRyylX280Kr7EchZ2+ZEiZvQX8OOftBqgF8cnqVora65BwYHA4yR86BmGyQFjm9EDkHQoc3CIisRuZgkw+mFO/+MiUxcg2hkHOwNObMDwZ/CKQaSgl+oLKplVhlG8YnZ7byNq1wkHM4i5zZ0hsg5wq/DIlvNoWccpXZXmiV2RRyDpUpYfIWeDnkzIZUOXxyqk9huS45RwSHI82RcwQmG6lFzmyInCOgwxsJRFYjc7DJR1GKt3xZnIORazSFnKOkMWd+MPijIdUYSvADlU2txCrbWD45hytvU7qDnONY5BwuvQFypvtlSHxfoZBTrvIVL7TKVyjkHCNTwuQtGM8h5yuQagKfnMOVopK65JwYHE4yR86JmGySFjmHQ+ScCB3eJCCyGpmDTT6ZUrzHy5TEyDWFQs7J0pgzPxj8KZDqVUrwA5VNrcQq21Q+OYcpb1Oqg5zTWOQcJr0Bcqb6ZUh8p1PIKVc53QutcjqFnK/KlDB5C2ZwyDkdUs3kk1P9zCZFl5yvBYezzJHzNUw2S4ucwyByvgYd3iwgshqZg00+m1K8Z8iUxMj1OoWcs6UxZ34w+K9DqjmU4Acqm1qJVbY3+OQcqrxNbRzkfJNFTvlu/U2AnG38MiS+b1HIKVf5lhda5VsUcs6RKWHyFrzNIedbkOodPjnVn8m01iXn3OBwnjlyzsVk87TIORQi51zo8OYBkdXIHGzy+ZTi/bZMSYxc71LIOV8ac+YHg/8upFpACX6gsqmVWGVbyCfnEOVtKugg5yIWOYdIb4CcBf0yJL6LKeSUq1zshVa5mELOBTIlTN6CJRxyLoZU7/HJqf4qRQFdci4NDpeZI+dSTLZMi5xDIHIuhQ5vGRBZjczBJl9OKd5LZEpi5FpBIedyacyZHwz+Ckj1PiX4gcqmVmKV7QM+OdXfU4tzkHMli5yDpTe04NRVFCbK+VdxvtXzvjxGk5n7IYd2qyDVao3DB7YkjbP5qT4oqlRfw0r1QdIbS/W1lFSX86/930j1dZxUXwup1lNSfZ00/g+k+kD1WhypvoGV6gOlN3YmG6ALsZFyIeQqN2IvWTb+T1ybTZxrsxFS+SgvrDZJY+yIBONVrT9FRLQ1EwyrgFSbKWENZJ5aiWXeFspbis3SGAOmAOrDOZU1cUR0lRX5y8j4W/G49Kjet3t7znggMzOj68G4dJG6VaRuE6nbReoOkbpTpO4SqbtF6h6Rulek7hOp+0XqAZF6UKQeEqmHReoRkXpUpB4TqR+J1I9F6ici9VOR+plIPS5ST4jUz0XqFyL1S5H6lUj9WqR+I1K/NfcsYGsiJNuGybZjsh2YbCcm24XJdmOyPZhsLybbh8n2Y7IDmOwgJjuEyQ5jsiOY7CgmO4bJPsJkH2OyTzDZp5jsM0x2HJOdwGSfY7IvMNmXmOwrTPY1JvsGk32b6+lkhD5y2WfgIgm0N6yqrTeo2hdOtbidQ7UfYW6BjGhfluTayIIQtnLyT85RVVoYWvWpU1W3chjVZ9BGmke7kYNxlyDIhl65bIWeKm9Tqvzb3a5SnQrKjsiqnNOh2xlR9dOZAO+KpDoaOIbdEVQVzh7WnjCqLucc6YHQqqrnHvzBkKrjudLjUChV+dxJdDiEqkyeVDuSV9Uob0IezaNqGCJtj+VWZYVK7o9yqbJCXoGPHapF9cJdlONB1VWLw6pOnFVNvjq86vOAquyUCKovzqiOlouk+vK0qv2xiKqvTqlqZ0ZWfe1XNa2jUH0jVTc2U6m+Rd4VFMiAVM3pT2VSv1XWmG2OpzLfkZ7KpH4rvYFPqbf5ZYjf94ynMv5Vfu+FVvl9tCcX9Uew/pNTiLbqfgT7Q3D4o7m3XT9gsh91PoI9de3UsPwBAu+PQGSjT57v5fTY86If+Nf+G2W0Jjqu/U+say/f1/8EXPuJfhnid5Jy7eUqT3qhVZ7kX/tvlKIJutf+5+DwF3PX/mdM9ovWtf8GuvY/Q9fuFyCyGg9Tscl/pXy0I2vOSexh6vfQKn+jPEz9VRp7jc1/npXxa2VCzXdUxt9ZlVE+9PwdqIzz/TLE7w9KZZSr/MMLrfIPysdUMr9/M5nff3I+T/kDUv1F/9qeP7kVonm68Pg7OPzHHDz+xmT/aMHjawgef0OH9w8QWY3MgSbPH0cpQX/KlITKcn6LgYX8fmPO/Fjw81uQyqYEP1DZgBoIrdIVbXGJnpxfKW/T8CA588ezyPmV9AbIOdwvQ9IwH4WccpX5vNAq8zHImd+WKWHyFrgpX/DInw9SJfDJ+ZVSNEyTnPkTg8MkY+TMn4jJkrTI+RVCzvyJ0OElAZHVyBxs8mRGCcrvlimJkSuFQs5kacyZHwx+CqRKpQQ/UNnUSqyy5ee/5/xSeZscjb3ye1jk/FJ6Q429pAyJbxqFnHKVaVBjL//8CjsdcqbKlDB5CwpwyJkGqQryyfmlUqTb2Ct/oeCwsDlyFsJkhbXI+SVEzkLQ4RUGIquROdjkRSjFu4BMSYxcF1DIWUQac+YHg38BpCpKCX6gsqmVWGW7kE/OL5S3aauDnMVY5PxCegPk3OqXIfEtTiGnXGVxL7TK4hRyFpUpYfIWlOCQszikuohPzi+Uoi265Lw4OLzEHDkvxmSXaJHzC4icF0OHdwkQWY3MwSa/lFK8S8iUxMhVkkLOS6UxZ34w+CUhVTol+IHKplZile0yPjk/V96mDAc5L2eR83PpDZAzwy9D4nsFhZxylVd4oVVeQSGnfDN7mclbUIpDzisgVWk+OT9XiprokvPK4LCMOXJeicnKaJHzc4icV0KHVwaIrEbmYJNfRSnepWRKYuS6mkLOq6QxZ34w+FdDqmsowQ9UNrUSq2zX8sl5Qnmb9jrIeR2LnCekN0DOvX4ZEt/rKeSUq7zeC63yego5r5EpYfIW3MAh5/WQ6kY+OU8oRXt0yVk2OCxnjpxlMVk5LXKegMhZFjq8ckBkNTIHm7w8pXjfIFMSI9dNFHKWl8ac+cHg3wSpbqYEP1DZ1Eqsst3CJ+dx5W2q7iDnrSxyHpfeADmr+2VIfG+jkFOu8jYvtMrbKOS8WaaEyVtwO4ect0GqO/jkPK4UVdMl553B4V3myHknJrtLi5zHIXLeCR3eXUBkNTIHm/xuSvG+XaYkRq57KOS8Wxpz5geDfw+kupcS/EBlUyuxynYfn5yfKW/TXAc572eR8zPpDZBzrl+GxPcBCjnlKh/wQqt8gELOe2VKmLwFFTjkfABSVeST8zOl6B1dclYKDiubI2clTFZZi5yfQeSsBB1eZSCyGpmDTV6FUrwryJTEyFWVQs4q0pgzPxj8qpCqGiX4gcqmVmKVrTqfnJ8qb9MyBzlrsMj5qfQGyLnML0PiW5NCTrnKml5olTUp5KwmU8LkLajFIWdNSFWbT85PlaKluuSsExzWNUfOOpisrhY5P4XIWQc6vLpAZDUyB5u8HqV415IpiZHrQQo560ljzvxg8B+EVPUpwQ9UNrUSq2wN+OT8RHmbajrI+RCLnJ9Ib4CcNf0yJL4PU8gpV/mwF1rlwxRy1pcpYfIWPMIh58OQqiGfnJ8oRTV0yflocPiYOXI+iske0yLnJxA5H4UO7zEgshqZg03+OKV4PyJTEiPXExRyPi6NOfODwX8CUjWiBD9Q2dRKrLI9ySfnx8rblOUg51Mscn4svQFyZvllSHwbU8gpV9nYC62yMYWcjWRKmLwFTTjkbAypMvjk/Fgp6qFLzqeDw6bmyPk0JmuqRc6PIXI+DR1eUyCyGpmDTd6MUrybyJTEyNWcQs5m0pgzPxj85pDqGUrwA5VNrcQqWws+OT+KipzPssj5kfTGyPksFN+WFHLKVbbEyNmSQs5nZEqYvAXPccjZElI9zyfnRzxytgoOW5sjZytM1lqLnB9B5GwFHV5rDjmxydtQivdzMiUxcrWlkLONNObMDwa/LaRqRwl+oLKplVhla88n5zHlbZrtIGcmi5zHpDdAztl+GRLfDhRyylV28EKr7EAhZzuZEiZvQUcOOTtAqk58ch5TimbpkrNzcPiCOXJ2xmQvaJHzGETOztDhvQBEViNzsMm7UIp3R5mSGLm6UsjZRRpz5geD3xVSvUgJfqCyqZVYZXuJT86jyts03UHOl1nkPCq9AXJO98uQ+HajkFOuspsXWmU3CjlflClh8hZ055CzG6TqwSfnUaVomi45s4LDnubImYXJemqR8yhEzizo8HoCkdXIHGzyXpTi3V2mJEau3hRy9pLGnPnB4PeGVH0owQ9UNrUSq2x9+eQ8orxN+xzk7Mci5xHpDZBzn1+GxLc/hZxylf290Cr7U8jZR6aEyVswgEPO/pBqIJ+cR5SivbrkHBQcDjZHzkGYbLAWOY9A5BwEHd5gILIamYNNPoRSvAfIlMTINZRCziHSmDM/GPyhkGoYJfiByqZWYpVtOJ+ch5W3abODnNksch6W3gA5N/tlSHy9FHLKVXq90Cq9FHIOkylh8hbkcMiJ3f8RfHIeVoqELjlHBoejzJFzJCYbpUXOwxA5R0KHNwqIrEbmYJOPphTvHJmSWOaOoZBztDTmzA8GfwykGksJfqCyqZVYZRvHJ+ch5W0q7iDnKyxyHpLeADmL+2VIfMdTyClXOd4LrXI8hZxjZUqYvAUTOOQcD6km8sl5SCkqpkvOScHhZHPknITJJmuR8xBEzknQ4U0GIquROdjkUyjFe4JMSYxcr1LIOUUac+YHg/8qpJpKCX6gsqmVWGWbxifnQeVtWuIg53QWOQ9Kb4CcS/wyJL4zKOSUq5zhhVY5g0LOqTIlTN6CmRxyzoBUr/HJeVApWqxLzlnB4Wxz5JyFyWZrkfMgRM5Z0OHNBiKrkTnY5K9TivdMmZIYueZQyPm6NObMDwZ/DqR6gxL8QGVTK7HK9iafnAeUt2mAg5xvsch5QHoD5BzglyHxfZtCTrnKt73QKt+mkPMNmRImb8E7HHK+Danm8sl5QCnqr0vOecHhfHPknIfJ5muR8wBEznnQ4c0HIquROdjk71KK9zsyJTFyLaCQ811pzJkfDP4CSLWQEvxAZVMrscq2iE/O/crbVM1BzsUscu6X3gA5q/llSHyXUMgpV7nEC61yCYWcC2VKmLwF73HIuQRSLeWTc79SVFWXnMuCw+XmyLkMky3XIud+iJzLoMNbDkRWI3OwyVdQivd7MiUxcr1PIecKacyZHwz++5DqA0rwA5VNrcQq20o+Ofcpb5PXQc5VLHLuk94AOb1+GRLfDynklKv80Aut8kMKOT+QKWHyFqzmkPNDSLWGT859SlG2LjnXBofrzJFzLSZbp0XOfRA510KHtw6IrEbmYJOvpxTv1TIlMXJtoJBzvTTmzA8GfwOk2kgJfqCyqZVYZdvEJ+de5W1q5yCnj0XOvdIbIGc7vwyJr6CQU65SeKFVCgo5N8qUMHkLNnPIKSDVFj459ypFbXXJuTU43GaOnFsx2TYtcu6FyLkVOrxtQGQ1MgebfDuleG+WKYmRaweFnNulMWd+MPg7INVOSvADlU2txCrbLj459yhv0woHOXezyLlHegPkXOGXIfHdQyGnXOUeL7TKPRRy7pQpYfIW7OWQcw+k2scnp/oUluuSc39weMAcOfdjsgNa5NwDkXM/dHgHgMhqZA42+UFK8ZYvi/dh5DpEIedBacyZHwz+IUh1mBL8QGVTK7HKdoRPzt3K25TuIOdRFjl3S2+AnOl+GRLfYxRyylUe80KrPEYh52GZEiZvwUccch6DVB/zyblbKSqpS85PgsNPzZHzE0z2qRY5d0Pk/AQ6vE+ByGpkDjb5Z5Ti/ZFMSYxcxynk/Ewac+YHg38cUp2gBD9Q2dRKrLJ9zifnLuVtSnWQ8wsWOXdJb4CcqX4ZEt8vKeSUq/zSC63ySwo5T8iUMHkLvuKQ80tI9TWfnOpnNim65PwmOPzWHDm/wWTfapFzF0TOb6DD+xaIrEbmYJN/RyneX8mUxMj1PYWc30ljzvxg8L+HVD9Qgh+obGolVtl+5JNzp/I2tXGQ8ycWOeW79Z8Acrbxy5D4nqSQU67ypBda5UkKOX+QKWHyFvzMIedJSPULn5zqz2Ra65Lz1+DwN3Pk/BWT/aZFzp0QOX+FDu83ILIamYNN/juleP8sUxIj1x8Ucv4ujTnzg8H/A1L9SQl+oLKplVhl+4tPzh3K21TQQc6/WeTcIb0Bchb0y5D4/kMhp1zlP15olf9QyPmnTAmDt8ATxyHnP9DkFp+c6q9SFNAkp8cODl3GyOmxMZlLi5w7EHJ6bOjwXEBko88ccPJ4Rgny+FMSIpcnH4OcnnhpzJkfDH4+SOWmkDNQ2dRKrLIl8Mm5XT1FkJyeRBY5t0tvaMGeJAoT5fxJ2QzaedzyGE1mbjKFdp4kSJWicfjAlqRxNj/Vt0WV6qmsVN8mvbFUz09JdTl//v+NVPdwUj0/pEqjpLpHGv8HUn2rei2OVC/ASvWt0hs7kwLQhShIuRBylQWxlywF/yeuTSHOtSkIqQpTXtUWksbYERVhvKr1p0iRaGsmGNYikOoCSlgDmadWYplXlPKW4gJpjAGzCFAfzqms9oieMx7IzMzoejAO+gpfXEwUE8VEMdF/XuQCX/u5hyDzYVaDzVkNMmc10JzVAHNW/c1Z9TNn1decVR9zVr3NWfUyZ9XTnFWWOase5qy6m7PqZs7qZXNWL5mzetGcVVdzVl3MWb1gzqqzOatO5qw6mrPqYM4q05xVe3NW7cxZtTVn1cacVWtjVgk7zFltN2e1zZzVVnNWW8xZbTZnJcxZ+cxZbTJntdGc1QZzVuvNWa0zZ7XWnNUac1arzVl9aM5qlTmrleasPjBn9b45qxXmrJabs1pmzmqpOav3zFktMWe12JzVInNWC81ZLTBn9a4xq6QS5qyKm7MqZs7qQnNWRc1ZXWDOqog5q8LmrAqZsypozqqAOas0c1Yec1b5zVmlmrNKMWeVbM4qyZxVojmrBHNWbnNW+cxZxZuzcpmzss1ZWeas4oxZJf5jzupvc1Z/mbP605zVH8askjPMWTUxZ9XYnNVT5qyeNGfVyJzVE+asHjdn9Zg5q0fNWTU0Z/WIOauHzVk9ZM6qgTmr+uasHjRnVc+cVV1zVnXMWdU2Z1XLnFVNc1Y1zFlVN2dVzZxVVXNWVcxZVTZnVcmcVUVzVhWMWaXMMmf1mjmrmeasZpizmm7Oapo5q6nmrF41ZzXFnNVkc1aTzFlNNGc1wZzVeHNWr5izGmfOaqw5qzHmrEabsxplzmqkOasR5qxyzFl5zVllm7Mabs5qmDmroeaszH1nO8Xcd7ZTzH1nO8Xcd7ZTvzVn9Y05q6/NWX1lzupLc1ZfmLP63JzVCXNWx81ZfWbO6lNzVp+Ys/rYnNVH5qyOmbM6as7qiDmrw+asDpmzOmjO6oA5q/3mrPaZs9przmqPOavd5qx2mbPaac7K3He2kYY5qJW572ynAt/ZjqJHWNzRaMRx3rO/RF1AeC4UnmLCU1x4SgjPRcJzsfBcIjyXCk9J4UkXnsuE53LhuUJ4SglPaeG50lzTsZLpkCwdk12GyS7HZFdgslKYrDQmuzL93HYEUCJ5gC+n6dgW49gW59iW4NhexLG9mGN7Ccf2UmX7vr/PtR2VA7SecA/MAdoCugcpVXH+X3tWqfwbcQ+Btlsy2ihi2+0LbbcftN3+0HYHQNtNj3a7I6DJ+0CTXyZVF3990cl5riKjrrS/2nffqr+eKBZf+bqT1WY2b5Z91dsTmrfYKwqkcE6kG3Qi3aET6QEFJQsKyuWc7XaFtvsitN2XoO2+DG33Ck4CdoEmLyVVpXa/l/DL68Pj5+39ru0LJ68ZsbHq0BVz7s4R19+b1eDj0d/UFgUSOCfSHjqRTOhEOkBB6QgFpTRnu62h7baBttsW2m47aLtX6mBT3VqpjNLWFeJV4dwGz2aUv+XWim1bt8uULwpbtm0zQr5ID75IdN9jfuwp43xV7nzp7Xx97XwR7Xyl7Hw57HzN63xhO9Yx8cWO8SWO8aWOsWMRbsci3I5FuB2LcF8xVniuEp6rheca4blWeK4TnuuF5wbhuTHWPSomioliov85Uax7VMAq1j0Kt4p1j8KtYt2jcKtY9yjcKtY9CreKdY/CrWLdo3CrWPco3CrWPQq3inWPwq1i3aNwq1j3KNwq1j0Kt4p1j8KtYt2jcKtY9yjcKtY9CreKdY/CrWLdo3CrWPco3CrWPQq3inWPgq1i3aOisIp1j8KtYt2jcKtY9yjcKtY9Creqb84q1j0Kt4p1j8KtYt2jcKtY9yjYKtY9KgqrWPco3CrWPQq3inWPwq1i3aNwq1j3KNwq1j0Kt4p1j4KtYt2jorCKdY/CrWLdo3CrWPco3CrWPQq3inWPwq1i3aNwq1j3KGL3qPvP6R5VVnjKCU954blJeG4WnluE51bhuU14bheeO4TnTuG5S3juFp57hOde4bnPXPeoslhPpXKYrDwmuwmT3YzJbsFkt2Ky2zDZ7ZjsDkx2Jya7C5PdjcnuwWT3YrL70jWaWSRszQGaWSRsywGaWSRszwGaWSTsQAqDpyxQGDS264O2K6Dtboa2uwXabrlotws1j0nYBE1ePgfpXlSCcyKroRNZA53IWigo66Cg3MTZ7gfQdldC210FbfdDaLs3cxLwfWjyW3KQ7kVFOSeyGDqRJdCJvAcFZSkUlFs5230X2u4CaLsLoe0ugrZ7G2W7SRci200qhmw3qTiy3aQS0HZv52y3MLTdItB2L4C2WxTa7h2U8pJUCJr8TohvV3NOJAU6kVToRPJDQfFAQbmLs90EaLuJ0HaToO0mQ9u9m5OAbmjyeyC+cdrVJf4DnUgcdCIWFBQbCsq9nO3+gWw38U9ku4l/IdtN/Bva7n3AdqNvo+cp63xG4HwQ4Hy373xL73zf7nxz7nwH7nyb7Xwv7XzD7HxX7Hzr63x/63wT63yn6mij57nKMb7aMb7GMb7WMb7OMb7eMb7BMb5xrPDcLzwPCE8F4akoPJWEp7LwVBGeqrE2ejFRTBQT/c+JYm30AlaxNnq4VayNHm4Va6OHW8Xa6OFWsTZ6uFWsjR5uFWujh1vF2ujhVrE2erhVrI0ebhVro4dbxdro4VaxNnq4VayNHm4Va6OHW8Xa6OFWsTZ6uFWsjR5uFWujh1vF2ujhVrE2erhVrI0ebBVroxeFVayNHm4Va6OHW8Xa6OFWsTZ6uFV9c1axNnq4VayNHm4Va6OHW8Xa6MFWsTZ6UVjF2ujhVrE2erhVrI0ebhVro4dbxdro4VaxNnq4VayNHmwVa6MXhVWsjR5uFWujh1vF2ujhVrE2erhVrI0ebhVro4dbxdroEdvoZZ3TRq+a8FQXnhrCU1N4aglPbeGpIzx1haee8DwoPPWFp4HwPCQ8DwvPI8LT0FwbvWpYk7TqmKwGJquJyWphstqYrA4mq4vJ6mGyBzFZfUzWAJM9hMkexmSPYLKGOm30kp/KAbpOJDfOAbpOJDfJAbpOJGcghcEDfDShs93Hoe0+AW23EbTdJ6HtVo92u1CXl+THoMlr5CBthipwTqQ+dCINoBN5CArKw1BQanK2Wwfabl1ou/Wg7T4IbbcWJwFrQ5P7Veo2Q5y+O8lVoBOpCp1INSgo1aGg1OFstwK03YrQditB260MbbcuZbspM5DtpsxEtpvyGrLdlFnQdutxtvsqtN2p0HanQdudDm33QUp5SZkCTV4f4tsjnBMZB53IK9CJjIeCMgEKSgPOdkdB2x0NbXcMtN2x0HYf4iTgSGjyhyG+1eecyFDoRIZBJzIcCko2FBTSfRsIbXcQtN3B0HaHQNsFvtCp00avmvMZgfNBgPPdvvMtvfN9u/PNufMduPNttvO9tPMNs/NdsfOtr/P9rfNNrPOdqrON3v2O8QOOcQXHuKJjXMkxruwYV3GMq44VnkeF5zHheVx4nhCeRsLzpPA8JTyNY230YqKYKCb6nxPF2ugFrGJt9HCrWBs93CrWRg+3irXRw61ibfRwq1gbPdwq1kYPt4q10cOtYm30cKtYGz3cKtZGD7eKtdHDrWJt9HCrWBs93CrWRg+3irXRw61ibfRwq1gbPdwq1kYPt4q10cOtYm30cKtYGz3YKtZGLwqrWBs93CrWRg+3irXRw61ibfRwq/rmrGJt9HCrWBs93CrWRg+3irXRg61ibfSisIq10cOtYm30cKtYGz3cKtZGD7eKtdHDrWJt9HCrWBs92CrWRi8Kq1gbPdwq1kYPt4q10cOtYm30cKtYGz3cKtZGD7eKtdEjttH74Jw2ek2EJ0N4nhaepsLTTHiaC88zwtNCeJ4VnpbC85zwPC88rYSntfC0EZ625troNcGapGVgsqcxWVNM1gyTNcdkz2CyFjrt4FK/ygG6J6R+nQN0T0j9JgfonpD6LZLgHuCjZp3tnoC2+zm03S+g7X4JbTcj2u1C3UpSj0OTP52DtMtpzjmRo9CJHINO5CMoKB9DQWnK2e5BaLuHoO0ehrZ7BNpuM04CHoAmb56DtMvJ4JzITuhEdkEnshsKyh4oKM9wtrsV2u42aLvboe3ugLbbItrtQi+UPM9ybFtybJ/j2D7PsW3FsW3NsW3DsW2rY6u8ph7lb+gmaHWPauJ8aex8/et8ket8Jet8uep8Tep84Rkcu+92jO8xM/a0c3aPetQxfswxftwxfsIxbuQYP+kYP+UYNx4rPO2FJ1N45P/oKDydhKez8LwgPF3O7R6VOCL4NglLDuBXtqN55xUfhdiKC7xNGyk8XYXnReF5SXheNvcGrGsiJHsRk72EyV5OzMs81W7kMUBXritCRs+LCBk9LyFk9ACtMM43AzP/JRnYTXi6C08P4ckyl4HdsJzpjsl6YLIsrQzMhDKwG5SB3aEM7AFlYBY/Azv8SzKwp/D0Ep7ewtPHXAb2xHKmFybrjcn6aGVgBygDe0IZ2AvKwN5QBvbhZ2DHf0kG9hWefsLTX3gGmMvAvljO9MNk/THZAK0M7AhlYF8oA/tBGdgfysAB/Azs9C/JwIHCM0h4BgvPEHMZOBDLmUGYbDAmG6KVgZ2gDIQaCnughsIeqKGwZwg/Azv/SzJwqPAME57hwpNtLgOHYjkzDJMNx2TZWhnYGcpAqIO3B+rg7YE6eHuy+Rn4wr8kA73CkyM8I4RnpLkM9GI5k4PJRmCykVoZ+AKUgV4oA3OgDIQ+KfCM5Gdgl39JBo4SntHCM0Z4xprLwFFYzozGZGMw2VitDOwCZSD0dyU80N+V8EB/V8IzNtoMdEWZgVY0+XcwruQZSyuC/vRTK4Uo7vRTK4Uo7vRTK4VIql52bNUKq+oWVFnhvbqfVVkRZuwRUFmR1pWV6wiskKqe56qs0F69zlFZYWbs7VRZ4dbVJ0RqWHlUffOqrLxe/fKorBAz9s+tskKta0CYlLXOUQ0MrbLO9RoUUmXlmnFwKJWVe12R/ryGdVY1NLzKCnoNC6uyHDMOD6eynOtS/ZUTKy5AToUo7jQ5FaK40+RUiKQK+5M0o5UqK+50pVSI4rBKGVVlLKM2zPE7tm7XqrnwjDv7/bNSwvOK8IwXngnCM1F4JgnPZOGZIjyvCs9U4ZkmPNOFZ4bwzBSe14RnlvDMFp7XhWeO8LwhPG8Kz1vC87bwvCM8c4VnnvDMF553hWeB8CwUnkXCs1h4lgjPe8KzVHiWCc9yDNbn9RrlKrOvUEpFI7a9zrCuEJ73hecD4VkpPKuE50PhWS08a4RnrfCsE571wrNBeDYKzybh8QmPEJ7NwrNFeLYKzzbh2S48O4Rnp/DsEp7dwrNHePYKzz7h2S88B4TnoPAcEp7DwnNEeI4KzzFzr4FWYLL3MdkHmGwlJluFyT7EZKsx2RpMthaTrcNk6zHZBky2EZNtwmQ+TCYw2WZMtgWTbcVk2zDZdky2A5PtxGS7MNluTLYHk+3FZPsw2X5MdgCTHcRkhzDZYUx2BJMdxWTHrHPf4x2MK42ADHqPt0L9Hu8fWa/Vqr9kuVarfpPVWq36XhZrteqYrNVqlYTnarVKfjK5Bnq3u1ap+luq1ilVf0rVeqXqV6naoFR9J1UblaqjUrVJqfpAqnxKVZZUCeh9/2aV6m+/aotK9adfpfze5K9+lfJ7k9/5VcrvTR71q3aoVB/4Vcqvr2b5Vcqvr556j6D6+uo3p1R7FKqvTqn2KlQnTqn2KVRHT6n2K1RbT6kOKFTvnFKpvoDd7pRK8QXsnO9OqRRfwPaeVh2JrBp+WqX4Hvzg0yrgVx51vm2o+KXMuevuyjjH1jvitOvR8K7WqW+drYDmL/B6lNs6M3/7YxHnfxGef060YR35X3k2p97IRq2N/Mcf+ak3skn3RP6zTxLVG/HpbyTs3IQHlOqNiPPcSMg1mH/uqd7I5vPeyH/kcap6I1tMnAj/Ka16I1vNbOScuQkPf9Ub2WZwI2fXYP6Zsnoj241uhPaoWr2RHVFuZMSpVxa1MyO/snhJvrLwC5vWUQhfPiM8s85FYYXd4Ncqu7R2dMr1qvAL7e5c6OQIO+rhEJaNtPUseEe79Xd0yjUr5Pw9zw29FC4IvdBeuYWVwuyoN7yjPeezo7rhItonz45OCcvkEfYNKWyU17EfvKO953lGPXs2DLGj/iEWmhVq6wNCb90v7HKOcCC8o33nvaNTrlXPXeigcAs9nmtHg8MIy+fe+hB4R/vN7OiUa4Wz8w8NH3opzA4udFgkYVvHjobDOzpgakeLnRHNjrgjx/MQr1J45kFADryjgwbPqOKxn87saIRioUcDWx+p3vrpJwKj4R0dMrqjwKPOMcAZnXrGN/a0ULEC69QHxeCODkf74udgXDHsc3PoYQzUn6DA65BqDqTaCKk2QSofpBKQajOk2gKptkKqbZBqO6SCfu+9wC5ItRtSQY0FCuyFVPsg1X5IBXWBKHAQUh2CVFFf4UnQO5NXoAv8CfbME3syib0nwF5nY69dsdeD2Gss7HUL9loA4yvGLA4HsIft4Vs8us7a5v1k9t16bTs0b9msbZvy9Zpntu7UMaNjy7ZtckY6Pqn9yDH+2DH+xDH+VL4A+Ex4jgvPCeH5PM8z9TjlDRgvP4/FKPp1lNHzQq9L3pfrx+b/JtrTwx5OfAad8RdQlfoaUpE2Mh7ayJfYWRs7kfNN/C8c4y9zJf5XwvO18HwjPN9qJP4E4fkAS7xvKYn/gVw/Nv93nHz5CsqX76CUhnrAsTYyAdrI99hZGzuR80387xzj73Ml/g/C86Pw/CQ8JzUSf6LwrMQS73tK4q+U68fm/4GTLz9A+fIzlNLfQyrSRiZCG/kFO2tjJ3K+if+zY/xLrsT/VXh+E57fhecPjcSfJDyrsMT7kZL4q+T6sfl/4uTLr1C+/Aml9I+QirSRSdBG/sLO2tiJnG/i/+kY/5Ur8f8Wnn9EWpxIszQSf7LwfIgl3klK4n8o14/N/zMnX/5GJk+zoZQ+CalIG5kMbcSFnbWxEznPxE+zHWPXuYmfFi/S8ok0t0hL0Ej8KcKzGku8XyiJv1quH5v/V0q+pMVD+ZIIpfQvkIqzEc8UaCNJ2FkbO5HzTfxExzgpV+Ini7QUkZYq0vJrJP6rwrMGS7zfKIm/Rq4fm/93TuInQ/nigVL6N0jF2YjnVWgjadhZGzuR8018j2OclivxC4i0giKtkEgrrJH4U4VnLZZ4f1ASf61cPzb/n5zELwDlSxEopf+AVJyNeKZCG7kAO2tjJ3K+iV/EMb4gV+IXFWkXirRiIq24RuJPE551WOL9RUn8dXL92Px/cxK/KJQvJaCU/gtScTbimQZt5CLsrI2dyPkmfgnH+KJciX+xSLtEpF0q0kpqJP504VmPJd4/lMRfL9cPzV8wjpP4F0P5kg6l9D+IirQRz3RoI5dhZ23sRM438dMd48tyJf7lIu0KkVZKpJXWSPwZwrMBSzyLkvgb5Pqx+W1O4l8O5cuVUEpbkIqzEc8MaCNlsLM2diLnm/hXOsZlciX+VSLtapF2jUi7ViPxZwrPRizxXJTE3yjXj80fz0l86Jfx066DUtoFqTgb8cyENnI9dtbGTuR8E/86x/j6XIl/g0i7UaSVFWnlNBL/NeHZhCVePkrib5Lrx+Z3cxL/BihfykMpnQ9ScTbieQ3ayE3YWRs7kfNN/PKO8U25Ev9mkXaLSLtVpN2mkfizhMeHJV4CJfF9cv3Y/ImcxL8ZypfboZROgFScjXhmQRu5AztrYydyvol/u2N8R67Ev1Ok3SXS7hZp92gk/mzhEVjiJVESX8j1Y/MncxL/Tihf7oVSOglScTbimQ1t5D7srI2dyPkm/r2O8X25Ev9+kfaASKsg0ipqJP7rwrMZS7wUSuJvluvH5k/lJP79UL5UglI6BVJxNuKBfi0irTJ21sZO5HwTv5JjXDlX4lcRaVVFWjWRVl0j8ecIzxYs8fJTEn+LXD82v4eT+FWgfKkBpXR+SMXZiAf6TZ+0mthZGzuR8038Go5xzVyJX0uk1RZpdURaXY3Ef0N4tmKJl0ZJ/K1y/dj8BTiJXwvKl3pQSqdBKs5GPG9AG3kQO2tjJ3K+iV/PMX4wV+LXF2kNRNpDIu1hjcR/U3i2YYlXkJL42+T6sfkLcRK/PpQvj0ApXRBScTbieRPaSEPsrI2dyPkm/iOOccNcif+oSHtMpD0u0p7QSPy3hGc7lniFKYm/Xa4fm78IJ/EfhfKlEZTShSEVZyOet6CNPImdtbETOd/Ed/yp6bQncyX+UyKtsUhrItIyNBL/beHZgSXeBZTE3yHXj81flJP4T0H58jSU0hdAKs5GPG9DG2mKnbWxEznfxHf88fi0prkSv5lIay7SnhFpLTQS/x3h2Ykl3oWUxN8p14/NX4yT+M2gfHkWSukLIRVnI553oI20xM7a2Imcb+I/6xi3zJX4z4m050VaK5HWWiPx5wrPLizxilMSf5dcPzZ/CU7iPwflSxsopYtDKs5GPHOhjbTFztrYiZxv4rdxjNvmSvx2Iq29SMsUaR00En+e8OzGEu8iSuLvluvH5r+Yk/jtoHzpCKX0RZCKsxHPPGgjnbCzNnYi55v4HR3jTrkSv7NIe0GkdRFpXTUSf77w7MES7xJK4u+R68fmv5ST+NBfRk57EUrpSyAVZyOe+dBGXsLO2tiJnG/iv+gYv5Qr8V8Wad1EWneR1kMj8d8Vnr1Y4pWkJP5euX5s/nRO4r8M5UsWlNIlIRVnI553oY30xM7a2Imcb+JnOcY9cyV+L5HWW6T1EWl9NRJ/gfDswxLvMkri75Prx+a/nJP4vaB86Qel9GWQirMRzwJoI/2xszZ2Iueb+P0c4/65En+ASBso0gaJtMEaib9QePZjiXcFJfH3y/Vj85fiJP4AKF+GQCl9BaTibMSzENrIUOysjZ3I+Sb+EMd4aK7EHybShou0bJHm1Uj8RcJzAEu80pTEPyDXj81/JSfxh0H5kgOldGlIxdmIZxG0kRHYWRs7kfNNfMef/UwbkSvx5f8bJdJGi7QxGom/WHgOYolXhpL4B+X6sfmv4iT+SChfxkIpXQZScTbiWQxtZBx21sZO5HwTf6xjPC5X4r8i0saLtAkibaJG4i8RnkNY4l1NSfxDcv3Y/NdwEh9qmJ4GNV8veDWk4mzEswTayGTsrI2dyPkm/iTHeHKuxJ8i0l4VaVNF2jSNxH9PeA5jiXctJfEPy/Vj81/HSXysAdl0KKWvhVScjXjegzYyAztrYydyvok/3TGekSvxZ4q010TaLJE2WyPxlwrPESzxrqck/hG5fmz+GziJj/2ONvTXawpeD6k4G/EshTYyBztrYydyvon/umM8J1fivyHS3hRpb4m0tzUSf5nwHMUS70ZK4h+V68fmL8tJfOxr7O9AKX0jpOJsxLMM2shc7KyNncj5Jv47jvHcXIk/T6TNF2nvirQFGom/XHiOYYlXjpL4x+T6sfnLcxIf+6R/IZTS5SAVZyOe5dBGFmFnbexEzjfxFzrGi3Il/mKRtkSkvSfSlp4brxxg9W4oORZHe1RQKqcti2x7ZEPlsufaTlCtFv8DfWnLkZ3H/qjeWdU2SAX+UT3OjUlb5hgvPzvO3YdqhUh7X6R9INJW9pxTIbNlq1YtW/j9R8Z7e85s0LJNi1bNTyewch9pK9T7yB6Rna22yntxVf9CuKAvn6StAibPG+oZ9R+oU7Wy81HyqnSdG/5h5Nmn9581Xsd2dWTb499V/kfHdk1Y2/jAQCstP3SMV58dl3b8dI1My7UibZ1IWy/SNpy79hFANkD97tLWQlHYSLqcGx3jdY7xesd4g4zDJpHmE2lCpG0+93rmy+k544HMzIyuI5RXyp8A2B0GPqPDjJCPdqKsLpv+i9UlbRWUK1sMVZct6eeetdv7PxWsLVCwthoK1tZ0nTVuhda4zdAat+U60ISoD3Qr70BVYYgDFhjtRz3QxEhD0msYEyN/BedaxsRIJ8rrdCZWmUIP81wv6LzxUU19AyOQ8cDENzImRloqlmVMjLx1LceYGOmlV54xMfIne25iTIw0UbuZMXEyMPEtjImR7lm3MiZOBSa+jTEx0jbpdsbEyN/juYMxMdIv507GxAWAie9iTFwQmPhuxsSFgInvYUyMdMi4lzFxEWDi+xgTI60R7mdMXBSY+AHGxMjvxFdgTFwMmLgiY2Lkl6ErMSZG/pJOZcbEyG/BVmFMfDEwcVXGxMivP1ZjTHwpMHF1xsTI773VYEyM/JmcmoyJkV94qsWY+HJg4tqMiZHfdKnDeL9f19AjOo33+/UY+3kQen7xMuMMSwHLq8/YcwNDjzA1zvAhhunDDNNHGKYNGaaPMkwfY5g+zjB9gmHaiGH6JMP0KYZpY4ZpE4ZpBsP0aYZpU4ZpM4Zpc4bpMwzTFgzTZxmmLRmmzzFMn2eYtmKYtmaYtmGYtmWYtmOYtmeYZjJMOzBMOzJMOzFMOzNMKZ/TdmGYdmWYvsgwfYlh+jLDtBvDtDvDtAfD1JdFce1Jce1Fce1Nce1Dce1Lce1Hce1PcR1AcR1IcR1EcR1McR1CcR1KcR1GcR1Occ2muHoprjkU1xEU15EU11EU19EU1zEU17EU13EU11coruMprhMorhMprpMorpMprlMorq9SXKdSXKdRXKdTXGdQXGdSXF+juM6iuM6muL5OcZ1DcX2D4vomxfUtiuvbFNd3KK5zKa7zKK7zKa7vUlwXUFwXUlwXUVwXU1yXUFzfo7gupbguo7gup7iuoLi+T3H9gOK6kuK6iuL6IcV1NcV1DcV1LcV1HcV1PcV1A8V1I8V1E8XVR3EVFNfNFNctFFfKt3J9lO+J+rZTXHdQXHdSXHdRXHdTXPdQXPdSXPdRXPdTXA9QXA9SXA9RXA9TXI9QXI9SXI9RXD+iuH5Mcf2E4vopxfUziutxiusJiuvnFNcvKK5fUly/orh+TXH9huL6LcX1O4rr9xTXHyiuP1Jcf6K4nqS4/kxx/YXi+ivF9TeK6+8U1z8orn9SXP+iuP5Ncf2H4SqsOI6txbG1ObYujm08xzYfx9bNsU3g2CZybJM4tskc2xSObSrHNj/H1sOxTePYFuDYFuTYFuLYFubYFuHYXsCxLcqxvZBjW4xjW5xjW4JjexHH9mKO7SUc20s5tiU5tukc28s4tpdzbK/g2Jbi2Jbm2F7JsS3Dsb2KY/tf670tON23san/a/23BacDt8B6cKdt4kx+AzT5Kk4G38ixLcuxLcexLc+xvYljezPH9haO7a0c29s4trdzbO/g2N7Jsb2LY3s3x/Yeju29HNv7OLb3c2wf4NhW4NhW5NhW4thW5thW4dhW5dhW49hW59jW4NjW5NjW4tjW5tjW4djW5djW49g+yLGtz7FtwLF9iGP7MMf2EY5tQ47toxzbxzi2j3Nsn+DYNuLYPsmxfYpj25hj24Rjm8GxfZpj25Rj24xj25xj+wzHtgXH9lmObUuO7XMc2+c5tq04tq05tm04tm05tu04tu05tpkc2w4c244c204c284c2xc4tl04tl05ti9ybF/i2L7Mse3Gse3Ose3Bsc3i2Pbk2Pbi2Pbm2Pbh2Pbl2Pbj2Pbn2A7g2A7k2A7i2A7m2A7h2A7l2A7j2A7n2GZzbL0c2xyO7QiO7UiO7SiO7WiO7RiO7ViO7TiO7Ssc2/Ec2wkc24kc20kc28kc2ykc21c5tlM5ttM4ttM5tjM4tjM5tq9xbGdxbGdzbF/n2M7h2L7BsX2TY/sWx/Ztju07HNu5HNt5HNv5HNt3ObYLOLYLObaLOLaLObZLOLbvcWyXcmyXcWyXc2xXcGzf59h+wLFdybEl/S7Jhxzb1RzbNRzbtRzbdRzb9RzbDRzbjepflNKx3cRZrY9jKzi2mzm2Wzi2Wzm22zi22zm2Ozi2Ozm2uzi2uzm2ezi2ezm2+zi2+zm2Bzi2Bzm2hzi2hzm2Rzi2Rzm2xzi2H3FsP+bYfsKx/ZRj+xnH9jjH9gTH9nOO7Rcc2y85tl9xbL/m2H7DsY26Ty/WE+K7HKQnBOkZyfecPf2A7MlF+vLijxzbnzi2Jzm2P3Nsf+HY/sqx/Y1j+zvH9g+O7Z8c2784tn9zbDk9gG1OD2Cb0wPY5vQAtjk9gG1OD2Cb0wPY5vQAtjk9gG1OD2Cb0wPY5vQAtjk9gG1OD2Cb0wPY5vQAtjk9gG1OD2Cb0wPYLsSx5fQAtjk9gG1OD2Cb0wPY5vQAtjk9gG1OD2Cb0wPY5vQAtjk9gG1OD2Cb0wPY5vQAttMpn8LanB7ANqcHsM3pAWxzegDbnB7ANqcHsM3pAWxzegDbV3Nsr+HYXsuxvY5jez3H9gaOLaeXrs3ppWtzeuna5Tm2nF66NqeXrs3ppWtzeunanF66NqeXrs3ppWtzeunanF66NqeXrs3ppWtzeunanF66NqeXrs3ppWtzeunanF66NqeXrs3ppWtzeunanF66NqeXrs3ppWtzeunanF66NqeXrs3ppWtzeunanF66NqeXrs3ppWvX59hyeunanF66NqeXrs3ppWtzeunanF66NqeXrs3ppWtzeunanF66NqeXrs3ppWtzeunanF66NqeXrs3ppWtzeunanF66NqeXrs3ppWtzeunanF66NqeXrs3ppWtzeunanF66NqeXrs3ppWtzeunanF66NqeXrp3JseX00rU5vXRtTi9dm9NL1+b00rU5vXRtTi9dm9NL1+Z8Hd3m9NK1Ob10bU4vXZvTS9fm9NK1Ob10bU4vXZvTS9fm9NK1Ob10bU4vXZvTS9fm9NK1Ob10bU4vXZvTS9fm9NK1Ob10bU4vXZvTS9fm9NK1Ob107RyOLaeXrs3ppWtzeunanF66NqeXrs3ppWtzeunanF66NqeXrs3ppWtzeunanF66NqeXrs3ppWtzeunanF66NqeXrs3ppWtzeunanF66NqeXrs3ppWtzeunanF66NqeXrs3ppWtzeunanF66NqeXrs3ppWtzeuna8zi2nF66NqeXrs3ppWtzeunanF66NqeXrs3ppWtzeunanF66NqeXrs3ppWtz+sTYnF66NqeXrs3ppWtzeunanF66NqeXrs3ppWtzeunanF66NqeXrs3ppWtv5NhyeunanF66NqeXrs3ppWtzeunanF66NqeXrr2dY8vppWtzeunanF66NqeXrs3ppWtzeunanF66NqeXrs3ppWtzeunanF66NqeXrs3ppWtzeunanF66NqeXrs3ppWtzeunanF66NqeXrs3ppWtzeunanF66NqeXrs3ppWtzeunanF66NqeXrv0tx/Y7ju33HNsfOLac/rc2p/+tzel/a3P639qc/rc2p/+tzel/a3P639qc/rc2p/+tzel/a3P639qc/rcuTv9bF6f/rYvT/9bF6X/r4vS/dXH637o4/W9dnP63Lk7/Wxen/62L0//Wxel/6+L0v3Vx+t+6OP1vXZz+ty5O/1sXp/+tqxDHltP/1sXpf+vi9L91cfrfujj9b12c/rcuTv9bF6f/rYvT/9bF6X/r4vS/dXH637o4/W9d6RxbTv9bF6f/rYvT/9bF6X/r4vS/dXH637o4/W9dnP63Lk7/Wxen/62L0//Wxel/6+L0v3Vx+t+6OP1vXZz+ty5O/1tXeY4tp/+ti9P/1sXpf+vi9L91cfrfujj9b12c/rcuTv9bF6f/rYvT/9bF6X/r4vS/dXH637o4/W9dnP63Lk7/Wxen/62L0//Wxel/6+L0v3Vx+t+6OP1vXZz+ty5O/1sXp/+ti9P/1sXpf+vi9L91cfrfujj9b12c/reu+hxbTv9bF6f/rYvT/9bF6X/r4vS/dXH637o4/W9dnP63Lk7/Wxen/62L0//Wxel/6+L0v3Vx+t+6OP1vXZz+ty5O/1sXp/+ti9P/1sXpf+vi9L91cfrfujj9b12c/rcuTv9bF6f/rYvT/9YF9b+t3bx128yu1du07Dii3kFXlauvufa662+4sWy58jfdfMutt91+x5133X3Pvffd/0CFipUqV6larXqNmrVq16lb78H6DR56+JGGjz72+BONnnyqcZOMp5s2a/5Mi2dbPvd8q9Zt2rZrn9mhY6fOL3Tp+uJLL3fr3sOX5evp6+Xr7evj6+vr5+vvG+Ab6BvkG+wb4hvqG+Yb7sv2eX05vhG+kb5RvtG+Mb6xvnG+V3zjfRN8E32TfJN9U3yv+qb6pvmm+2b4Zvpe883yzfa97pvje8P3pu8t39u+d3xzffN8833v+hb4FvoW+Rb7lvje8y31LfMt963wve/7wLfSt8r3oW+1b41vrW+db71vg2+jb5PP5xO+zb4tvq2+bb7tvh2+nb5dvt2+Pb69vn2+/b4DvoO+Q77DviO+o75jvo98H/s+8X3q+8x33HfC97nvC9+Xvq98X/u+8X3r+873ve8H34++n3wnfT/7fvH96vvN97vvD9+fvr98f/v+EVacsCxh2cJyCSteWPmE5RZWgrAShZUkrGRhpQgrVVj5heURVpqwCgiroLAKCauwsIoI6wJhFRXWhcIqJqziwiohrIuEdbGwLhHWpcIqKax0YV0mrMuFdYWwSgmrtLCuFFYZYV0lrKuFdY2wrhXWdcK6Xlg3COtGYZUVVjlhlRfWTcK6WVi3COtWYd0mrNuFdYew7hTWXcK6W1j3COteYd0nrPuF9YCwKgirorAqCauysKoIq6qwqgmrurBqCKumsGoJq7aw6girrrDqCetBYdUXVgNhPSSsh4X1iLAaCutRYT0mrMeF9YSwGgnrSWE9JazGwmoirAxhPS2spsJqJqzmwnpGWC2E9aywWgrrOWE9L6xWwmotrDbCaiusdsJqL6xMYXUQVkdhdRJWZ2G9IKwuwuoqrBeF9ZKwXhZWN2F1F1YPYWUJq6ewegmrt7D6CKuvsPoJq7+wBghroLAGCWuwsIYIa6iwhglruLCyheUVVo6wRghrpLBGCWu0sMYIa6ywxgnrFWGNF9YEYU0U1iRhTRbWFGG9KqypwpomrOnCmiGsmcJ6TVizhDVbWK8La46w3hDWm8J6S1hvC+sdYc0V1jxhzRfWu8JaIKyFwlokrMXCWiKs94S1VFjLhLVcWCuE9b6wPhDWSmGtEtaHwlotrDXCWiusdcJaL6wNwtoorE3C8glLCGuzsLYIa6uwtglru7B2CGunsHYJa7ew9ghrr7D2CWu/sA4I66CwDgnrsLCOCOuosI4J6yNhfSysT4T1qbA+E9ZxYZ0Q1ufC+kJYXwrrK2F9LaxvhPWtsL4T1vfC+kFYPwrrJ2GdFNbPwvpFWL8K6zdh/S6sP4T1p7D+EtbfwvpH2HHCtoRtC9sl7Hhh5xO2W9gJwk4UdpKwk4WdIuxUYecXtkfYacIuIOyCwi4k7MLCLiLsC4RdVNgXCruYsIsLu4SwLxL2xcK+RNiXCruksNOFfZmwLxf2FcIuJezSwr5S2GWEfZWwrxb2NcK+VtjXCft6Yd8g7BuFXVbY5YRdXtg3CftmYd8i7FuFfZuwbxf2HcK+U9h3CftuYd8j7HuFfZ+w7xf2A8KuIOyKwq4k7MrCriLsqsKuJuzqwq4h7JrCriXs2sKuI+y6wq4n7AeFXV/YDYT9kLAfFvYjwm4o7EeF/ZiwHxf2E8JuJOwnhf2UsBsLu4mwM4T9tLCbCruZsJsL+xlhtxD2s8JuKeznhP28sFsJu7Ww2wi7rbDbCbu9sDOF3UHYHYXdSdidhf2CsLsIu6uwXxT2S8J+WdjdhN1d2D2EnSXsnsLuJezewu4j7L7C7ifs/sIeIOyBwh4k7MHCHiLsocIeJuzhws4WtlfYOcIeIeyRwh4l7NHCHiPsscIeJ+xXhD1e2BOEPVHYk4Q9WdhThP2qsKcKe5qwpwt7hrBnCvs1Yc8S9mxhvy7sOcJ+Q9hvCvstYb8t7HeEPVfY84Q9X9jvCnuBsBcKe5GwFwt7ibDfE/ZSYS8T9nJhrxD2+8L+QNgrhb1K2B8Ke7Ww1wh7rbDXCXu9sDcIe6OwNwnbJ2wh7M3C3iLsrcLeJuztwt4h7J3C3iXs3cLeI+y9wt4n7P3CPiDsg8I+JOzDwj4i7KPCPibsj4T9sbA/Efanwv5M2MeFfULYnwv7C2F/KeyvhP21sL8R9rfC/k7Y3wv7B2H/KOyfhH1S2D8L+xdh/yrs34T9u7D/EPafwv5L2H8L+x/hihMu/9eIhcslXPHClU+43MKVIFyJwpUkXMnClSJcqcKVX7g8wpUmXAWEq6BwFRKuwsJVRLguEK6iwnWhcBUTruLCVUK4LhKui4XrEuG6VLhKCle6cF0mXJcL1xXCVUq4SgvXlcJVRn6cLz96lx+Ty4+05cfP8qNi+bGu/AhWflwqP9qUH0PKjwzlx3vyozj5sZn8iEt+HCU/OpIf88iPZOTHJ/KjDvmxhPwIQT7ul4/m5WN0+chbPp6Wj5LlY1/5iFY+TpWPPuVjSvlIUT7+k4/q5GM1+QhMPq6Sj5bkYyD5yEY+XpGPQuRjC/mIQT4OkG/d5dts+ZZYvn2VbzXl20L5Fk6+3ZJvjeTbGPmWQ749kC/l5ctu+RJZvpyVLz3ly0T5kk6+/JIvleTLmtfrN+/YKbNNpYyOGQfjro6zbFd8PndCYlJySmp+T1qBgoUKF7mg6IXFipe46OJLLi2ZftnlV5QqfWWZq7KzD8aVzek5/YGmLTOL5WzZmvDlT5vWtsjOPvOjEnl/dHfOlgMfXlt/d2V3ycCP7sn7o3vz/kgWulA/dIX6YXyIH7q+ytky9qsiM1LH5388+MMfQv3w11A//DvED+PjQ/0wOdQPC4T6YdFQP7wrxOLj7w71wxCBE24r1A9Dhc4dKnQJ60L9cH2oH24I8cOkoaF+OCzUD4eH+GFKg1A/fCjUDx8O8cP8xUP9sESoH14U4odp94Q4jrSKoX5YPdQP64b64cOhfvhEqB9mhPphi1A/lPGc88bwZt2y1vc8+8MCj+VseWJp8u+j662fGPxh47wXUBR4NtQPnw/1w9aOH47P2XdVxqn3S42btm3dLqNjy6dbNW/cNjOjqfz/dW6e2aFl2zaNX8jMaNeueebBuAI9Z1Rs26ZDxxE9Z1Zqmdm8aUe752vV23Rs3qJ55rSHbyqvfquV+99bUf37rMq5/31cdPNX7jm9YkarVt6Usz6z6jdvJTfduXmUO4nL6+CK1uEN/1qaydpcsW27rme3VNm5Jof56ZV7znvllQ2sfHqDjm3beXPCrDTXGVWcUaVl81bqB1mX5P6HlcB/aM08jbmec6q0zWzeskUbf6RGybx+sWPzpo1bt+zQtPHpFK94NsPrnkrwR07nt/9qvHn63f0DzZplNu/Q4ezSw/y8Uk7PmQ1atm7XqvnpJZ77v84sJ2fh051atmrWuHWHFo2fbtW26fONn23eyn+NrHr/5Ws04Tyv0YQzyfhM3lTKF51TlbwObjPXqIpzTQ5zuXLHxqsEB4FZpz58ey5R1eAgvKhacBBeVD04CC+qERyEF9UMDsKLagUH4UW1g4PwojrBQXhR3eAgvKhecBBe9GBwEF5UPzgIL2oQHIQXPRQchBc9HByEFz0SHIQXNQwOwoseDQ7Cix4LDsKLHg8OwoueCA7CixoFB+FFTwYH4UVPBQfhRY2Dg/CiJsFBeFFGcBBe9HRwEF7UNDgIL2oWHIQXNQ8OwoueCQ7Ci1oEB+FFzwYH4UUtg4PwoueCg/Ci54OD8KJWwUF4UevgILyoTXAQXtQ2OAgvahcchBe1Dw7CizKDg/CiDsFBeFHH4CC8qFNwEF7UOTgIL3ohOAgv6hIchBd1DQ7Ci14MDsKLXgoOwoteDg7Ci7oFB+FF3YOD8KIewUF4kS/LMYog6+kYRZD1cowiyHo7RhFkfRyjCLK+jlEEWT/HKIKsv2MUQTbAMYogG+gYRZANcoycry9z6wY7Rufozvdt1/m/0q3Uc1rttp1znK9rz6zVyuudEO2bwjkVWrbJ8H+82bFuu1FnjafJNz6ntn92JscMb1Zv0+zUT8/zTYCVa/LgFGenz7tn+0w0zvxPl/Ngzvkv8c4ln/Nfcr8vkO9onssdY9s5da7/5nLkVK7/FO9Io9POncJt0pV3k3Zwk3kONj662A4577doBcIG2hU20PFhA53vbKDP9ynEkPOOTYG8zzFcTrPczzGic8/zHKRSdP8+z/yVo/v39599KhLqZifkvtmu4GGdc3aJQcE5P08KHvv0Gp1at/Nm9pxeq21Gs7MCd9BhhgxzZvO8/9Qdem2JudeWGLwPIf9BUu5/kKT4B8mzasmnOQ89m9Em5DQJPWf6t1T9mbNLTm4TiOb5P6/IVSoSIlTxxOi8C0ZfxRPDV/EEQ1U8MW+BS4hQ4JKivcRhpk3KO22Sc9+5jiHZ+d9OZ7R8JRbI3FAyd7iZk/POnBwuIc8qUs5NyVATJgXTMvjPeoQNexjDc0pcXsNE3+jA9vtFEdr4YJUKF5W3Auup3L5TRqsOuf99xG0mS8SeBoewbgg7g3rHob2HB3Y8NHdWJAa3dUYyMnyaN+j0dIRQh4slGhZXiKUn+UacDUu54ArzvE7Mm9pjI4jcQRGeAPmCmNNKgHyqQ5rgSIA8RSPZUK1KyXuISc5Zwvyz1IhbU1zhVN+rjkMMG/FKLTufa5sSjHieeKRE+9Yij0Oq491UuSg+kThrkN/5dkzn8zRPdHtIzOuQFp1DCBgV0HutHKoCuPPWFgcPz9y4OeHO361X29y+dwLWb0V4a5MY+rVicH3TandqlXti1X0vlDdlE5T/qODMUDeoUOQyWNC34OwNujmsc5gIJpxTw0J4vxeI4OLcEXQ7s/2MaE3Y+UNB07GKcFFE+VAwxOIL+VaosVkoTGAKnlNqQnivPOt9W/gciPTmNlyu5/1HhZzLOvM+I9QxuIPHcObBTiiLc1+yR7GMBIAFhSMeWIJzFXmDWti3UX1ghcMcmDtyJhf2bQlER+TO5IIhMnl/2PkjZnLYl8VF0EwuHGLxRXw71IEJVyQLR85kt2+3OpPdOpkc4s67ncvKnckFz0nzwDHkodIF0VEpPeyJhImXxzlVqLM4fDZed4ZPkgbPtgp7iT2RrmdB6HqGiG1hp51WFhaOXE+L+D4B6mnEupF23nWjUMi7fUK/bhRS1Y2vA7n4JULAX/XqRiFS3fhen4CFVQT86b9CwMIQAX/9F9aNP7XqRsFIdaOgAayfc+vPt26EwnoRYdnqNCwY4UFZxfMuG6HqWWFhudXrSlC/QAxVNxKElXImGYWVlLtyFMpbOYRVNIpPguKBQyuMlo6E0MFJAw5N/bYiVO3w/8aaungU1CkeISpOQee6chePQs5h8CTyVI/ChqpHQXX1KBw6YiXU5SMhb/lwRyofbufmNV92nPOaXuttnOKaFhJWuv6rX8cjggKhXv0K6wpHJob7sC8x98dR8dF+NhGY4568LyLOfvSEX3+3zj1IcEYlz7P9QkBFCbESR5CSIzz/SYjw/McdfP6T++OYsx/ZBKN9a4Qmg4Ev9vec/lBmhv+jzbP/PhCuwKOe85zoomXNt9538IuD9InyxV80Lv3tJrXoE32SWK+yvWBISfpENe8a92KvVZ89pJ4ozCeqrjCf6TqfneX+N3aezzQln+vk/pz+7ErQDxLPFgPsg1lX8B+cM3NymE+ZU4JLC5CpRq6oJAY9cn3OnBKUhP4UOPfqkhUfG6fk/gcpin+QGvJz5mTHx9S5ziRVWFXCpVfU36oJRKxumFN2KX9R4av/7i8q9Lz9/H5Rwbr9LHTs8/4ezEexX1WI/apC7FcVYr+qEPtVhdivKsR+VSH2qwqxX1WI/arC6f/I/1WFELJQv6kQQjbEMYogG+oYRZANc4wiyIY7RhFk2Y5RBJnXMYogy3GMIsicowiykY5RBNkoxyiCbLRjFEE2xjGKIBvrGEWQjXOMIshecYwiyMY7RhFkExyjCLKJjlEE2STHKIJssmMUQTbFMYoge9UxiiCb6hhFkE1zjCLIpjtGEWQzHKMIspmOUQTZa45RBNksxyiCbLZjFEH2umMUQTbHMYoge8MxiiB70zGKIHvLMYoge9sxiiB7xzGKIJvrGEWQzXOMIsjmO0YRZO86RhFkCxyjCLKFjlEE2SLHKIJssWMUQbbEMYoge88xiiBb6hhFkC1zjCLIljtGEWQrHKMIsvcdowiyDxyjCLKVjlEE2SrHKILsQ8cogmy1YxRBtsYxiiBb6xhFkK1zjCLI1jtGEWQbHKMIso2OUQTZJscogsznGEWQCccogmyzYxRBtsUxiiDb6hhFkG1zjCLItjtGEWQ7HKMIsp2OUQTZLscogmy3YxRBtscxiiDb6xhFkO1zjCLI9jtGEWQHHKMIsoOOUQTZIccoguywYxRBdsQxiiA76hhFkB1zjCLIPnKMIsg+dowiyD5xjCLIPnWMIsg+c4wiyI47RhFkJxyjCLLPHaMIsi8cowiyLx2jCLKvHKMIsq8dowiybxyjCLJvHaMIsu8cowiy7x2jCLIfHKMIsh8dowiynxyjCLKTjlEE2c+OUQTZL45RBNmvjlEE2W+OUQTZ745RBNkfjlEE2Z+OUQTZX45RBNnfjlEE2T+OUXiZsOKcw0hCyzmMJLSdw0hCl3MYSRjvHEYS5nMOIwndzmEkYYJzGEmY6BxGEiY5h5GEyc5hJGGKcxhJmOocRhLmdw4jCT3OYSRhmnMYSVjAOYwkLOgcRhIWcg4jCQs7h5GERZzDSMILnMNIwqLOYSThhc5hJGEx5zCSsLhzGElYwjmMJLzIOYwkvNg5jCS8xDmMJLzUOYwkLOkcRhKmO4eRhJc5h5GElzuHkYRXOIeRhKWcw0jC0s5hJOGVzmFAGKJ5kbDKOIfnKP/77YuOEtsXHYu1LzrzPSe3VgMjf2KF62DkT6WAe8H/ShMj66p/aRMjf7jPs41RqL3F2hg5/u8/3cbI/9rp/3IjI/n6NdbKSDH5/71WRv6Xav/+Xkb+l6iGuxkJq/zZEFz+L+pn5CduACIbTTc0Eta1Zzd9tbKlkbDK/qt6GgnrxrOhEY41qrsa+bt/qNsaRegR8l/oayQcX1Lf+H+ssZH/d72CJ/lf6Wx0NNbZKO7f0NlIWFVNtzYSVi3HLwX9321uJKwHz96iraa7GwnrkbNBfAjo7iCsjH9VgyNhPa7mqG6HI2E9edZ8x7+txZH/JM48/wnl8S/ucSSsZ9RnptvkSFjPnw1QS6DNkbA6/6v6HAmrrTo4uo2OhJWpTuj/Vqcj/0n861qWCOvFsxHb/f9XryNhZQGl9b/R7EhYffQLSCFlARl4NiH7Q0Qc+a9qeCSsofpEVHU8Elb2f4WIhTEijvw3FpCxWgXk/0TTo0nqTPyvND2aql6XftOj186m4wyo6dG8f1nToznAoWk3PXpLXT7+e02P5v0bmx4tVJeP/6tNj5bpvxJWNz1635GJ/KZH+2JNj85ENAS2q8a6HuX+v1jXozwfvxrrevTF/2DXo8/+j3c9+sh416MvVV2P3m/RvGPjVuUad2zbuFX5xq2bt366eWaHZ1u2a/xCy45t5AYOxl39X/47zc+f599pfv68vzfjojU9quhck8M8z3P8s/pwX16qFParS4E/937BualQxWkfBnnxoZAX/pP+KMNa9bzDWirsa5b4sF9oyqf8/til5/1lpCrnHZvSeb/OFGIPeV8Snf+3CEsb/RahO9paofcy8Jw/eV/q9J+879SxVWNZ3GqVe6htrfK1zxa2hqfrWp4/du8I7uxqzTPaPZCZmdHV+Z62VO4/dz/jtMR77o9LjQjrbIf9L66w/yV+RK5ZI/2vqL71GAzkf/jLZVf+n/5q2eUBsu4r3aZtx5bPdG3cNLN5RsfmzRq36dSqVctnWjbPbNw2M6Npq+aN2/2/9s6mJ2EYjOPbaFDAo8SDB4maePFbQMSTEkm8LgMbWYKA20D8FriTHvRivJiYGG/6WfwwtuylW9eOjU6IhhsJ68va//P8f6PtMPrj28cl22tN0F5rwv9hKQvn2wT2yvAGlr06DlAS3ikuPipS1AGUYGXhnFdxct7AGKmO6qqO6E48zU0md/y8RKUwX8EHJg5HVe+pcAzbQ0vv99S21u5AT8E36CEGvyMTucZyVVwXVHFdWINA2PMTqDjEAKIarWYAxjzolIXZDqTnkDyfQ0BGHJKP2SQ5z2mG/Mzt9Vsxrg64jwNHbuldYZXUfz+TLQY7dv41dmzP2N8F4tcTgmbySbzEhNaxZnYa6Msr7RJOJjYbjgEfYHM2B5RzHNOpjLSujpIg4qNhq6u3keM4SdFzmxUxrYiJfU9piGmPqFwzTWhY51h2jankvKGZC5oOXew34AjVqrcw6Hc0E6qmpRkWRU5PKy0vXMvh86JV8iG0CDhL8Rt/TvH79DPCma/QBhZoE+szmeRD3fSU/+GgF7oQ/5psaBf6+Bst/r0I/ZQt0eXzggGylhZx2eKSAl7s3VhYWDI7JOn+pDweVUyISwXS+ptTYJqlTgf+Kz1zr267NX0UuSuFVwrgfeIRJou5vDlsRWoHXOICaQGKAmiJdI2NbkywKvDBan1NeMK8GI3MjP1OIkbv4Vh8oBsrC6p9M5tUKpH++BXTxuXYYIImeHp0lzAZWqQnJRfZkiAnbJ0bDdJzIAxk0gdq8vz3bJTtr+DkTYdYvR6ivAp71j3dvZQHmBS6fCnjaSySijnjocRlB+4oysHsoCS4nJUdZE5IK/Rk+EuwxR8ZoSG9ajQLAA==",
6874
+ "bytecode": "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",
6875
6875
  "custom_attributes": [
6876
6876
  "abi_private"
6877
6877
  ],
6878
- "debug_symbols": "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",
6878
+ "debug_symbols": "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",
6879
6879
  "is_unconstrained": false,
6880
6880
  "name": "claim_and_end_setup",
6881
6881
  "verification_key": "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"
@@ -6932,7 +6932,7 @@
6932
6932
  "custom_attributes": [
6933
6933
  "abi_public"
6934
6934
  ],
6935
- "debug_symbols": "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",
6935
+ "debug_symbols": "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",
6936
6936
  "is_unconstrained": true,
6937
6937
  "name": "public_dispatch"
6938
6938
  }
@@ -7185,5 +7185,5 @@
7185
7185
  }
7186
7186
  },
7187
7187
  "transpiled": true,
7188
- "aztec_version": "5.0.0-rc.1"
7188
+ "aztec_version": "5.0.0-rc.2"
7189
7189
  }